If settings is running on an overlay display (such as floating window)
the context's default display points to the overlay display, which
always has its brightness set to 0. Use the internal (default) display's
brightness in this case.
Change-Id: I973edf8e2b65214df7b716eebb270abf3ad30c09
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Dmitrii <bankersenator@gmail.com>
Using a fixed layout size meant that the view was becoming scrollable
in landscape mode. Instead use the parent size with a max height and
width. Center the layout and cleanup unused elements while at it.
Change-Id: If39d67d679a3e77bc9210e98885b4addfd1660d7
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Dmitrii <bankersenator@gmail.com>
Prevent udfps view from disappearing if the activity is recreated due
to theme or configuration change while enrolling fingerprint.
Change-Id: I0bb0a3cf90c8119bab566fdb0f35db0ee858b75e
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Dmitrii <bankersenator@gmail.com>
Add null and bounds checks to prevent crashes when accessing the
fingerprint_acquired_vendor string array. This ensures safe fallback
behavior and logs appropriate error messages when the index is invalid.
Also improves stability during enrollment help handling on Google devices.
05-23 22:59:15.144 11647 11647 E AndroidRuntime: FATAL EXCEPTION: main
05-23 22:59:15.144 11647 11647 E AndroidRuntime: Process: com.android.settings, PID: 11647
05-23 22:59:15.144 11647 11647 E AndroidRuntime: java.lang.IllegalArgumentException: vendor string index is out of range of [0, -1] (too high)
05-23 22:59:15.144 11647 11647 E AndroidRuntime: at com.android.settings.biometrics.fingerprint.feature.SfpsEnrollmentFeatureImpl.getVendorString(go/retraceme bb4a03fdc34cff7f722829db90aff515e0ae20b72b33e5004f74889672317151:33)
05-23 22:59:15.144 11647 11647 E AndroidRuntime: at com.android.settings.biometrics.fingerprint.feature.SfpsEnrollmentFeatureImpl.getFeaturedVendorString(go/retraceme bb4a03fdc34cff7f722829db90aff515e0ae20b72b33e5004f74889672317151:48)
05-23 22:59:15.144 11647 11647 E AndroidRuntime: at com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling.onEnrollmentHelp(go/retraceme bb4a03fdc34cff7f722829db90aff515e0ae20b72b33e5004f74889672317151:7)
05-23 22:59:15.144 11647 11647 E AndroidRuntime: at com.android.settings.biometrics.BiometricEnrollSidecar.onEnrollmentHelp(go/retraceme bb4a03fdc34cff7f722829db90aff515e0ae20b72b33e5004f74889672317151:5)
05-23 22:59:15.144 11647 11647 E AndroidRuntime: at com.android.settings.biometrics.fingerprint.FingerprintEnrollSidecar.access$201(go/retraceme bb4a03fdc34cff7f722829db90aff515e0ae20b72b33e5004f74889672317151:1)
05-23 22:59:15.144 11647 11647 E AndroidRuntime: at com.android.settings.biometrics.fingerprint.FingerprintEnrollSidecar$1.onEnrollmentHelp(go/retraceme bb4a03fdc34cff7f722829db90aff515e0ae20b72b33e5004f74889672317151:3)
05-23 22:59:15.144 11647 11647 E AndroidRuntime: at com.android.settings.biometrics.fingerprint.FingerprintUpdater$NotifyingEnrollmentCallback.onEnrollmentHelp(go/retraceme bb4a03fdc34cff7f722829db90aff515e0ae20b72b33e5004f74889672317151:3)
05-23 22:59:15.144 11647 11647 E AndroidRuntime: at android.hardware.fingerprint.FingerprintCallback.sendAcquiredResult(FingerprintCallback.java:199)
05-23 22:59:15.144 11647 11647 E AndroidRuntime: at android.hardware.fingerprint.FingerprintManager$FingerprintServiceReceiver.lambda$onAcquired$1(FingerprintManager.java:1572)
05-23 22:59:15.144 11647 11647 E AndroidRuntime: at android.hardware.fingerprint.FingerprintManager$FingerprintServiceReceiver.$r8$lambda$wcZms5DTCBGW5VTEeJRCWEIwTW4(Unknown Source:0)
05-23 22:59:15.144 11647 11647 E AndroidRuntime: at android.hardware.fingerprint.FingerprintManager$FingerprintServiceReceiver$$ExternalSyntheticLambda10.run(D8$$SyntheticClass:0)
05-23 22:59:15.144 11647 11647 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:991)
05-23 22:59:15.144 11647 11647 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
05-23 22:59:15.144 11647 11647 E AndroidRuntime: at android.os.Looper.loopOnce(Looper.java:232)
05-23 22:59:15.144 11647 11647 E AndroidRuntime: at android.os.Looper.loop(Looper.java:317)
05-23 22:59:15.144 11647 11647 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:8930)
05-23 22:59:15.144 11647 11647 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
05-23 22:59:15.144 11647 11647 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:595)
05-23 22:59:15.144 11647 11647 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
The current code for setting device name based on market name is incorrect; this means that if the required property exists on a device, it will always use the market name regardless if the user has customized their device name.
Fix this by checking if the market name prop exists if and only if there is no customized device name, then falling back to the device model if said prop doesn't exist.
Signed-off-by: John Vincent <git@tenseventyseven.cf>
Signed-off-by: Dmitrii <bankersenator@gmail.com>
4 22:13:24.995 7022 7022 E AndroidRuntime: FATAL EXCEPTION: main
10-24 22:13:24.995 7022 7022 E AndroidRuntime: Process: com.android.settings, PID: 7022
10-24 22:13:24.995 7022 7022 E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.settings/com.android.settings.SubSettings}: java.lang.NullPointerException: Attempt to invoke virtual method 'int androidx.preference.PreferenceGroup.getPreferenceCount()' on a null object reference
10-24 22:13:24.995 7022 7022 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3782)
10-24 22:13:24.995 7022 7022 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3922)
10-24 22:13:24.995 7022 7022 E AndroidRuntime: at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
10-24 22:13:24.995 7022 7022 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:139)
10-24 22:13:24.995 7022 7022 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:96)
10-24 22:13:24.995 7022 7022 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2443)
10-24 22:13:24.995 7022 7022 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106)
10-24 22:13:24.995 7022 7022 E AndroidRuntime: at android.os.Looper.loopOnce(Looper.java:205)
10-24 22:13:24.995 7022 7022 E AndroidRuntime: at android.os.Looper.loop(Looper.java:294)
10-24 22:13:24.995 7022 7022 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:8177)
10-24 22:13:24.995 7022 7022 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
10-24 22:13:24.995 7022 7022 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
10-24 22:13:24.995 7022 7022 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
10-24 22:13:24.995 7022 7022 E AndroidRuntime: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int androidx.preference.PreferenceGroup.getPreferenceCount()' on a null object reference
10-24 22:13:24.995 7022 7022 E AndroidRuntime: at com.android.settings.accessibility.AccessibilitySettings.updateCategoryOrderFromArray(AccessibilitySettings.java:479)
10-24 22:13:24.995 7022 7022 E AndroidRuntime: at com.android.settings.accessibility.AccessibilitySettings.updateServicePreferences(AccessibilitySettings.java:398)
10-24 22:13:24.995 7022 7022 E AndroidRuntime: at com.android.settings.accessibility.AccessibilitySettings.updateAllPreferences(AccessibilitySettings.java:320)
10-24 22:13:24.995 7022 7022 E AndroidRuntime: at com.android.settings.accessibility.AccessibilitySettings.onCreate(AccessibilitySettings.java:201)
Signed-off-by: minaripenguin <minaripenguin@users.noreply.github.com>
Signed-off-by: Dmitrii <bankersenator@gmail.com>
* CAF has fixed this year-old glitch but it seems like
only a certain "CT PA" requires it and hence the code
is guarded (check 4bb2825836dd5099447508d3cb321952e1f7a5fa and a7162edd8e811a1918f66769111f8cbda3a993fe)
* Let's make the fix available for all dual SIM devices!
Change-Id: Icfc1e54047a0ecc4b52999c798d2e6a580309e46
(cherry picked from commit d7876e1cc4c2284a2b6c167169b0279367fc76f6)
Signed-off-by: Dmitrii <bankersenator@gmail.com>
AICP Pie: Modified defaults to false.
Brought up to 10 with androidx
@jhenrique09 edits: Adapt strings, and also use config_pocketModeSupported on isAvailable
Change-Id: I398c8f0be23c27cbcf1fb57eed44a801b31bc6c9
Settings: Remove pocket lock toggle icons
* Also move it to lockscreen settings
Change-Id: Iae8a6b4739c317e723c0cfad46db5ceb494f74f8
Signed-off-by: Dmitrii <bankersenator@gmail.com>
* [joeyhuab] Adapt to A16; Remove MainSwitchPreference.updateStatus like 041bc113eb
Separate configs for st2w and lift to wake
Follow our convention in the rest of the switches in that page
Change-Id: Ibd82d808aca2caf3f9c4518eb0c2e5f60669759e
Signed-off-by: Cyber Knight <cyberknight755@gmail.com>
Signed-off-by: Edwiin Kusuma Jaya <kutemeikito0905@gmail.com>
06-29 23:09:26.799 5606 5606 E AndroidRuntime: Caused by: java.lang.IllegalArgumentException: Receiver not registered: com.android.settings.connecteddevice.NfcAndPaymentFragmentController$1@95014d9
06-29 23:09:26.799 5606 5606 E AndroidRuntime: at android.app.LoadedApk.forgetReceiverDispatcher(LoadedApk.java:1695)
06-29 23:09:26.799 5606 5606 E AndroidRuntime: at android.app.ContextImpl.unregisterReceiver(ContextImpl.java:2025)
06-29 23:09:26.799 5606 5606 E AndroidRuntime: at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:843)
06-29 23:09:26.799 5606 5606 E AndroidRuntime: at com.android.settings.connecteddevice.NfcAndPaymentFragmentController.onStop(NfcAndPaymentFragmentController.java:106)
06-29 23:09:26.799 5606 5606 E AndroidRuntime: at com.android.settingslib.core.lifecycle.Lifecycle.onStop(Lifecycle.java:169)
06-29 23:09:26.799 5606 5606 E AndroidRuntime: at com.android.settingslib.core.lifecycle.Lifecycle.-$$Nest$monStop(Lifecycle.java:0)
06-29 23:09:26.799 5606 5606 E AndroidRuntime: at com.android.settingslib.core.lifecycle.Lifecycle$LifecycleProxy.onLifecycleEvent(Lifecycle.java:231)
Signed-off-by: Dmitrii <bankersenator@gmail.com>
* Rename variables/arguments to clarify that we are working with policy
flags, meaning that there can be multiple policies described by a
uid policy, not just one.
* When checking policies for a policy flag, do a proper flag check,
rather than a direct comparison that assumes one single policy.
* Only alter the displayed setting for the "Background network access"
and "Unrestricted mobile data usage" toggles in response to underlying
policy changes, to ensure their state represents the current reality.
* Add a couple explanatory comments.
Test: Manual: Install an app that does not have INTERNET permission.
Open the "Unrestricted mobile data" page of Settings. Try to activate
the toggle for such an app. The toggle should activate successfully
without needing to be tapped twice.
Issue: calyxos#2547
Change-Id: I9f2f028be4a21158a68c60982253d85586f60cdb
Log:
12:52:01.470 3086 5008 E AndroidRuntime: FATAL EXCEPTION: AsyncTask #2
03-31 12:52:01.470 3086 5008 E AndroidRuntime: Process: com.android.settings, PID: 3086
03-31 12:52:01.470 3086 5008 E AndroidRuntime: java.lang.RuntimeException: An error occurred while executing doInBackground()
03-31 12:52:01.470 3086 5008 E AndroidRuntime: at androidx.loader.content.ModernAsyncTask$2.done(ModernAsyncTask.java:119)
03-31 12:52:01.470 3086 5008 E AndroidRuntime: at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:434)
03-31 12:52:01.470 3086 5008 E AndroidRuntime: at java.util.concurrent.FutureTask.setException(FutureTask.java:303)
03-31 12:52:01.470 3086 5008 E AndroidRuntime: at java.util.concurrent.FutureTask.run(FutureTask.java:322)
03-31 12:52:01.470 3086 5008 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156)
03-31 12:52:01.470 3086 5008 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
03-31 12:52:01.470 3086 5008 E AndroidRuntime: at java.lang.Thread.run(Thread.java:1119)
03-31 12:52:01.470 3086 5008 E AndroidRuntime: Caused by: java.lang.IllegalArgumentException: Volume external_primary not found
03-31 12:52:01.470 3086 5008 E AndroidRuntime: at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
03-31 12:52:01.470 3086 5008 E AndroidRuntime: at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:153)
03-31 12:52:01.470 3086 5008 E AndroidRuntime: at android.content.ContentProviderProxy.query(ContentProviderNative.java:495)
03-31 12:52:01.470 3086 5008 E AndroidRuntime: at android.content.ContentResolver.query(ContentResolver.java:1229)
03-31 12:52:01.470 3086 5008 E AndroidRuntime: at com.android.settings.deviceinfo.storage.StorageAsyncLoader.getFilesSize(StorageAsyncLoader.java:143)
03-31 12:52:01.470 3086 5008 E AndroidRuntime: at com.android.settings.deviceinfo.storage.StorageAsyncLoader.getStorageResultsForUsers(StorageAsyncLoader.java:93)
03-31 12:52:01.470 3086 5008 E AndroidRuntime: at com.android.settings.deviceinfo.storage.StorageAsyncLoader.loadInBackground(StorageAsyncLoader.java:76)
03-31 12:52:01.470 3086 5008 E AndroidRuntime: at com.android.settings.deviceinfo.storage.StorageAsyncLoader.loadInBackground(StorageAsyncLoader.java:55)
03-31 12:52:01.470 3086 5008 E AndroidRuntime: at androidx.loader.content.AsyncTaskLoader.onLoadInBackground(AsyncTaskLoader.java:289)
03-31 12:52:01.470 3086 5008 E AndroidRuntime: at androidx.loader.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:57)
03-31 12:52:01.470 3086 5008 E AndroidRuntime: at androidx.loader.content.ModernAsyncTask$1.call(ModernAsyncTask.java:96)
03-31 12:52:01.470 3086 5008 E AndroidRuntime: at java.util.concurrent.FutureTask.run(FutureTask.java:317)
03-31 12:52:01.470 3086 5008 E AndroidRuntime: ... 3 more
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
* We have customization for 3 buttons included here.
* Instead hide "Gesture Navigation" if config_swipe_up_gesture_setting_available is disabled.
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
* settings: Improve RAM summary formatting to show one decimal place
* settings: Update RAM formatting to use gigabytes with no decimal places + base 10 units for closer accuracy to advertised RAM sizes
Log:
time: 1740837422345
msg: java.lang.NullPointerException: Attempt to read from field 'java.lang.String[] android.net.TetheringConfigurationParcel.tetherableWifiRegexs' on a null object reference in method 'java.lang.String[] android.net.TetheringManager.getTetherableWifiRegexs()'
stacktrace: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.settings/com.android.settings.Settings$WifiTetherSettingsActivity}: java.lang.NullPointerException: Attempt to read from field 'java.lang.String[] android.net.TetheringConfigurationParcel.tetherableWifiRegexs' on a null object reference in method 'java.lang.String[] android.net.TetheringManager.getTetherableWifiRegexs()'
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4129)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4316)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:222)
at android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem(TransactionExecutor.java:133)
at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:103)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:80)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2719)
at android.os.Handler.dispatchMessage(Handler.java:109)
at android.os.Looper.loopOnce(Looper.java:232)
at android.os.Looper.loop(Looper.java:317)
at android.app.ActivityThread.main(ActivityThread.java:8787)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:594)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:871)
Caused by: java.lang.NullPointerException: Attempt to read from field 'java.lang.String[] android.net.TetheringConfigurationParcel.tetherableWifiRegexs' on a null object reference in method 'java.lang.String[] android.net.TetheringManager.getTetherableWifiRegexs()'
at android.net.TetheringManager.getTetherableWifiRegexs(TetheringManager.java:1637)
at com.android.settings.wifi.tether.WifiTetherBasePreferenceController.<init>(WifiTetherBasePreferenceController.java:50)
at com.android.settings.wifi.tether.WifiTetherSSIDPreferenceController.<init>(WifiTetherSSIDPreferenceController.java:59)
at com.android.settings.wifi.tether.WifiTetherSettings.buildPreferenceControllers(WifiTetherSettings.java:295)
at com.android.settings.wifi.tether.WifiTetherSettings.createPreferenceControllers(WifiTetherSettings.java:289)
at com.android.settings.dashboard.DashboardFragment.onAttach(DashboardFragment.java:127)
at com.android.settings.wifi.tether.WifiTetherSettings.onAttach(WifiTetherSettings.java:206)
at androidx.fragment.app.Fragment.performAttach(Fragment.java:3075)
at androidx.fragment.app.FragmentStateManager.attach(FragmentStateManager.java:510)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:279)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2211)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2106)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2049)
at androidx.fragment.app.FragmentManager.executePendingTransactions(FragmentManager.java:779)
at com.android.settings.SettingsActivity.switchToFragment(SettingsActivity.java:723)
at com.android.settings.SettingsActivity.launchSettingFragment(SettingsActivity.java:515)
at com.android.settings.SettingsActivity.createUiFromIntent(SettingsActivity.java:324)
at com.android.settings.SettingsActivity.onCreate(SettingsActivity.java:283)
at android.app.Activity.performCreate(Activity.java:9019)
at android.app.Activity.performCreate(Activity.java:8997)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1532)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4111)
... 13 more
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
This fixes lens & CTS for vanilla users with full GSA installed.
While not enabling it for users who only have the stub.
Check if the activity exists to achieve that.
Same as we do in L3, see: cd4c6afd5b
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>