On some devices, udfps is kinda near to nav bar
so the enroll circle ends up behind the nav bar
and that looks not good.
Change-Id: I5184f8e8c34693d145199c2081e543656d8d702c
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
It doesn't make sense to show it only when there is a vibration-
supported input device, because that makes the setting not
discoverable.
Change-Id: Ib4a5021007edb08bc3ecfda1967588f7f9825db8
* Animation by Sahul Krishan
* Adapt to Android 11 by @mickaelmendes50
[Hernán Castañón] Adaptive Playback: allow choosing no timeout.
Co-authored-by: Hernán Castañón Álvarez <herna@paranoidandroid.co>
Change-Id: I82c20b89d06b722d8f9da1bdb14eb096a7d088c9
AdaptivePlayback: Add a intro text to the fragment
* Let's help users to understand what the feature does
by adding a little introduction text.
Change-Id: Ie9ef15d7f60ab2197c30c79434c9fb876c498cd5
Co-authored-by: AshutoshSundresh <ashutoshsundresh@gmail.com>
Signed-off-by: Mesquita <mesquita@aospa.co>
Settings: Move "Adaptive Playback" option to Sound Settings.
* Our gestures category looks bloated with features.
Move this to Sound Settings where it feels better and more homely.
Change-Id: I28fd022a4998141435a1e89a027b7a1fe6f75537
Signed-off-by: Mesquita <mesquita@aospa.co>
AdaptivePlayback: Rename it to 'Smart Pause' to keep a better fluency
* As we already have an 'Adaptive Sound' in sound settings
Change-Id: Iaca4b7d65fe490ee6462ba49907316930deaeaa5
Signed-off-by: Mesquita <mesquita@aospa.co>
Change-Id: I82c20b89d06b722d8f9da1bdb14eb096a7d088c9
Avoid scrolling by making the illustration fit available space.
Change-Id: I5300875b7790ee3664eff22d3517289ed04ef696
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Dmitrii <bankersenator@gmail.com>
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>