Files
packages_apps_Settings/res/xml/configure_notification_settings.xml
Pranav Vashi 4ada6f56ff Settings: Fix crash with face lock preference for limited access users
Ref: https://xdaforums.com/t/rom-14-0-official-clover-kernelsu-crdroid-14-0-for-xiaomi-mi-pad-4-plus.4675646/post-89634146

Crash log:

07-29 19:55:26.011 E/AndroidRuntime(17429): FATAL EXCEPTION: main
07-29 19:55:26.011 E/AndroidRuntime(17429): Process: com.android.settings, PID: 17429
07-29 19:55:26.011 E/AndroidRuntime(17429): java.lang.RuntimeException: Unable to resume activity {com.android.settings/com.android.settings.SubSettings}: java.lang.ClassCastException: androidx.preference.SwitchPreferenceCompat cannot be cast to com.android.settingslib.RestrictedSwitchPreference
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at android.app.ActivityThread.performResumeActivity(ActivityThread.java:5244)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:5277)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:57)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:60)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at android.app.servertransaction.TransactionExecutor.executeLifecycleItem(TransactionExecutor.java:282)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:150)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:93)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2595)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at android.os.Handler.dispatchMessage(Handler.java:107)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at android.os.Looper.loopOnce(Looper.java:232)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at android.os.Looper.loop(Looper.java:317)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at android.app.ActivityThread.main(ActivityThread.java:8594)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at java.lang.reflect.Method.invoke(Native Method)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:583)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:878)
07-29 19:55:26.011 E/AndroidRuntime(17429): Caused by: java.lang.ClassCastException: androidx.preference.SwitchPreferenceCompat cannot be cast to com.android.settingslib.RestrictedSwitchPreference
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at com.android.settings.biometrics.face.FaceSettingsLockscreenBypassPreferenceController.updateState(FaceSettingsLockscreenBypassPreferenceController.java:76)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at com.android.settings.dashboard.DashboardFragment.updatePreferenceStates(DashboardFragment.java:414)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at com.android.settings.dashboard.DashboardFragment.onResume(DashboardFragment.java:242)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at androidx.fragment.app.Fragment.performResume(Fragment.java:3206)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at androidx.fragment.app.FragmentStateManager.resume(FragmentStateManager.java:658)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:302)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:114)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1613)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3197)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at androidx.fragment.app.FragmentManager.dispatchResume(FragmentManager.java:3129)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at androidx.fragment.app.FragmentController.dispatchResume(FragmentController.java:285)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at androidx.fragment.app.FragmentActivity.onResumeFragments(FragmentActivity.java:333)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at androidx.fragment.app.FragmentActivity.onPostResume(FragmentActivity.java:322)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at android.app.Activity.performResume(Activity.java:9163)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	at android.app.ActivityThread.performResumeActivity(ActivityThread.java:5234)
07-29 19:55:26.011 E/AndroidRuntime(17429): 	... 14 more

Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
2025-12-10 00:41:26 +09:00

245 lines
12 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2015 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res-auto"
android:title="@string/configure_notification_settings"
android:key="configure_notification_settings">
<PreferenceCategory
android:key="general_notifications_category"
android:title="@string/general_notification_header">
<!-- See all apps button -->
<Preference
android:key="all_notifications"
android:order="1"
android:title="@string/app_notification_field"
android:summary="@string/app_notification_field_summary"
android:fragment="com.android.settings.applications.manageapplications.ManageApplications">
<extra
android:name="classname"
android:value="com.android.settings.Settings$NotificationAppListActivity"/>
</Preference>
<Preference
android:key="notification_history"
android:order="2"
android:title="@string/notification_history"
android:summary="@string/notification_history_summary">
<intent
android:action="android.intent.action.MAIN"
android:targetPackage="com.android.settings"
android:targetClass="com.android.settings.notification.history.NotificationHistoryActivity" />
</Preference>
<Preference
android:fragment="com.android.settings.notification.SummarizationPreferenceFragment"
android:key="summarization_notifications_preference"
android:order="3"
android:persistent="false"
android:title="@string/notification_summarization_title"
settings:controller="com.android.settings.notification.SummarizationPreferenceController" />
<Preference
android:fragment="com.android.settings.notification.BundlePreferenceFragment"
android:key="bundle_notifications_preference"
android:persistent="false"
android:order="4"
android:title="@string/notification_bundle_title"
settings:controller="com.android.settings.notification.BundlePreferenceController" />
</PreferenceCategory>
<PreferenceCategory
android:key="conversation_category"
android:title="@string/conversation_notifs_category">
<Preference
android:key="conversations"
android:order="1"
android:title="@string/conversations_category_title"
android:summary=" "
settings:controller="com.android.settings.notification.ConversationListSummaryPreferenceController"
android:fragment="com.android.settings.notification.app.ConversationListSettings"
/>
<Preference
android:key="notification_bubbles"
android:order="2"
android:title="@string/notification_bubbles_title"
android:summary="@string/notifications_bubble_setting_on_summary"
settings:controller="com.android.settings.notification.BubbleSummaryNotificationPreferenceController"
android:fragment="com.android.settings.notification.BubbleNotificationSettings"
/>
</PreferenceCategory>
<PreferenceCategory
android:key="configure_notifications_lock"
android:title="@string/lock_screen_notifications_title">
<Preference
android:key="notification_access"
android:order="12"
android:title="@string/manage_notification_access_title"
android:summary="@string/manage_notification_access_summary"
android:fragment="com.android.settings.notification.NotificationAccessSettings"
settings:controller="com.android.settings.applications.specialaccess.notificationaccess.NotificationAccessController" />
<!-- When device is locked -->
<com.android.settings.RestrictedListPreference
android:key="lock_screen_notifications"
android:order="13"
android:title="@string/lock_screen_notifs_title"
android:singleLineTitle="false"
android:summary="@string/summary_placeholder" />
<Preference
android:key="lock_screen_notifications_page"
android:order="14"
android:persistent="false"
android:title="@string/lock_screen_notifs_title"
android:fragment="com.android.settings.notification.LockScreenNotificationsPreferencePageFragment"
settings:controller="com.android.settings.notification.LockScreenNotificationsPreferencePageController" />
<com.android.settingslib.RestrictedSwitchPreference
android:key="lock_screen_redact"
android:order="15"
android:title="@string/lock_screen_notifs_redact"
android:summary="@string/lock_screen_notifs_redact_summary"
settings:controller="com.android.settings.notification.RedactNotificationPreferenceController" />
<com.android.settingslib.RestrictedSwitchPreference
android:key="lock_screen_work_redact"
android:order="16"
android:title="@string/lock_screen_notifs_redact_work"
android:summary="@string/lock_screen_notifs_redact_work_summary"
settings:controller="com.android.settings.notification.RedactNotificationPreferenceController" />
<com.android.settingslib.RestrictedSwitchPreference
android:key="notification_lockscreen_bypass"
android:order="17"
android:title="@string/lockscreen_bypass_title"
android:summary="@string/lockscreen_bypass_summary"
settings:searchable="false"
settings:controller="com.android.settings.biometrics.face.FaceSettingsLockscreenBypassPreferenceController" />
</PreferenceCategory>
<PreferenceCategory
android:key="sync_across_devices"
android:title="@string/sync_across_devices_title"
settings:controller="com.android.settings.notification.syncacrossdevices.SyncAcrossDevicesPreferenceController"/>
<PreferenceCategory
android:key="advanced_section_header"
android:title="@string/advanced_section_header">
<!--Adaptive Notifications-->
<Preference
android:fragment="com.android.settings.notification.PoliteNotificationsPreferenceFragment"
android:key="polite_notifications_preference"
android:order="18"
android:persistent="false"
android:title="@string/notification_polite_title"
settings:controller="com.android.settings.notification.PoliteNotificationsPreferenceController" />
<com.android.settingslib.RestrictedPreference
android:key="zen_mode_notifications"
android:order="19"
android:title="@string/zen_mode_settings_title"
settings:useAdminDisabledSummary="true"
android:fragment="com.android.settings.notification.zen.ZenModeSettings"
settings:controller="com.android.settings.notification.zen.ZenModePreferenceController"
/>
<SwitchPreferenceCompat
android:key="lock_screen_notif_minimalism"
android:order="20"
android:title="@string/lock_screen_notif_minimalism"
android:summary="@string/lock_screen_notif_minimalism_summary"
settings:controller="com.android.settings.notification.LockscreenNotificationMinimalismPreferenceController"
/>
<SwitchPreferenceCompat
android:key="lock_screen_show_only_unseen_notifs"
android:order="21"
android:title="@string/unseen_notifs_lock_screen"
android:summary="@string/unseen_notifs_lock_screen_summary"
settings:controller="com.android.settings.notification.ShowOnlyUnseenNotificationsOnLockscreenPreferenceController"
/>
<Preference
android:fragment="com.android.settings.accessibility.FlashNotificationsPreferenceFragment"
android:key="flash_notifications_preference"
android:order="22"
android:persistent="false"
android:title="@string/flash_notifications_title"
settings:searchable="false"
settings:controller="com.android.settings.accessibility.FlashNotificationsPreferenceController" />
<com.android.settingslib.RestrictedPreference
android:key="app_and_notif_cell_broadcast_settings"
android:order="23"
android:title="@string/cell_broadcast_settings"
settings:useAdminDisabledSummary="true">
<intent
android:action="android.intent.action.MAIN"
android:targetPackage="@string/config_cell_broadcast_receiver_package"
android:targetClass="com.android.cellbroadcastreceiver.CellBroadcastSettings"/>
</com.android.settingslib.RestrictedPreference>
<SwitchPreferenceCompat
android:key="silent_icons"
android:order="24"
android:title="@string/silent_notifications_status_bar"
settings:controller="com.android.settings.notification.SilentStatusBarPreferenceController"/>
<SwitchPreferenceCompat
android:key="show_snooze_options"
android:order="25"
android:title="@string/snooze_options_title"
settings:controller="com.android.settings.notification.SnoozeNotificationPreferenceController" />
<!-- Notification badging -->
<SwitchPreferenceCompat
android:key="notification_badging"
android:order="26"
android:title="@string/notification_badging_title"
settings:controller="com.android.settings.notification.BadgingNotificationPreferenceController"/>
<!-- Pulse notification light, on devices that support it -->
<SwitchPreferenceCompat
android:key="notification_pulse"
android:order="27"
android:title="@string/notification_pulse_title"
settings:controller="com.android.settings.notification.PulseNotificationPreferenceController"/>
<SwitchPreferenceCompat
android:key="notification_assistant"
android:order="28"
android:title="@string/notification_assistant_title"
android:summary="@string/notification_assistant_summary"
settings:controller="com.android.settings.notification.NotificationAssistantPreferenceController"/>
<!-- Heads up -->
<lineageos.preference.GlobalSettingSwitchPreference
android:key="heads_up_notifications_enabled"
android:order="29"
android:title="@string/heads_up_notifications_enabled_title"
android:summary="@string/heads_up_notifications_enabled_summary" />
<!-- Notification lights -->
<lineageos.preference.LineagePartsPreference
android:key="notification_lights"
settings:requiresConfig="@*android:bool/config_intrusiveNotificationLed"
settings:replacesKey="notification_pulse" />
</PreferenceCategory>
</PreferenceScreen>