diff --git a/app/src/main/java/eu/faircode/email/ActivityBilling.java b/app/src/main/java/eu/faircode/email/ActivityBilling.java index 3d3c44dfc1..37f33aecb6 100644 --- a/app/src/main/java/eu/faircode/email/ActivityBilling.java +++ b/app/src/main/java/eu/faircode/email/ActivityBilling.java @@ -180,7 +180,7 @@ public class ActivityBilling extends ActivityBase implements PurchasesUpdatedLis .putBoolean("play_store", false) .apply(); - WidgetUnified.update(context); + WidgetUnified.updateData(context); return true; } else { Log.i("IAB response invalid"); @@ -400,7 +400,7 @@ public class ActivityBilling extends ActivityBase implements PurchasesUpdatedLis editor.apply(); - WidgetUnified.update(this); + WidgetUnified.updateData(this); } if (query.size() > 0) @@ -462,7 +462,7 @@ public class ActivityBilling extends ActivityBase implements PurchasesUpdatedLis for (IBillingListener listener : listeners) listener.onPurchased(purchase.getSku()); - WidgetUnified.update(ActivityBilling.this); + WidgetUnified.updateData(ActivityBilling.this); } else { if (retry < 3) { new Handler().postDelayed(new Runnable() { diff --git a/app/src/main/java/eu/faircode/email/ActivityWidgetUnified.java b/app/src/main/java/eu/faircode/email/ActivityWidgetUnified.java index 55ad2d986f..9cbfd31be3 100644 --- a/app/src/main/java/eu/faircode/email/ActivityWidgetUnified.java +++ b/app/src/main/java/eu/faircode/email/ActivityWidgetUnified.java @@ -102,7 +102,6 @@ public class ActivityWidgetUnified extends ActivityBase { editor.apply(); WidgetUnified.init(ActivityWidgetUnified.this, appWidgetId); - //WidgetUnified.update(ActivityWidgetUnified.this); setResult(RESULT_OK, resultValue); finish(); diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java b/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java index 5154a507b3..8df41a4db0 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java @@ -215,7 +215,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { prefs.edit().putBoolean("threading", checked).apply(); - WidgetUnified.update(getContext()); + WidgetUnified.updateData(getContext()); } }); @@ -352,7 +352,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { prefs.edit().putBoolean("subject_top", checked).apply(); - WidgetUnified.update(getContext()); + WidgetUnified.updateData(getContext()); } }); @@ -386,7 +386,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { prefs.edit().putBoolean("subject_italic", checked).apply(); - WidgetUnified.update(getContext()); + WidgetUnified.updateData(getContext()); } }); diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index 9b6f18b8fc..b72fdef2c9 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -496,7 +496,7 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences } if (changed) - WidgetUnified.update(ServiceSynchronize.this); + WidgetUnified.updateData(ServiceSynchronize.this); last = current; } diff --git a/app/src/main/java/eu/faircode/email/WidgetUnified.java b/app/src/main/java/eu/faircode/email/WidgetUnified.java index 2fc5e58bd7..b899fb5948 100644 --- a/app/src/main/java/eu/faircode/email/WidgetUnified.java +++ b/app/src/main/java/eu/faircode/email/WidgetUnified.java @@ -34,37 +34,7 @@ import androidx.preference.PreferenceManager; public class WidgetUnified extends AppWidgetProvider { @Override - public void onUpdate(final Context context, final AppWidgetManager appWidgetManager, final int[] appWidgetIds) { - update(context, appWidgetManager, appWidgetIds); - } - - static void init(Context context, int appWidgetId) { - Log.i("Widget unified init=" + appWidgetId); - - AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context); - if (appWidgetManager == null) { - Log.w("No app widget manager"); // Fairphone FP2 - return; - } - - update(context, appWidgetManager, new int[]{appWidgetId}); - } - - static void update(Context context) { - Log.i("Widget unified update"); - if (ActivityBilling.isPro(context)) { - AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context); - if (appWidgetManager == null) { - Log.w("No app widget manager"); // Fairphone FP2 - return; - } - - int[] appWidgetIds = appWidgetManager.getAppWidgetIds(new ComponentName(context, WidgetUnified.class)); - appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetIds, R.id.lv); - } - } - - private static void update(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { + public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); boolean pro = ActivityBilling.isPro(context); @@ -112,4 +82,33 @@ public class WidgetUnified extends AppWidgetProvider { appWidgetManager.updateAppWidget(appWidgetId, views); } } + + static void init(Context context, int appWidgetId) { + Log.i("Widget unified init=" + appWidgetId); + + AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context); + if (appWidgetManager == null) { + Log.w("No app widget manager"); // Fairphone FP2 + return; + } + + Intent intent = new Intent(context, WidgetUnified.class); + intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE); + intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[]{appWidgetId}); + context.sendBroadcast(intent); + } + + static void updateData(Context context) { + Log.i("Widget unified update"); + if (ActivityBilling.isPro(context)) { + AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context); + if (appWidgetManager == null) { + Log.w("No app widget manager"); // Fairphone FP2 + return; + } + + int[] appWidgetIds = appWidgetManager.getAppWidgetIds(new ComponentName(context, WidgetUnified.class)); + appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetIds, R.id.lv); + } + } }