summaryrefslogtreecommitdiff
path: root/packages/SystemUI/src/com/android/systemui/recents/ScreenPinningRequest.java
Commit message (Collapse)AuthorAgeFilesLines
* Merge tag 'android-13.0.0_r52' of ↵George Zacharia2023-08-021-3/+2
|\ | | | | | | | | | | | | https://android.googlesource.com/platform/frameworks/base into t13.0 Android 13.0.0 Release 52 (TQ3A.230605.012) Change-Id: Ic80f318636f1f70bbd009504352ddde511d0dead
| * Refactor Utilities#isTablet to Utilities#isLargeScreenChristian Göllner2023-02-241-2/+2
| | | | | | | | | | | | | | | | | | | | | | The utility checks the dimension of the screen rather than the device itself. This means that on a foldable it would return true when unfolded even though it is not a tablet. Test: Checked code usages to see if expectations were correct. Fixes: 267285637 Merged-In: I9ab45d65e08a6024729819724e8661e00419ebdd Change-Id: I2f2754e1753daf0941e327cf8bf866946cd36f78
| * Revert "Refactor Utilities#isTablet to Utilities#isLargeScreen"Judy Chang2023-02-231-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Revert submission 21508490-is-tablet-misleading Reason for revert: DroidMonitor: Potential culprit for Bug b/270566727 Reverted changes: /q/submissionid:21508490-is-tablet-misleading ABTD build successfully: https://android-build.googleplex.com/builds/abtd/run/L51700000958776445 Change-Id: I1bf2ef3e38bba5591aac7d50dbca4302d1a5d5e2 BUG:
| * Refactor Utilities#isTablet to Utilities#isLargeScreenChristian Göllner2023-02-231-2/+2
| | | | | | | | | | | | | | | | | | | | | | The utility checks the dimension of the screen rather than the device itself. This means that on a foldable it would return true when unfolded even though it is not a tablet. Test: Checked code usages to see if expectations were correct. Fixes: 267285637 Change-Id: I9ab45d65e08a6024729819724e8661e00419ebdd Merged-In: I9ab45d65e08a6024729819724e8661e00419ebdd
* | Merge tag 'android-13.0.0_r35' of ↵George Zacharia2023-04-031-4/+18
|\| | | | | | | | | | | | | | | https://android.googlesource.com/platform/frameworks/base into t13.0 Android 13.0.0 release 35 Change-Id: I709958b2f015d1774b2ece25894467c3a279f93c
| * Replace ACTION_USER_SWITCHED with UserTrackerAlex Stetson2022-11-161-4/+18
| | | | | | | | | | | | | | | | | | | | | | ACTION_USER_SWITCHED only applies to the foreground user and will not trigger for concurrent secondary users. By replacing this with UserTracker, the switching logic can be modify to track what is relevant for a given display/user. Bug: 249831072 Test: atest SystemUIUnitTests Change-Id: I6f5d482072ae92d7dda5e1753901b3f5dc521312
* | Merge tag 'android-13.0.0_r16' into t13.0George Zacharia2022-12-151-3/+27
|\| | | | | | | | | | | | | | | | | | | | | Android 13.0.0 Release 16 (TQ1A.221205.011) Also included the following reverts: 1. Revert "fw/b: Import Wi-Fi standard icon [1/2]" 2. Revert "Add preference for toggling the wallpaper zooming animation" Co-authored-by: Semavi Ulusoy <doc.divxm@gmail.com> Change-Id: I9a6b51e452c28d10411712c59778bb54da5783e9
| * Remove more thin wrappers from the shared libWinson Chung2022-09-141-3/+18
| | | | | | | | | | | | | | | | | | | | - These were only used for the unbundled launcher build, and Launcher can reference system code directly now Bug: 219861883 Test: Builds/Presubmit Change-Id: I1532f1b853765fb69c5bf46ad5a08230bde00c5f Merged-In: I1532f1b853765fb69c5bf46ad5a08230bde00c5f
* | Fix screen unpinning text on devices that have gestures on fp sensorHenrique Silva2022-11-071-2/+6
| | | | | | | | Change-Id: I0666acb0e8d87224c95ffeea78e07cfc0f05d3ae
* | Allow screen unpinning on devices without navbarUtkarsh Gupta2022-11-071-2/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Iedfc08f4d95bbee3c8578c0d2450b90739e63603 Screen Pinning: Show correct text for on screen nav. Similar to I09c2ef661bff272cb4f7ca43bac0e45f4b20a4d4, we're not getting an instance of PhoneWindowManager which we can rely on to update dynamically. TICKET: OPO-393 Change-Id: Iacf8221066461fb6940dd88432e665812545c3ff
* | Add support for runtime toggle of navbarBruno Martins2022-11-071-1/+2
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a refactor of the following changes, so to make use of tuner API. Author: Timo Wendt <timo@tjwendt.de> Date: Thu Aug 30 12:18:41 2012 +0300 Runtime toggle of navbar This adds the framework support for enabling the Navigation bar on devices with hardware keys. It is toggled from Settings, and depends on device-specific support for the KeyDisabler hardware control Change-Id: I88fecb2ca1e8613591c327a93f53909b00239cd8 wm: Nullify hardkey function assignments if enabling the navbar This caused erroneous (and sometimes duplicate) events being generated due to the regular key function assignments. The navbar does its own action management, so don't try to derive from the actions usually present in hard keys. Change-Id: I82866e24547f8145cac4f07820ae90aacce09281 Update DEV_FORCE_SHOW_NAVBAR constant. Change-Id: Ie5b4317162c514d22276956f81007e064a3d0f32 Settings: Move DEV_FORCE_SHOW_NAVBAR load to loadSecureSettings. Change-Id: I6ac53b8c9f7fce6f9ca6b4ad7bf31a1c1e896863 Author: Paul Keith <javelinanddart@gmail.com> Date: Tue Jan 16 15:47:07 2018 +0100 PhoneWindowManager: Make sure KeyDisabler is always called on boot * Otherwise, some KeyDisabler classes are left in a weird state * Because we don't keep track of whether an initial state was ever set, we never call KeyDisabler on boot if the setting is set to 0 * To remedy this, keep track of whether an initial state was set Change-Id: Ib432ed3278dd8f4f4cba3ba488879b3c1cd9c8f4 Author: LuK1337 <priv.luk@gmail.com> Date: Sat Sep 29 20:42:04 2018 +0200 PhoneWindowManager: Fix issues introduced with runtime navbar * With system settings we need to pass UserHandle.USER_CURRENT to make sure we are getting proper value, otherwise we always end up getting '0'. Also we need to make sure to set valid mHasNavigationBar in setInitialDisplaySize(). Change-Id: I3efd614e735f9a602f13263a742ce858a9d14769 Author: jhenrique09 <jhenrique09.mcz@hotmail.com> Date: Tue Mar 24 22:04:47 2020 -0300 DisplayPolicy: Fix watchdog when adding new display * Fixes system crashing after connected to Android Auto or started screen record That was introduced on toggle navbar commit Only register content observer if default display Change-Id: Ia43a922251803be94de8618eb442dcf132e479e9 Author: LuK1337 <priv.luk@gmail.com> Date: Sat Oct 31 12:28:09 2020 +0100 Edit: Bring-up changes for A11 * Due to race condition we end up calling DisplayPolicy.hasNavigationBar() before the settings value is updated. * Switch over few more navigation bar checks that'd likely also fail. * Call WindowManagerService.onOverlayChanged() so that we don't end up with reserved space for 3-button style navbar when gestural navigation is enabled. Change-Id: I4a6d3f89bc171c3921875b24c077cb78c03517ad
* Remove Dependency.get usage, warnings, and dead codeJustin Weir2022-04-291-16/+13
| | | | | | Fixes: 218352029 Test: ran all tests Change-Id: I6d8b3c0066e64ca63406a2829d19bee0af203d18
* Cover screen pinning logic around task barTracy Zhou2022-03-281-4/+4
| | | | | | Fixes: 205280231 Test: manual Change-Id: I7e34def68dae9045d967f0871729e1988e1fe149
* [Status Bar] Re-name StatusBar.java -> CentralSurfaces.java.Caitlin Cassidy2022-02-281-6/+9
| | | | | | | | | | | Also add some javadoc to CentralSurfaces.java to make its purpose slightly clearer. Bug: 197137564 Test: compiles Test: atest SystemUITests Change-Id: Id06e7ba7641d6d2bc276cce57101c9c7236bc758 Merged-In: Id06e7ba7641d6d2bc276cce57101c9c7236bc758
* Do not show buttons in screen pinning dialog on tabletsTracy Zhou2021-12-091-2/+3
| | | | | | Change-Id: Ic8ab687ae9eef5c24e30d3e61b43547588468156 Fixes: 199544447 Test: manual
* Make StatusBar purely optionalTadashi G. Takaoka2021-07-151-6/+7
| | | | | | | | | | | | | | | To be able to inject Optional.empty() to Optional<StatusBar>, this CL - removes raw StatusBar references and replaces it with Optional<StatusBar> - replaces Optional<Lazy<StatusBar>> to Lazy<Optional<StatusBar>> Bug: 144309772 Bug: 138625582 Bug: 187111275 Bug: 187111293 Test: atest SystemUITests Change-Id: I07b63e417dd4cc75a17951619065ba0f234bc2aa Merged-In: I07b63e417dd4cc75a17951619065ba0f234bc2aa
* Make ScreenPinningRequest#getWindowLayoutParams protectedHiroki Sato2021-01-081-1/+1
| | | | | | | | | This change gives the OEM system UI an ability to customize the window layout params of pinning request confirmation dialog. Bug: 177028289 Test: manual. Overriding layout works in ArcSystemUI. Change-Id: I4b2bff193b9f628a54be27f5e81497bdd591687f
* Refactors RotationUtils to be independent from device width.Himanshu Jaju2020-12-161-3/+14
| | | | | | | | | | | Currently the RotationUtils class checks for the device orientation AND the device width to figure out the current orientation. This CL moves the device width checks to the caller class so that Util class is free of special cases. Test: Manual Bug: 171918213 Change-Id: Ide67ee35394f48f3312e5ece1228e450fbdf30b4
* Clean up navigation barWinson Chung2020-08-121-2/+2
| | | | | | | | | | | | | | | | - Move off fragments, now we have direct ownership of NavBarController -> NavBar (per display) -> NavBarView - Move the nav bar components to its own package - Removed some unused files - Can finally dump NavigationBarController instead of FragmentService :) - Clean up some of the dumps to be more consistent Bug: 163690441 Bug: 158605244 Test: atest SystemUITests Test: Test bar in various nav modes Change-Id: I21130899df560f6cf8b7f38d4d86edca6d8f920e
* App Pinning strings; security notes on startup dialog.Jeff DeCew2020-05-271-2/+16
| | | | | | Bug: 151332926 Test: manual, visual Change-Id: Ic3e83f1bf4451afe5fe7f21827388f91b0b87378
* Window Manager Flag Migration (12/n)Tiger Huang2020-01-231-1/+1
| | | | | | | | | | | | - Unhide new APIs - MaxInsets -> InsetsIgnoringVisibility - Deprecate SystemUI flags - Deprecate some other stuff Bug: 118118435 Test: Build, CTS coming soon Change-Id: I0a0cbdb48258b3779d536668b59e8c88f3c96d18 Exempt-From-Owner-Approval: Trivial rename
* Window Manager Flag Migration (7/n)Tiger Huang2019-12-161-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Introduce new APIs in Window/WindowManager.LayoutParams for developers to decide which types of insets at which side a window should avoid: setFitWindowInsetsTypes(@InsetsType int types) setFitWindowInsetsSides(@InsetsSide int sides) setFitIgnoreVisibility(boolean ignore) The existing logic in DisplayPolicy.layoutWindowLw uses combinations of window types, window flags, and system UI flags to decide what frames a window should have, which is very complex, difficult to maintain, and should be replaced with the new APIs. Bug: 118118435 Test: atest InsetsSourceProviderTest InsetsStateControllerTest InsetsPolicyTest WindowStateTests CommandQueueTest RegisterStatusBarResultTest InsetsFlagsTest LightBarControllerTest RegisterStatusBarResultTest ViewRootImplTest DisplayPolicyLayoutTests DisplayPolicyInsetsTests DisplayPolicyTests TaskSnapshotSurfaceTest Change-Id: I06ddc9d0d2887ba4ded7bb8adbf9c9c0da4bf7b4
* Remove all calls to getComponent(StatusBar.class)Dave Mankoff2019-11-111-5/+11
| | | | | | Bug: 143224715 Test: atest SystemUITests && manual Change-Id: I349836eed9c1e988205681b93f86e967156f90a9
* Window: Mark SHOW_FOR_ALL_USERS flag as @SystemApiRoshan Pius2019-10-121-1/+1
| | | | | | Bug: 142090228 Test: Compiles Change-Id: I850c7759dc909727f73e40fb6331871a9de25f20
* Convert all SCREEN_OFF receivers to BroadcastDispatcherFabian Kozynski2019-09-251-2/+5
| | | | | | | | | | | | | | | | | | | All broadcast receivers that filter for ACTION_SCREEN_OFF have been converted to register with BroadcastDispatcher instead of Context. In many cases this involves other Intents being covered by BroadcastDispatcher. Additionally, UserBroadcastDispatcher propagates the PendingResult so the individual receivers can access it (mostly to query getSendingUser). Test: enable logging of BroadcastQueue for ACTION_SCREEN_OFF only shows 2 receivers (user 0 and user -1) Test: Dump of BroadcastDispatcher shows all the classes registered to it Test: enable logging of UserBroadcastDispatcher Test: atest PowerUITest StatusBarTest VolumeDialogControllerImplTest SystemUIDialogTest NavigationBarFragmentTest Bug: 134566046 Change-Id: I0caa2a6b53f3f6b360bf2e8598dde29c45f1d4e3
* Fix a couple issues with sysui stateWinson Chung2019-04-301-2/+0
| | | | | | | | | | | | | | | | - Ensure that we only set the sysui state on the default display for the time being since gesture nav only really works for the default display - Update the overview proxy service of the nav bar fragment window state whenever it is recreated - Remove the screen pinning flag usage as there is no callback to accurately ensure that this flag is always up to date (launcher will have to use the activity manager call whenever it needs to check it for now) Bug: 131552865 Test: Manual Change-Id: I524f67f4fb6eb73e6e07454d9eb0c03d3ffb53af
* Update sysui for screen pinning with gestural navWinson Chung2019-04-251-3/+17
| | | | | | | | | - Add call to stop screen pinning - Modify layout/description to reflect new gesture Bug: 130828539 Test: Manual Change-Id: I970a2dc7273170a735cf019f5c5ff6c1c3c269c0
* Add state callbacks to launcherWinson Chung2019-04-101-0/+5
| | | | | | | Bug: 129785904 Test: Manual, change states and verify state is sent Change-Id: I8db10688615f3021d8d1241a15010fa4a8c121b4
* Support hasNavigationBar per display(1/2)Charles Chen2018-11-281-1/+1
| | | | | | | | | | | | | | | | | This change is to support Auto case. Auto may need to support displays without navigation bar by default, because the display may be far away from driver. Note: currently, hasNavigationBar is global since it's from config. In future patches, it will also check hasSystemDecorations() on secondary display. TODO: We may find a way to make OEMs set hasNavigationBar() for each display. Fixes: 119584629 Test: atest WmTests Test: atest InputMethodManagerServiceTests Test: atest SystemUiTests Change-Id: I427f8ad1f3da644a2bf79ee5b777830378515348
* Fixes import ordering.Gus Prevas2018-11-141-3/+3
| | | | | Test: n/a Change-Id: I432e11b52deb7974e50f62076af3b7aa07e364b6
* Moving SysUI with legacy Recents to another build targetWinson Chung2018-10-261-4/+2
| | | | | | | | | | | | | | | | - Move all legacy recents code out of the core sysui code - Add separate target for products which still depend on it - Move overview proxy implementation into another implementation of the recents interface Test: atest SystemUITests Test: Push SystemUiWithLegacyRecents to the system image adb shell pm disable com.google.android.apps.nexuslauncher/com.android.quickstep.TouchInteractionService and ensure that the old recents implementation still works (and split screen) Change-Id: Iad67218ec37c13c79b6393d87f6bdc4f3996e2c6 Signed-off-by: Winson Chung <winsonc@google.com>
* Merged KeyButtonDrawable with tint drawable and shadow drawable (1/2)Matthew Ng2018-08-291-8/+2
| | | | | | | | | | | | | KeyButtonDrawable can now draw its own shadow and tint based on its dark intensity, no more shadow drawables wrapped by dual layer drawable and cross fading to change their intensities. Refactored and simplified code to get the nav bar drawables. AnimatedVectorDrawables can be used however only dark intensity tinting will work on it. Fixed the clipped shadow in landscape. Change-Id: I6e234857f7972974aae34d92c7047086782124f0 Fixes: 112105450 Test: look at nav bar and tap rotate suggestion button
* Moved some activities implementation to ActivityTaskManagerService (2/n)Wale Ogunwale2018-06-121-1/+2
| | | | | | | | | | | | | Second step in unifying the window hierarchy that is currently split within AM and WM packages. We move some of the API implementation for activities from ActivityManagerService.java to ActivityTaskManagerService.java. Test: Existing tests pass Test: go/wm-smoke-auto Bug: 80414790 Change-Id: I23dcd924493d8ad1e0b6e3a55386fd72b0146605
* Replace nav bar assets from png to vector drawables (1/2)Matthew Ng2018-05-221-2/+10
| | | | | | | | | | | | | | | Unifying the assets between aosp and pixel while replacing all the image files per density/orientation with singular xml vector files to simplify the assets. In addition added a shadow/rotation class to allow these drawables to be rotated and have a shadow to avoid multiple images of the same shape in different orientations. Therefore there are a lot of images deleted replaced by a couple of xml file. Fixes: 79610337 Fixes: 77731348 Fixes: 65692723 Test: manual Change-Id: I3fbe2bada815bb98e5ab7e2733f7794054ff649f
* Merge "Add nullchecks to ScreenPinningRequest." into pi-devTreeHugger Robot2018-04-231-6/+10
|\
| * Add nullchecks to ScreenPinningRequest.Daichi Hirono2018-04-181-6/+10
| | | | | | | | | | | | | | | | | | | | | | | | To make ScreenPinningRequest workable with devices that does not have the recent view and navigation bar. Also mark ScreenPinningNotify methods as public so that it can be invoked from vendor customized code. Bug: 78248081 Test: Manually invoke Activity#startLockTask() Change-Id: I7b3578bfe32dffb32ca1c21f5e30f98aa452efb0
* | Revert "Fix "Screen is pinned" dialog not showing completely in multi-window"Tracy Zhou2018-04-181-1/+1
|/ | | | | | | | | | | This reverts commit be26707695e3cf4785e716b9814a067d50cd1123. Reason for revert: Caused regression in b/77976945 Fixes: 77976945 Bug: 73513388 Change-Id: I8c83a823d7421563ea5a2eab2e20cb2b06ec6068
* Fix "Screen is pinned" dialog not showing completely in multi-windowTracy Zhou2018-04-051-1/+1
| | | | | | | | mode. Fixes: 73513388 Test: manual test Change-Id: Iaa3e30399b7f12de2c6071cbe35c7bdff92f64a0
* Fixes quickstep gestures when screen in pinned.Matthew Ng2018-02-161-0/+6
| | | | | | | | | Intercept the gesture calls when screen is currently being pinned. Screen pinning dialog will take the current icons from nav bar. Change-Id: I49a79a857311253ecc4eb103bc1dd5a618d71bc0 Fixes: 73361404 Test: pin an app and try to swipe up or use quick scrub
* Fixes crash null exception on land/seascape pinned orientationsMatthew Ng2018-02-011-6/+25
| | | | | | | | | | | | | Reverts the revert of ag/3546427 and fixes the regression. Didn't add the ids to the layout in landscape and seascape that caused the crash. Also fixed a boolean parsing issue in CommandQueue and correcting the unpin button press when it lays the buttons after overview proxy connects to launcher. Change-Id: I59791f6a08e11d17dfb32ab3a2733766c8cf1036 Fixes: 72800226 Test: manual, rotate screen and pin (like in play movies)
* Revert "Uses back and home button for screen pinning when recents is invisible"Matthew Ng2018-02-011-25/+6
| | | | | | | | This reverts commit c4356fb75318967148e8394878af1c13d37080dd. Reason for revert: Regression b/72800226 Change-Id: Iaa14de444c00a9da7c3b3a6d8828f40d66a8ac29
* Uses back and home button for screen pinning when recents is invisibleMatthew Ng2018-01-311-6/+25
| | | | | | | | | | | | All the text and screen pinning hint shows tells the user that the back and home button should be held to exit screen pinning. The hint also do not have the recents button shown if it is invisible. The toast code has been moved to recents and services calls through to post a toast message depending if the recents button is visible. Test: manual Fixes: 72059911 Change-Id: I93abf5072b97760f33e7e77421544a4b3ad27beb
* Merge "Update power menu + dialog" into oc-dr1-dev am: 1e6b7d7b15Jason Monk2017-07-051-20/+7
|\ | | | | | | | | | | am: c858cc7d8c Change-Id: I6e69225684355d003cc4b53e47787fe64c7fb187
| * Update power menu + dialogJason Monk2017-07-051-20/+7
| | | | | | | | | | | | | | | | | | | | | | - Update power menu to handle seascape properly - Update shutting down dialog, the gradient is covered by the global actions dialog not going away completely, everything else is still in ShutdownThread. Test: visual Change-Id: I06a2fdd2652bf006dc5c0b45e3bc922e43093301 Fixes: 62391660
* | Remove redundant hwaccelerated enabling.Marc Hittinger2017-05-301-5/+2
|/ | | | | | | | | | Hardware acceleration is enabled on the application level in the manifest. This cleanup-only CL removes redundant calls to enable hardware acceleration on the level of activity, window, or view. Test: Ran systemUI jank tests checking for lack of jankiness. Change-Id: I37a9b687be3aaf95f9ba497e99cabd5f8c73ace1
* Fix screen pinning in seascapeJason Monk2017-04-111-14/+32
| | | | | | Test: visual Change-Id: I7792d0f5f98e83f0b2fd57a831e82efa07533c2b Fixes: 34072199
* Change screen pinning back to old gestureJorim Jaggi2016-12-281-3/+5
| | | | | | | | | | | | | | | | | This makes the code a bit more complicated, but allows apps to receive long-press back again and also makes the mode harder to exit for toddlers. Test: Without TalkBack enabled, make sure the following works: - Enter multi-window mode with long pressing recents - Long press back gets sent to the app. - Enter screen pinning, make sure you can exit with gesture Test: With TalkBack enabled, make sure the following works: - Enter multi-window mode with long pressing recents - Long press back gets sent to the app. - Enter screen pinning, make sure you can exit with gesture Fixes: 324407 Change-Id: Icd7347aa9c60af00fdb0b3991baabb730552d097
* Fixed issue with ordering of non-app token windowsWale Ogunwale2016-12-131-0/+2
| | | | | | | | | | | | | We tried to fix this issue in I83357975c87c704af9d0702c939ca99984462365 but the fix introduced other problems. So, we are going to have sys-ui create a separate binder for object for each type of window it adds. Long term we want to allow one binder object to map to multiple window tokens on the same display in window manager. Change-Id: Iee53b8bf95b87f79ab7a1b574a54111c678f7413 Fixes: 33567674 Fixes: 33538278 Test: bit FrameworksServicesTests:com.android.server.wm.DisplayContentTests
* Update usage of ActivityManagerNative.Sudheer Shanka2016-11-141-2/+1
| | | | | | | | | | | - Remove references to ActivityManagerProxy. - Add isSystemReady to ActivityManager. Bug: 30977067 Test: cts/hostsidetests/services/activityandwindowmanager/util/run-test android.server.cts adb shell am instrument -e class com.android.server.am.ActivityManagerTest,com.android.server.am.TaskStackChangedListenerTest \ -w com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner Change-Id: I07390b6124fb1515821f5c0b37baf6ae74adc8fa
* Fixing issue with screen pinning screen not showing for secondary users.Winson2016-06-151-1/+6
| | | | | | | | | | | - Catch the exception when removing a view that is not yet attached. This is not an issue because we are in the process of attaching it for the first time anyways. - Ensure that we post the calls from the secondary user in the main thread for the system user. Especially since this calls through to add the view for the new screen pinning window. Bug: 29341417 Change-Id: If0e29a77ddb67426115f1d5d9f1adb580a1f07df