diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteListWidget.java b/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteListWidget.java index 49a52db0..4c3ccbc8 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteListWidget.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteListWidget.java @@ -30,7 +30,7 @@ public class NoteListWidget extends AppWidgetProvider { static void updateAppWidget(Context context, AppWidgetManager awm, int[] appWidgetIds) { RemoteViews views; - String darkTheme; + DarkModeSetting darkTheme; for (int appWidgetId : appWidgetIds) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); @@ -42,12 +42,12 @@ public class NoteListWidget extends AppWidgetProvider { } String category = sp.getString(NoteListWidget.WIDGET_CATEGORY_KEY + appWidgetId, null); - darkTheme = getDarkThemeSetting(sp, appWidgetId); + darkTheme = NoteWidgetHelper.getDarkThemeSetting(sp, DARK_THEME_KEY, appWidgetId); Intent serviceIntent = new Intent(context, NoteListWidgetService.class); serviceIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); serviceIntent.putExtra(NoteListWidget.WIDGET_MODE_KEY + appWidgetId, displayMode); - serviceIntent.putExtra(NoteListWidget.DARK_THEME_KEY + appWidgetId, darkTheme); + serviceIntent.putExtra(NoteListWidget.DARK_THEME_KEY + appWidgetId, darkTheme.name()); serviceIntent.setData(Uri.parse(serviceIntent.toUri(Intent.URI_INTENT_SCHEME))); if (displayMode == NLW_DISPLAY_CATEGORY) { @@ -72,7 +72,7 @@ public class NoteListWidget extends AppWidgetProvider { (new Intent(context, EditNoteActivity.class)), PendingIntent.FLAG_UPDATE_CURRENT); - if (Notes.isDarkThemeActive(context, DarkModeSetting.valueOf(darkTheme))) { + if (Notes.isDarkThemeActive(context, 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); @@ -158,14 +158,4 @@ public class NoteListWidget extends AppWidgetProvider { return null; } - - public static String getDarkThemeSetting(SharedPreferences sharedPreferences, int appWidgetId) { - try { - return sharedPreferences.getString(DARK_THEME_KEY + appWidgetId, DarkModeSetting.SYSTEM_DEFAULT.name()); - } catch (ClassCastException e) { - //DARK_THEME was a boolean in older versions of the app. We thereofre have to still support the old setting. - boolean isDarkTheme = sharedPreferences.getBoolean(DARK_THEME_KEY + appWidgetId, false); - return isDarkTheme ? DarkModeSetting.DARK.name() : DarkModeSetting.LIGHT.name(); - } - } } diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteListWidgetFactory.java b/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteListWidgetFactory.java index f3bcd3d0..a3e86a2c 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteListWidgetFactory.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteListWidgetFactory.java @@ -19,6 +19,8 @@ import it.niedermann.owncloud.notes.model.DBNote; import it.niedermann.owncloud.notes.persistence.NotesDatabase; import it.niedermann.owncloud.notes.util.Notes; +import static it.niedermann.owncloud.notes.android.appwidget.NoteListWidget.DARK_THEME_KEY; + public class NoteListWidgetFactory implements RemoteViewsService.RemoteViewsFactory { private final Context context; private final int displayMode; @@ -34,8 +36,7 @@ public class NoteListWidgetFactory implements RemoteViewsService.RemoteViewsFact AppWidgetManager.INVALID_APPWIDGET_ID); final SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this.context); displayMode = sp.getInt(NoteListWidget.WIDGET_MODE_KEY + appWidgetId, -1); - String themeName = NoteListWidget.getDarkThemeSetting(sp, appWidgetId); - DarkModeSetting theme = DarkModeSetting.valueOf(themeName); + DarkModeSetting theme = NoteWidgetHelper.getDarkThemeSetting(sp, DARK_THEME_KEY, appWidgetId); darkTheme = Notes.isDarkThemeActive(context, theme); category = sp.getString(NoteListWidget.WIDGET_CATEGORY_KEY + appWidgetId, ""); accountId = sp.getLong(NoteListWidget.ACCOUNT_ID_KEY + appWidgetId, -1); diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteWidgetHelper.java b/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteWidgetHelper.java new file mode 100644 index 00000000..1ec2cf80 --- /dev/null +++ b/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteWidgetHelper.java @@ -0,0 +1,22 @@ +package it.niedermann.owncloud.notes.android.appwidget; + +import android.content.SharedPreferences; + +import it.niedermann.owncloud.notes.android.DarkModeSetting; + +final class NoteWidgetHelper { + private NoteWidgetHelper() { + // Helper class for static methods + } + + static DarkModeSetting getDarkThemeSetting(SharedPreferences prefs, String darkModeKey, int appWidgetId) { + try { + String themeName = prefs.getString(darkModeKey + appWidgetId, DarkModeSetting.SYSTEM_DEFAULT.name()); + return DarkModeSetting.valueOf(themeName); + } catch (ClassCastException e) { + //DARK_THEME was a boolean in older versions of the app. We thereofre have to still support the old setting. + boolean isDarkTheme = prefs.getBoolean(darkModeKey + appWidgetId, false); + return isDarkTheme ? DarkModeSetting.DARK : DarkModeSetting.LIGHT; + } + } +} diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/SingleNoteWidget.java b/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/SingleNoteWidget.java index 11862f43..e6d25dfc 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/SingleNoteWidget.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/SingleNoteWidget.java @@ -34,7 +34,7 @@ public class SingleNoteWidget extends AppWidgetProvider { return; } - DarkModeSetting darkTheme = getDarkThemeSetting(sp, appWidgetId); + DarkModeSetting darkTheme = NoteWidgetHelper.getDarkThemeSetting(sp, DARK_THEME_KEY, appWidgetId); templateIntent.putExtra(BaseNoteFragment.PARAM_ACCOUNT_ID, sp.getLong(ACCOUNT_ID_KEY + appWidgetId, -1)); PendingIntent templatePendingIntent = PendingIntent.getActivity(context, appWidgetId, templateIntent, @@ -92,15 +92,4 @@ public class SingleNoteWidget extends AppWidgetProvider { editor.apply(); super.onDeleted(context, appWidgetIds); } - - public static DarkModeSetting getDarkThemeSetting(SharedPreferences sharedPreferences, int appWidgetId) { - try { - String themeName = sharedPreferences.getString(DARK_THEME_KEY + appWidgetId, DarkModeSetting.SYSTEM_DEFAULT.name()); - return DarkModeSetting.valueOf(themeName); - } catch (ClassCastException e) { - //DARK_THEME was a boolean in older versions of the app. We thereofre have to still support the old setting. - boolean isDarkTheme = sharedPreferences.getBoolean(DARK_THEME_KEY + appWidgetId, false); - return isDarkTheme ? DarkModeSetting.DARK : DarkModeSetting.LIGHT; - } - } } diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/SingleNoteWidgetFactory.java b/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/SingleNoteWidgetFactory.java index b4679314..673c70ab 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/SingleNoteWidgetFactory.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/SingleNoteWidgetFactory.java @@ -20,6 +20,8 @@ import it.niedermann.owncloud.notes.persistence.NotesDatabase; import it.niedermann.owncloud.notes.util.MarkDownUtil; import it.niedermann.owncloud.notes.util.Notes; +import static it.niedermann.owncloud.notes.android.appwidget.SingleNoteWidget.DARK_THEME_KEY; + public class SingleNoteWidgetFactory implements RemoteViewsService.RemoteViewsFactory { private final MarkdownProcessor markdownProcessor; @@ -36,9 +38,9 @@ public class SingleNoteWidgetFactory implements RemoteViewsService.RemoteViewsFa SingleNoteWidgetFactory(Context context, Intent intent) { this.context = context; appWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, - AppWidgetManager.INVALID_APPWIDGET_ID); + AppWidgetManager.INVALID_APPWIDGET_ID); sp = PreferenceManager.getDefaultSharedPreferences(this.context); - darkModeActive = Notes.isDarkThemeActive(context, SingleNoteWidget.getDarkThemeSetting(sp, appWidgetId)); + darkModeActive = Notes.isDarkThemeActive(context, NoteWidgetHelper.getDarkThemeSetting(sp, DARK_THEME_KEY, appWidgetId)); markdownProcessor = new MarkdownProcessor(this.context); markdownProcessor.factory(TextFactory.create()); markdownProcessor.config(MarkDownUtil.getMarkDownConfiguration(this.context, darkModeActive).build());