Loading app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteListWidget.java +34 −1 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ import android.appwidget.AppWidgetProvider; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.net.Uri; import android.util.Log; import android.widget.RemoteViews; Loading @@ -16,7 +17,9 @@ import it.niedermann.owncloud.notes.R; import it.niedermann.owncloud.notes.android.DarkModeSetting; import it.niedermann.owncloud.notes.android.activity.EditNoteActivity; import it.niedermann.owncloud.notes.android.activity.NotesListViewActivity; import it.niedermann.owncloud.notes.branding.BrandingUtil; import it.niedermann.owncloud.notes.model.Category; import it.niedermann.owncloud.notes.model.LocalAccount; import it.niedermann.owncloud.notes.model.NoteListsWidgetData; import it.niedermann.owncloud.notes.persistence.NotesDatabase; import it.niedermann.owncloud.notes.util.Notes; Loading @@ -42,6 +45,7 @@ public class NoteListWidget extends AppWidgetProvider { for (int appWidgetId : appWidgetIds) { try { final NoteListsWidgetData data = db.getNoteListWidgetData(appWidgetId); final LocalAccount localAccount = db.getAccount(data.getAccountId()); String category = null; if (data.getCategoryId() != null) { Loading Loading @@ -85,6 +89,17 @@ public class NoteListWidget extends AppWidgetProvider { views.setRemoteAdapter(appWidgetId, R.id.note_list_widget_lv_dark, serviceIntent); views.setEmptyView(R.id.note_list_widget_lv_dark, R.id.widget_note_list_placeholder_tv_dark); awm.notifyAppWidgetViewDataChanged(appWidgetId, R.id.note_list_widget_lv_dark); if (BrandingUtil.isBrandingEnabled(context)) { views.setInt(R.id.widget_note_header_dark, "setBackgroundColor", localAccount.getColor()); views.setInt(R.id.widget_note_header_icon_dark, "setColorFilter", localAccount.getTextColor()); views.setInt(R.id.widget_note_list_create_icon_dark, "setColorFilter", localAccount.getTextColor()); views.setTextColor(R.id.widget_note_list_title_tv_dark, localAccount.getTextColor()); } else { views.setInt(R.id.widget_note_header_dark, "setBackgroundColor", context.getResources().getColor(R.color.defaultBrand)); views.setInt(R.id.widget_note_header_icon_dark, "setColorFilter", Color.WHITE); views.setInt(R.id.widget_note_list_create_icon_dark, "setColorFilter", Color.WHITE); views.setTextColor(R.id.widget_note_list_title_tv_dark, Color.WHITE); } } else { views = new RemoteViews(context.getPackageName(), R.layout.widget_note_list); views.setTextViewText(R.id.widget_note_list_title_tv, getWidgetTitle(context, data.getMode(), category)); Loading @@ -95,6 +110,17 @@ public class NoteListWidget extends AppWidgetProvider { views.setRemoteAdapter(appWidgetId, R.id.note_list_widget_lv, serviceIntent); views.setEmptyView(R.id.note_list_widget_lv, R.id.widget_note_list_placeholder_tv); awm.notifyAppWidgetViewDataChanged(appWidgetId, R.id.note_list_widget_lv); if (BrandingUtil.isBrandingEnabled(context)) { views.setInt(R.id.widget_note_header, "setBackgroundColor", localAccount.getColor()); views.setInt(R.id.widget_note_header_icon, "setColorFilter", localAccount.getTextColor()); views.setInt(R.id.widget_note_list_create_icon, "setColorFilter", localAccount.getTextColor()); views.setTextColor(R.id.widget_note_list_title_tv, localAccount.getTextColor()); } else { views.setInt(R.id.widget_note_header, "setBackgroundColor", context.getResources().getColor(R.color.defaultBrand)); views.setInt(R.id.widget_note_header_icon, "setColorFilter", Color.WHITE); views.setInt(R.id.widget_note_list_create_icon, "setColorFilter", Color.WHITE); views.setTextColor(R.id.widget_note_list_title_tv, Color.WHITE); } } awm.updateAppWidget(appWidgetId, views); Loading Loading @@ -158,4 +184,11 @@ public class NoteListWidget extends AppWidgetProvider { return null; } } /** * Update note list widgets, if the note data was changed. */ public static void updateNoteListWidgets(Context context) { context.sendBroadcast(new Intent(context, NoteListWidget.class).setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE)); } } app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/SingleNoteWidget.java +7 −0 Original line number Diff line number Diff line Loading @@ -87,4 +87,11 @@ public class SingleNoteWidget extends AppWidgetProvider { } super.onDeleted(context, appWidgetIds); } /** * Update single note widget, if the note data was changed. */ public static void updateSingleNoteWidgets(Context context) { context.sendBroadcast(new Intent(context, SingleNoteWidget.class).setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE)); } } app/src/main/java/it/niedermann/owncloud/notes/android/fragment/PreferencesFragment.java +9 −1 Original line number Diff line number Diff line Loading @@ -20,6 +20,8 @@ import it.niedermann.owncloud.notes.persistence.SyncWorker; import it.niedermann.owncloud.notes.util.DeviceCredentialUtil; import it.niedermann.owncloud.notes.util.Notes; import static it.niedermann.owncloud.notes.android.appwidget.NoteListWidget.updateNoteListWidgets; public class PreferencesFragment extends PreferenceFragmentCompat implements Branded { private static final String TAG = PreferencesFragment.class.getSimpleName(); Loading @@ -43,6 +45,7 @@ public class PreferencesFragment extends PreferenceFragmentCompat implements Bra brandingPref = findPreference(getString(R.string.pref_key_branding)); if (brandingPref != null) { brandingPref.setOnPreferenceChangeListener((Preference preference, Object newValue) -> { updateNoteListWidgets(requireContext()); final Boolean branding = (Boolean) newValue; Log.v(TAG, "branding: " + branding); requireActivity().setResult(Activity.RESULT_OK); Loading @@ -57,7 +60,12 @@ public class PreferencesFragment extends PreferenceFragmentCompat implements Bra if (lockPref != null) { if (!DeviceCredentialUtil.areCredentialsAvailable(requireContext())) { lockPref.setVisible(false); findPreference(getString(R.string.pref_category_security)).setVisible(false); Preference securityCategory = findPreference(getString(R.string.pref_category_security)); if (securityCategory != null) { securityCategory.setVisible(false); } else { Log.e(TAG, "Could not find preference " + getString(R.string.pref_category_security)); } } else { lockPref.setOnPreferenceChangeListener((preference, newValue) -> { Notes.setLockedPreference((Boolean) newValue); Loading app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesDatabase.java +2 −18 Original line number Diff line number Diff line Loading @@ -57,6 +57,8 @@ import it.niedermann.owncloud.notes.util.ColorUtil; import it.niedermann.owncloud.notes.util.NoteUtil; import static it.niedermann.owncloud.notes.android.activity.EditNoteActivity.ACTION_SHORTCUT; import static it.niedermann.owncloud.notes.android.appwidget.NoteListWidget.updateNoteListWidgets; import static it.niedermann.owncloud.notes.android.appwidget.SingleNoteWidget.updateSingleNoteWidgets; import static it.niedermann.owncloud.notes.model.NoteListsWidgetData.MODE_DISPLAY_CATEGORY; /** Loading Loading @@ -682,24 +684,6 @@ public class NotesDatabase extends AbstractNotesDatabase { }).start(); } /** * Update single note widget, if the note data was changed. */ private static void updateSingleNoteWidgets(Context context) { Intent intent = new Intent(context, SingleNoteWidget.class); intent.setAction("android.appwidget.action.APPWIDGET_UPDATE"); context.sendBroadcast(intent); } /** * Update note list widgets, if the note data was changed. */ private static void updateNoteListWidgets(Context context) { Intent intent = new Intent(context, NoteListWidget.class); intent.setAction("android.appwidget.action.APPWIDGET_UPDATE"); context.sendBroadcast(intent); } public boolean hasAccounts() { return DatabaseUtils.queryNumEntries(getReadableDatabase(), table_accounts) > 0; } Loading app/src/main/res/layout/widget_note_list.xml +2 −1 Original line number Diff line number Diff line Loading @@ -8,9 +8,10 @@ <!-- Widget header --> <RelativeLayout android:id="@+id/widget_note_header" android:layout_width="match_parent" android:layout_height="@dimen/widget_note_list_header_height" android:background="@drawable/ic_launcher_background" android:background="@color/defaultBrand" android:padding="@dimen/widget_note_list_hdr_padding"> <ImageView Loading Loading
app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteListWidget.java +34 −1 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ import android.appwidget.AppWidgetProvider; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.net.Uri; import android.util.Log; import android.widget.RemoteViews; Loading @@ -16,7 +17,9 @@ import it.niedermann.owncloud.notes.R; import it.niedermann.owncloud.notes.android.DarkModeSetting; import it.niedermann.owncloud.notes.android.activity.EditNoteActivity; import it.niedermann.owncloud.notes.android.activity.NotesListViewActivity; import it.niedermann.owncloud.notes.branding.BrandingUtil; import it.niedermann.owncloud.notes.model.Category; import it.niedermann.owncloud.notes.model.LocalAccount; import it.niedermann.owncloud.notes.model.NoteListsWidgetData; import it.niedermann.owncloud.notes.persistence.NotesDatabase; import it.niedermann.owncloud.notes.util.Notes; Loading @@ -42,6 +45,7 @@ public class NoteListWidget extends AppWidgetProvider { for (int appWidgetId : appWidgetIds) { try { final NoteListsWidgetData data = db.getNoteListWidgetData(appWidgetId); final LocalAccount localAccount = db.getAccount(data.getAccountId()); String category = null; if (data.getCategoryId() != null) { Loading Loading @@ -85,6 +89,17 @@ public class NoteListWidget extends AppWidgetProvider { views.setRemoteAdapter(appWidgetId, R.id.note_list_widget_lv_dark, serviceIntent); views.setEmptyView(R.id.note_list_widget_lv_dark, R.id.widget_note_list_placeholder_tv_dark); awm.notifyAppWidgetViewDataChanged(appWidgetId, R.id.note_list_widget_lv_dark); if (BrandingUtil.isBrandingEnabled(context)) { views.setInt(R.id.widget_note_header_dark, "setBackgroundColor", localAccount.getColor()); views.setInt(R.id.widget_note_header_icon_dark, "setColorFilter", localAccount.getTextColor()); views.setInt(R.id.widget_note_list_create_icon_dark, "setColorFilter", localAccount.getTextColor()); views.setTextColor(R.id.widget_note_list_title_tv_dark, localAccount.getTextColor()); } else { views.setInt(R.id.widget_note_header_dark, "setBackgroundColor", context.getResources().getColor(R.color.defaultBrand)); views.setInt(R.id.widget_note_header_icon_dark, "setColorFilter", Color.WHITE); views.setInt(R.id.widget_note_list_create_icon_dark, "setColorFilter", Color.WHITE); views.setTextColor(R.id.widget_note_list_title_tv_dark, Color.WHITE); } } else { views = new RemoteViews(context.getPackageName(), R.layout.widget_note_list); views.setTextViewText(R.id.widget_note_list_title_tv, getWidgetTitle(context, data.getMode(), category)); Loading @@ -95,6 +110,17 @@ public class NoteListWidget extends AppWidgetProvider { views.setRemoteAdapter(appWidgetId, R.id.note_list_widget_lv, serviceIntent); views.setEmptyView(R.id.note_list_widget_lv, R.id.widget_note_list_placeholder_tv); awm.notifyAppWidgetViewDataChanged(appWidgetId, R.id.note_list_widget_lv); if (BrandingUtil.isBrandingEnabled(context)) { views.setInt(R.id.widget_note_header, "setBackgroundColor", localAccount.getColor()); views.setInt(R.id.widget_note_header_icon, "setColorFilter", localAccount.getTextColor()); views.setInt(R.id.widget_note_list_create_icon, "setColorFilter", localAccount.getTextColor()); views.setTextColor(R.id.widget_note_list_title_tv, localAccount.getTextColor()); } else { views.setInt(R.id.widget_note_header, "setBackgroundColor", context.getResources().getColor(R.color.defaultBrand)); views.setInt(R.id.widget_note_header_icon, "setColorFilter", Color.WHITE); views.setInt(R.id.widget_note_list_create_icon, "setColorFilter", Color.WHITE); views.setTextColor(R.id.widget_note_list_title_tv, Color.WHITE); } } awm.updateAppWidget(appWidgetId, views); Loading Loading @@ -158,4 +184,11 @@ public class NoteListWidget extends AppWidgetProvider { return null; } } /** * Update note list widgets, if the note data was changed. */ public static void updateNoteListWidgets(Context context) { context.sendBroadcast(new Intent(context, NoteListWidget.class).setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE)); } }
app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/SingleNoteWidget.java +7 −0 Original line number Diff line number Diff line Loading @@ -87,4 +87,11 @@ public class SingleNoteWidget extends AppWidgetProvider { } super.onDeleted(context, appWidgetIds); } /** * Update single note widget, if the note data was changed. */ public static void updateSingleNoteWidgets(Context context) { context.sendBroadcast(new Intent(context, SingleNoteWidget.class).setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE)); } }
app/src/main/java/it/niedermann/owncloud/notes/android/fragment/PreferencesFragment.java +9 −1 Original line number Diff line number Diff line Loading @@ -20,6 +20,8 @@ import it.niedermann.owncloud.notes.persistence.SyncWorker; import it.niedermann.owncloud.notes.util.DeviceCredentialUtil; import it.niedermann.owncloud.notes.util.Notes; import static it.niedermann.owncloud.notes.android.appwidget.NoteListWidget.updateNoteListWidgets; public class PreferencesFragment extends PreferenceFragmentCompat implements Branded { private static final String TAG = PreferencesFragment.class.getSimpleName(); Loading @@ -43,6 +45,7 @@ public class PreferencesFragment extends PreferenceFragmentCompat implements Bra brandingPref = findPreference(getString(R.string.pref_key_branding)); if (brandingPref != null) { brandingPref.setOnPreferenceChangeListener((Preference preference, Object newValue) -> { updateNoteListWidgets(requireContext()); final Boolean branding = (Boolean) newValue; Log.v(TAG, "branding: " + branding); requireActivity().setResult(Activity.RESULT_OK); Loading @@ -57,7 +60,12 @@ public class PreferencesFragment extends PreferenceFragmentCompat implements Bra if (lockPref != null) { if (!DeviceCredentialUtil.areCredentialsAvailable(requireContext())) { lockPref.setVisible(false); findPreference(getString(R.string.pref_category_security)).setVisible(false); Preference securityCategory = findPreference(getString(R.string.pref_category_security)); if (securityCategory != null) { securityCategory.setVisible(false); } else { Log.e(TAG, "Could not find preference " + getString(R.string.pref_category_security)); } } else { lockPref.setOnPreferenceChangeListener((preference, newValue) -> { Notes.setLockedPreference((Boolean) newValue); Loading
app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesDatabase.java +2 −18 Original line number Diff line number Diff line Loading @@ -57,6 +57,8 @@ import it.niedermann.owncloud.notes.util.ColorUtil; import it.niedermann.owncloud.notes.util.NoteUtil; import static it.niedermann.owncloud.notes.android.activity.EditNoteActivity.ACTION_SHORTCUT; import static it.niedermann.owncloud.notes.android.appwidget.NoteListWidget.updateNoteListWidgets; import static it.niedermann.owncloud.notes.android.appwidget.SingleNoteWidget.updateSingleNoteWidgets; import static it.niedermann.owncloud.notes.model.NoteListsWidgetData.MODE_DISPLAY_CATEGORY; /** Loading Loading @@ -682,24 +684,6 @@ public class NotesDatabase extends AbstractNotesDatabase { }).start(); } /** * Update single note widget, if the note data was changed. */ private static void updateSingleNoteWidgets(Context context) { Intent intent = new Intent(context, SingleNoteWidget.class); intent.setAction("android.appwidget.action.APPWIDGET_UPDATE"); context.sendBroadcast(intent); } /** * Update note list widgets, if the note data was changed. */ private static void updateNoteListWidgets(Context context) { Intent intent = new Intent(context, NoteListWidget.class); intent.setAction("android.appwidget.action.APPWIDGET_UPDATE"); context.sendBroadcast(intent); } public boolean hasAccounts() { return DatabaseUtils.queryNumEntries(getReadableDatabase(), table_accounts) > 0; } Loading
app/src/main/res/layout/widget_note_list.xml +2 −1 Original line number Diff line number Diff line Loading @@ -8,9 +8,10 @@ <!-- Widget header --> <RelativeLayout android:id="@+id/widget_note_header" android:layout_width="match_parent" android:layout_height="@dimen/widget_note_list_header_height" android:background="@drawable/ic_launcher_background" android:background="@color/defaultBrand" android:padding="@dimen/widget_note_list_hdr_padding"> <ImageView Loading