diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 11ba5bb0b..a9623bcd7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -45,7 +45,9 @@ + @@ -83,8 +85,10 @@ + @@ -92,6 +96,7 @@ @@ -101,6 +106,7 @@ @@ -110,16 +116,19 @@ @@ -143,12 +152,14 @@ + android:parentActivityName=".activities.MainActivity"> + + + + + + @@ -188,6 +209,7 @@ @@ -201,6 +223,7 @@ @@ -214,10 +237,12 @@ @@ -227,11 +252,18 @@ android:exported="true" android:permission="android.permission.BIND_JOB_SERVICE" /> - + - + + + - @@ -252,6 +284,7 @@ @@ -265,6 +298,7 @@ @@ -278,6 +312,7 @@ @@ -291,6 +326,7 @@ @@ -304,6 +340,7 @@ @@ -317,6 +354,7 @@ @@ -330,6 +368,7 @@ @@ -343,6 +382,7 @@ @@ -356,6 +396,7 @@ @@ -369,6 +410,7 @@ @@ -382,6 +424,7 @@ @@ -395,6 +438,7 @@ @@ -408,6 +452,7 @@ @@ -421,6 +466,7 @@ @@ -434,6 +480,7 @@ @@ -446,6 +493,7 @@ @@ -459,6 +507,7 @@ @@ -472,6 +521,7 @@ @@ -485,6 +535,7 @@ diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Context.kt index 368201d5d..5c9668c97 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Context.kt @@ -174,12 +174,12 @@ fun Context.getNotificationIntent(event: Event): PendingIntent { val intent = Intent(this, NotificationReceiver::class.java) intent.putExtra(EVENT_ID, event.id) intent.putExtra(EVENT_OCCURRENCE_TS, event.startTS) - return PendingIntent.getBroadcast(this, event.id!!.toInt(), intent, PendingIntent.FLAG_UPDATE_CURRENT) + return PendingIntent.getBroadcast(this, event.id!!.toInt(), intent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE) } fun Context.cancelPendingIntent(id: Long) { val intent = Intent(this, NotificationReceiver::class.java) - PendingIntent.getBroadcast(this, id.toInt(), intent, PendingIntent.FLAG_UPDATE_CURRENT).cancel() + PendingIntent.getBroadcast(this, id.toInt(), intent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE).cancel() } fun Context.getRepetitionText(seconds: Int) = when (seconds) { @@ -340,7 +340,7 @@ private fun getPendingIntent(context: Context, event: Event): PendingIntent { val intent = Intent(context, EventActivity::class.java) intent.putExtra(EVENT_ID, event.id) intent.putExtra(EVENT_OCCURRENCE_TS, event.startTS) - return PendingIntent.getActivity(context, event.id!!.toInt(), intent, PendingIntent.FLAG_UPDATE_CURRENT) + return PendingIntent.getActivity(context, event.id!!.toInt(), intent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE) } private fun getSnoozePendingIntent(context: Context, event: Event): PendingIntent { @@ -348,9 +348,9 @@ private fun getSnoozePendingIntent(context: Context, event: Event): PendingInten val intent = Intent(context, snoozeClass).setAction("Snooze") intent.putExtra(EVENT_ID, event.id) return if (context.config.useSameSnooze) { - PendingIntent.getService(context, event.id!!.toInt(), intent, PendingIntent.FLAG_UPDATE_CURRENT) + PendingIntent.getService(context, event.id!!.toInt(), intent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE) } else { - PendingIntent.getActivity(context, event.id!!.toInt(), intent, PendingIntent.FLAG_UPDATE_CURRENT) + PendingIntent.getActivity(context, event.id!!.toInt(), intent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE) } } @@ -421,7 +421,12 @@ fun Context.recheckCalDAVCalendars(scheduleNextCalDAVSync: Boolean, callback: () fun Context.scheduleCalDAVSync(activate: Boolean) { val syncIntent = Intent(applicationContext, CalDAVSyncReceiver::class.java) - val pendingIntent = PendingIntent.getBroadcast(applicationContext, SCHEDULE_CALDAV_REQUEST_CODE, syncIntent, PendingIntent.FLAG_UPDATE_CURRENT) + val pendingIntent = PendingIntent.getBroadcast( + applicationContext, + SCHEDULE_CALDAV_REQUEST_CODE, + syncIntent, + PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE + ) val alarm = getSystemService(Context.ALARM_SERVICE) as AlarmManager alarm.cancel(pendingIntent) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/MyWidgetDateProvider.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/MyWidgetDateProvider.kt index 95cbd7f80..143a28a1e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/MyWidgetDateProvider.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/MyWidgetDateProvider.kt @@ -39,7 +39,7 @@ class MyWidgetDateProvider : AppWidgetProvider() { private fun setupAppOpenIntent(context: Context, views: RemoteViews) { (context.getLaunchIntent() ?: Intent(context, SplashActivity::class.java)).apply { - val pendingIntent = PendingIntent.getActivity(context, OPEN_APP_INTENT_ID, this, PendingIntent.FLAG_UPDATE_CURRENT) + val pendingIntent = PendingIntent.getActivity(context, OPEN_APP_INTENT_ID, this, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE) views.setOnClickPendingIntent(R.id.widget_date_holder, pendingIntent) } } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/MyWidgetListProvider.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/MyWidgetListProvider.kt index 38de18ee1..56c37b87e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/MyWidgetListProvider.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/MyWidgetListProvider.kt @@ -63,7 +63,8 @@ class MyWidgetListProvider : AppWidgetProvider() { } val startActivityIntent = context.getLaunchIntent() ?: Intent(context, SplashActivity::class.java) - val startActivityPendingIntent = PendingIntent.getActivity(context, 0, startActivityIntent, PendingIntent.FLAG_UPDATE_CURRENT) + val startActivityPendingIntent = + PendingIntent.getActivity(context, 0, startActivityIntent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE) views.setPendingIntentTemplate(R.id.widget_event_list, startActivityPendingIntent) views.setEmptyView(R.id.widget_event_list, R.id.widget_event_list_empty) @@ -78,7 +79,7 @@ class MyWidgetListProvider : AppWidgetProvider() { private fun setupIntent(context: Context, views: RemoteViews, action: String, id: Int) { Intent(context, MyWidgetListProvider::class.java).apply { this.action = action - val pendingIntent = PendingIntent.getBroadcast(context, 0, this, 0) + val pendingIntent = PendingIntent.getBroadcast(context, 0, this, PendingIntent.FLAG_IMMUTABLE) views.setOnClickPendingIntent(id, pendingIntent) } } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/MyWidgetMonthlyProvider.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/MyWidgetMonthlyProvider.kt index f49a1aa43..1554499ca 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/MyWidgetMonthlyProvider.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/MyWidgetMonthlyProvider.kt @@ -45,7 +45,7 @@ class MyWidgetMonthlyProvider : AppWidgetProvider() { private fun setupIntent(context: Context, views: RemoteViews, action: String, id: Int) { Intent(context, MyWidgetMonthlyProvider::class.java).apply { this.action = action - val pendingIntent = PendingIntent.getBroadcast(context, 0, this, 0) + val pendingIntent = PendingIntent.getBroadcast(context, 0, this, PendingIntent.FLAG_IMMUTABLE) views.setOnClickPendingIntent(id, pendingIntent) } } @@ -54,7 +54,7 @@ class MyWidgetMonthlyProvider : AppWidgetProvider() { (context.getLaunchIntent() ?: Intent(context, SplashActivity::class.java)).apply { putExtra(DAY_CODE, dayCode) putExtra(VIEW_TO_OPEN, MONTHLY_VIEW) - val pendingIntent = PendingIntent.getActivity(context, Integer.parseInt(dayCode.substring(0, 6)), this, 0) + val pendingIntent = PendingIntent.getActivity(context, Integer.parseInt(dayCode.substring(0, 6)), this, PendingIntent.FLAG_IMMUTABLE) views.setOnClickPendingIntent(id, pendingIntent) } } @@ -63,7 +63,7 @@ class MyWidgetMonthlyProvider : AppWidgetProvider() { (context.getLaunchIntent() ?: Intent(context, SplashActivity::class.java)).apply { putExtra(DAY_CODE, dayCode) putExtra(VIEW_TO_OPEN, DAILY_VIEW) - val pendingIntent = PendingIntent.getActivity(context, Integer.parseInt(dayCode), this, 0) + val pendingIntent = PendingIntent.getActivity(context, Integer.parseInt(dayCode), this, PendingIntent.FLAG_IMMUTABLE) views.setOnClickPendingIntent(id, pendingIntent) } } diff --git a/app/src/main/res/menu/cab_day.xml b/app/src/main/res/menu/cab_day.xml index 096697b44..c77c4e701 100644 --- a/app/src/main/res/menu/cab_day.xml +++ b/app/src/main/res/menu/cab_day.xml @@ -1,14 +1,14 @@ + xmlns:app="http://schemas.android.com/apk/res-auto"> + app:showAsAction="ifRoom" /> + app:showAsAction="ifRoom" /> diff --git a/app/src/main/res/menu/cab_event_list.xml b/app/src/main/res/menu/cab_event_list.xml index 096697b44..c77c4e701 100644 --- a/app/src/main/res/menu/cab_event_list.xml +++ b/app/src/main/res/menu/cab_event_list.xml @@ -1,14 +1,14 @@ + xmlns:app="http://schemas.android.com/apk/res-auto"> + app:showAsAction="ifRoom" /> + app:showAsAction="ifRoom" /> diff --git a/app/src/main/res/menu/cab_event_type.xml b/app/src/main/res/menu/cab_event_type.xml index 642b5e421..abf9dbfae 100644 --- a/app/src/main/res/menu/cab_event_type.xml +++ b/app/src/main/res/menu/cab_event_type.xml @@ -1,9 +1,9 @@ + xmlns:app="http://schemas.android.com/apk/res-auto"> + app:showAsAction="ifRoom" /> diff --git a/app/src/main/res/menu/menu_event_types.xml b/app/src/main/res/menu/menu_event_types.xml index 035fbcacd..e8c8f1a75 100644 --- a/app/src/main/res/menu/menu_event_types.xml +++ b/app/src/main/res/menu/menu_event_types.xml @@ -1,9 +1,9 @@ + xmlns:app="http://schemas.android.com/apk/res-auto"> + app:showAsAction="ifRoom" /> diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml index f1dbc3d6c..9307d04e6 100644 --- a/app/src/main/res/menu/menu_main.xml +++ b/app/src/main/res/menu/menu_main.xml @@ -1,60 +1,67 @@ + xmlns:app="http://schemas.android.com/apk/res-auto"> + app:showAsAction="collapseActionView|always" /> + app:showAsAction="always" /> + app:showAsAction="always" /> + app:showAsAction="ifRoom" /> + app:showAsAction="ifRoom" /> + app:showAsAction="never" /> + app:showAsAction="never" /> + app:showAsAction="never" /> + app:showAsAction="never" /> + app:showAsAction="never" /> + app:showAsAction="never" /> + app:showAsAction="never" /> + xmlns:app="http://schemas.android.com/apk/res-auto">