diff options
author | Stefan Niedermann <info@niedermann.it> | 2021-03-13 12:51:08 +0300 |
---|---|---|
committer | Niedermann IT-Dienstleistungen <stefan-niedermann@users.noreply.github.com> | 2021-03-13 13:03:47 +0300 |
commit | 0b8348cf40ab4b20901584dc4ceacee3cde7c25c (patch) | |
tree | 783c82f6a9a1ee93563c1b7777e8f0a688710b01 /app/src/main/java/it/niedermann | |
parent | 9c3023b7ee4d5be78fce2e7e9156637fd6d0f19d (diff) |
#1085 Open app when clicking on the list widget header
Diffstat (limited to 'app/src/main/java/it/niedermann')
-rw-r--r-- | app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidget.java | 12 | ||||
-rw-r--r-- | app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidgetFactory.java | 29 |
2 files changed, 10 insertions, 31 deletions
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidget.java b/app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidget.java index 38516bb3..cbed8b79 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidget.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidget.java @@ -19,10 +19,6 @@ import it.niedermann.owncloud.notes.persistence.NotesDatabase; public class NoteListWidget extends AppWidgetProvider { private static final String TAG = NoteListWidget.class.getSimpleName(); - public static final int PENDING_INTENT_NEW_NOTE_RQ = 0; - public static final int PENDING_INTENT_EDIT_NOTE_RQ = 1; - public static final int PENDING_INTENT_OPEN_APP_RQ = 2; - static void updateAppWidget(Context context, AppWidgetManager awm, int[] appWidgetIds) { final NotesDatabase db = NotesDatabase.getInstance(context); @@ -32,19 +28,17 @@ public class NoteListWidget extends AppWidgetProvider { try { final NoteListsWidgetData data = db.getNoteListWidgetData(appWidgetId); - Intent serviceIntent = new Intent(context, NoteListWidgetService.class); + final Intent serviceIntent = new Intent(context, NoteListWidgetService.class); serviceIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); serviceIntent.setData(Uri.parse(serviceIntent.toUri(Intent.URI_INTENT_SCHEME))); - PendingIntent templatePI = PendingIntent.getActivity(context, PENDING_INTENT_EDIT_NOTE_RQ, - new Intent(context, EditNoteActivity.class), - PendingIntent.FLAG_UPDATE_CURRENT); + final PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, new Intent(), PendingIntent.FLAG_UPDATE_CURRENT | Intent.FILL_IN_COMPONENT); Log.v(TAG, "-- data - " + data); views = new RemoteViews(context.getPackageName(), R.layout.widget_note_list); - views.setPendingIntentTemplate(R.id.note_list_widget_lv, templatePI); views.setRemoteAdapter(R.id.note_list_widget_lv, serviceIntent); + views.setPendingIntentTemplate(R.id.note_list_widget_lv, pendingIntent); views.setEmptyView(R.id.note_list_widget_lv, R.id.widget_note_list_placeholder_tv); awm.notifyAppWidgetViewDataChanged(appWidgetId, R.id.note_list_widget_lv); diff --git a/app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidgetFactory.java b/app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidgetFactory.java index d7928225..3e1fdfd0 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidgetFactory.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidgetFactory.java @@ -1,6 +1,5 @@ package it.niedermann.owncloud.notes.widget.notelist; -import android.app.PendingIntent; import android.appwidget.AppWidgetManager; import android.content.ComponentName; import android.content.Context; @@ -11,16 +10,13 @@ import android.util.Log; import android.widget.RemoteViews; import android.widget.RemoteViewsService; -import androidx.annotation.ColorInt; import androidx.annotation.NonNull; import androidx.core.content.ContextCompat; import java.util.ArrayList; import java.util.List; -import it.niedermann.android.util.ColorUtil; import it.niedermann.owncloud.notes.R; -import it.niedermann.owncloud.notes.branding.BrandingUtil; import it.niedermann.owncloud.notes.edit.EditNoteActivity; import it.niedermann.owncloud.notes.main.MainActivity; import it.niedermann.owncloud.notes.persistence.NotesDatabase; @@ -100,20 +96,8 @@ public class NoteListWidgetFactory implements RemoteViewsService.RemoteViewsFact if (position == 0) { final LocalAccount localAccount = db.getAccount(data.getAccountId()); - final Intent createIntent = new Intent(); - - // Launch application when user taps the header icon or app title - final Intent openIntent = new Intent(Intent.ACTION_MAIN); - openIntent.setComponent(new ComponentName(context.getPackageName(), - MainActivity.class.getName())); - - // Open the main app if the user taps the widget header - PendingIntent openAppI = PendingIntent.getActivity(context, 2, - openIntent, - PendingIntent.FLAG_UPDATE_CURRENT); - - - + final Intent openIntent = new Intent(Intent.ACTION_MAIN).setComponent(new ComponentName(context.getPackageName(), MainActivity.class.getName())); + final Intent createIntent = new Intent(context, EditNoteActivity.class); final Bundle extras = new Bundle(); String category = null; @@ -129,8 +113,9 @@ public class NoteListWidgetFactory implements RemoteViewsService.RemoteViewsFact createIntent.setData(Uri.parse(createIntent.toUri(Intent.URI_INTENT_SCHEME))); note_content = new RemoteViews(context.getPackageName(), R.layout.widget_entry_add); + note_content.setOnClickFillInIntent(R.id.widget_entry_content_tv, openIntent); note_content.setOnClickFillInIntent(R.id.widget_entry_fav_icon, createIntent); - note_content.setTextViewText(R.id.widget_entry_content_tv, getAddButtonText(context, data.getMode(), category)); + note_content.setTextViewText(R.id.widget_entry_content_tv, getCategoryTitle(context, data.getMode(), category)); note_content.setImageViewResource(R.id.widget_entry_fav_icon, R.drawable.ic_add_blue_24dp); note_content.setInt(R.id.widget_entry_fav_icon, "setColorFilter", NotesColorUtil.contrastRatioIsSufficient(ContextCompat.getColor(context, R.color.widget_background), localAccount.getColor()) ? localAccount.getColor() @@ -142,8 +127,8 @@ public class NoteListWidgetFactory implements RemoteViewsService.RemoteViewsFact return null; } - DBNote note = dbNotes.get(position); - final Intent fillInIntent = new Intent(); + final DBNote note = dbNotes.get(position); + final Intent fillInIntent = new Intent(context, EditNoteActivity.class); final Bundle extras = new Bundle(); extras.putLong(EditNoteActivity.PARAM_NOTE_ID, note.getId()); extras.putLong(EditNoteActivity.PARAM_ACCOUNT_ID, note.getAccountId()); @@ -164,7 +149,7 @@ public class NoteListWidgetFactory implements RemoteViewsService.RemoteViewsFact } @NonNull - private static String getAddButtonText(@NonNull Context context, int displayMode, String category) { + private static String getCategoryTitle(@NonNull Context context, int displayMode, String category) { switch (displayMode) { case MODE_DISPLAY_STARRED: return context.getString(R.string.label_favorites); |