diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 86964da7..a79f2be2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -41,5 +41,4 @@ - diff --git a/app/src/main/java/calculator/simplemobiletools/com/MyWidgetProvider.java b/app/src/main/java/calculator/simplemobiletools/com/MyWidgetProvider.java index d7cf754d..a471f969 100644 --- a/app/src/main/java/calculator/simplemobiletools/com/MyWidgetProvider.java +++ b/app/src/main/java/calculator/simplemobiletools/com/MyWidgetProvider.java @@ -12,6 +12,7 @@ import android.view.View; import android.widget.RemoteViews; public class MyWidgetProvider extends AppWidgetProvider implements Calculator { + private static int[] widgetIds; private static RemoteViews remoteViews; private static CalculatorImpl calc; private static AppWidgetManager widgetManager; @@ -59,6 +60,7 @@ public class MyWidgetProvider extends AppWidgetProvider implements Calculator { } private void initVariables() { + updateWidgetIds(); prefs = initPrefs(cxt); final int defaultColor = cxt.getResources().getColor(R.color.dark_grey); final int newBgColor = prefs.getInt(Constants.WIDGET_BG_COLOR, defaultColor); @@ -75,9 +77,16 @@ public class MyWidgetProvider extends AppWidgetProvider implements Calculator { calc = new CalculatorImpl(this, displayValue); } + private void updateWidgetIds() { + final ComponentName component = new ComponentName(cxt, MyWidgetProvider.class); + widgetManager = AppWidgetManager.getInstance(cxt); + widgetIds = widgetManager.getAppWidgetIds(component); + } + private void updateWidget() { - final ComponentName thisWidget = new ComponentName(cxt, MyWidgetProvider.class); - AppWidgetManager.getInstance(cxt).updateAppWidget(thisWidget, remoteViews); + for (int widgetId : widgetIds) { + widgetManager.updateAppWidget(widgetId, remoteViews); + } } private SharedPreferences initPrefs(Context context) { @@ -213,6 +222,7 @@ public class MyWidgetProvider extends AppWidgetProvider implements Calculator { public void onDeleted(Context context, int[] appWidgetIds) { super.onDeleted(context, appWidgetIds); resetSavedValue(context); + updateWidgetIds(); } @Override diff --git a/app/src/main/res/xml/widget_info.xml b/app/src/main/res/xml/widget_info.xml index 5aff25fd..66b55d24 100644 --- a/app/src/main/res/xml/widget_info.xml +++ b/app/src/main/res/xml/widget_info.xml @@ -2,6 +2,7 @@