Fix issue where the wrong system was opened when dealing with other permissions than Manifest.permission.POST_NOTIFICATIONS
This commit is contained in:
parent
618171be05
commit
b34f2cddef
5 changed files with 13 additions and 8 deletions
|
|
@ -113,7 +113,7 @@ class DefaultPermissionsPresenter(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
PermissionsEvents.OpenSystemSettingAndCloseDialog -> {
|
PermissionsEvents.OpenSystemSettingAndCloseDialog -> {
|
||||||
permissionActions.openSettings()
|
permissionActions.openSettings(permission)
|
||||||
showDialog.value = false
|
showDialog.value = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,9 +8,11 @@
|
||||||
|
|
||||||
package io.element.android.libraries.permissions.impl.action
|
package io.element.android.libraries.permissions.impl.action
|
||||||
|
|
||||||
|
import android.Manifest
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import dev.zacsweers.metro.AppScope
|
import dev.zacsweers.metro.AppScope
|
||||||
import dev.zacsweers.metro.ContributesBinding
|
import dev.zacsweers.metro.ContributesBinding
|
||||||
|
import io.element.android.libraries.androidutils.system.openAppSettingsPage
|
||||||
import io.element.android.libraries.androidutils.system.startNotificationSettingsIntent
|
import io.element.android.libraries.androidutils.system.startNotificationSettingsIntent
|
||||||
import io.element.android.libraries.di.annotations.ApplicationContext
|
import io.element.android.libraries.di.annotations.ApplicationContext
|
||||||
|
|
||||||
|
|
@ -18,7 +20,10 @@ import io.element.android.libraries.di.annotations.ApplicationContext
|
||||||
class AndroidPermissionActions(
|
class AndroidPermissionActions(
|
||||||
@ApplicationContext private val context: Context
|
@ApplicationContext private val context: Context
|
||||||
) : PermissionActions {
|
) : PermissionActions {
|
||||||
override fun openSettings() {
|
override fun openSettings(permission: String) {
|
||||||
context.startNotificationSettingsIntent()
|
when (permission) {
|
||||||
|
Manifest.permission.POST_NOTIFICATIONS -> context.startNotificationSettingsIntent()
|
||||||
|
else -> context.openAppSettingsPage()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,5 +9,5 @@
|
||||||
package io.element.android.libraries.permissions.impl.action
|
package io.element.android.libraries.permissions.impl.action
|
||||||
|
|
||||||
interface PermissionActions {
|
interface PermissionActions {
|
||||||
fun openSettings()
|
fun openSettings(permission: String)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,6 @@ class NotificationTroubleshootCheckPermissionTest(
|
||||||
navigator: NotificationTroubleshootNavigator,
|
navigator: NotificationTroubleshootNavigator,
|
||||||
) {
|
) {
|
||||||
// Do not bother about asking the permission inline, just lead the user to the settings
|
// Do not bother about asking the permission inline, just lead the user to the settings
|
||||||
permissionActions.openSettings()
|
permissionActions.openSettings(Manifest.permission.POST_NOTIFICATIONS)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,13 +9,13 @@
|
||||||
package io.element.android.libraries.permissions.impl.action
|
package io.element.android.libraries.permissions.impl.action
|
||||||
|
|
||||||
class FakePermissionActions(
|
class FakePermissionActions(
|
||||||
val openSettingsAction: () -> Unit = {}
|
val openSettingsAction: (String) -> Unit = {}
|
||||||
) : PermissionActions {
|
) : PermissionActions {
|
||||||
var openSettingsCalled = false
|
var openSettingsCalled = false
|
||||||
private set
|
private set
|
||||||
|
|
||||||
override fun openSettings() {
|
override fun openSettings(permission: String) {
|
||||||
openSettingsAction()
|
openSettingsAction(permission)
|
||||||
openSettingsCalled = true
|
openSettingsCalled = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue