summaryrefslogtreecommitdiff
path: root/core/java
AgeCommit message (Collapse)Author
2022-08-05base: ChooserActivity: Don't show image edit button on multiple targetsHEADsugisawa-mr1Aayush Gupta
Ie52aaab90f678d32d9b67f95d81f86b82d1b9c7c introduced edit button but didn't took into account that there can be multiple images being shared. This patch adds a check to ensure that this action is not shown in such cases. Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com> Change-Id: I787cd9cfd873242542b330a522bed5df9deb62a4
2022-08-05Merge tag 'LA.QSSI.12.0.r1-08300-qssi.0' into sugisawa-mr1alk3pInjection
"LA.QSSI.12.0.r1-08300-qssi.0" Change-Id: Ie275081952d33914848f88404af4b28f7b3dea92
2022-06-29Merge tag 'LA.QSSI.12.0.r1-07900.02-qssi.0' into sugisawa-mr1alk3pInjection
"LA.QSSI.12.0.r1-07900.02-qssi.0" Change-Id: Ie8af0b8cc073d2b8a74655a107abe33d6a414ba9
2022-06-14Update frame interval when refresh rate changesJun Wang
Change-Id: I7ee7b257b41e2435d004782ee221e26c733a98b9 CRs-Fixed: 3219183
2022-06-12Revert "Merge s-mpr-2022-06"Matt Lee
Revert submission 732792 Reason for revert: build failure Reverted Changes: I3cbe7c924:Merge s-mpr-2022-06 I9881453ba:Don't set background color if TDA doesn't have a v... I57fa88c6f:Use TDA for background color instead of new color ... Ic2fa89b76:Dialing phone state should update active sub Change-Id: I9709841558bfcb325f7e205f5f5ec89c620d14dd
2022-06-12Merge s-mpr-2022-06Matt Lee
Change-Id: I3cbe7c92451e925d58baf7980a9d8556abebc56c
2022-06-02Merge tag 'LA.QSSI.12.0.r1-07600-qssi.0' into sugisawa-mr1alk3pInjection
"LA.QSSI.12.0.r1-07600-qssi.0" Change-Id: I17291c56a5444a9f8e47f5da76617beba25cd784
2022-05-27perf: IME boostKarthik Gopalan
Add IME Boost Hook CRs-Fixed: 3195944 Change-Id: Icfa3e21fe22016a135753476f8fb9e3ce244ae74
2022-05-07fonts: Respect font scale for dynamic tracking calculationsDanny Lin
This fixes clipped/truncated text in some apps, such as buttons in Shop. Change-Id: I9a34bcb4faff822ce0dcb66a50f96083126d1b5f
2022-05-07Implement Inter Dynamic Metrics for system UI fontDanny Lin
Inter, our system UI font of choice, works best with the official Dynamic Metrics. The font's default spacing makes text relatively sparse compared to Roboto, Google Sans Text, and other common UI fonts. Dynamic Metrics optimizes tracking (letter spacing) based on font size to improve appearance. Spacing is increased for small text and decreased for larger text, making it generally more compact and closer to Apple's SF Pro. Math.exp is relatively expensive, so use a precalculated lookup table for common sizes (up to 32dp). The LUT follows steps of 0.5dp so we can safely use integer casting. For compatibility, only the default system UI font is affected, and only if spacing is unset (null or 0). Change-Id: I48642f05f4b60b07326f657aaac76d968465a5dd
2022-05-07base: Long press power button to toggle flashlight [1/2]ezio84
* Thanks to beanstown106 for the initial longpress action calls in PhoneWindowManager (improved by lineage guys) * Remove the settings pref if the device doesn't have flashlight * Vibrate when toggling torch to let the user know of unwanted toggling in the pocket (even if vibration is disabled by user) * Allow torch action also on ambient display [AEX Edits] : - Port to S - simplify code [mydongistiny]: - Fixed for android10 [DennySPB] : - base: ScreenOff torch: Allow to disable torch when screen is on [mickaelmendes50] : - Adapt to AOSPA * We don't allow users to use the Double Press power option, so remove the non used code. * Removed "double press power to toggle torch" * Removed "handle camera gesture here instead of extensions" * Removed "Add 170ms delay for double tap action" Change-Id: I12da044f86c7b625872607529cf8524615cf576b
2022-05-07base: Long press volume button to skip tracks [1/2]Austin T. Conn
Bring Forward Volume Rocker Track Change Requires Settings Change (packages/apps/Settings) * rituj : AudioService: Allow volume-key long press even when screen is off * mickaelmendes50 : Adapt to Android 11 * Drop previous changes of AudioService as, in theory, the event should never reach it at all. Change-Id: I70b00e08fe48707110725dd1daa56b1e48d15a03 Fix volume rocker skip track on Ambient Display and Lift to Wake we need to check if dream service is dozing before checking keyguard status Change-Id: Ic3a6c830496188bb6edf27043cd24eb2d553bb82 Fix long press volume buttons skip tracks Without that patch, the volume changes up or down prior to skipping tracks because the sendvolumekeyevent doesn't have the mayChangeVolume condition. Also, that part is useless cause the mUseTvRouting condition is taken care of correctly later. Change-Id: I88757315f135f013e7692861d46b3a07fbfc07d5
2022-05-07SystemUI: Implement hide gestural navigation hint bar [1/2]Jesse Chan
Author: Jesse Chan <jc@lineageos.org> Date: Tue Jun 2 13:59:52 2020 +0800 SystemUI: Set no hint overlay to highest priority As overlays are also used to apply navigation mode, it is needed to set our customization overlay to highest priority to ensure it is applied. Change-Id: I41ca4b7ea99fea9f62d2e8ece5114f682e8e7fe9 Signed-off-by: Jesse Chan <jc@lineageos.org> Change-Id: Ic6695dfe929db443f169d59f153e14a6de249590 Signed-off-by: Jesse Chan <jc@lineageos.org>
2022-05-07BatteryService: Add support for OEM fast charger detectionAlexander Martinz
Allows to indicate, whether a device is charged using a proprietary OEM fast charge solution, which write their status to sysfs. The OEM fast charge detection tries to be as generic as possible and is configured via overlays. Path to sysfs to read status - core/res/res/values/custom_config.xml - config_oemFastChargerStatusPath Value expected from read status (Defaults to "1" if not specified) - core/res/res/values/custom_config.xml - config_oemFastChargerStatusValue Change-Id: I6f3598a5a6a3efc76553261d2cf73094170d4110 Signed-off-by: Adithya R <gh0strider.2k18.reborn@gmail.com>
2022-05-07SystemUI: Add double tap to sleep gestureRashed Abdel-Tawab
Author: Roman Birg <roman@cyngn.com> Date: Sun Nov 23 06:54:06 2014 -0800 SystemUI: double tap to sleep improvements * Make it more reliable * Add it to keyguard * Add a content observer to not always query Settings.System on every touch event Change-Id: I292c4d9d9f810843590b7a9ec6e15b99ac44009d Signed-off-by: Roman Birg <roman@cyngn.com> Author: Adnan Begovic <adnan@cyngn.com> Date: Wed Nov 11 12:05:59 2015 -0800 fw: Move DOUBLE_TAP_SLEEP_GESTURE to CMSettings. Change-Id: I8274b7c241cef6835a1114a702e68c95b6d2e036 Author: Zhao Wei Liew <zhaoweiliew@gmail.com> Date: Fri Oct 7 08:56:25 2016 +0800 SystemUI: Use Tuner API for CM settings Get rid of all the excess code by implementing TunerService.Tunable and observing any changes made to the settings through it. Remove UserContentObserver as the Tuner API handles user switches. Also remove some unused imports that were introduced in earlier CM commits, but were never removed since. Change-Id: Iecafafabdaec82b3b3c72293bea865de48f0e90a Author: Altaf-Mahdi <altaf.mahdi@gmail.com> Date: Wed Nov 11 16:07:49 2015 -0500 Double tap to sleep anywhere on the lock screen [1/3] Change-Id: I7dd46f3fafeb2e629974c0f32083d4d9774fb1de [neo: Using Tuner API.] Signed-off-by: Pranav Vashi <neobuddy89@gmail.com> Author: dianlujitao <dianlujitao@lineageos.org> Date: Thu Feb 27 12:57:07 2020 +0800 SystemUI: Don't sleep on double tap below status bar Change-Id: Ic64c29eae63e96f34dc37cda355401b7e2cd2d39 [Pig]: Forward port to R [bgcngm]: Forward port to S POSP edit: keep the lockscreen part only also add dozing and ambient pulsing checks Change-Id: I0281d23cb3ad5f8f2b67d08ae431e8a962a60927
2022-05-07ViewConfiguration: Set scroll friction to 0.006fAlex Naidis
Reduce scroll friction to a better default value which is used in Scroller and Overscroller. Change-Id: I66a7663a18bb80263c51f3d54a2bb1e3fe5d0b4d Signed-off-by: Alex Naidis <alex.naidis@linux.com>
2022-05-07AbsListView: Improve scrolling cachePawit Pornkitprasan
Scrolling cache helps make short scrolls/flings smooth but will cause stutter when long flings are made. This patch disables scrolling cache when long flings are made. This patch also fixes a related bug where scrolling cache will not be enabled properly when transitioning from flinging to scrolling. Patch Set 2: Calculate threshold based on maximum velocity (Sang Tae Park) Change-Id: Iad52a35120212c871ffd35df6184aeb678ee44aa Signed-off-by: Alex Naidis <alex.naidis@linux.com>
2022-05-07perf: Hardcode hal version to 2.2alk3pInjection
I BoostFramework: BoostFramework() : Exception_1 = perfGetHalVer not supported Change-Id: I288427996758233e1de02610802c7df7081821e6
2022-05-07Zygote: Fix an issue when empty the usap pool.zhangjianqiu
When empty the usap pool, the usap processes may be blocked by usapPoolSocket.accept(), which cause the usap process fail to kill immediately. So we can move the position of blockSigTerm after usapPoolsSocket.accept() and delele the old blockSigTerm in the while loop. Test: manual test. 1.setprop persist.device_config.runtime_native.usap_pool_enabled true. After 1 min, trigger fill usap pools. 2.setprop persist.device_config.runtime_native.usap_pool_enabled false. After 1 min, trigger empty usap pools. 3.repeat step 1. Signed-off-by: zhangjianqiu <zhangjianqiu@oppo.com> Change-Id: I657940b30f71cdc717c673be6d70738e61e2bb68
2022-05-05Merge s-mpr-2022-05Matt Lee
Change-Id: I26c8656231e5a535c3b3555f99b588fe03c9ef55
2022-05-06Use tmpArgBuffer correctly when argBuffer is nullWang Han
* Seems to be a typo and can cause NPE. Change-Id: I7e253c97e02767a076d9450e88ccea08c5122bb1
2022-05-05Include saved battery history chunks into BatteryUsageStats parcelDmitri Plotnikov
Bug: 209297031 Test: Test: atest FrameworksCoreTests:BatteryUsageStatsTest FrameworksCoreTests:BatteryUsageStatsProviderTest Merged-In: I369d863b6f6fd488030aa031cc465bef6ce99ab8 Change-Id: Ifc70a49b731b5510e7bcd049e0c12d9ac7f68f44
2022-05-05Fix concurrency issue with BatteryUsageStatsDmitri Plotnikov
BatteryUsageStats is created under a BatteryStatsImpl lock. One of the elements of BatteryUsageStats is the battery history buffer Parcel. Once the BatteryUsageStats object is created, the BatteryStatsImpl lock is released and the history buffer parcel continues to be appended by BatteryStatsImpl. The Parcel may even be reset altogether if the battery stats session is reset. The BatteryUsageStats object is parceled during the getBatteryUsageStats binder call. Any modification of the history buffer concurrent with parceling causes a crash. Bug: 194256984 Test: atest FrameworksCoreTests:BatteryUsageStatsTest FrameworksCoreTests:BatteryUsageStatsProviderTest Change-Id: I262c4608cd02943f926e8daaf3e782c6fe6eaee7
2022-05-05Editor: Disable magnifier position animationDanny Lin
In my opinion, this animation serves no purpose because it doesn't correspond to any animations in the text selection/handle flow, and is barely noticeable in typical text selection cases. In addition, it makes the magnifier feel slow/laggy when selecting a large block of text quickly. Change-Id: I5fed9fc06db4491dc2811815741830001d295030
2022-05-05PackageInfo: Optimize ApplicationInfo creationDanny Lin
When opening and closing activities in Settings, a significant amount of CPU time is spent in ART interface method call trampolines, as reported by simpleperf: 0.32% /apex/com.android.art/lib64/libart.so art_quick_imt_conflict_trampoline PackageInfoWithoutStateUtils is responsible for a substantial portion of the time: 0.34% 0.24% /apex/com.android.art/lib64/libart.so art_quick_imt_conflict_trampoline | -- art_quick_imt_conflict_trampoline | |--5.48%-- android.content.pm.parsing.PackageInfoWithoutStateUtils.appInfoFlags | com.android.server.pm.parsing.pkg.PackageImpl.toAppInfoWithoutState | android.content.pm.parsing.PackageInfoWithoutStateUtils.generateApplicationInfoUnchecked | com.android.server.pm.parsing.PackageInfoUtils.generateApplicationInfo | | | |--33.53%-- com.android.server.pm.parsing.PackageInfoUtils.generateActivityInfo | | | | | |--76.24%-- com.android.server.pm.ComponentResolver$ActivityIntentResolver.newResult To avoid the overhead of calling methods through interfaces, opportunistically cast ParsingPackageRead objects to the real implementation and access fields directly on it. This isn't pretty, but it reduces the CPU time wasted on interface method calls. Test: simpleperf record -a; verify that PackageInfoWithoutStateUtils.appInfoFlags no longer appears under art_quick_imt_conflict_trampoline Change-Id: I475ba804c61739c7537e664b09973665f001270b
2022-05-05LayoutInflater: Opportunistically create views directly for performanceDanny Lin
When opening and closing activities in Settings, a significant amount of CPU time is spent performing JNI calls, as reported by simpleperf: 0.39% /system/framework/arm64/boot-framework.oat art_jni_trampoline Reflection in LayoutInflater is responsible for a significant portion of the time spent in the JNI trampoline: 6.08% 0.08% /apex/com.android.art/javalib/arm64/boot.oat art_jni_trampoline | -- art_jni_trampoline | |--12.38%-- java.lang.reflect.Constructor.newInstance | |--0.09%-- [hit in function] | | | |--88.32%-- android.view.LayoutInflater.createView | | | | | |--83.39%-- com.android.internal.policy.PhoneLayoutInflater.onCreateView | | | android.view.LayoutInflater.onCreateView | | | android.view.LayoutInflater.onCreateView | | | android.view.LayoutInflater.createViewFromTag | | | | | | | |--72.73%-- android.view.LayoutInflater.rInflate | | | | | | | | | |--57.90%-- android.view.LayoutInflater.rInflate | | | | | | | | | | | |--94.90%-- android.view.LayoutInflater.inflate | | | | | | android.view.LayoutInflater.inflate | | | | | | |--35.86%-- [hit in function] | | | | | | | | | | | | | |--58.15%-- androidx.preference.PreferenceGroupAdapter.onCreateViewHolder Empirical testing of interacting with ~113 real-world apps reveals that many of the most frequently-inflated views are framework classes: 13486 android.widget.LinearLayout 6930 android.widget.View 6447 android.widget.FrameLayout 5613 android.widget.ViewStub 5608 androidx.constraintlayout.widget.ConstraintLayout 4722 android.widget.TextView 4431 com.google.android.material.textview.MaterialTextView 3570 eu.faircode.email.FixedTextView 3044 android.widget.ImageView 2665 android.widget.RelativeLayout 1694 android.widget.Space 979 androidx.preference.internal.PreferenceImageView 926 androidx.appcompat.view.menu.ActionMenuItemView 884 androidx.appcompat.widget.AppCompatImageView 855 slack.uikit.components.icon.SKIconView 770 android.widget.ProgressBar 743 com.fastaccess.ui.widgets.FontTextView 541 androidx.recyclerview.widget.RecyclerView 442 androidx.appcompat.widget.AppCompatTextView 404 org.mariotaku.twidere.view.MediaPreviewImageView 393 com.moez.QKSMS.common.widget.QkTextView 382 android.widget.Button 365 slack.widgets.core.textview.ClickableLinkTextView 365 slack.uikit.components.avatar.SKAvatarView 352 com.google.android.libraries.inputmethod.widgets.SoftKeyView 351 com.android.launcher3.BubbleTextView 315 slack.widgets.core.viewcontainer.SingleViewContainer 315 slack.widgets.core.textview.MaxWidthTextView 313 androidx.constraintlayout.widget.Barrier 302 slack.app.ui.widgets.ReactionsLayout 302 slack.app.ui.messages.widgets.MessageLayout 302 slack.app.ui.messages.widgets.MessageHeader 290 com.android.launcher3.views.DoubleShadowBubbleTextView 285 com.android.internal.widget.CachingIconView 265 android.widget.ImageButton 262 androidx.constraintlayout.widget.Guideline 249 org.thoughtcrime.securesms.components.emoji.EmojiTextView 234 com.google.android.libraries.inputmethod.widgets.AutoSizeTextView 232 com.android.internal.widget.RemeasuringLinearLayout 228 android.view.ViewStub 227 android.app.ViewStub 226 android.webkit.ViewStub 221 im.vector.app.core.ui.views.ShieldImageView 219 androidx.constraintlayout.widget.Group 214 androidx.coordinatorlayout.widget.CoordinatorLayout 204 androidx.appcompat.widget.ContentFrameLayout All framework classes seen: 13486 android.widget.LinearLayout 6930 android.widget.View 6447 android.widget.FrameLayout 5613 android.widget.ViewStub 4722 android.widget.TextView 3044 android.widget.ImageView 2665 android.widget.RelativeLayout 1694 android.widget.Space 770 android.widget.ProgressBar 382 android.widget.Button 265 android.widget.ImageButton 228 android.view.ViewStub 227 android.app.ViewStub 226 android.webkit.ViewStub 145 android.widget.Switch 117 android.widget.DateTimeView 86 android.widget.Toolbar 68 android.widget.HorizontalScrollView 67 android.widget.ScrollView 65 android.widget.NotificationHeaderView 65 android.webkit.NotificationHeaderView 65 android.view.NotificationHeaderView 65 android.app.NotificationHeaderView 63 android.webkit.View 63 android.view.View 62 android.app.View 58 android.widget.ListView 50 android.widget.QuickContactBadge 40 android.widget.SeekBar 38 android.widget.CheckBox 16 android.widget.GridLayout 15 android.widget.TableRow 15 android.widget.RadioGroup 15 android.widget.Chronometer 13 android.widget.ViewFlipper 9 android.widget.Spinner 8 android.widget.ViewSwitcher 8 android.widget.TextSwitcher 8 android.widget.SurfaceView 8 android.widget.CheckedTextView 8 android.preference.PreferenceFrameLayout 7 android.widget.TwoLineListItem 5 android.widget.TableLayout 5 android.widget.EditText 3 android.widget.TabWidget 3 android.widget.TabHost 2 android.widget.ZoomButton 2 android.widget.TextureView 2 android.widget.ExpandableListView 2 android.webkit.TextureView 2 android.view.TextureView 2 android.app.TextureView 1 android.widget.WebView 1 android.widget.ViewAnimator 1 android.widget.TextClock 1 android.widget.AutoCompleteTextView 1 android.webkit.WebView 1 android.webkit.SurfaceView 1 android.view.SurfaceView 1 android.app.SurfaceView Unfortunately, replacing reflection with MethodHandle constructors is counter-productive in terms of performance: Constructor direct: create=5 invoke=42 Constructor reflection: create=310 invoke=433 Constructor MethodHandle: create=3283 invoke=3489 Constructor MethodHandle-exact: create=3273 invoke=3453 To reduce the performance impact of slow reflection, we can leverage the fact that the most frequently-inflated classes are from the framework, and hard-code direct constructor references for them in a switch-case block. Reflection will automatically be used as a fallback for custom app views. Test: simpleperf record -a; verify that Constructor.newInstance -> LayoutInflater no longer appears at the top under art_jni_trampoline Change-Id: I8fcc0e05813ff9ecf1eddca3cc6920e747adf4fc
2022-05-05SystemServiceRegistry: Replace ArrayMap with HashMap for performanceDanny Lin
When opening and closing activities in Settings, a significant amount of CPU time is spent looking up ArrayMap entries, as reported by simpleperf: 0.12% /system/framework/arm64/boot-framework.oat android.util.ArrayMap.binarySearchHashes PackageManagerService is responsible for a significant portion of the time spent in ArrayMap lookups: 0.08% 0.08% /system/framework/arm64/boot-framework.oat android.util.ArrayMap.binarySearchHashes | -- android.util.ArrayMap.binarySearchHashes | --50.00%-- android.util.ArrayMap.indexOf | |--36.71%-- android.util.ArrayMap.get | |--0.87%-- [hit in function] | | | |--5.42%-- android.app.SystemServiceRegistry.getSystemService | | android.app.ContextImpl.getSystemService | | android.view.ContextThemeWrapper.getSystemService | | android.app.Activity.getSystemService | | | | | |--52.18%-- TemporaryFile-kEdnnv[+9b97baa8] | | | TemporaryFile-FwF2he[+9b96d048] | | | art_quick_invoke_stub | | | art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*) | | | art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*) | | | bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*) | | | MterpInvokeVirtual | | | mterp_op_invoke_virtual | | | libcrypto.so[+3fac6] | | | MterpInvokeDirect | | | mterp_op_invoke_direct | | | libcrypto.so[+3faa8] | | | MterpInvokeVirtual | | | mterp_op_invoke_virtual | | | libcrypto.so[+3730c] | | | art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.13341777805210357670) | | | artQuickToInterpreterBridge | | | art_quick_to_interpreter_bridge | | | java.util.concurrent.Executors$RunnableAdapter.call | | | java.util.concurrent.FutureTask.run | | | java.util.concurrent.ThreadPoolExecutor.runWorker | | | java.util.concurrent.ThreadPoolExecutor$Worker.run | | | java.lang.Thread.run | | | art_quick_invoke_stub | | | art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*) | | | art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*) | | | art::Thread::CreateCallback(void*) | | | __pthread_start(void*) | | | __start_thread | | | | | --47.82%-- android.view.ContextThemeWrapper.getSystemService | | android.view.ContextThemeWrapper.getSystemService | | android.content.Context.getSystemService | | android.view.View.onVisibilityAggregated | | android.view.View.dispatchAttachedToWindow | | android.view.ViewGroup.dispatchAttachedToWindow | | android.view.ViewGroup.dispatchAttachedToWindow | | android.view.ViewGroup.dispatchAttachedToWindow | | android.view.ViewGroup.dispatchAttachedToWindow | | android.view.ViewGroup.dispatchAttachedToWindow | | android.view.ViewGroup.dispatchAttachedToWindow | | android.view.ViewGroup.dispatchAttachedToWindow | | android.view.ViewRootImpl.performTraversals | | android.view.ViewRootImpl.doTraversal | | android.content.ContextWrapper.getAssets [DEDUPED] | | android.view.Choreographer.doCallbacks | | android.view.Choreographer.doFrame | | android.view.Choreographer$FrameDisplayEventReceiver.run | | android.os.Handler.dispatchMessage | | android.os.Looper.loop | | android.app.ActivityThread.main | | art_quick_invoke_static_stub | | art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*) | | art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long) | | art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*) | | art_jni_trampoline | | com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run | | com.android.internal.os.ZygoteInit.main | | art_quick_invoke_static_stub | | art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*) | | art::JValue art::InvokeWithVarArgs<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, std::__va_list) | | art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list) | | art::JNI<true>::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list) | | _JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...) | | android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool) | | main | | __libc_init | | Empirical testing reveals that SYSTEM_SERVICE_FETCHERS contains 134 entries, at which HashMap is 54% faster than ArrayMap for lookups and 74% faster [1] for insertions. The increased memory usage should be a worthwhile trade-off at this size, so we can safely convert the map to a HashMap in order to improve performance in this hotpath. Because SYSTEM_SERVICE_NAMES, SYSTEM_SERVICE_FETCHERS, and SYSTEM_SERVICE_CLASS_NAMES have the same names and similar uses, all of them have been converted to HashMaps for consistency and performance. [1] https://docs.google.com/spreadsheets/d/136UJS2yVlZyPx30KDNgj4AWldkp9xbzIcWkLFj9RGgk/edit Test: simpleperf record -a; verify that SystemServiceRegistry no longer appears under ArrayMap.binarySearchHashes Change-Id: I2a5b23793a4fc8aa720eead3ecc7ca4589cb67da
2022-05-05LocalServices: Replace ArrayMap with HashMap for performanceDanny Lin
When opening and closing activities in Settings, a significant amount of CPU time is spent looking up ArrayMap entries, as reported by simpleperf: 0.12% /system/framework/arm64/boot-framework.oat android.util.ArrayMap.binarySearchHashes LocalServices is responsible for a significant portion of the time spent in ArrayMap lookups: 0.08% 0.08% /system/framework/arm64/boot-framework.oat android.util.ArrayMap.binarySearchHashes | -- android.util.ArrayMap.binarySearchHashes | --50.00%-- android.util.ArrayMap.indexOf | |--36.71%-- android.util.ArrayMap.get | |--0.87%-- [hit in function] | | | |--6.12%-- com.android.server.LocalServices.getService | | | | | |--42.41%-- com.android.server.inputmethod.InputMethodManagerInternal.get [DEDUPED] | | | com.android.server.wm.-$$Lambda$DisplayContent$-xtu90EUfC_AM8Qe5g8vDDI07_E.run | | | android.os.Handler.dispatchMessage | | | android.os.Looper.loop | | | android.os.HandlerThread.run | | | com.android.server.ServiceThread.run | | | art_quick_invoke_stub | | | art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*) | | | art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*) | | | art::Thread::CreateCallback(void*) | | | __pthread_start(void*) | | | __start_thread | | | | | |--36.66%-- com.android.server.notification.NotificationManagerService.enqueueNotificationInternal | | | com.android.server.notification.NotificationManagerService.enqueueNotificationInternal | | | com.android.server.notification.NotificationManagerService$10.enqueueNotificationWithTag | | | android.app.INotificationManager$Stub.onTransact | | | android.os.Binder.execTransactInternal | | | android.os.Binder.execTransact | | | art_quick_invoke_stub | | | art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*) | | | art::JValue art::InvokeVirtualOrInterfaceWithVarArgs<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, std::__va_list) | | | art::JValue art::InvokeVirtualOrInterfaceWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list) | | | art::JNI<false>::CallBooleanMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list) | | | _JNIEnv::CallBooleanMethod(_jobject*, _jmethodID*, ...) | | | JavaBBinder::onTransact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int) | | | android::BBinder::transact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int) | | | android::IPCThreadState::executeCommand(int) | | | android::IPCThreadState::getAndExecuteCommand() | | | android::IPCThreadState::joinThreadPool(bool) | | | android::PoolThread::threadLoop() | | | android::Thread::_threadLoop(void*) | | | android::AndroidRuntime::javaThreadShell(void*) | | | thread_data_t::trampoline(thread_data_t const*) | | | __pthread_start(void*) | | | __start_thread | | | | | --20.93%-- com.android.server.oemlock.OemLockService.setPersistentDataBlockOemUnlockAllowedBit | | com.android.server.oemlock.OemLockService$2.isOemUnlockAllowed | | android.service.oemlock.IOemLockService$Stub.onTransact | | android.os.Binder.execTransactInternal | | android.os.Binder.execTransact | | art_quick_invoke_stub | | art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*) | | art::JValue art::InvokeVirtualOrInterfaceWithVarArgs<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, std::__va_list) | | art::JValue art::InvokeVirtualOrInterfaceWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list) | | art::JNI<false>::CallBooleanMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list) | | _JNIEnv::CallBooleanMethod(_jobject*, _jmethodID*, ...) | | JavaBBinder::onTransact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int) | | android::BBinder::transact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int) | | android::IPCThreadState::executeCommand(int) | | android::IPCThreadState::getAndExecuteCommand() | | android::IPCThreadState::joinThreadPool(bool) | | android::PoolThread::threadLoop() | | android::Thread::_threadLoop(void*) | | android::AndroidRuntime::javaThreadShell(void*) | | thread_data_t::trampoline(thread_data_t const*) | | __pthread_start(void*) | | __start_thread Empirical testing reveals that sLocalServiceObjects usually contains 68 entries, at which HashMap is 47% faster than ArrayMap for lookups and 68% faster [1] for insertions. The increased memory usage should be negligible at this size, so we can safely convert the map to a HashMap in order to improve performance in this hotpath. [1] https://docs.google.com/spreadsheets/d/136UJS2yVlZyPx30KDNgj4AWldkp9xbzIcWkLFj9RGgk/edit Test: simpleperf record -a; verify that LocalServices no longer appears under ArrayMap.binarySearchHashes Change-Id: Ifd1f8b7940eba7723f93a73456470a84d34656ae
2022-05-05ThemedResourceCache: Replace ArrayMap with HashMap for performanceDanny Lin
When opening and closing activities in Settings, a significant amount of CPU time is spent looking up ArrayMap entries, as reported by simpleperf: 0.12% /system/framework/arm64/boot-framework.oat android.util.ArrayMap.binarySearchHashes ThemedResourceCache is responsible for a significant portion of the time spent in ArrayMap lookups: 0.08% 0.08% /system/framework/arm64/boot-framework.oat android.util.ArrayMap.binarySearchHashes | -- android.util.ArrayMap.binarySearchHashes | --50.00%-- android.util.ArrayMap.indexOf | |--36.71%-- android.util.ArrayMap.get | |--0.87%-- [hit in function] | | | |--9.64%-- android.content.res.ThemedResourceCache.getThemedLocked | | android.content.res.ThemedResourceCache.get | | | | | |--77.92%-- android.content.res.DrawableCache.getInstance | | | android.content.res.ResourcesImpl.loadDrawable | | | android.content.res.Resources.loadDrawable | | | android.content.res.TypedArray.getDrawableForDensity | | | android.content.res.Resources.getColor [DEDUPED] | | | | | | | |--62.94%-- android.view.View.<init> | | | | | | | | | |--64.58%-- android.view.ViewGroup.<init> | | | | | android.widget.LinearLayout.<init> | | | | | android.widget.LinearLayout.<init> | | | | | art_quick_invoke_stub | | | | | art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*) | | | | | art::InvokeConstructor(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::ObjPtr<art::mirror::Object>, _jobject*) | | | | | art::Constructor_newInstance0(_JNIEnv*, _jobject*, _jobjectArray*) | | | | | art_jni_trampoline | | | | | java.lang.reflect.Constructor.newInstance | | | | | android.view.LayoutInflater.createView | | | | | com.android.internal.policy.PhoneLayoutInflater.onCreateView | | | | | android.view.LayoutInflater.onCreateView | | | | | android.view.LayoutInflater.onCreateView | | | | | android.view.LayoutInflater.createViewFromTag | | | | | android.view.LayoutInflater.inflate | | | | | android.view.LayoutInflater.inflate | | | | | | | | | --35.42%-- android.widget.TextView.<init> | | | | android.widget.Button.<init> | | | | art_quick_invoke_stub | | | | art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*) | | | | art::InvokeConstructor(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::ObjPtr<art::mirror::Object>, _jobject*) | | | | art::Constructor_newInstance0(_JNIEnv*, _jobject*, _jobjectArray*) | | | | art_jni_trampoline | | | | java.lang.reflect.Constructor.newInstance | | | | android.view.LayoutInflater.createView | | | | com.android.internal.policy.PhoneLayoutInflater.onCreateView | | | | android.view.LayoutInflater.onCreateView | | | | android.view.LayoutInflater.onCreateView | | | | android.view.LayoutInflater.createViewFromTag | | | | android.view.LayoutInflater.rInflate | | | | android.view.LayoutInflater.rInflate | | | | android.view.LayoutInflater.rInflate | | | | android.view.LayoutInflater.inflate | | | | android.view.LayoutInflater.inflate | | | | android.view.LayoutInflater.inflate | | | | | | | --37.06%-- com.android.internal.widget.ToolbarWidgetWrapper.<init> | | | | | --22.08%-- android.content.res.ConfigurationBoundResourceCache.get | | android.content.res.ConfigurationBoundResourceCache.getInstance | | android.content.res.ResourcesImpl.loadComplexColorFromName | | android.content.res.ResourcesImpl.loadColorStateList | | android.content.res.Resources.loadColorStateList | | android.content.res.TypedArray.getColorStateList | | android.widget.TextView.readTextAppearance | | android.widget.TextView.setTextAppearance | | android.widget.TextView.setTextAppearance | | android.widget.Toolbar.setTitle | | com.android.wifi.x.com.android.internal.util.StateMachine$SmHandler.handleMessage | | android.view.SurfaceControl.copyFrom Empirical testing reveals that mThemedEntries usually contains around 14 entries, at which HashMap is 35% faster than ArrayMap for lookups and 54% faster [1] for insertions. The increased memory usage should be negligible at this size, so we can safely convert the map to a HashMap in order to improve performance in this hotpath. [1] https://docs.google.com/spreadsheets/d/136UJS2yVlZyPx30KDNgj4AWldkp9xbzIcWkLFj9RGgk/edit Test: simpleperf record -a; verify that ThemedResourceCache no longer appears under ArrayMap.binarySearchHashes Change-Id: I39e1c4b03fe0e60f933f02e253d2d3c4a483146f
2022-05-05Trace: Disable debug tracing on production buildsDanny Lin
When opening and closing activities in Settings, a significant amount of CPU time is spent checking whether ATrace tags are enabled, as measured by simpleperf: 0.12% /system/lib64/libcutils.so atrace_get_enabled_tag android.os.Trace is responsible for a significant portion of the time spent in the checks: 0.10% 0.07% /system/lib64/libcutils.so atrace_get_enabled_tags | -- atrace_get_enabled_tags | | |--1.62%-- android.os.Trace.traceEnd | |--36.90%-- [hit in function] | | | |--29.76%-- android.view.Choreographer.doCallbacks | | android.view.Choreographer.doFrame | | android.view.Choreographer$FrameDisplayEventReceiver.run | | android.os.Handler.dispatchMessage | | android.os.Looper.loop | | android.os.HandlerThread.run | | com.android.server.ServiceThread.run | | art_quick_invoke_stub | | art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*) | | art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*) | | art::Thread::CreateCallback(void*) | | __pthread_start(void*) | | __start_thread | | | |--19.00%-- com.android.server.BatteryService$BatteryPropertiesRegistrar.getProperty | | android.os.IBatteryPropertiesRegistrar$Stub.onTransact | | android.os.Binder.execTransactInternal | | android.os.Binder.execTransact | | art_quick_invoke_stub | | art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*) | | art::JValue art::InvokeVirtualOrInterfaceWithVarArgs<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, std::__va_list) | | art::JValue art::InvokeVirtualOrInterfaceWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list) | | art::JNI<false>::CallBooleanMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list) | | _JNIEnv::CallBooleanMethod(_jobject*, _jmethodID*, ...) | | JavaBBinder::onTransact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int) | | android::BBinder::transact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int) | | android::IPCThreadState::executeCommand(int) | | android::IPCThreadState::getAndExecuteCommand() | | android::IPCThreadState::joinThreadPool(bool) | | android::PoolThread::threadLoop() | | android::Thread::_threadLoop(void*) | | android::AndroidRuntime::javaThreadShell(void*) | | thread_data_t::trampoline(thread_data_t const*) | | __pthread_start(void*) | | __start_thread | | | --14.33%-- android.view.ViewRootImpl.performDraw | android.view.ViewRootImpl.performTraversals | android.view.ViewRootImpl.doTraversal | android.content.ContextWrapper.getAssets [DEDUPED] | android.view.Choreographer.doCallbacks | android.view.Choreographer.doFrame | android.view.Choreographer$FrameDisplayEventReceiver.run | android.os.Handler.dispatchMessage | android.os.Looper.loop | android.app.ActivityThread.main | art_quick_invoke_static_stub | art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*) | art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long) | art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*) | art_jni_trampoline | com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run | com.android.internal.os.ZygoteInit.main | art_quick_invoke_static_stub | art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*) | art::JValue art::InvokeWithVarArgs<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, std::__va_list) | art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list) | art::JNI<true>::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list) | _JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...) | android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool) | main | __libc_init We're unlikely to trace the system and framework in production systems, so disable debug tracing in non-debuggable builds. The ro.debuggable check is performed from the Java side for simplicity. Test: simpleperf record -a; verify that android.os.Trace no longer appears under atrace_get_enabled_tags Change-Id: I9b63d386c041ffd9d7ff34ecd0ec1eb95dc03b4b
2022-05-05core: Expose method to start assistant through BinderDanny Lin
This is necessary in order to start the default assistant app from other system apps using platform APIs, which we need for implementing gestures in a modular way. Change-Id: Ic04d742acff07ce8b5b88a4296d01b1fe1036d9e
2022-05-05core: Remove default aspect ratio limit for old appsDanny Lin
I have never encountered a single app that this aspect ratio limit is actually helpful for. Most legacy apps are able to cope with longer aspect ratios fine — perhaps not optimally, but it looks better than having a big black box at the bottom of the screen. Instead of limiting older apps' screen space unconditionally or exposing it in Settings, remove the limit entirely so the user doesn't have to go through the trouble to begin with. Note that apps explicitly declaring a shorter aspect ratio will still get their constraint satisfied. Change-Id: Ic415288b24129a634476b5cc01a6f202588f4b89
2022-05-05core: Deprioritize important developer notificationsDanny Lin
Informing the user that ADB is enabled does not necessitate an alert sound. It's especially annoying with the default AOSP notification sound, but even with a less distracting sound, this doesn't need to be so intrusive. Change-Id: Idee92b44cff2473a3686a2f2d95c6f5e4e91c2f8
2022-05-02base: Add Touch HIDL supportAnushek Prasal
All credits to LineageOS and related authors on: https://github.com/LineageOS/android_lineage-sdk Ported to AOSP from lineage-sdk by SKULSHADY [ anirudhgupta109 | AOSiP ] - Minimal import of LineageHardwareManager and HIDLHelper - We don't want LiveDisplay stuff - Nuke Legacy touchscreen support Change-Id: Ic8ca90663582c06f35562286f5ce5b2d84971ec4 Signed-off-by: Anirudh Gupta <anirudhgupta109@aosip.dev>
2022-05-02SystemUI: handle camera launch gesture from keyhandlerRoman Birg
Author: Roman Birg <roman@cyngn.com> Date: Thu Feb 4 16:28:00 2016 -0800 framework: move device key handler logic, fix gesture camera launch In order to make device camera gestures behave the same way as launching the camera by double tapping the power button, route DeviceKeyHandler logic through the GestureLauncherService. A callback is used in order to avoid publishing the GestureLauncherService into the System service registry, because the KeyHandler code cannot directly access services local to the system process. OPO-427 Change-Id: I2a8860b278f65ccf31bfee151513d8a23ab746c5 Signed-off-by: Roman Birg <roman@cyngn.com> Author: Roman Birg <roman@cyngn.com> Date: Sat Feb 13 09:08:21 2016 -0800 KeyHandler: don't break old interfaces Causing bootloops on devices, don't break old interfaces in the framework. OPO-427 Change-Id: I49473b057bc4ed4710e9092c76e41c6a8134d2de Signed-off-by: Roman Birg <roman@cyngn.com> Author: Roman Birg <roman@cyngn.com> Date: Tue Feb 16 17:22:01 2016 -0800 SystemUI: handle camera launch gesture from keyhadler Includes partial reverts: Revert "KeyHandler: don't break old interfaces" This reverts commit 31ecbdc5fcc1263e9028107858565d951798fd93. Revert "framework: move device key handler logic, fix gesture camera launch" This reverts commit db1b4e6e4880be1828342be9bc468d36565a2ef0. Ref: OPO-427 Change-Id: Ic15543a8f63ad4521ab0ab536d00224b0bd70f8c Signed-off-by: Roman Birg <roman@cyngn.com> Author: Michael Bestas <mikeioannina@cyanogenmod.org> Date: Sat Feb 20 00:56:47 2016 +0200 SystemUI: Don't vibrate on touchscreen camera gesture * This is usually handled in device-specific keyhandler, where vibration is optional and has the same duration in all gestures Change-Id: I879671c9d6f785137d63b8b70de35f5d5020748d Change-Id: Iba9211b7d342f618c4082c34d11663d89861607a
2022-05-02UpdateEngine: Add perf mode binder interfaceLuca Stefani
Change-Id: I3146ea0eb9477129fa2e490fe9b149ad48ec0fba
2022-05-02Support for device specific key handlersBruno Martins
This is a squash commit of the following changes, only modified for the new SDK. Carbon Edits: get away from SDK Author: Alexander Hofbauer <alex@derhofbauer.at> Date: Thu Apr 12 01:24:24 2012 +0200 Dispatch keys to a device specific key handler Injects a device key handler into the input path to handle additional keys (as found on some docks with a hardware keyboard). Configurable via overlay settings config_deviceKeyHandlerLib and config_deviceKeyHandlerClass. Change-Id: I6678c89c7530fdb1d4d516ba4f1d2c9e30ce79a4 Author: Jorge Ruesga <jorge@ruesga.com> Date: Thu Jan 24 02:34:49 2013 +0100 DeviceKeyHandle: The device should consume only known keys When the device receive the key, only should consume it if the device know about the key. Otherwise, the key must be handle by the active app. Also make mDeviceKeyHandler private (is not useful outside this class) Change-Id: I4b9ea57b802e8c8c88c8b93a63d510f5952b0700 Signed-off-by: Jorge Ruesga <jorge@ruesga.com> Author: Danesh Mondegarian <daneshm90@gmail.com> Date: Sun Oct 20 00:34:48 2013 -0700 DeviceKeyHandler : Allow handling keyevents while screen off Some devices require the keyevents to be processed while the screen is off, this patchset addresses that by moving the filter up in the call hierarchy. Change-Id: If71beecc81aa5e453dcd08aba72b7bea5c210590 Author: Steve Kondik <steve@cyngn.com> Date: Sun Sep 11 00:49:41 2016 -0700 policy: Use PathClassLoader for loading the keyhandler * Fix crash on start due to getCacheDir throwing an exception. * We can't do this anymore due to the new storage/crypto in N. Change-Id: I28426a5df824460ebc74aa19068192adb00d4f7c Author: Zhao Wei Liew <zhaoweiliew@gmail.com> Date: Sun Nov 20 08:20:15 2016 +0800 PhoneWindowManager: Support multiple key handlers Convert the string overlay to a string-array overlay to allow devices to specify an array of key handlers. Note that the keyhandlers towards the start of the array take precedence when loading. Change-Id: Iaaab737f1501a97d7016d8d519ccf127ca059218 Author: Paul Keith <javelinanddart@gmail.com> Date: Thu Nov 23 21:47:51 2017 +0100 fw/b: Return a KeyEvent instead of a boolean in KeyHandler * Allows handlers to modify the event before sending it off to another KeyHandler class, to handle things like rotation Change-Id: I481107e050f6323c5897260a5d241e64b4e031ac Change-Id: Ie65a89cd7efd645622d99d47699df847bc3ad96b
2022-05-02fw/b: Use ro.build.version.incremental to signal OTA upgradesdhacker29
Squash of: Author: dhacker29 <dhackerdvm@gmail.com> Date: Tue Nov 24 01:53:47 2015 -0500 Core: Use ro.build.date to signal mIsUpgrade M: We use a static fingerprint that is only changed when a new OEM build is released, so every flash shows Android is starting instead of upgrading. This will fix that. N: even though we dont have the dexopt sceen on N, this is still needed to delete the correct caches, and grant/deny specific runtime permissions like a true oem update would do. Updated for Nougat By: BeansTown106 Change-Id: I0e3ed5c8f0351e48944432ae6a0c5194ddeff1fa Author: Sam Mortimer <sam@mortimer.me.uk> Date: Fri Sep 28 13:45:00 2018 -0700 fw/b UserManagerService: Use ro.build.date to signal upgrades *) We changed PackageManagerService to use Build.DATE instead of Build.FINGERPRINT to detect upgrade. Do the same for UserManagerService. *) Affects generation of preboot intent and app data migration. Change-Id: I56887b7ca842afdcf3cf84b27b4c04667cf43307 Author: Wang Han <416810799@qq.com> Date: Sat Dec 29 23:33:20 2018 +0800 ShortcutService: Use ro.build.date to signal package scanning * Affects system apps scanning. Change-Id: I5f6d6647929f5b5ae7e820b18e95bf5ed2ec8d1c Author: maxwen <max.weninger@gmail.com> Date: Tue Nov 19 01:02:01 2019 +0100 base: Use ro.build.date to clear cache dirs on update instead of using ro.build.fingerprint we explictly need to use ro.build.date Change-Id: Ib3e80e58eb8c9a21c108e9f5cd2dbdb7ada8e3a4 Author: maxwen <max.weninger@gmail.com> Date: Wed Oct 28 07:07:10 2020 -0400 One more Build.FINGERPRINT to Build.DATE change Change-Id: I13dbf3d7f6587d3fcd6591cc0f861b34b6d5561c Change-Id: If0eb969ba509981f9209ffa37a949d9042ef4c2a
2022-04-27Fix dialog exit animationJordan Demeulenaere
This CL fixes a bug that could happen when animating a dialog out at the same time as hiding the SystemUI shade, and that would make the phone unusable until the shade is swiped down again. See b/223387276 for more info. Bug: 223387276 Test: Manual, see b/223387276#comment1 Change-Id: If251b00558a5ca9a927d1be2bb015f1c0acb2d57 (cherry picked from commit 631a7ef1a60a8d61077e1762e5a18cc53e8211f4)
2022-04-18Merge "perf: Fix for Activity launch hint when LAL is enabled." into ↵Ramesh Garimella
s-keystone-qcom-dev
2022-04-14Merge s-mpr-2022-04Eric Arseneau
Change-Id: I2325ba5c76e7dba314bdcd5b53fdc36b5e90fb31
2022-04-07Merge "[DO NOT MERGE] Fixed status bar glitch for apps that access internal ↵Shawn Lin
res" into sc-v2-dev
2022-04-06Merge "[scv2] RESTRICT AUTOMERGE Add finalizeWorkProfileProvisioning." into ↵TreeHugger Robot
sc-v2-dev
2022-04-06Merge "DO NOT MERGE: SurfaceControlViewHost: Restrict disclosure of input ↵TreeHugger Robot
token" into sc-v2-dev
2022-04-06Merge "Parcel: recycle recycles" into sc-v2-devTreeHugger Robot
2022-04-06[DO NOT MERGE] Fixed status bar glitch for apps that access internal resshawnlin
In 12L, to support mulit-display devices, we changed the way to get the status bar height by adding an API to calculate instead of directly reading the resource of status_bar_height. However, some apps still using Resources.getIdentify() to get this internal resources dimen as status bar height to layout their UI which cause status bar glitch in their app. For compatibility purpose: 1. Create a new dimen res status_bar_height_default which will be used by framework to determine the status bar heigth 2. For status_bar_height - Set the value to the size which already consider the cutout size for defualt display as before so that it won't breaking existing app. - It is only used for apps using Resources.getIdentifier() Bug: 216782082 Test: verified on the apps with such issue. Change-Id: I306efa187ffa69223c06fd248cfe57d183f96c59 Merged-In: I306efa187ffa69223c06fd248cfe57d183f96c59
2022-04-05Merge "DO NOT MERGE: WM: Call Transaction#sanitize" into sc-v2-devRob Carr
2022-04-05DO NOT MERGE: SurfaceControlViewHost: Restrict disclosure of input tokenRobert Carr
Currently we send the input (channel) token from the embedded view hierarchy to the remote embedding process via SurfacePackage. This is used to call grantEmbeddedWindowFocus. However this could also allow the host process to invoke updateInputChannel, which is not desirable. To fix this we rework updateInputChannel to work in terms of a focusGrantToken, which only carries this 1 capability. SurfacePackage is modified to not include the input token, but rather include this focus grant token. Bug: 215912712 Test: SurfaceControlViewHostTests Change-Id: Ie278f678f12f50c32f142a4260ff7d1c2a9ca57c (cherry picked from commit 501ee91b957eab6feb05832168573f51573efced)
2022-04-05[scv2] RESTRICT AUTOMERGE Add finalizeWorkProfileProvisioning.Jonathan Scott
Test: atest android.devicepolicy.cts.DevicePolicyManagerTest Bug: 210469972 Change-Id: I1ea926194992cbce26e2245fec0e563b3010a02f
2022-04-04Merge 5516a51432bbf0123788346e8cadd19e9243b768 on remote branchLinux Build Service Account
Change-Id: Ia4e41fcc006020e5b3a77070cbf8725ca4ea1f57