mirror of
https://github.com/nextcloud/notes-android.git
synced 2024-10-25 14:15:48 +03:00
Merge Helper methods into NoteWidgetHelper
This commit is contained in:
parent
a63e6f5333
commit
482be9b093
5 changed files with 34 additions and 30 deletions
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
|
|
Loading…
Reference in a new issue