From ff7e0707a8567c37dbe4a49cdd1c4c2f9252f897 Mon Sep 17 00:00:00 2001 From: Alejandro Nijamkin Date: Fri, 31 Jan 2025 17:33:57 -0800 Subject: Adds useful message to UserSettingsProxy. This should help in debugging the associated bug as we don't know which calling code is attempting to observe a setting for a user that was deleted a long time ago and we need to make sure we stop that from happening. Bug: 362308685 Test: deployed on phone and verified that System UI seems to work Flag: EXEMPT only adds extra message to stacktraces Change-Id: Ifb9a92e7abd31c89f8fa6c44e67e40dc07ed9c0d --- .../systemui/util/settings/UserSettingsProxy.kt | 50 +++++++++++++++------- 1 file changed, 35 insertions(+), 15 deletions(-) diff --git a/packages/SystemUI/pods/com/android/systemui/util/settings/UserSettingsProxy.kt b/packages/SystemUI/pods/com/android/systemui/util/settings/UserSettingsProxy.kt index 1a5517059ca4..68ad11e3ec01 100644 --- a/packages/SystemUI/pods/com/android/systemui/util/settings/UserSettingsProxy.kt +++ b/packages/SystemUI/pods/com/android/systemui/util/settings/UserSettingsProxy.kt @@ -157,7 +157,11 @@ interface UserSettingsProxy : SettingsProxy { userHandle: Int, ) = settingsScope.launch("registerContentObserverForUserAsync-A") { - registerContentObserverForUserSync(getUriFor(name), settingsObserver, userHandle) + try { + registerContentObserverForUserSync(getUriFor(name), settingsObserver, userHandle) + } catch (e: SecurityException) { + throw SecurityException("registerContentObserverForUserAsync-A, name: $name", e) + } } /** Convenience wrapper around [ContentResolver.registerContentObserver] */ @@ -198,7 +202,11 @@ interface UserSettingsProxy : SettingsProxy { userHandle: Int, ) = settingsScope.launch("registerContentObserverForUserAsync-B") { - registerContentObserverForUserSync(uri, settingsObserver, userHandle) + try { + registerContentObserverForUserSync(uri, settingsObserver, userHandle) + } catch (e: SecurityException) { + throw SecurityException("registerContentObserverForUserAsync-B, uri: $uri", e) + } } /** @@ -215,7 +223,11 @@ interface UserSettingsProxy : SettingsProxy { @WorkerThread registered: Runnable, ) = settingsScope.launch("registerContentObserverForUserAsync-C") { - registerContentObserverForUserSync(uri, settingsObserver, userHandle) + try { + registerContentObserverForUserSync(uri, settingsObserver, userHandle) + } catch (e: SecurityException) { + throw SecurityException("registerContentObserverForUserAsync-C, uri: $uri", e) + } registered.run() } @@ -274,12 +286,16 @@ interface UserSettingsProxy : SettingsProxy { userHandle: Int, ) { settingsScope.launch("registerContentObserverForUserAsync-D") { - registerContentObserverForUserSync( - getUriFor(name), - notifyForDescendants, - settingsObserver, - userHandle, - ) + try { + registerContentObserverForUserSync( + getUriFor(name), + notifyForDescendants, + settingsObserver, + userHandle, + ) + } catch (e: SecurityException) { + throw SecurityException("registerContentObserverForUserAsync-D, name: $name", e) + } } } @@ -338,12 +354,16 @@ interface UserSettingsProxy : SettingsProxy { userHandle: Int, ) = settingsScope.launch("registerContentObserverForUserAsync-E") { - registerContentObserverForUserSync( - uri, - notifyForDescendants, - settingsObserver, - userHandle, - ) + try { + registerContentObserverForUserSync( + uri, + notifyForDescendants, + settingsObserver, + userHandle, + ) + } catch (e: SecurityException) { + throw SecurityException("registerContentObserverForUserAsync-E, uri: $uri", e) + } } /** -- cgit v1.2.3-59-g8ed1b