Merge Helper methods into NoteWidgetHelper

This commit is contained in:
Christoph Loy 2020-02-28 21:33:25 +01:00
parent a63e6f5333
commit 482be9b093
No known key found for this signature in database
GPG key ID: 9179970615A6E7C9
5 changed files with 34 additions and 30 deletions

View file

@ -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();
}
}
}

View file

@ -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);

View file

@ -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;
}
}
}

View file

@ -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;
}
}
}

View file

@ -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());