diff --git a/app/src/main/java/org/eu/exodus_privacy/exodusprivacy/fragments/HomeFragment.java b/app/src/main/java/org/eu/exodus_privacy/exodusprivacy/fragments/HomeFragment.java index 27afb2b..53d37ea 100644 --- a/app/src/main/java/org/eu/exodus_privacy/exodusprivacy/fragments/HomeFragment.java +++ b/app/src/main/java/org/eu/exodus_privacy/exodusprivacy/fragments/HomeFragment.java @@ -1,5 +1,6 @@ package org.eu.exodus_privacy.exodusprivacy.fragments; +import android.annotation.SuppressLint; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; @@ -71,7 +72,7 @@ public class HomeFragment extends Fragment implements ComputeAppList.Listener, U packageManager = context.getPackageManager(); homeBinding.swipeRefresh.setOnRefreshListener(this::startRefresh); - SharedPreferences sharedPreferences = getContext().getSharedPreferences(Utils.APP_PREFS, MODE_PRIVATE); + SharedPreferences sharedPreferences = context.getSharedPreferences(Utils.APP_PREFS, MODE_PRIVATE); last_refresh = sharedPreferences.getString(Utils.LAST_REFRESH, null); if (packageManager != null) { @@ -94,12 +95,13 @@ public class HomeFragment extends Fragment implements ComputeAppList.Listener, U return homeBinding.getRoot(); } + public void startRefresh() { if (packageManager != null) { refreshInProgress = true; homeBinding.layoutProgress.setVisibility(View.VISIBLE); homeBinding.swipeRefresh.setRefreshing(true); - List packageInstalled = packageManager.getInstalledPackages(PackageManager.GET_PERMISSIONS); + @SuppressLint("QueryPermissionsNeeded") List packageInstalled = packageManager.getInstalledPackages(PackageManager.GET_PERMISSIONS); ArrayList packageList = new ArrayList<>(); for (PackageInfo pkgInfo : packageInstalled) packageList.add(pkgInfo.packageName); @@ -114,6 +116,9 @@ public class HomeFragment extends Fragment implements ComputeAppList.Listener, U @Override public void onResume() { super.onResume(); + if (!refreshInProgress && homeBinding.layoutProgress.getVisibility() == View.VISIBLE) { + onUpdateComplete(); + } } diff --git a/app/src/main/java/org/eu/exodus_privacy/exodusprivacy/manager/NetworkManager.java b/app/src/main/java/org/eu/exodus_privacy/exodusprivacy/manager/NetworkManager.java index e0e3c5a..1ef5ea4 100644 --- a/app/src/main/java/org/eu/exodus_privacy/exodusprivacy/manager/NetworkManager.java +++ b/app/src/main/java/org/eu/exodus_privacy/exodusprivacy/manager/NetworkManager.java @@ -353,8 +353,8 @@ public class NetworkManager { JSONObject object = makeDataRequest(mes.context, mes.listener, url); if (object != null) { try { - JSONObject application = object.getJSONObject(handle); if (handle != null) { + JSONObject application = object.getJSONObject(handle); return parseApplication(application, handle); } } catch (JSONException e) { @@ -400,7 +400,7 @@ public class NetworkManager { report.creationDate = Calendar.getInstance(); report.creationDate.setTimeZone(TimeZone.getTimeZone("UTC")); - report.creationDate.setTime(date); + report.creationDate.setTime(date!=null?date:new Date()); date = dateFormat.parse(object.getString("creation_date")); if (date != null) { report.creationDate.setTime(date);