From 53c82ce840ab3d16bc105b3176f793e81b0992e2 Mon Sep 17 00:00:00 2001 From: Stefan Niedermann Date: Thu, 30 Sep 2021 15:50:01 +0200 Subject: Bump targetSdk to 30 Signed-off-by: Stefan Niedermann --- app/src/main/AndroidManifest.xml | 30 ++++++++++++++-------- .../ui/widget/singlecard/SingleCardWidget.java | 4 ++- .../deck/ui/widget/stack/StackWidget.java | 9 ++++--- .../deck/ui/widget/upcoming/UpcomingWidget.java | 3 ++- .../niedermann/nextcloud/deck/util/WidgetUtil.java | 30 ++++++++++++++++++++++ 5 files changed, 60 insertions(+), 16 deletions(-) create mode 100644 app/src/main/java/it/niedermann/nextcloud/deck/util/WidgetUtil.java (limited to 'app/src/main') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7e94eff17..986cef205 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -45,7 +45,8 @@ + android:theme="@style/SplashTheme" + android:exported="true"> @@ -77,7 +78,8 @@ + android:theme="@style/SplashTheme" + android:exported="false"> @@ -129,7 +131,8 @@ + android:label="@string/add_card" + android:exported="true"> @@ -145,7 +148,8 @@ + android:label="@string/app_name" + android:exported="true"> @@ -174,7 +178,8 @@ + android:label="@string/widget_upcoming_title" + android:exported="true"> @@ -185,7 +190,8 @@ android:resource="@xml/upcoming_widget_provider" /> - + @@ -193,7 +199,8 @@ + android:label="@string/widget_stack_title" + android:exported="true"> @@ -209,7 +216,8 @@ android:description="@string/add_a_new_card_using_the_button" android:icon="@drawable/ic_app_logo" android:label="@string/add_card" - android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"> + android:permission="android.permission.BIND_QUICK_SETTINGS_TILE" + android:exported="true"> @@ -222,7 +230,8 @@ + android:theme="@style/SplashTheme" + android:exported="true"> @@ -235,7 +244,8 @@ + android:label="@string/single_card" + android:exported="true"> diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/singlecard/SingleCardWidget.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/singlecard/SingleCardWidget.java index b3e4d622b..bdfd111d0 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/singlecard/SingleCardWidget.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/singlecard/SingleCardWidget.java @@ -1,5 +1,7 @@ package it.niedermann.nextcloud.deck.ui.widget.singlecard; +import static it.niedermann.nextcloud.deck.util.WidgetUtil.pendingIntentFlagCompat; + import android.app.PendingIntent; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; @@ -38,7 +40,7 @@ public class SingleCardWidget extends AppWidgetProvider { final FullSingleCardWidgetModel fullModel = syncManager.getSingleCardWidgetModelDirectly(appWidgetId); final Intent intent = EditActivity.createEditCardIntent(context, fullModel.getAccount(), fullModel.getModel().getBoardId(), fullModel.getFullCard().getLocalId()); - final PendingIntent pendingIntent = PendingIntent.getActivity(context, appWidgetId, intent, PendingIntent.FLAG_UPDATE_CURRENT); + final PendingIntent pendingIntent = PendingIntent.getActivity(context, appWidgetId, intent, pendingIntentFlagCompat(PendingIntent.FLAG_UPDATE_CURRENT)); final RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_single_card); final Intent serviceIntent = new Intent(context, SingleCardWidgetService.class); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/stack/StackWidget.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/stack/StackWidget.java index 02d426bbb..3d7d1100d 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/stack/StackWidget.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/stack/StackWidget.java @@ -1,5 +1,8 @@ package it.niedermann.nextcloud.deck.ui.widget.stack; +import static android.appwidget.AppWidgetManager.ACTION_APPWIDGET_UPDATE; +import static it.niedermann.nextcloud.deck.util.WidgetUtil.pendingIntentFlagCompat; + import android.app.PendingIntent; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; @@ -22,8 +25,6 @@ import it.niedermann.nextcloud.deck.persistence.sync.SyncManager; import it.niedermann.nextcloud.deck.ui.MainActivity; import it.niedermann.nextcloud.deck.ui.card.EditActivity; -import static android.appwidget.AppWidgetManager.ACTION_APPWIDGET_UPDATE; - public class StackWidget extends AppWidgetProvider { private static final int PENDING_INTENT_OPEN_APP_RQ = 0; private static final int PENDING_INTENT_EDIT_CARD_RQ = 1; @@ -77,9 +78,9 @@ public class StackWidget extends AppWidgetProvider { final Intent intent = new Intent(Intent.ACTION_MAIN).setComponent(new ComponentName(context.getPackageName(), MainActivity.class.getName())); final PendingIntent pendingIntent = PendingIntent.getActivity(context, PENDING_INTENT_OPEN_APP_RQ, - intent, PendingIntent.FLAG_UPDATE_CURRENT); + intent, pendingIntentFlagCompat(PendingIntent.FLAG_UPDATE_CURRENT)); final PendingIntent templatePI = PendingIntent.getActivity(context, PENDING_INTENT_EDIT_CARD_RQ, - new Intent(context, EditActivity.class), PendingIntent.FLAG_UPDATE_CURRENT); + new Intent(context, EditActivity.class), pendingIntentFlagCompat(PendingIntent.FLAG_UPDATE_CURRENT)); views.setOnClickPendingIntent(R.id.widget_stack_header_rl, pendingIntent); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/upcoming/UpcomingWidget.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/upcoming/UpcomingWidget.java index cfb22bccd..bbb1b0af3 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/upcoming/UpcomingWidget.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/widget/upcoming/UpcomingWidget.java @@ -1,6 +1,7 @@ package it.niedermann.nextcloud.deck.ui.widget.upcoming; import static android.appwidget.AppWidgetManager.ACTION_APPWIDGET_UPDATE; +import static it.niedermann.nextcloud.deck.util.WidgetUtil.pendingIntentFlagCompat; import android.app.PendingIntent; import android.appwidget.AppWidgetManager; @@ -126,7 +127,7 @@ public class UpcomingWidget extends AppWidgetProvider { serviceIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); serviceIntent.setData(Uri.parse(serviceIntent.toUri(Intent.URI_INTENT_SCHEME))); - final PendingIntent templatePI = PendingIntent.getBroadcast(context, appWidgetId, new Intent(context, UpcomingWidget.class), PendingIntent.FLAG_UPDATE_CURRENT); + final PendingIntent templatePI = PendingIntent.getBroadcast(context, appWidgetId, new Intent(context, UpcomingWidget.class), pendingIntentFlagCompat(PendingIntent.FLAG_UPDATE_CURRENT)); views.setPendingIntentTemplate(R.id.upcoming_widget_lv, templatePI); views.setRemoteAdapter(R.id.upcoming_widget_lv, serviceIntent); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/util/WidgetUtil.java b/app/src/main/java/it/niedermann/nextcloud/deck/util/WidgetUtil.java new file mode 100644 index 000000000..fed243ee6 --- /dev/null +++ b/app/src/main/java/it/niedermann/nextcloud/deck/util/WidgetUtil.java @@ -0,0 +1,30 @@ +package it.niedermann.nextcloud.deck.util; + +import android.app.PendingIntent; +import android.os.Build; + +public class WidgetUtil { + + private WidgetUtil() { + throw new UnsupportedOperationException("This class must not get instantiated"); + } + + /** + * Android S requires either {@link PendingIntent#FLAG_MUTABLE} or + * {@link PendingIntent#FLAG_IMMUTABLE} to be set on a {@link PendingIntent}. + * This is enforced by Android and will lead to an app crash if neither of those flags is + * present. + * To keep the app working, this compatibility method can be used to add the + * {@link PendingIntent#FLAG_MUTABLE} flag on Android S and higher to restore the behavior of + * older SDK versions. + * + * @param flags wanted flags for {@link PendingIntent} + * @return {@param flags} | {@link PendingIntent#FLAG_MUTABLE} + */ + public static int pendingIntentFlagCompat(int flags) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + return flags | PendingIntent.FLAG_MUTABLE; + } + return flags; + } +} -- cgit v1.2.3 From 325eedba96ac918458489014521cdff327f20e01 Mon Sep 17 00:00:00 2001 From: desperateCoder Date: Mon, 11 Oct 2021 12:10:57 +0200 Subject: #1119 order labels by title ascending --- .../nextcloud/deck/persistence/sync/adapters/db/dao/LabelDao.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/src/main') diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/LabelDao.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/LabelDao.java index defa5ca57..232283c11 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/LabelDao.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/LabelDao.java @@ -23,7 +23,7 @@ public interface LabelDao extends GenericDao