diff --git a/app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidget.kt b/app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidget.kt index 008fdf021..581ca9e28 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidget.kt +++ b/app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidget.kt @@ -114,8 +114,6 @@ class SingleNoteWidget : AppWidgetProvider() { ).apply { setPendingIntentTemplate(R.id.single_note_widget_lv, pendingIntent) setRemoteAdapter(R.id.single_note_widget_lv, serviceIntent) - setViewVisibility(R.id.widget_single_note_placeholder_tv, View.VISIBLE) - setTextViewText(R.id.widget_single_note_placeholder_tv, context.getString(R.string.widget_single_note_loading)) } } diff --git a/app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidgetFactory.java b/app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidgetFactory.java index 44c0ae4d2..288601c76 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidgetFactory.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/widget/singlenote/SingleNoteWidgetFactory.java @@ -49,24 +49,33 @@ public void onCreate() { @Override public void onDataSetChanged() { final var data = repo.getSingleNoteWidgetData(appWidgetId); - if (data != null) { - final long noteId = data.getNoteId(); - Log.v(TAG, "Fetch note with id " + noteId); - note = repo.getNoteById(noteId); - - final var views = new RemoteViews(context.getPackageName(), R.layout.widget_single_note); - if (note == null) { - Log.e(TAG, "Error: note not found"); - views.setViewVisibility(R.id.widget_single_note_placeholder_tv, View.VISIBLE); - views.setTextViewText(R.id.widget_single_note_placeholder_tv, - context.getString(R.string.widget_single_note_note_not_found)); - } else { - views.setViewVisibility(R.id.widget_single_note_placeholder_tv, View.GONE); - } - AppWidgetManager.getInstance(context).partiallyUpdateAppWidget(appWidgetId, views); - } else { - Log.w(TAG, "Widget with ID " + appWidgetId + " seems to be not configured yet."); + final var views = new RemoteViews(context.getPackageName(), R.layout.widget_single_note); + if (data == null) { + showErrorView(context, views); + return; + } + + final long noteId = data.getNoteId(); + note = repo.getNoteById(noteId); + Log.v(TAG, "Fetch note with id " + noteId); + + if (note == null) { + showErrorView(context, views); + Log.e(TAG, "Error: note not found"); + return; } + views.setViewVisibility(R.id.widget_single_note_placeholder_tv, View.GONE); + + AppWidgetManager.getInstance(context).partiallyUpdateAppWidget(appWidgetId, views); + } + + private void showErrorView(Context context, RemoteViews views) { + views.setViewVisibility(R.id.single_note_widget_lv, View.GONE); + views.setViewVisibility(R.id.widget_single_note_placeholder_tv, View.VISIBLE); + views.setTextViewText(R.id.widget_single_note_placeholder_tv, + context.getString(R.string.widget_single_note_note_not_found)); + + AppWidgetManager.getInstance(context).partiallyUpdateAppWidget(appWidgetId, views); } @Override diff --git a/app/src/main/res/layout/widget_single_note.xml b/app/src/main/res/layout/widget_single_note.xml index 0e185bee7..a0e0285ac 100644 --- a/app/src/main/res/layout/widget_single_note.xml +++ b/app/src/main/res/layout/widget_single_note.xml @@ -25,9 +25,8 @@ android:layout_height="match_parent" android:gravity="center" android:padding="@dimen/spacer_1x" - android:text="@string/widget_single_note_note_not_found" + android:text="@string/widget_single_note_loading" android:textAlignment="center" - android:textColor="@color/widget_foreground" - android:visibility="gone" /> + android:textColor="@color/widget_foreground" />