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 | |
parent | 9c3023b7ee4d5be78fce2e7e9156637fd6d0f19d (diff) |
#1085 Open app when clicking on the list widget header
6 files changed, 27 insertions, 43 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); diff --git a/app/src/main/res/layout/widget_entry.xml b/app/src/main/res/layout/widget_entry.xml index f7b117ec..460a255b 100644 --- a/app/src/main/res/layout/widget_entry.xml +++ b/app/src/main/res/layout/widget_entry.xml @@ -6,7 +6,10 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" - android:padding="@dimen/spacer_1x"> + android:paddingTop="@dimen/spacer_1x" + android:paddingStart="@null" + android:paddingEnd="@dimen/spacer_1hx" + android:paddingBottom="@dimen/spacer_1x"> <ImageView android:id="@+id/widget_entry_fav_icon" @@ -22,7 +25,7 @@ <TextView android:id="@+id/widget_entry_content_tv" android:layout_width="0dp" - android:layout_height="match_parent" + android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_weight="1" android:ellipsize="end" diff --git a/app/src/main/res/layout/widget_entry_add.xml b/app/src/main/res/layout/widget_entry_add.xml index e8947d98..6cbcf5d8 100644 --- a/app/src/main/res/layout/widget_entry_add.xml +++ b/app/src/main/res/layout/widget_entry_add.xml @@ -14,15 +14,15 @@ android:layout_gravity="center_vertical" android:layout_weight="1" android:ellipsize="middle" - android:paddingStart="38dp" - android:paddingTop="@dimen/spacer_1x" + android:paddingStart="30dp" + android:paddingTop="@null" android:paddingEnd="@dimen/widget_note_list_outer_padding" android:paddingBottom="@dimen/spacer_1x" android:singleLine="true" android:textColor="@color/widget_foreground" - android:textSize="14sp" + android:textSize="16sp" android:textStyle="bold" - tools:text="@string/widget_note_list_add" /> + tools:text="@string/app_name" /> <ImageView @@ -32,7 +32,8 @@ android:layout_gravity="center_vertical" android:contentDescription="@string/widget_entry_fav_contentDescription" android:foregroundGravity="center_vertical" - android:paddingStart="@dimen/widget_note_list_inner_padding" - android:paddingEnd="12dp" + android:paddingStart="@dimen/spacer_1x" + android:paddingEnd="@dimen/spacer_1x" + android:paddingBottom="@dimen/spacer_1hx" app:srcCompat="@drawable/ic_add_blue_24dp" /> </LinearLayout> diff --git a/app/src/main/res/layout/widget_note_list.xml b/app/src/main/res/layout/widget_note_list.xml index 628f4740..ebc3aded 100644 --- a/app/src/main/res/layout/widget_note_list.xml +++ b/app/src/main/res/layout/widget_note_list.xml @@ -4,7 +4,11 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/widget_background" - android:orientation="vertical"> + android:orientation="vertical" + android:paddingStart="@dimen/spacer_1x" + android:paddingTop="@dimen/spacer_1x" + android:paddingEnd="@dimen/spacer_1hx" + android:paddingBottom="@dimen/spacer_1x"> <ListView android:id="@+id/note_list_widget_lv" diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5dea9e2f..45ba55a1 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -82,9 +82,6 @@ <string name="about_license_tab_title">License</string> <string name="widget_note_list_title">Note list</string> - <string name="widget_note_list_add">Add new note</string> - <string name="widget_note_list_add_favorite">Add new note to favorites</string> - <string name="widget_note_list_add_to_category">Add new note to %1$s</string> <string name="widget_note_list_placeholder">No notes</string> <string name="widget_single_note_title">Single note</string> <string name="widget_single_note_placeholder_tv">Note not found</string> |