Loading app/src/main/java/at/bitfire/davdroid/ui/PermissionsFragment.kt +14 −4 Original line number Diff line number Diff line Loading @@ -65,7 +65,7 @@ class PermissionsFragment: Fragment() { requestPermission.launch(CALENDAR_PERMISSIONS) }) model.needNotificationPermissions.observe(viewLifecycleOwner, { needNotifications -> if (needNotifications && model.haveNotificationPermissions.value == false) if (needNotifications == true && model.haveNotificationPermissions.value == false) requestPermission.launch(arrayOf(Manifest.permission.POST_NOTIFICATIONS)) }) model.needOpenTasksPermissions.observe(viewLifecycleOwner, { needOpenTasks -> Loading Loading @@ -162,9 +162,19 @@ class PermissionsFragment: Fragment() { haveCalendarPermissions.value = calendarPermissions needCalendarPermissions.value = calendarPermissions val notificationPermissions = ContextCompat.checkSelfPermission(getApplication(), Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED val notificationPermissions: Boolean if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { // Android 13: POST_NOTIFICATIONS permission required notificationPermissions = ContextCompat.checkSelfPermission(getApplication(), Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED haveNotificationPermissions.value = notificationPermissions needNotificationPermissions.value = notificationPermissions } else { // Android <= 12: hide the POST_NOTIFICATIONS switch notificationPermissions = true haveNotificationPermissions.value = null needNotificationPermissions.value = null } // OpenTasks val openTasksAvailable = pm.resolveContentProvider(ProviderName.OpenTasks.authority, 0) != null Loading app/src/main/res/layout/activity_permissions.xml +3 −0 Original line number Diff line number Diff line Loading @@ -152,6 +152,7 @@ <TextView android:id="@+id/notificationHeading" style="@style/TextAppearance.MaterialComponents.Body1" android:visibility="@{model.haveNotificationPermissions != null ? View.VISIBLE : View.GONE}" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="@dimen/card_margin_title_text" Loading @@ -165,6 +166,7 @@ <TextView android:id="@+id/notificationStatus" style="@style/TextAppearance.MaterialComponents.Body2" android:visibility="@{model.haveNotificationPermissions != null ? View.VISIBLE : View.GONE}" android:layout_width="0dp" android:layout_height="wrap_content" android:text="@{model.haveNotificationPermissions ? @string/permissions_notification_status_on : @string/permissions_notification_status_off}" Loading @@ -176,6 +178,7 @@ android:id="@+id/notificationSwitch" android:layout_width="wrap_content" android:layout_height="match_parent" android:visibility="@{model.haveNotificationPermissions != null ? View.VISIBLE : View.GONE}" app:layout_constraintTop_toTopOf="@id/notificationHeading" app:layout_constraintBottom_toBottomOf="@id/notificationStatus" app:layout_constraintEnd_toStartOf="@id/end" Loading app/src/main/res/values/strings.xml +1 −1 Original line number Diff line number Diff line Loading @@ -72,7 +72,7 @@ <string name="permissions_calendar_title">Calendar permissions</string> <string name="permissions_calendar_status_off">No calendar sync (not recommended)</string> <string name="permissions_calendar_status_on">Calendar sync possible</string> <string name="permissions_notification_title">Notification permissions</string> <string name="permissions_notification_title">Notification permission</string> <string name="permissions_notification_status_off">Notifications disabled (not recommended)</string> <string name="permissions_notification_status_on">Notifications enabled</string> <string name="permissions_jtx_title">jtx Board permissions</string> Loading Loading
app/src/main/java/at/bitfire/davdroid/ui/PermissionsFragment.kt +14 −4 Original line number Diff line number Diff line Loading @@ -65,7 +65,7 @@ class PermissionsFragment: Fragment() { requestPermission.launch(CALENDAR_PERMISSIONS) }) model.needNotificationPermissions.observe(viewLifecycleOwner, { needNotifications -> if (needNotifications && model.haveNotificationPermissions.value == false) if (needNotifications == true && model.haveNotificationPermissions.value == false) requestPermission.launch(arrayOf(Manifest.permission.POST_NOTIFICATIONS)) }) model.needOpenTasksPermissions.observe(viewLifecycleOwner, { needOpenTasks -> Loading Loading @@ -162,9 +162,19 @@ class PermissionsFragment: Fragment() { haveCalendarPermissions.value = calendarPermissions needCalendarPermissions.value = calendarPermissions val notificationPermissions = ContextCompat.checkSelfPermission(getApplication(), Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED val notificationPermissions: Boolean if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { // Android 13: POST_NOTIFICATIONS permission required notificationPermissions = ContextCompat.checkSelfPermission(getApplication(), Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED haveNotificationPermissions.value = notificationPermissions needNotificationPermissions.value = notificationPermissions } else { // Android <= 12: hide the POST_NOTIFICATIONS switch notificationPermissions = true haveNotificationPermissions.value = null needNotificationPermissions.value = null } // OpenTasks val openTasksAvailable = pm.resolveContentProvider(ProviderName.OpenTasks.authority, 0) != null Loading
app/src/main/res/layout/activity_permissions.xml +3 −0 Original line number Diff line number Diff line Loading @@ -152,6 +152,7 @@ <TextView android:id="@+id/notificationHeading" style="@style/TextAppearance.MaterialComponents.Body1" android:visibility="@{model.haveNotificationPermissions != null ? View.VISIBLE : View.GONE}" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="@dimen/card_margin_title_text" Loading @@ -165,6 +166,7 @@ <TextView android:id="@+id/notificationStatus" style="@style/TextAppearance.MaterialComponents.Body2" android:visibility="@{model.haveNotificationPermissions != null ? View.VISIBLE : View.GONE}" android:layout_width="0dp" android:layout_height="wrap_content" android:text="@{model.haveNotificationPermissions ? @string/permissions_notification_status_on : @string/permissions_notification_status_off}" Loading @@ -176,6 +178,7 @@ android:id="@+id/notificationSwitch" android:layout_width="wrap_content" android:layout_height="match_parent" android:visibility="@{model.haveNotificationPermissions != null ? View.VISIBLE : View.GONE}" app:layout_constraintTop_toTopOf="@id/notificationHeading" app:layout_constraintBottom_toBottomOf="@id/notificationStatus" app:layout_constraintEnd_toStartOf="@id/end" Loading
app/src/main/res/values/strings.xml +1 −1 Original line number Diff line number Diff line Loading @@ -72,7 +72,7 @@ <string name="permissions_calendar_title">Calendar permissions</string> <string name="permissions_calendar_status_off">No calendar sync (not recommended)</string> <string name="permissions_calendar_status_on">Calendar sync possible</string> <string name="permissions_notification_title">Notification permissions</string> <string name="permissions_notification_title">Notification permission</string> <string name="permissions_notification_status_off">Notifications disabled (not recommended)</string> <string name="permissions_notification_status_on">Notifications enabled</string> <string name="permissions_jtx_title">jtx Board permissions</string> Loading