Includes:
- Per-app refresh rate config
- Extreme refresh rate (Force all apps to run in maximum refresh rate)
- Temp refresh rate allowed (Used in MEMC)
- Refresh rate QS tile
Change-Id: I30024eb8ce63f00a6f2fa1ea0230b004ff93ac74
Signed-off-by: cjh1249131356 <cjh1249131356@gmail.com>
Settings: Create BasePerAppConfigFragment
* Allow more preference types instead of only ListPreference.
Signed-off-by: cjh1249131356 <cjh1249131356@gmail.com>
Settings: Create PerAppSwitchConfigFragment
Signed-off-by: cjh1249131356 <cjh1249131356@gmail.com>
Settings: Add top info for per-app settings
Signed-off-by: cjh1249131356 <cjh1249131356@gmail.com>
Settings: Don't show system apps for sensor block fragment
Signed-off-by: cjh1249131356 <cjh1249131356@gmail.com>
Settings: Pass uid in per-app config fragment
Signed-off-by: cjh1249131356 <cjh1249131356@gmail.com>
Settings: Allow specific allowed system app list for per-app fragment
* We need to allow dialer/messages/contact for fullscreen display settings.
Signed-off-by: cjh1249131356 <cjh1249131356@gmail.com>
Settings: Make sure per-app list has no duplicates
Signed-off-by: cjh1249131356 <cjh1249131356@gmail.com>
Settings: Warn user app reload before switching fullscreen display
Signed-off-by: cjh1249131356 <cjh1249131356@gmail.com>
Settings: Adapt for Android U QPR2
Signed-off-by: cjh1249131356 <cjh1249131356@gmail.com>
Settings: Use ArrayMap/Set instead of HashMap/Set
Signed-off-by: cjh1249131356 <cjh1249131356@gmail.com>
[joeyhuab: Squashed all changes by same author]
Settings: Add null check for PreferenceScreen in BasePerAppConfigFragment
Co-authored-by: NurKeinNeid <nurkeinneid@derpfest.org>
Signed-off-by: NurKeinNeid <nurkeinneid@derpfest.org>
Moved to just disabling most of the controllers for android10
instead of deleting all the preferences.
Change-Id: If4d73b6c5351d8f39fb672713dbe26ff9a225240
Signed-off-by: Jason Edson <jaysonedson@gmail.com>
Signed-off-by: Joey Huab <joey@evolution-x.org>
Signed-off-by: Dmitrii <bankersenator@gmail.com>
Added validation and fallback for battery divider to prevent division errors and ensure reasonable values.
Signed-off-by: NurKeinNeid <nurkeinneid@derpfest.org>
Log:
time: 1756667643368
msg: java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.widget.TextView
stacktrace: java.lang.IllegalStateException: Default drop down view should be a TextView,
at com.android.settings.deviceinfo.storage.StorageSelectionPreferenceController$StorageAdapter.getDropDownView(StorageSelectionPreferenceController.java:150)
at android.widget.Spinner$DropDownAdapter.getDropDownView(Spinner.java:1032)
at android.widget.Spinner$DropDownAdapter.getView(Spinner.java:1028)
at android.widget.Spinner.measureContentWidth(Spinner.java:889)
at android.widget.Spinner$DropdownPopup.computeContentWidth(Spinner.java:1265)
at android.widget.Spinner$DropdownPopup.show(Spinner.java:1291)
at android.widget.Spinner.performClick(Spinner.java:797)
at android.view.View.performClickInternal(View.java:8060)
at android.view.View.-$$Nest$mperformClickInternal(Unknown Source:0)
at android.view.View$PerformClick.run(View.java:31554)
at android.os.Handler.handleCallback(Handler.java:995)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loopOnce(Looper.java:248)
at android.os.Looper.loop(Looper.java:338)
at android.app.ActivityThread.main(ActivityThread.java:9068)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:596)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:932)
Caused by: java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.widget.TextView
at com.android.settings.deviceinfo.storage.StorageSelectionPreferenceController$StorageAdapter.getDropDownView(StorageSelectionPreferenceController.java:148)
... 17 more
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
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
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>
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>