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

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

Various improvements to nlw widget and single note widget. Fix for both

configuration activities.
parent b5ca773e
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -68,9 +68,9 @@ public class SelectSingleNoteActivity extends NotesListViewActivity {

        Intent updateIntent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE, null,
                                        getApplicationContext(), SingleNoteWidget.class);
        updateIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[] {appWidgetId});
        getApplicationContext().sendBroadcast(updateIntent);
        updateIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
        setResult(RESULT_OK, updateIntent);
        getApplicationContext().sendBroadcast(updateIntent);
        finish();
    }
}
+19 −1
Original line number Diff line number Diff line
@@ -22,10 +22,10 @@ public class NoteListWidget extends AppWidgetProvider {
    public static final int NLW_DISPLAY_ALL = 0;
    public static final int NLW_DISPLAY_STARRED = 1;
    public static final int NLW_DISPLAY_CATEGORY = 2;
    private static boolean darkTheme;

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

        for (int appWidgetId : appWidgetIds) {
            SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
@@ -69,6 +69,7 @@ public class NoteListWidget extends AppWidgetProvider {

            if (darkTheme) {
                views = new RemoteViews(context.getPackageName(), R.layout.widget_note_list_dark);
                views.setTextViewText(R.id.widget_note_list_title_tv_dark, getWidgetTitle(context, displayMode, category));
                views.setOnClickPendingIntent(R.id.widget_note_header_icon_dark, openAppI);
                views.setOnClickPendingIntent(R.id.widget_note_list_title_tv_dark, openAppI);
                views.setOnClickPendingIntent(R.id.widget_note_list_create_icon_dark, newNoteI);
@@ -77,6 +78,7 @@ public class NoteListWidget extends AppWidgetProvider {
                views.setEmptyView(R.id.note_list_widget_lv_dark, R.id.widget_note_list_placeholder_tv_dark);
            } else {
                views = new RemoteViews(context.getPackageName(), R.layout.widget_note_list);
                views.setTextViewText(R.id.widget_note_list_title_tv, getWidgetTitle(context, displayMode, category));
                views.setOnClickPendingIntent(R.id.widget_note_header_icon, openAppI);
                views.setOnClickPendingIntent(R.id.widget_note_list_title_tv, openAppI);
                views.setOnClickPendingIntent(R.id.widget_note_list_create_icon, newNoteI);
@@ -123,4 +125,20 @@ public class NoteListWidget extends AppWidgetProvider {

        editor.apply();
    }

    private static String getWidgetTitle(Context context, int displayMode, String category) {
        switch (displayMode)
        {
            case NoteListWidget.NLW_DISPLAY_ALL: return context.getString(R.string.app_name);
            case NoteListWidget.NLW_DISPLAY_STARRED: return context.getString(R.string.label_favorites);
            case NoteListWidget.NLW_DISPLAY_CATEGORY:
                if (category.equals("")) {
                    return context.getString(R.string.action_uncategorized);
                } else {
                    return category;
                }
        }

        return null;
    }
}
+3 −2
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@ public class NoteListWidgetConfiguration extends AppCompatActivity {
        }

        if (appWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) {
            Log.d(TAG, "INVALID_APPWIDGET_ID");
            finish();
        }

@@ -94,9 +95,9 @@ public class NoteListWidgetConfiguration extends AppCompatActivity {

                Intent updateIntent = new Intent(   AppWidgetManager.ACTION_APPWIDGET_UPDATE, null,
                                                    getApplicationContext(), NoteListWidget.class);
                updateIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[] {appWidgetId});
                getApplicationContext().sendBroadcast(updateIntent);
                updateIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
                setResult(RESULT_OK, updateIntent);
                getApplicationContext().sendBroadcast(updateIntent);
                finish();
            }

+1 −47
Original line number Diff line number Diff line
@@ -7,7 +7,6 @@ import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.View;
import android.widget.RemoteViews;
import android.widget.RemoteViewsService;

@@ -35,57 +34,12 @@ public class NoteListWidgetFactory implements RemoteViewsService.RemoteViewsFact
        sp = PreferenceManager.getDefaultSharedPreferences(this.context);
        displayMode = sp.getInt(NoteListWidget.WIDGET_MODE_KEY + appWidgetId, -1);
        darkTheme = sp.getBoolean(NoteListWidget.DARK_THEME_KEY + appWidgetId, false);
        category = sp.getString(NoteListWidget.WIDGET_CATEGORY_KEY + appWidgetId, "");
    }

    @Override
    public void onCreate() {
        db = NoteSQLiteOpenHelper.getInstance(context);
        RemoteViews views;
        if (darkTheme) {
            views = new RemoteViews(context.getPackageName(), R.layout.widget_note_list_dark);
        } else {
            views = new RemoteViews(context.getPackageName(), R.layout.widget_note_list);
        }

        switch (displayMode)
        {
            case NoteListWidget.NLW_DISPLAY_ALL:
                if (darkTheme) {
                    views.setTextViewText(R.id.widget_note_list_title_tv_dark, context.getString(R.string.app_name));
                } else {
                    views.setTextViewText(R.id.widget_note_list_title_tv, context.getString(R.string.app_name));
                }
                break;

            case NoteListWidget.NLW_DISPLAY_STARRED:
                if (darkTheme) {
                    views.setTextViewText(R.id.widget_note_list_title_tv_dark, context.getString(R.string.label_favorites));
                } else {
                    views.setTextViewText(R.id.widget_note_list_title_tv, context.getString(R.string.label_favorites));
                }
                break;

            case NoteListWidget.NLW_DISPLAY_CATEGORY:
                category = sp.getString(NoteListWidget.WIDGET_CATEGORY_KEY + appWidgetId, "");
                if (category.equals("")) {
                    if (darkTheme) {
                        views.setTextViewText(R.id.widget_note_list_title_tv_dark, context.getString(R.string.action_uncategorized));
                    } else {
                        views.setTextViewText(R.id.widget_note_list_title_tv, context.getString(R.string.action_uncategorized));
                    }

                } else {
                    if (darkTheme) {
                        views.setTextViewText(R.id.widget_note_list_title_tv_dark, category);
                    } else {
                        views.setTextViewText(R.id.widget_note_list_title_tv, category);
                    }
                }
                break;
        }

        AppWidgetManager awm = AppWidgetManager.getInstance(context);
        awm.updateAppWidget(appWidgetId, views);
    }

    @Override