Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit 3b74ad52 authored by Ricki Hirner's avatar Ricki Hirner
Browse files

PermissionsFragment: Hide notification permission switch on Android < 13

parent e4a5c478
Loading
Loading
Loading
Loading
+14 −4
Original line number Diff line number Diff line
@@ -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 ->
@@ -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
+3 −0
Original line number Diff line number Diff line
@@ -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"
@@ -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}"
@@ -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"
+1 −1
Original line number Diff line number Diff line
@@ -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>