From a6769cf32327fa1bd0412cc4f66239824d07262c Mon Sep 17 00:00:00 2001
From: amaa-99 <->
Date: Sat, 29 Jul 2023 23:31:30 +0200
Subject: [PATCH 1/4] * [Issue #1] Application crashes (immediately) after
choosing ' View log' from the menu. Dropped the use of the
org.ocpsoft.prettytime:prettytime library: This fixes the crashes due to the
library using unsupported language features on older platforms.
---
README.md | 5 ---
app/proguard-rules.pro | 1 -
.../dev/ukanth/ufirewall/log/LogInfo.java | 23 -------------
.../ufirewall/log/LogRecyclerViewAdapter.java | 34 ++++---------------
.../ukanth/ufirewall/service/LogService.java | 25 --------------
app/src/main/res/raw/about.html | 4 ---
6 files changed, 6 insertions(+), 86 deletions(-)
diff --git a/README.md b/README.md
index ca5cbfe2..1f7b071d 100644
--- a/README.md
+++ b/README.md
@@ -163,11 +163,6 @@ This project also uses some other open-source libraries such as:
DBFlow |
MIT |
https://github.com/Raizlabs/DBFlow |
-
-
- Prettytime |
- Apache License 2.0 |
- https://github.com/ocpsoft/prettytime |
material-dialogs |
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
index bc15fdec..7d08d120 100644
--- a/app/proguard-rules.pro
+++ b/app/proguard-rules.pro
@@ -1,5 +1,4 @@
-keepattributes
--keep class org.ocpsoft.prettytime.i18n.**
-keep class * extends com.raizlabs.android.dbflow.config.DatabaseHolder { *; }
-dontpreverify
-dontoptimize
diff --git a/app/src/main/java/dev/ukanth/ufirewall/log/LogInfo.java b/app/src/main/java/dev/ukanth/ufirewall/log/LogInfo.java
index e8b1e315..5001f3e5 100644
--- a/app/src/main/java/dev/ukanth/ufirewall/log/LogInfo.java
+++ b/app/src/main/java/dev/ukanth/ufirewall/log/LogInfo.java
@@ -28,15 +28,9 @@
import android.util.Log;
import android.util.SparseArray;
-import org.ocpsoft.prettytime.PrettyTime;
-import org.ocpsoft.prettytime.TimeUnit;
-import org.ocpsoft.prettytime.units.JustNow;
-
import java.net.InetAddress;
-import java.util.Date;
import java.util.HashMap;
import java.util.List;
-import java.util.Locale;
import dev.ukanth.ufirewall.Api;
import dev.ukanth.ufirewall.Api.PackageInfoData;
@@ -61,29 +55,12 @@ public class LogInfo {
public long timestamp;
int totalBlocked;
- private static PrettyTime prettyTime;
-
- public static String pretty(Date date) {
- if (prettyTime == null) {
- prettyTime = new PrettyTime(new Locale(G.locale()));
- for (TimeUnit t : prettyTime.getUnits()) {
- if (t instanceof JustNow) {
- prettyTime.removeUnit(t);
- break;
- }
- }
- }
- prettyTime.setReference(date);
- return prettyTime.format(new Date(0));
- }
-
private final HashMap dstBlocked; // Number of packets blocked per destination IP address
public LogInfo() {
this.dstBlocked = new HashMap();
}
-
public static String parseLog(Context ctx, List listLogData) {
//final BufferedReader r = new BufferedReader(new StringReader(dmesg.toString()));
diff --git a/app/src/main/java/dev/ukanth/ufirewall/log/LogRecyclerViewAdapter.java b/app/src/main/java/dev/ukanth/ufirewall/log/LogRecyclerViewAdapter.java
index c7b75b2b..5bcd8471 100644
--- a/app/src/main/java/dev/ukanth/ufirewall/log/LogRecyclerViewAdapter.java
+++ b/app/src/main/java/dev/ukanth/ufirewall/log/LogRecyclerViewAdapter.java
@@ -14,30 +14,23 @@
import androidx.recyclerview.widget.RecyclerView;
-import org.ocpsoft.prettytime.PrettyTime;
-import org.ocpsoft.prettytime.TimeUnit;
-import org.ocpsoft.prettytime.units.JustNow;
-
+import java.text.DateFormat;
import java.util.ArrayList;
-import java.util.Date;
+import java.util.Calendar;
import java.util.List;
-import java.util.Locale;
import dev.ukanth.ufirewall.Api;
import dev.ukanth.ufirewall.R;
-import dev.ukanth.ufirewall.util.G;
/**
* Created by ukanth on 25/7/16.
*/
public class LogRecyclerViewAdapter extends RecyclerView.Adapter {
-
private final List logData;
private final Context context;
private LogData data;
private PackageInfo info;
- private static PrettyTime prettyTime;
private final RecyclerItemClickListener recyclerItemClickListener;
private View mView;
@@ -113,11 +106,11 @@ public void onBindViewHolder(ViewHolder holder, int position) {
} catch (Exception e) {
Log.e(TAG, e.getMessage(), e);
}
-
try {
- //if(data.getTimestamp() != null && !data.getTimestamp().isEmpty()) {
- holder.lastDenied.setText(pretty(new Date(System.currentTimeMillis() - data.getTimestamp())));
- //}
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTimeInMillis(data.getTimestamp());
+ DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
+ holder.lastDenied.setText(dateFormat.format(calendar.getTime()));
} catch (Exception e) {
holder.lastDenied.setText("-");
}
@@ -130,26 +123,11 @@ public void onBindViewHolder(ViewHolder holder, int position) {
holder.icon.invalidate();
}
- public static String pretty(Date date) {
- if (prettyTime == null) {
- prettyTime = new PrettyTime(new Locale(G.locale()));
- for (TimeUnit t : prettyTime.getUnits()) {
- if (t instanceof JustNow) {
- prettyTime.removeUnit(t);
- break;
- }
- }
- }
- prettyTime.setReference(date);
- return prettyTime.format(new Date(0));
- }
-
@Override
public int getItemCount() {
return logData.size();
}
-
public static class ViewHolder extends RecyclerView.ViewHolder {
final ImageView icon;
diff --git a/app/src/main/java/dev/ukanth/ufirewall/service/LogService.java b/app/src/main/java/dev/ukanth/ufirewall/service/LogService.java
index eb9a1566..43169060 100644
--- a/app/src/main/java/dev/ukanth/ufirewall/service/LogService.java
+++ b/app/src/main/java/dev/ukanth/ufirewall/service/LogService.java
@@ -49,13 +49,7 @@
import com.topjohnwu.superuser.CallbackList;
import com.topjohnwu.superuser.Shell;
-import org.ocpsoft.prettytime.PrettyTime;
-import org.ocpsoft.prettytime.TimeUnit;
-import org.ocpsoft.prettytime.units.JustNow;
-
-import java.util.Date;
import java.util.List;
-import java.util.Locale;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -233,7 +227,6 @@ private void storeLogInfo(String line, Context context) {
}
}
-
private void checkBatteryOptimize() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
final Intent doze = new Intent(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
@@ -242,22 +235,6 @@ private void checkBatteryOptimize() {
}
}
- private static PrettyTime prettyTime;
-
- public static String pretty(Date date) {
- if (prettyTime == null) {
- prettyTime = new PrettyTime(new Locale(G.locale()));
- for (TimeUnit t : prettyTime.getUnits()) {
- if (t instanceof JustNow) {
- prettyTime.removeUnit(t);
- break;
- }
- }
- }
- prettyTime.setReference(date);
- return prettyTime.format(new Date(0));
- }
-
@SuppressLint("RestrictedApi")
private void showNotification(LogInfo logInfo) {
if(G.enableLogService()) {
@@ -271,8 +248,6 @@ private void showNotification(LogInfo logInfo) {
}
}
-
-
private static void store(final LogInfo logInfo, Context context) {
try {
if (logInfo != null) {
diff --git a/app/src/main/res/raw/about.html b/app/src/main/res/raw/about.html
index 3d8e9a49..75c3b9bf 100644
--- a/app/src/main/res/raw/about.html
+++ b/app/src/main/res/raw/about.html
@@ -296,10 +296,6 @@
RxJava |
Apache License 2.0 |
-
- PrettyTime |
- Apache License 2.0 |
-