CommandQueue.java revision 4e850ffaa757cd6f1e2578c454a7a83a93419e83
10cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato/* 20cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * Copyright (C) 2010 The Android Open Source Project 30cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * 40cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * Licensed under the Apache License, Version 2.0 (the "License"); 50cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * you may not use this file except in compliance with the License. 60cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * You may obtain a copy of the License at 70cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * 80cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * http://www.apache.org/licenses/LICENSE-2.0 90cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * 100cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * Unless required by applicable law or agreed to in writing, software 110cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * distributed under the License is distributed on an "AS IS" BASIS, 120cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * See the License for the specific language governing permissions and 140cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * limitations under the License. 150cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato */ 160cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 1779de0c550037a5328bbc7f4fddaf02f192a5c283Joe Onoratopackage com.android.systemui.statusbar; 180cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 197e53f20c835ae2614c92717a6fc222b345c75036Jason Monkimport android.content.ComponentName; 2086905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggiimport android.graphics.Rect; 21165ce066b701ba0153000f0692bfc7032655d17dJorim Jaggiimport android.os.Bundle; 220cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onoratoimport android.os.Handler; 23a0c56fe93925d20d9c0b830b9664699ce557e78cJoe Onoratoimport android.os.IBinder; 240cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onoratoimport android.os.Message; 2524bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggiimport android.util.Pair; 26c0d7058b14c24cd07912f5629c26b39b7b4673d5Winson 2786905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggiimport com.android.internal.os.SomeArgs; 280cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onoratoimport com.android.internal.statusbar.IStatusBar; 290cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onoratoimport com.android.internal.statusbar.StatusBarIcon; 300cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 31f3f0e053f0cc66249a11639eb67d0cdc2da26dedJoe Onorato/** 32f3f0e053f0cc66249a11639eb67d0cdc2da26dedJoe Onorato * This class takes the functions from IStatusBar that come in on 33f3f0e053f0cc66249a11639eb67d0cdc2da26dedJoe Onorato * binder pool threads and posts messages to get them onto the main 34f3f0e053f0cc66249a11639eb67d0cdc2da26dedJoe Onorato * thread, and calls onto Callbacks. It also takes care of 354762c2d75a55e0854bbff2f996748116d4ab1a37Joe Onorato * coalescing these calls so they don't stack up. For the calls 364762c2d75a55e0854bbff2f996748116d4ab1a37Joe Onorato * are coalesced, note that they are all idempotent. 37f3f0e053f0cc66249a11639eb67d0cdc2da26dedJoe Onorato */ 38808182dc874e93582da38d013a4a790d6bc08fc9Joe Onoratopublic class CommandQueue extends IStatusBar.Stub { 391d4d30aebd2c22627131819cabfe95f97def2c83Daniel Sandler private static final int INDEX_MASK = 0xffff; 401d4d30aebd2c22627131819cabfe95f97def2c83Daniel Sandler private static final int MSG_SHIFT = 16; 411d4d30aebd2c22627131819cabfe95f97def2c83Daniel Sandler private static final int MSG_MASK = 0xffff << MSG_SHIFT; 420cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 431d4d30aebd2c22627131819cabfe95f97def2c83Daniel Sandler private static final int OP_SET_ICON = 1; 440cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato private static final int OP_REMOVE_ICON = 2; 450cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 46c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim private static final int MSG_ICON = 1 << MSG_SHIFT; 47c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim private static final int MSG_DISABLE = 2 << MSG_SHIFT; 48c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim private static final int MSG_EXPAND_NOTIFICATIONS = 3 << MSG_SHIFT; 49c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim private static final int MSG_COLLAPSE_PANELS = 4 << MSG_SHIFT; 50c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim private static final int MSG_EXPAND_SETTINGS = 5 << MSG_SHIFT; 51c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim private static final int MSG_SET_SYSTEMUI_VISIBILITY = 6 << MSG_SHIFT; 52c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim private static final int MSG_TOP_APP_WINDOW_CHANGED = 7 << MSG_SHIFT; 53c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim private static final int MSG_SHOW_IME_BUTTON = 8 << MSG_SHIFT; 54c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim private static final int MSG_TOGGLE_RECENT_APPS = 9 << MSG_SHIFT; 55c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim private static final int MSG_PRELOAD_RECENT_APPS = 10 << MSG_SHIFT; 56c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim private static final int MSG_CANCEL_PRELOAD_RECENT_APPS = 11 << MSG_SHIFT; 57c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim private static final int MSG_SET_WINDOW_STATE = 12 << MSG_SHIFT; 58c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim private static final int MSG_SHOW_RECENT_APPS = 13 << MSG_SHIFT; 59c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim private static final int MSG_HIDE_RECENT_APPS = 14 << MSG_SHIFT; 60c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim private static final int MSG_BUZZ_BEEP_BLINKED = 15 << MSG_SHIFT; 61c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim private static final int MSG_NOTIFICATION_LIGHT_OFF = 16 << MSG_SHIFT; 62c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim private static final int MSG_NOTIFICATION_LIGHT_PULSE = 17 << MSG_SHIFT; 63c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim private static final int MSG_SHOW_SCREEN_PIN_REQUEST = 18 << MSG_SHIFT; 64c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim private static final int MSG_APP_TRANSITION_PENDING = 19 << MSG_SHIFT; 65c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim private static final int MSG_APP_TRANSITION_CANCELLED = 20 << MSG_SHIFT; 66c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim private static final int MSG_APP_TRANSITION_STARTING = 21 << MSG_SHIFT; 67c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim private static final int MSG_ASSIST_DISCLOSURE = 22 << MSG_SHIFT; 68c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim private static final int MSG_START_ASSIST = 23 << MSG_SHIFT; 69c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim private static final int MSG_CAMERA_LAUNCH_GESTURE = 24 << MSG_SHIFT; 70c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim private static final int MSG_TOGGLE_KEYBOARD_SHORTCUTS = 25 << MSG_SHIFT; 71c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim private static final int MSG_REQUEST_TV_PICTURE_IN_PICTURE = 26 << MSG_SHIFT; 727e53f20c835ae2614c92717a6fc222b345c75036Jason Monk private static final int MSG_ADD_QS_TILE = 27 << MSG_SHIFT; 737e53f20c835ae2614c92717a6fc222b345c75036Jason Monk private static final int MSG_REMOVE_QS_TILE = 28 << MSG_SHIFT; 747e53f20c835ae2614c92717a6fc222b345c75036Jason Monk private static final int MSG_CLICK_QS_TILE = 29 << MSG_SHIFT; 75315c34e7d62ce4b609f2d08b18a11a2d44e93abaPhil Weaver private static final int MSG_TOGGLE_APP_SPLIT_SCREEN = 30 << MSG_SHIFT; 76328310c6fac6066d338926bb43d359862cae36d2Daniel Sandler 779a720f5eb6c67b581df22f4ecb498cebb459babeJim Miller public static final int FLAG_EXCLUDE_NONE = 0; 789a720f5eb6c67b581df22f4ecb498cebb459babeJim Miller public static final int FLAG_EXCLUDE_SEARCH_PANEL = 1 << 0; 799a720f5eb6c67b581df22f4ecb498cebb459babeJim Miller public static final int FLAG_EXCLUDE_RECENTS_PANEL = 1 << 1; 809a720f5eb6c67b581df22f4ecb498cebb459babeJim Miller public static final int FLAG_EXCLUDE_NOTIFICATION_PANEL = 1 << 2; 819a720f5eb6c67b581df22f4ecb498cebb459babeJim Miller public static final int FLAG_EXCLUDE_INPUT_METHODS_PANEL = 1 << 3; 829a720f5eb6c67b581df22f4ecb498cebb459babeJim Miller public static final int FLAG_EXCLUDE_COMPAT_MODE_PANEL = 1 << 4; 839a720f5eb6c67b581df22f4ecb498cebb459babeJim Miller 84b605fecd9e4282823af754b3968b21205d64554aJason Monk private static final String SHOW_IME_SWITCHER_KEY = "showImeSwitcherKey"; 85b605fecd9e4282823af754b3968b21205d64554aJason Monk 8607473cea3a6007d5e72b25d3445437a175735fa9Jason Monk private final Object mLock = new Object(); 870cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato private Callbacks mCallbacks; 880cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato private Handler mHandler = new H(); 890cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 900cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato /** 910cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * These methods are called back on the main thread. 920cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato */ 930cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato public interface Callbacks { 9407473cea3a6007d5e72b25d3445437a175735fa9Jason Monk public void setIcon(String slot, StatusBarIcon icon); 9507473cea3a6007d5e72b25d3445437a175735fa9Jason Monk public void removeIcon(String slot); 96cde0a2a9ea00d6e4acfe6ce7a7c9061343df7fa3Benjamin Franz public void disable(int state1, int state2, boolean animate); 9711cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler public void animateExpandNotificationsPanel(); 9811cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler public void animateCollapsePanels(int flags); 99a9927325eda025504d59bb6594fee8e240d95b01Jason Monk public void animateExpandSettingsPanel(String obj); 10086905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi public void setSystemUiVisibility(int vis, int fullscreenStackVis, 10186905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi int dockedStackVis, int mask, Rect fullscreenStackBounds, Rect dockedStackBounds); 1027d04932ef5c001769ccef244f551b75773f1666bDianne Hackborn public void topAppWindowChanged(boolean visible); 103b605fecd9e4282823af754b3968b21205d64554aJason Monk public void setImeWindowStatus(IBinder token, int vis, int backDisposition, 104b605fecd9e4282823af754b3968b21205d64554aJason Monk boolean showImeSwitcher); 1051e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung public void showRecentApps(boolean triggeredFromAltTab); 106cdcd487abad10f728f0542accc42a31d1f7fedacWinson Chung public void hideRecentApps(boolean triggeredFromAltTab, boolean triggeredFromHomeKey); 1073b1fc47d004f6b29af8f40d181baa3460b1e3b15Michael Jurka public void toggleRecentApps(); 108315c34e7d62ce4b609f2d08b18a11a2d44e93abaPhil Weaver public void toggleSplitScreen(); 1097f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka public void preloadRecentApps(); 1104e850ffaa757cd6f1e2578c454a7a83a93419e83Clara Bayarri public void toggleKeyboardShortcutsMenu(int deviceId); 1111e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung public void cancelPreloadRecentApps(); 1129764218ff979f735aee2f1189e3547d5f3b02f83John Spurlock public void setWindowState(int window, int state); 113cad5768e22e5132efb2e5179f4988a763c7a8d9eJohn Spurlock public void buzzBeepBlinked(); 114cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock public void notificationLightOff(); 115cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock public void notificationLightPulse(int argb, int onMillis, int offMillis); 1165565cb42f2ac07fcdbe3aab2503de07fbeb39504Jason Monk public void showScreenPinningRequest(); 11724bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi public void appTransitionPending(); 11824bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi public void appTransitionCancelled(); 11924bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi public void appTransitionStarting(long startTime, long duration); 1204f43dc042bf76ec6c3b340b2297dec7c4cdd9098Adrian Roos public void showAssistDisclosure(); 121165ce066b701ba0153000f0692bfc7032655d17dJorim Jaggi public void startAssist(Bundle args); 12240aa8811bc817293d7400c14fa60350d2350d29fJorim Jaggi public void onCameraLaunchGestureDetected(int source); 123c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim public void requestTvPictureInPicture(); 1247e53f20c835ae2614c92717a6fc222b345c75036Jason Monk 1257e53f20c835ae2614c92717a6fc222b345c75036Jason Monk void addQsTile(ComponentName tile); 1267e53f20c835ae2614c92717a6fc222b345c75036Jason Monk void remQsTile(ComponentName tile); 1277e53f20c835ae2614c92717a6fc222b345c75036Jason Monk void clickTile(ComponentName tile); 1280cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 1290cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 13007473cea3a6007d5e72b25d3445437a175735fa9Jason Monk public CommandQueue(Callbacks callbacks) { 1310cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato mCallbacks = callbacks; 1320cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 1330cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 13407473cea3a6007d5e72b25d3445437a175735fa9Jason Monk public void setIcon(String slot, StatusBarIcon icon) { 13507473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 13607473cea3a6007d5e72b25d3445437a175735fa9Jason Monk // don't coalesce these 13707473cea3a6007d5e72b25d3445437a175735fa9Jason Monk mHandler.obtainMessage(MSG_ICON, OP_SET_ICON, 0, 13807473cea3a6007d5e72b25d3445437a175735fa9Jason Monk new Pair<String, StatusBarIcon>(slot, icon)).sendToTarget(); 1390cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 1400cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 1410cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 14207473cea3a6007d5e72b25d3445437a175735fa9Jason Monk public void removeIcon(String slot) { 14307473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 14407473cea3a6007d5e72b25d3445437a175735fa9Jason Monk // don't coalesce these 14507473cea3a6007d5e72b25d3445437a175735fa9Jason Monk mHandler.obtainMessage(MSG_ICON, OP_REMOVE_ICON, 0, slot).sendToTarget(); 1460cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 1470cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 1480cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 149cde0a2a9ea00d6e4acfe6ce7a7c9061343df7fa3Benjamin Franz public void disable(int state1, int state2) { 15007473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 151f3f0e053f0cc66249a11639eb67d0cdc2da26dedJoe Onorato mHandler.removeMessages(MSG_DISABLE); 152cde0a2a9ea00d6e4acfe6ce7a7c9061343df7fa3Benjamin Franz mHandler.obtainMessage(MSG_DISABLE, state1, state2, null).sendToTarget(); 153f3f0e053f0cc66249a11639eb67d0cdc2da26dedJoe Onorato } 154f3f0e053f0cc66249a11639eb67d0cdc2da26dedJoe Onorato } 155f3f0e053f0cc66249a11639eb67d0cdc2da26dedJoe Onorato 15611cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler public void animateExpandNotificationsPanel() { 15707473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 158e20a177d3f147f3011647c3bdab401f90b2c5d1dSvetoslav Ganov mHandler.removeMessages(MSG_EXPAND_NOTIFICATIONS); 159e20a177d3f147f3011647c3bdab401f90b2c5d1dSvetoslav Ganov mHandler.sendEmptyMessage(MSG_EXPAND_NOTIFICATIONS); 160e20a177d3f147f3011647c3bdab401f90b2c5d1dSvetoslav Ganov } 161e20a177d3f147f3011647c3bdab401f90b2c5d1dSvetoslav Ganov } 162e20a177d3f147f3011647c3bdab401f90b2c5d1dSvetoslav Ganov 16311cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler public void animateCollapsePanels() { 16407473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 16511cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler mHandler.removeMessages(MSG_COLLAPSE_PANELS); 16611cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler mHandler.sendEmptyMessage(MSG_COLLAPSE_PANELS); 1674762c2d75a55e0854bbff2f996748116d4ab1a37Joe Onorato } 1684762c2d75a55e0854bbff2f996748116d4ab1a37Joe Onorato } 1694762c2d75a55e0854bbff2f996748116d4ab1a37Joe Onorato 170a9927325eda025504d59bb6594fee8e240d95b01Jason Monk public void animateExpandSettingsPanel(String subPanel) { 17107473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 17211cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler mHandler.removeMessages(MSG_EXPAND_SETTINGS); 173a9927325eda025504d59bb6594fee8e240d95b01Jason Monk mHandler.obtainMessage(MSG_EXPAND_SETTINGS, subPanel).sendToTarget(); 1744762c2d75a55e0854bbff2f996748116d4ab1a37Joe Onorato } 1754762c2d75a55e0854bbff2f996748116d4ab1a37Joe Onorato } 1764762c2d75a55e0854bbff2f996748116d4ab1a37Joe Onorato 17786905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi public void setSystemUiVisibility(int vis, int fullscreenStackVis, int dockedStackVis, 17886905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi int mask, Rect fullscreenStackBounds, Rect dockedStackBounds) { 17907473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 1804a4a2bddc48a33cbaa49a8844b9fd36e2fc5e219Selim Cinek // Don't coalesce these, since it might have one time flags set such as 1814a4a2bddc48a33cbaa49a8844b9fd36e2fc5e219Selim Cinek // STATUS_BAR_UNHIDE which might get lost. 18286905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi SomeArgs args = SomeArgs.obtain(); 18386905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi args.argi1 = vis; 18486905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi args.argi2 = fullscreenStackVis; 18586905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi args.argi3 = dockedStackVis; 18686905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi args.argi4 = mask; 18786905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi args.arg1 = fullscreenStackBounds; 18886905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi args.arg2 = dockedStackBounds; 18986905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi mHandler.obtainMessage(MSG_SET_SYSTEMUI_VISIBILITY, args).sendToTarget(); 1909305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato } 1919305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato } 1929305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato 1937d04932ef5c001769ccef244f551b75773f1666bDianne Hackborn public void topAppWindowChanged(boolean menuVisible) { 19407473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 1957d04932ef5c001769ccef244f551b75773f1666bDianne Hackborn mHandler.removeMessages(MSG_TOP_APP_WINDOW_CHANGED); 1967d04932ef5c001769ccef244f551b75773f1666bDianne Hackborn mHandler.obtainMessage(MSG_TOP_APP_WINDOW_CHANGED, menuVisible ? 1 : 0, 0, 1977d04932ef5c001769ccef244f551b75773f1666bDianne Hackborn null).sendToTarget(); 198e02d808abf370965c3c4e4d38af11bc69110fde2Daniel Sandler } 199e02d808abf370965c3c4e4d38af11bc69110fde2Daniel Sandler } 200e02d808abf370965c3c4e4d38af11bc69110fde2Daniel Sandler 201b605fecd9e4282823af754b3968b21205d64554aJason Monk public void setImeWindowStatus(IBinder token, int vis, int backDisposition, 202b605fecd9e4282823af754b3968b21205d64554aJason Monk boolean showImeSwitcher) { 20307473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 20406487a58be22b100daf3f950b9a1d25c3ea42aa2satok mHandler.removeMessages(MSG_SHOW_IME_BUTTON); 205b605fecd9e4282823af754b3968b21205d64554aJason Monk Message m = mHandler.obtainMessage(MSG_SHOW_IME_BUTTON, vis, backDisposition, token); 206b605fecd9e4282823af754b3968b21205d64554aJason Monk m.getData().putBoolean(SHOW_IME_SWITCHER_KEY, showImeSwitcher); 207b605fecd9e4282823af754b3968b21205d64554aJason Monk m.sendToTarget(); 20806487a58be22b100daf3f950b9a1d25c3ea42aa2satok } 20906487a58be22b100daf3f950b9a1d25c3ea42aa2satok } 21006487a58be22b100daf3f950b9a1d25c3ea42aa2satok 2111e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung public void showRecentApps(boolean triggeredFromAltTab) { 21207473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 2131e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung mHandler.removeMessages(MSG_SHOW_RECENT_APPS); 2141e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung mHandler.obtainMessage(MSG_SHOW_RECENT_APPS, 2151e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung triggeredFromAltTab ? 1 : 0, 0, null).sendToTarget(); 2161e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung } 2171e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung } 2181e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung 219cdcd487abad10f728f0542accc42a31d1f7fedacWinson Chung public void hideRecentApps(boolean triggeredFromAltTab, boolean triggeredFromHomeKey) { 22007473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 2211e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung mHandler.removeMessages(MSG_HIDE_RECENT_APPS); 2226cb485fd2e2f8ace05e1ff281ab0fc824d3652cbWinson Chung mHandler.obtainMessage(MSG_HIDE_RECENT_APPS, 223cdcd487abad10f728f0542accc42a31d1f7fedacWinson Chung triggeredFromAltTab ? 1 : 0, triggeredFromHomeKey ? 1 : 0, 224cdcd487abad10f728f0542accc42a31d1f7fedacWinson Chung null).sendToTarget(); 2251e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung } 2261e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung } 2271e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung 228315c34e7d62ce4b609f2d08b18a11a2d44e93abaPhil Weaver public void toggleSplitScreen() { 229315c34e7d62ce4b609f2d08b18a11a2d44e93abaPhil Weaver synchronized (mLock) { 230315c34e7d62ce4b609f2d08b18a11a2d44e93abaPhil Weaver mHandler.removeMessages(MSG_TOGGLE_APP_SPLIT_SCREEN); 231315c34e7d62ce4b609f2d08b18a11a2d44e93abaPhil Weaver mHandler.obtainMessage(MSG_TOGGLE_APP_SPLIT_SCREEN, 0, 0, null).sendToTarget(); 232315c34e7d62ce4b609f2d08b18a11a2d44e93abaPhil Weaver } 233315c34e7d62ce4b609f2d08b18a11a2d44e93abaPhil Weaver } 234315c34e7d62ce4b609f2d08b18a11a2d44e93abaPhil Weaver 2353b1fc47d004f6b29af8f40d181baa3460b1e3b15Michael Jurka public void toggleRecentApps() { 23607473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 2373b1fc47d004f6b29af8f40d181baa3460b1e3b15Michael Jurka mHandler.removeMessages(MSG_TOGGLE_RECENT_APPS); 2383b1fc47d004f6b29af8f40d181baa3460b1e3b15Michael Jurka mHandler.obtainMessage(MSG_TOGGLE_RECENT_APPS, 0, 0, null).sendToTarget(); 2393b1fc47d004f6b29af8f40d181baa3460b1e3b15Michael Jurka } 2403b1fc47d004f6b29af8f40d181baa3460b1e3b15Michael Jurka } 2413b1fc47d004f6b29af8f40d181baa3460b1e3b15Michael Jurka 2427f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka public void preloadRecentApps() { 24307473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 2447f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka mHandler.removeMessages(MSG_PRELOAD_RECENT_APPS); 2457f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka mHandler.obtainMessage(MSG_PRELOAD_RECENT_APPS, 0, 0, null).sendToTarget(); 2467f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka } 2477f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka } 2487f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka 2497f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka public void cancelPreloadRecentApps() { 25007473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 2517f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka mHandler.removeMessages(MSG_CANCEL_PRELOAD_RECENT_APPS); 2527f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka mHandler.obtainMessage(MSG_CANCEL_PRELOAD_RECENT_APPS, 0, 0, null).sendToTarget(); 2537f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka } 2547f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka } 2557f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka 256f2debb1f9a8a166e249a456efc0b41d731c275c2Clara Bayarri @Override 2574e850ffaa757cd6f1e2578c454a7a83a93419e83Clara Bayarri public void toggleKeyboardShortcutsMenu(int deviceId) { 25807473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 259c22ab7911a3efd7e0183f954f1760475d702ad3eAndrei Stingaceanu mHandler.removeMessages(MSG_TOGGLE_KEYBOARD_SHORTCUTS); 2604e850ffaa757cd6f1e2578c454a7a83a93419e83Clara Bayarri mHandler.obtainMessage(MSG_TOGGLE_KEYBOARD_SHORTCUTS, deviceId, 0).sendToTarget(); 261f2debb1f9a8a166e249a456efc0b41d731c275c2Clara Bayarri } 262f2debb1f9a8a166e249a456efc0b41d731c275c2Clara Bayarri } 263f2debb1f9a8a166e249a456efc0b41d731c275c2Clara Bayarri 264c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim @Override 265c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim public void requestTvPictureInPicture() { 266c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim synchronized (mLock) { 267c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim mHandler.removeMessages(MSG_REQUEST_TV_PICTURE_IN_PICTURE); 268c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim mHandler.obtainMessage(MSG_REQUEST_TV_PICTURE_IN_PICTURE).sendToTarget(); 269c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim } 270c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim } 271c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim 2729764218ff979f735aee2f1189e3547d5f3b02f83John Spurlock public void setWindowState(int window, int state) { 27307473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 2745b9145bf990a9bbf4fdef1739e61ff8c70ec868fJohn Spurlock // don't coalesce these 2759764218ff979f735aee2f1189e3547d5f3b02f83John Spurlock mHandler.obtainMessage(MSG_SET_WINDOW_STATE, window, state, null).sendToTarget(); 2769764218ff979f735aee2f1189e3547d5f3b02f83John Spurlock } 2779764218ff979f735aee2f1189e3547d5f3b02f83John Spurlock } 2789764218ff979f735aee2f1189e3547d5f3b02f83John Spurlock 279cad5768e22e5132efb2e5179f4988a763c7a8d9eJohn Spurlock public void buzzBeepBlinked() { 28007473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 281cad5768e22e5132efb2e5179f4988a763c7a8d9eJohn Spurlock mHandler.removeMessages(MSG_BUZZ_BEEP_BLINKED); 282cad5768e22e5132efb2e5179f4988a763c7a8d9eJohn Spurlock mHandler.sendEmptyMessage(MSG_BUZZ_BEEP_BLINKED); 283cad5768e22e5132efb2e5179f4988a763c7a8d9eJohn Spurlock } 284cad5768e22e5132efb2e5179f4988a763c7a8d9eJohn Spurlock } 285380ecb81db52a9d0197ca969951d07b91c20d2b9Jorim Jaggi 286cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock public void notificationLightOff() { 28707473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 288cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock mHandler.sendEmptyMessage(MSG_NOTIFICATION_LIGHT_OFF); 289cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock } 290cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock } 291cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock 292cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock public void notificationLightPulse(int argb, int onMillis, int offMillis) { 29307473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 294cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock mHandler.obtainMessage(MSG_NOTIFICATION_LIGHT_PULSE, onMillis, offMillis, argb) 295cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock .sendToTarget(); 296cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock } 297cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock } 298cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock 2995565cb42f2ac07fcdbe3aab2503de07fbeb39504Jason Monk public void showScreenPinningRequest() { 30007473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 3015565cb42f2ac07fcdbe3aab2503de07fbeb39504Jason Monk mHandler.sendEmptyMessage(MSG_SHOW_SCREEN_PIN_REQUEST); 3025565cb42f2ac07fcdbe3aab2503de07fbeb39504Jason Monk } 3035565cb42f2ac07fcdbe3aab2503de07fbeb39504Jason Monk } 3045565cb42f2ac07fcdbe3aab2503de07fbeb39504Jason Monk 30524bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi public void appTransitionPending() { 30607473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 30724bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi mHandler.removeMessages(MSG_APP_TRANSITION_PENDING); 30824bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi mHandler.sendEmptyMessage(MSG_APP_TRANSITION_PENDING); 30924bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi } 31024bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi } 31124bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi 31224bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi public void appTransitionCancelled() { 31307473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 31424bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi mHandler.removeMessages(MSG_APP_TRANSITION_PENDING); 31524bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi mHandler.sendEmptyMessage(MSG_APP_TRANSITION_PENDING); 31624bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi } 31724bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi } 31824bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi 31924bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi public void appTransitionStarting(long startTime, long duration) { 32007473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 32124bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi mHandler.removeMessages(MSG_APP_TRANSITION_STARTING); 32224bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi mHandler.obtainMessage(MSG_APP_TRANSITION_STARTING, Pair.create(startTime, duration)) 32324bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi .sendToTarget(); 32424bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi } 32524bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi } 32624bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi 3274f43dc042bf76ec6c3b340b2297dec7c4cdd9098Adrian Roos public void showAssistDisclosure() { 32807473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 3294f43dc042bf76ec6c3b340b2297dec7c4cdd9098Adrian Roos mHandler.removeMessages(MSG_ASSIST_DISCLOSURE); 3304f43dc042bf76ec6c3b340b2297dec7c4cdd9098Adrian Roos mHandler.obtainMessage(MSG_ASSIST_DISCLOSURE).sendToTarget(); 3314f43dc042bf76ec6c3b340b2297dec7c4cdd9098Adrian Roos } 3324f43dc042bf76ec6c3b340b2297dec7c4cdd9098Adrian Roos } 3334f43dc042bf76ec6c3b340b2297dec7c4cdd9098Adrian Roos 334165ce066b701ba0153000f0692bfc7032655d17dJorim Jaggi public void startAssist(Bundle args) { 33507473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 336165ce066b701ba0153000f0692bfc7032655d17dJorim Jaggi mHandler.removeMessages(MSG_START_ASSIST); 337165ce066b701ba0153000f0692bfc7032655d17dJorim Jaggi mHandler.obtainMessage(MSG_START_ASSIST, args).sendToTarget(); 338165ce066b701ba0153000f0692bfc7032655d17dJorim Jaggi } 339165ce066b701ba0153000f0692bfc7032655d17dJorim Jaggi } 340165ce066b701ba0153000f0692bfc7032655d17dJorim Jaggi 341372d1bdd54fe977c71bdaae895687c76ac35202aSelim Cinek @Override 34240aa8811bc817293d7400c14fa60350d2350d29fJorim Jaggi public void onCameraLaunchGestureDetected(int source) { 34307473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 344372d1bdd54fe977c71bdaae895687c76ac35202aSelim Cinek mHandler.removeMessages(MSG_CAMERA_LAUNCH_GESTURE); 34540aa8811bc817293d7400c14fa60350d2350d29fJorim Jaggi mHandler.obtainMessage(MSG_CAMERA_LAUNCH_GESTURE, source, 0).sendToTarget(); 346372d1bdd54fe977c71bdaae895687c76ac35202aSelim Cinek } 347372d1bdd54fe977c71bdaae895687c76ac35202aSelim Cinek } 348372d1bdd54fe977c71bdaae895687c76ac35202aSelim Cinek 3497e53f20c835ae2614c92717a6fc222b345c75036Jason Monk @Override 3507e53f20c835ae2614c92717a6fc222b345c75036Jason Monk public void addQsTile(ComponentName tile) { 3517e53f20c835ae2614c92717a6fc222b345c75036Jason Monk synchronized (mLock) { 3527e53f20c835ae2614c92717a6fc222b345c75036Jason Monk mHandler.obtainMessage(MSG_ADD_QS_TILE, tile).sendToTarget(); 3537e53f20c835ae2614c92717a6fc222b345c75036Jason Monk } 3547e53f20c835ae2614c92717a6fc222b345c75036Jason Monk } 3557e53f20c835ae2614c92717a6fc222b345c75036Jason Monk 3567e53f20c835ae2614c92717a6fc222b345c75036Jason Monk @Override 3577e53f20c835ae2614c92717a6fc222b345c75036Jason Monk public void remQsTile(ComponentName tile) { 3587e53f20c835ae2614c92717a6fc222b345c75036Jason Monk synchronized (mLock) { 3597e53f20c835ae2614c92717a6fc222b345c75036Jason Monk mHandler.obtainMessage(MSG_REMOVE_QS_TILE, tile).sendToTarget(); 3607e53f20c835ae2614c92717a6fc222b345c75036Jason Monk } 3617e53f20c835ae2614c92717a6fc222b345c75036Jason Monk } 3627e53f20c835ae2614c92717a6fc222b345c75036Jason Monk 3637e53f20c835ae2614c92717a6fc222b345c75036Jason Monk @Override 3647e53f20c835ae2614c92717a6fc222b345c75036Jason Monk public void clickQsTile(ComponentName tile) { 3657e53f20c835ae2614c92717a6fc222b345c75036Jason Monk synchronized (mLock) { 3667e53f20c835ae2614c92717a6fc222b345c75036Jason Monk mHandler.obtainMessage(MSG_CLICK_QS_TILE, tile).sendToTarget(); 3677e53f20c835ae2614c92717a6fc222b345c75036Jason Monk } 3687e53f20c835ae2614c92717a6fc222b345c75036Jason Monk } 3697e53f20c835ae2614c92717a6fc222b345c75036Jason Monk 3700cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato private final class H extends Handler { 3710cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato public void handleMessage(Message msg) { 372f3f0e053f0cc66249a11639eb67d0cdc2da26dedJoe Onorato final int what = msg.what & MSG_MASK; 37366d7d01ed91968f4ed2e2669fd306aa2af61cd16Joe Onorato switch (what) { 3740cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato case MSG_ICON: { 3750cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato switch (msg.arg1) { 3760cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato case OP_SET_ICON: { 37707473cea3a6007d5e72b25d3445437a175735fa9Jason Monk Pair<String, StatusBarIcon> p = (Pair<String, StatusBarIcon>) msg.obj; 37807473cea3a6007d5e72b25d3445437a175735fa9Jason Monk mCallbacks.setIcon(p.first, p.second); 3790cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato break; 3800cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 3810cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato case OP_REMOVE_ICON: 38207473cea3a6007d5e72b25d3445437a175735fa9Jason Monk mCallbacks.removeIcon((String) msg.obj); 3830cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato break; 3840cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 3850cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato break; 386a0c56fe93925d20d9c0b830b9664699ce557e78cJoe Onorato } 387f3f0e053f0cc66249a11639eb67d0cdc2da26dedJoe Onorato case MSG_DISABLE: 388cde0a2a9ea00d6e4acfe6ce7a7c9061343df7fa3Benjamin Franz mCallbacks.disable(msg.arg1, msg.arg2, true /* animate */); 389f3f0e053f0cc66249a11639eb67d0cdc2da26dedJoe Onorato break; 390e20a177d3f147f3011647c3bdab401f90b2c5d1dSvetoslav Ganov case MSG_EXPAND_NOTIFICATIONS: 39111cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler mCallbacks.animateExpandNotificationsPanel(); 392e20a177d3f147f3011647c3bdab401f90b2c5d1dSvetoslav Ganov break; 39311cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler case MSG_COLLAPSE_PANELS: 39411cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler mCallbacks.animateCollapsePanels(0); 395e20a177d3f147f3011647c3bdab401f90b2c5d1dSvetoslav Ganov break; 39611cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler case MSG_EXPAND_SETTINGS: 397a9927325eda025504d59bb6594fee8e240d95b01Jason Monk mCallbacks.animateExpandSettingsPanel((String) msg.obj); 3989305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato break; 39960ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler case MSG_SET_SYSTEMUI_VISIBILITY: 40086905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi SomeArgs args = (SomeArgs) msg.obj; 40186905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi mCallbacks.setSystemUiVisibility(args.argi1, args.argi2, args.argi3, 40286905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi args.argi4, (Rect) args.arg1, (Rect) args.arg2); 40386905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi args.recycle(); 4049305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato break; 4057d04932ef5c001769ccef244f551b75773f1666bDianne Hackborn case MSG_TOP_APP_WINDOW_CHANGED: 4067d04932ef5c001769ccef244f551b75773f1666bDianne Hackborn mCallbacks.topAppWindowChanged(msg.arg1 != 0); 407e02d808abf370965c3c4e4d38af11bc69110fde2Daniel Sandler break; 40806487a58be22b100daf3f950b9a1d25c3ea42aa2satok case MSG_SHOW_IME_BUTTON: 409b605fecd9e4282823af754b3968b21205d64554aJason Monk mCallbacks.setImeWindowStatus((IBinder) msg.obj, msg.arg1, msg.arg2, 410b605fecd9e4282823af754b3968b21205d64554aJason Monk msg.getData().getBoolean(SHOW_IME_SWITCHER_KEY, false)); 41106487a58be22b100daf3f950b9a1d25c3ea42aa2satok break; 4121e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung case MSG_SHOW_RECENT_APPS: 4131e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung mCallbacks.showRecentApps(msg.arg1 != 0); 4141e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung break; 4151e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung case MSG_HIDE_RECENT_APPS: 416cdcd487abad10f728f0542accc42a31d1f7fedacWinson Chung mCallbacks.hideRecentApps(msg.arg1 != 0, msg.arg2 != 0); 4171e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung break; 4183b1fc47d004f6b29af8f40d181baa3460b1e3b15Michael Jurka case MSG_TOGGLE_RECENT_APPS: 4193b1fc47d004f6b29af8f40d181baa3460b1e3b15Michael Jurka mCallbacks.toggleRecentApps(); 4203b1fc47d004f6b29af8f40d181baa3460b1e3b15Michael Jurka break; 4217f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka case MSG_PRELOAD_RECENT_APPS: 4227f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka mCallbacks.preloadRecentApps(); 4237f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka break; 4247f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka case MSG_CANCEL_PRELOAD_RECENT_APPS: 4257f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka mCallbacks.cancelPreloadRecentApps(); 4267f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka break; 427c22ab7911a3efd7e0183f954f1760475d702ad3eAndrei Stingaceanu case MSG_TOGGLE_KEYBOARD_SHORTCUTS: 4284e850ffaa757cd6f1e2578c454a7a83a93419e83Clara Bayarri mCallbacks.toggleKeyboardShortcutsMenu(msg.arg1); 429f2debb1f9a8a166e249a456efc0b41d731c275c2Clara Bayarri break; 4309764218ff979f735aee2f1189e3547d5f3b02f83John Spurlock case MSG_SET_WINDOW_STATE: 4319764218ff979f735aee2f1189e3547d5f3b02f83John Spurlock mCallbacks.setWindowState(msg.arg1, msg.arg2); 4329764218ff979f735aee2f1189e3547d5f3b02f83John Spurlock break; 433cad5768e22e5132efb2e5179f4988a763c7a8d9eJohn Spurlock case MSG_BUZZ_BEEP_BLINKED: 434cad5768e22e5132efb2e5179f4988a763c7a8d9eJohn Spurlock mCallbacks.buzzBeepBlinked(); 435cad5768e22e5132efb2e5179f4988a763c7a8d9eJohn Spurlock break; 436cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock case MSG_NOTIFICATION_LIGHT_OFF: 437cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock mCallbacks.notificationLightOff(); 438cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock break; 439cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock case MSG_NOTIFICATION_LIGHT_PULSE: 440cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock mCallbacks.notificationLightPulse((Integer) msg.obj, msg.arg1, msg.arg2); 441cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock break; 4425565cb42f2ac07fcdbe3aab2503de07fbeb39504Jason Monk case MSG_SHOW_SCREEN_PIN_REQUEST: 4435565cb42f2ac07fcdbe3aab2503de07fbeb39504Jason Monk mCallbacks.showScreenPinningRequest(); 4445565cb42f2ac07fcdbe3aab2503de07fbeb39504Jason Monk break; 44524bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi case MSG_APP_TRANSITION_PENDING: 44624bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi mCallbacks.appTransitionPending(); 44724bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi break; 44824bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi case MSG_APP_TRANSITION_CANCELLED: 44924bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi mCallbacks.appTransitionCancelled(); 45024bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi break; 45124bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi case MSG_APP_TRANSITION_STARTING: 45224bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi Pair<Long, Long> data = (Pair<Long, Long>) msg.obj; 45324bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi mCallbacks.appTransitionStarting(data.first, data.second); 45424bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi break; 4554f43dc042bf76ec6c3b340b2297dec7c4cdd9098Adrian Roos case MSG_ASSIST_DISCLOSURE: 4564f43dc042bf76ec6c3b340b2297dec7c4cdd9098Adrian Roos mCallbacks.showAssistDisclosure(); 4574f43dc042bf76ec6c3b340b2297dec7c4cdd9098Adrian Roos break; 458165ce066b701ba0153000f0692bfc7032655d17dJorim Jaggi case MSG_START_ASSIST: 459165ce066b701ba0153000f0692bfc7032655d17dJorim Jaggi mCallbacks.startAssist((Bundle) msg.obj); 460165ce066b701ba0153000f0692bfc7032655d17dJorim Jaggi break; 461372d1bdd54fe977c71bdaae895687c76ac35202aSelim Cinek case MSG_CAMERA_LAUNCH_GESTURE: 46240aa8811bc817293d7400c14fa60350d2350d29fJorim Jaggi mCallbacks.onCameraLaunchGestureDetected(msg.arg1); 463372d1bdd54fe977c71bdaae895687c76ac35202aSelim Cinek break; 464c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim case MSG_REQUEST_TV_PICTURE_IN_PICTURE: 465c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim mCallbacks.requestTvPictureInPicture(); 466c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim break; 4677e53f20c835ae2614c92717a6fc222b345c75036Jason Monk case MSG_ADD_QS_TILE: 4687e53f20c835ae2614c92717a6fc222b345c75036Jason Monk mCallbacks.addQsTile((ComponentName) msg.obj); 4697e53f20c835ae2614c92717a6fc222b345c75036Jason Monk break; 4707e53f20c835ae2614c92717a6fc222b345c75036Jason Monk case MSG_REMOVE_QS_TILE: 4717e53f20c835ae2614c92717a6fc222b345c75036Jason Monk mCallbacks.remQsTile((ComponentName) msg.obj); 4727e53f20c835ae2614c92717a6fc222b345c75036Jason Monk break; 4737e53f20c835ae2614c92717a6fc222b345c75036Jason Monk case MSG_CLICK_QS_TILE: 4747e53f20c835ae2614c92717a6fc222b345c75036Jason Monk mCallbacks.clickTile((ComponentName) msg.obj); 4757e53f20c835ae2614c92717a6fc222b345c75036Jason Monk break; 476315c34e7d62ce4b609f2d08b18a11a2d44e93abaPhil Weaver case MSG_TOGGLE_APP_SPLIT_SCREEN: 477315c34e7d62ce4b609f2d08b18a11a2d44e93abaPhil Weaver mCallbacks.toggleSplitScreen(); 478315c34e7d62ce4b609f2d08b18a11a2d44e93abaPhil Weaver break; 4790cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 4800cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 4810cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 4820cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato} 4830cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 484