Skip to content

Commit 3f8e6d7

Browse files
committed
always open fullscreen-intent permission settings on tap
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
1 parent 51e6523 commit 3f8e6d7

3 files changed

Lines changed: 54 additions & 61 deletions

File tree

app/src/main/java/com/nextcloud/talk/settings/SettingsActivity.kt

Lines changed: 32 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,7 @@ class SettingsActivity :
323323
setupUnifiedPushSettings()
324324
setupNotificationSoundsSettings()
325325
setupNotificationPermissionSettings()
326+
setupFullScreenIntentPermissionSetting()
326327
setupServerNotificationAppCheck()
327328
}
328329

@@ -433,36 +434,6 @@ class SettingsActivity :
433434
}
434435
}
435436

436-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
437-
val notificationManager = getSystemService(NotificationManager::class.java)
438-
if (notificationManager.canUseFullScreenIntent()) {
439-
binding.fullScreenIntentPermissionSubtitle.text =
440-
resources.getString(R.string.full_screen_intent_permission_granted)
441-
binding.fullScreenIntentPermissionSubtitle.setTextColor(
442-
resources.getColor(R.color.high_emphasis_text, null)
443-
)
444-
} else {
445-
binding.fullScreenIntentPermissionSubtitle.text =
446-
resources.getString(R.string.full_screen_intent_permission_not_granted)
447-
binding.fullScreenIntentPermissionSubtitle.setTextColor(
448-
resources.getColor(R.color.nc_darkRed, null)
449-
)
450-
451-
if (openedByNotificationWarning) {
452-
DrawableUtils.blinkDrawable(binding.settingsFullScreenIntentWrapper.background)
453-
}
454-
455-
binding.settingsFullScreenIntentWrapper.setOnClickListener {
456-
val intent = Intent(Settings.ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT).apply {
457-
data = "package:$packageName".toUri()
458-
}
459-
startActivity(intent)
460-
}
461-
}
462-
} else {
463-
binding.settingsFullScreenIntentWrapper.visibility = View.GONE
464-
}
465-
466437
// handle notification permission on API level >= 33
467438
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
468439
if (platformPermissionUtil.isPostNotificationsPermissionGranted()) {
@@ -516,6 +487,37 @@ class SettingsActivity :
516487
}
517488
}
518489

490+
private fun setupFullScreenIntentPermissionSetting() {
491+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
492+
val notificationManager = getSystemService(NotificationManager::class.java)
493+
if (notificationManager.canUseFullScreenIntent()) {
494+
binding.fullScreenIntentPermissionSubtitle.text =
495+
resources.getString(R.string.full_screen_intent_permission_granted)
496+
binding.fullScreenIntentPermissionSubtitle.setTextColor(
497+
resources.getColor(R.color.high_emphasis_text, null)
498+
)
499+
} else {
500+
binding.fullScreenIntentPermissionSubtitle.text =
501+
resources.getString(R.string.full_screen_intent_permission_not_granted)
502+
binding.fullScreenIntentPermissionSubtitle.setTextColor(
503+
resources.getColor(R.color.nc_darkRed, null)
504+
)
505+
506+
if (openedByNotificationWarning) {
507+
DrawableUtils.blinkDrawable(binding.settingsFullScreenIntentWrapper.background)
508+
}
509+
}
510+
binding.settingsFullScreenIntentWrapper.setOnClickListener {
511+
val intent = Intent(Settings.ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT).apply {
512+
data = "package:$packageName".toUri()
513+
}
514+
startActivity(intent)
515+
}
516+
} else {
517+
binding.settingsFullScreenIntentWrapper.visibility = View.GONE
518+
}
519+
}
520+
519521
private fun setupNotificationSoundsSettings() {
520522
if (NotificationUtils.isCallsNotificationChannelEnabled(this)) {
521523
val callRingtoneUri = getCallRingtoneUri(context, (appPreferences))
@@ -603,24 +605,15 @@ class SettingsActivity :
603605
)
604606
}
605607

606-
val canUseFullScreenIntent = Build.VERSION.SDK_INT < Build.VERSION_CODES.UPSIDE_DOWN_CAKE ||
607-
getSystemService(NotificationManager::class.java).canUseFullScreenIntent()
608-
609608
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
610609
if (platformPermissionUtil.isPostNotificationsPermissionGranted() &&
611610
PowerManagerUtils().isIgnoringBatteryOptimizations()
612611
) {
613612
binding.settingsNotificationsPermissionWrapper.setOnClickListener { click() }
614613
binding.settingsBatteryOptimizationWrapper.setOnClickListener { click() }
615-
if (canUseFullScreenIntent) {
616-
binding.settingsFullScreenIntentWrapper.setOnClickListener { click() }
617-
}
618614
}
619615
} else if (PowerManagerUtils().isIgnoringBatteryOptimizations()) {
620616
binding.settingsBatteryOptimizationWrapper.setOnClickListener { click() }
621-
if (canUseFullScreenIntent) {
622-
binding.settingsFullScreenIntentWrapper.setOnClickListener { click() }
623-
}
624617
}
625618
}
626619

app/src/main/res/layout/activity_settings.xml

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -373,27 +373,6 @@
373373
tools:text="@string/battery_optimization_ignored"/>
374374
</LinearLayout>
375375

376-
<LinearLayout
377-
android:id="@+id/settings_full_screen_intent_wrapper"
378-
android:layout_width="match_parent"
379-
android:layout_height="wrap_content"
380-
android:background="?android:attr/selectableItemBackground"
381-
android:orientation="vertical"
382-
android:padding="@dimen/standard_padding">
383-
384-
<com.google.android.material.textview.MaterialTextView
385-
android:layout_width="wrap_content"
386-
android:layout_height="wrap_content"
387-
android:text="@string/full_screen_intent_permission_title"
388-
android:textSize="@dimen/headline_text_size" />
389-
390-
<com.google.android.material.textview.MaterialTextView
391-
android:id="@+id/full_screen_intent_permission_subtitle"
392-
android:layout_width="wrap_content"
393-
android:layout_height="wrap_content"
394-
tools:text="@string/full_screen_intent_permission_granted" />
395-
</LinearLayout>
396-
397376
</LinearLayout>
398377

399378
<LinearLayout
@@ -426,6 +405,27 @@
426405
android:text="@string/nc_diagnosis_push_available_no"/>
427406
</LinearLayout>
428407

408+
<LinearLayout
409+
android:id="@+id/settings_full_screen_intent_wrapper"
410+
android:layout_width="match_parent"
411+
android:layout_height="wrap_content"
412+
android:background="?android:attr/selectableItemBackground"
413+
android:orientation="vertical"
414+
android:padding="@dimen/standard_padding">
415+
416+
<com.google.android.material.textview.MaterialTextView
417+
android:layout_width="wrap_content"
418+
android:layout_height="wrap_content"
419+
android:text="@string/full_screen_intent_permission_title"
420+
android:textSize="@dimen/headline_text_size" />
421+
422+
<com.google.android.material.textview.MaterialTextView
423+
android:id="@+id/full_screen_intent_permission_subtitle"
424+
android:layout_width="wrap_content"
425+
android:layout_height="wrap_content"
426+
tools:text="@string/full_screen_intent_permission_granted" />
427+
</LinearLayout>
428+
429429
<LinearLayout
430430
android:id="@+id/settings_call_sound"
431431
android:layout_width="match_parent"

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ How to translate with transifex:
123123
<string name="battery_optimization_not_ignored">Battery optimization is enabled which might cause issues. You should disable battery optimization!</string>
124124
<string name="battery_optimization_ignored">Battery optimization is ignored, all fine</string>
125125
<string name="notification_permission">Notification permissions</string>
126-
<string name="full_screen_intent_permission_title">Show incoming call screen</string>
126+
<string name="full_screen_intent_permission_title">Show incoming call over lock screen</string>
127127
<string name="full_screen_intent_permission_granted">Incoming call screen over lock screen is granted, all fine</string>
128128
<string name="full_screen_intent_permission_not_granted">Incoming call screen over lock screen is not granted. Please grant this so incoming calls appear on the lock screen!</string>
129129

0 commit comments

Comments
 (0)