Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b5ca773e authored by Daniel Bailey's avatar Daniel Bailey Committed by Niedermann IT-Dienstleistungen
Browse files

Appwidgets' onUpdate and onReceive functions will call updateAppWidget

when making any updates.
parent 831ce86d
Loading
Loading
Loading
Loading
+13 −14
Original line number Diff line number Diff line
@@ -24,10 +24,7 @@ public class NoteListWidget extends AppWidgetProvider {
    public static final int NLW_DISPLAY_CATEGORY = 2;
    private static boolean darkTheme;

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        super.onUpdate(context, appWidgetManager, appWidgetIds);

    static void updateAppWidget(Context context, AppWidgetManager awm, int[] appWidgetIds) {
        RemoteViews views;

        for (int appWidgetId : appWidgetIds) {
@@ -88,24 +85,26 @@ public class NoteListWidget extends AppWidgetProvider {
                views.setEmptyView(R.id.note_list_widget_lv, R.id.widget_note_list_placeholder_tv);
            }

            appWidgetManager.updateAppWidget(appWidgetId, views);
            awm.updateAppWidget(appWidgetId, views);
        }
    }

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        super.onUpdate(context, appWidgetManager, appWidgetIds);
        updateAppWidget(context, appWidgetManager, appWidgetIds);
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        super.onReceive(context, intent);
        
        AppWidgetManager awm = AppWidgetManager.getInstance(context);
        int appWidgetIds[] = awm.getAppWidgetIds(new ComponentName(context, NoteListWidget.class));

        for (int appWidgetId : appWidgetIds) {
        if (intent.getAction().equals(awm.ACTION_APPWIDGET_UPDATE)) {
                if (darkTheme) {
                    awm.notifyAppWidgetViewDataChanged(appWidgetId, R.id.note_list_widget_lv_dark);
            if (intent.hasExtra(AppWidgetManager.EXTRA_APPWIDGET_ID)) {
                updateAppWidget(context, awm, new int[] { intent.getExtras().getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, -1) });
            } else {
                    awm.notifyAppWidgetViewDataChanged(appWidgetId, R.id.note_list_widget_lv);
                }
                updateAppWidget(context, awm, awm.getAppWidgetIds(new ComponentName(context, NoteListWidget.class)));
            }
        }
    }
+30 −41
Original line number Diff line number Diff line
@@ -20,11 +20,12 @@ public class SingleNoteWidget extends AppWidgetProvider {
    public static final String DARK_THEME_KEY = "SNW_darkTheme";
    public static final String WIDGET_KEY = "single_note_widget";

    static void updateAppWidget(Context context, AppWidgetManager awm, int appWidgetId) {
    static void updateAppWidget(Context context, AppWidgetManager awm, int[] appWidgetIds) {
        SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
        Intent templateIntent = new Intent(context, EditNoteActivity.class);
        templateIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

        for (int appWidgetId : appWidgetIds) {
            // onUpdate has been triggered before the user finished configuring the widget
            if ((sp.getLong(WIDGET_KEY + appWidgetId, -1)) == -1) {
                return;
@@ -55,33 +56,21 @@ public class SingleNoteWidget extends AppWidgetProvider {

            awm.updateAppWidget(appWidgetId, views);
        }
    }

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        for (int appWidgetId : appWidgetIds) {
            updateAppWidget(context, appWidgetManager, appWidgetId);
        }

        super.onUpdate(context, appWidgetManager, appWidgetIds);
        updateAppWidget(context, appWidgetManager, appWidgetIds);
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        super.onReceive(context, intent);
        AppWidgetManager awm = AppWidgetManager.getInstance(context);
        int ids[] = awm.getAppWidgetIds(new ComponentName(context,
                                        SingleNoteWidget.class));

        for (int appWidgetId : ids) {
            if (intent.getAction().equals(awm.ACTION_APPWIDGET_UPDATE)) {
                if (darkTheme) {
                    awm.notifyAppWidgetViewDataChanged(appWidgetId, R.id.single_note_widget_lv_dark);
                } else {
                    awm.notifyAppWidgetViewDataChanged(appWidgetId, R.id.single_note_widget_lv);
                }
            }
        }

        super.onReceive(context, intent);
        updateAppWidget(context, AppWidgetManager.getInstance(context),
                        (awm.getAppWidgetIds(new ComponentName(context, SingleNoteWidget.class))));
    }

    @Override