CommandQueue.java revision 2adba07d75419462873dfeef40d4c983d832ed99
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; 762adba07d75419462873dfeef40d4c983d832ed99Jorim Jaggi private static final int MSG_APP_TRANSITION_FINISHED = 31 << MSG_SHIFT; 77328310c6fac6066d338926bb43d359862cae36d2Daniel Sandler 789a720f5eb6c67b581df22f4ecb498cebb459babeJim Miller public static final int FLAG_EXCLUDE_NONE = 0; 799a720f5eb6c67b581df22f4ecb498cebb459babeJim Miller public static final int FLAG_EXCLUDE_SEARCH_PANEL = 1 << 0; 809a720f5eb6c67b581df22f4ecb498cebb459babeJim Miller public static final int FLAG_EXCLUDE_RECENTS_PANEL = 1 << 1; 819a720f5eb6c67b581df22f4ecb498cebb459babeJim Miller public static final int FLAG_EXCLUDE_NOTIFICATION_PANEL = 1 << 2; 829a720f5eb6c67b581df22f4ecb498cebb459babeJim Miller public static final int FLAG_EXCLUDE_INPUT_METHODS_PANEL = 1 << 3; 839a720f5eb6c67b581df22f4ecb498cebb459babeJim Miller public static final int FLAG_EXCLUDE_COMPAT_MODE_PANEL = 1 << 4; 849a720f5eb6c67b581df22f4ecb498cebb459babeJim Miller 85b605fecd9e4282823af754b3968b21205d64554aJason Monk private static final String SHOW_IME_SWITCHER_KEY = "showImeSwitcherKey"; 86b605fecd9e4282823af754b3968b21205d64554aJason Monk 8707473cea3a6007d5e72b25d3445437a175735fa9Jason Monk private final Object mLock = new Object(); 880cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato private Callbacks mCallbacks; 890cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato private Handler mHandler = new H(); 900cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 910cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato /** 920cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato * These methods are called back on the main thread. 930cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato */ 940cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato public interface Callbacks { 9507473cea3a6007d5e72b25d3445437a175735fa9Jason Monk public void setIcon(String slot, StatusBarIcon icon); 9607473cea3a6007d5e72b25d3445437a175735fa9Jason Monk public void removeIcon(String slot); 97cde0a2a9ea00d6e4acfe6ce7a7c9061343df7fa3Benjamin Franz public void disable(int state1, int state2, boolean animate); 9811cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler public void animateExpandNotificationsPanel(); 9911cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler public void animateCollapsePanels(int flags); 100a9927325eda025504d59bb6594fee8e240d95b01Jason Monk public void animateExpandSettingsPanel(String obj); 10186905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi public void setSystemUiVisibility(int vis, int fullscreenStackVis, 10286905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi int dockedStackVis, int mask, Rect fullscreenStackBounds, Rect dockedStackBounds); 1037d04932ef5c001769ccef244f551b75773f1666bDianne Hackborn public void topAppWindowChanged(boolean visible); 104b605fecd9e4282823af754b3968b21205d64554aJason Monk public void setImeWindowStatus(IBinder token, int vis, int backDisposition, 105b605fecd9e4282823af754b3968b21205d64554aJason Monk boolean showImeSwitcher); 1061e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung public void showRecentApps(boolean triggeredFromAltTab); 107cdcd487abad10f728f0542accc42a31d1f7fedacWinson Chung public void hideRecentApps(boolean triggeredFromAltTab, boolean triggeredFromHomeKey); 1083b1fc47d004f6b29af8f40d181baa3460b1e3b15Michael Jurka public void toggleRecentApps(); 109315c34e7d62ce4b609f2d08b18a11a2d44e93abaPhil Weaver public void toggleSplitScreen(); 1107f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka public void preloadRecentApps(); 1114e850ffaa757cd6f1e2578c454a7a83a93419e83Clara Bayarri public void toggleKeyboardShortcutsMenu(int deviceId); 1121e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung public void cancelPreloadRecentApps(); 1139764218ff979f735aee2f1189e3547d5f3b02f83John Spurlock public void setWindowState(int window, int state); 114cad5768e22e5132efb2e5179f4988a763c7a8d9eJohn Spurlock public void buzzBeepBlinked(); 115cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock public void notificationLightOff(); 116cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock public void notificationLightPulse(int argb, int onMillis, int offMillis); 1175565cb42f2ac07fcdbe3aab2503de07fbeb39504Jason Monk public void showScreenPinningRequest(); 11824bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi public void appTransitionPending(); 11924bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi public void appTransitionCancelled(); 12024bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi public void appTransitionStarting(long startTime, long duration); 1212adba07d75419462873dfeef40d4c983d832ed99Jorim Jaggi public void appTransitionFinished(); 1224f43dc042bf76ec6c3b340b2297dec7c4cdd9098Adrian Roos public void showAssistDisclosure(); 123165ce066b701ba0153000f0692bfc7032655d17dJorim Jaggi public void startAssist(Bundle args); 12440aa8811bc817293d7400c14fa60350d2350d29fJorim Jaggi public void onCameraLaunchGestureDetected(int source); 125c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim public void requestTvPictureInPicture(); 1267e53f20c835ae2614c92717a6fc222b345c75036Jason Monk 1277e53f20c835ae2614c92717a6fc222b345c75036Jason Monk void addQsTile(ComponentName tile); 1287e53f20c835ae2614c92717a6fc222b345c75036Jason Monk void remQsTile(ComponentName tile); 1297e53f20c835ae2614c92717a6fc222b345c75036Jason Monk void clickTile(ComponentName tile); 1300cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 1310cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 13207473cea3a6007d5e72b25d3445437a175735fa9Jason Monk public CommandQueue(Callbacks callbacks) { 1330cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato mCallbacks = callbacks; 1340cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 1350cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 13607473cea3a6007d5e72b25d3445437a175735fa9Jason Monk public void setIcon(String slot, StatusBarIcon icon) { 13707473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 13807473cea3a6007d5e72b25d3445437a175735fa9Jason Monk // don't coalesce these 13907473cea3a6007d5e72b25d3445437a175735fa9Jason Monk mHandler.obtainMessage(MSG_ICON, OP_SET_ICON, 0, 14007473cea3a6007d5e72b25d3445437a175735fa9Jason Monk new Pair<String, StatusBarIcon>(slot, icon)).sendToTarget(); 1410cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 1420cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 1430cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 14407473cea3a6007d5e72b25d3445437a175735fa9Jason Monk public void removeIcon(String slot) { 14507473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 14607473cea3a6007d5e72b25d3445437a175735fa9Jason Monk // don't coalesce these 14707473cea3a6007d5e72b25d3445437a175735fa9Jason Monk mHandler.obtainMessage(MSG_ICON, OP_REMOVE_ICON, 0, slot).sendToTarget(); 1480cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 1490cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 1500cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 151cde0a2a9ea00d6e4acfe6ce7a7c9061343df7fa3Benjamin Franz public void disable(int state1, int state2) { 15207473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 153f3f0e053f0cc66249a11639eb67d0cdc2da26dedJoe Onorato mHandler.removeMessages(MSG_DISABLE); 154cde0a2a9ea00d6e4acfe6ce7a7c9061343df7fa3Benjamin Franz mHandler.obtainMessage(MSG_DISABLE, state1, state2, null).sendToTarget(); 155f3f0e053f0cc66249a11639eb67d0cdc2da26dedJoe Onorato } 156f3f0e053f0cc66249a11639eb67d0cdc2da26dedJoe Onorato } 157f3f0e053f0cc66249a11639eb67d0cdc2da26dedJoe Onorato 15811cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler public void animateExpandNotificationsPanel() { 15907473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 160e20a177d3f147f3011647c3bdab401f90b2c5d1dSvetoslav Ganov mHandler.removeMessages(MSG_EXPAND_NOTIFICATIONS); 161e20a177d3f147f3011647c3bdab401f90b2c5d1dSvetoslav Ganov mHandler.sendEmptyMessage(MSG_EXPAND_NOTIFICATIONS); 162e20a177d3f147f3011647c3bdab401f90b2c5d1dSvetoslav Ganov } 163e20a177d3f147f3011647c3bdab401f90b2c5d1dSvetoslav Ganov } 164e20a177d3f147f3011647c3bdab401f90b2c5d1dSvetoslav Ganov 16511cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler public void animateCollapsePanels() { 16607473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 16711cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler mHandler.removeMessages(MSG_COLLAPSE_PANELS); 16811cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler mHandler.sendEmptyMessage(MSG_COLLAPSE_PANELS); 1694762c2d75a55e0854bbff2f996748116d4ab1a37Joe Onorato } 1704762c2d75a55e0854bbff2f996748116d4ab1a37Joe Onorato } 1714762c2d75a55e0854bbff2f996748116d4ab1a37Joe Onorato 172a9927325eda025504d59bb6594fee8e240d95b01Jason Monk public void animateExpandSettingsPanel(String subPanel) { 17307473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 17411cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler mHandler.removeMessages(MSG_EXPAND_SETTINGS); 175a9927325eda025504d59bb6594fee8e240d95b01Jason Monk mHandler.obtainMessage(MSG_EXPAND_SETTINGS, subPanel).sendToTarget(); 1764762c2d75a55e0854bbff2f996748116d4ab1a37Joe Onorato } 1774762c2d75a55e0854bbff2f996748116d4ab1a37Joe Onorato } 1784762c2d75a55e0854bbff2f996748116d4ab1a37Joe Onorato 17986905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi public void setSystemUiVisibility(int vis, int fullscreenStackVis, int dockedStackVis, 18086905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi int mask, Rect fullscreenStackBounds, Rect dockedStackBounds) { 18107473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 1824a4a2bddc48a33cbaa49a8844b9fd36e2fc5e219Selim Cinek // Don't coalesce these, since it might have one time flags set such as 1834a4a2bddc48a33cbaa49a8844b9fd36e2fc5e219Selim Cinek // STATUS_BAR_UNHIDE which might get lost. 18486905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi SomeArgs args = SomeArgs.obtain(); 18586905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi args.argi1 = vis; 18686905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi args.argi2 = fullscreenStackVis; 18786905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi args.argi3 = dockedStackVis; 18886905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi args.argi4 = mask; 18986905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi args.arg1 = fullscreenStackBounds; 19086905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi args.arg2 = dockedStackBounds; 19186905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi mHandler.obtainMessage(MSG_SET_SYSTEMUI_VISIBILITY, args).sendToTarget(); 1929305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato } 1939305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato } 1949305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato 1957d04932ef5c001769ccef244f551b75773f1666bDianne Hackborn public void topAppWindowChanged(boolean menuVisible) { 19607473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 1977d04932ef5c001769ccef244f551b75773f1666bDianne Hackborn mHandler.removeMessages(MSG_TOP_APP_WINDOW_CHANGED); 1987d04932ef5c001769ccef244f551b75773f1666bDianne Hackborn mHandler.obtainMessage(MSG_TOP_APP_WINDOW_CHANGED, menuVisible ? 1 : 0, 0, 1997d04932ef5c001769ccef244f551b75773f1666bDianne Hackborn null).sendToTarget(); 200e02d808abf370965c3c4e4d38af11bc69110fde2Daniel Sandler } 201e02d808abf370965c3c4e4d38af11bc69110fde2Daniel Sandler } 202e02d808abf370965c3c4e4d38af11bc69110fde2Daniel Sandler 203b605fecd9e4282823af754b3968b21205d64554aJason Monk public void setImeWindowStatus(IBinder token, int vis, int backDisposition, 204b605fecd9e4282823af754b3968b21205d64554aJason Monk boolean showImeSwitcher) { 20507473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 20606487a58be22b100daf3f950b9a1d25c3ea42aa2satok mHandler.removeMessages(MSG_SHOW_IME_BUTTON); 207b605fecd9e4282823af754b3968b21205d64554aJason Monk Message m = mHandler.obtainMessage(MSG_SHOW_IME_BUTTON, vis, backDisposition, token); 208b605fecd9e4282823af754b3968b21205d64554aJason Monk m.getData().putBoolean(SHOW_IME_SWITCHER_KEY, showImeSwitcher); 209b605fecd9e4282823af754b3968b21205d64554aJason Monk m.sendToTarget(); 21006487a58be22b100daf3f950b9a1d25c3ea42aa2satok } 21106487a58be22b100daf3f950b9a1d25c3ea42aa2satok } 21206487a58be22b100daf3f950b9a1d25c3ea42aa2satok 2131e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung public void showRecentApps(boolean triggeredFromAltTab) { 21407473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 2151e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung mHandler.removeMessages(MSG_SHOW_RECENT_APPS); 2161e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung mHandler.obtainMessage(MSG_SHOW_RECENT_APPS, 2171e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung triggeredFromAltTab ? 1 : 0, 0, null).sendToTarget(); 2181e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung } 2191e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung } 2201e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung 221cdcd487abad10f728f0542accc42a31d1f7fedacWinson Chung public void hideRecentApps(boolean triggeredFromAltTab, boolean triggeredFromHomeKey) { 22207473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 2231e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung mHandler.removeMessages(MSG_HIDE_RECENT_APPS); 2246cb485fd2e2f8ace05e1ff281ab0fc824d3652cbWinson Chung mHandler.obtainMessage(MSG_HIDE_RECENT_APPS, 225cdcd487abad10f728f0542accc42a31d1f7fedacWinson Chung triggeredFromAltTab ? 1 : 0, triggeredFromHomeKey ? 1 : 0, 226cdcd487abad10f728f0542accc42a31d1f7fedacWinson Chung null).sendToTarget(); 2271e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung } 2281e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung } 2291e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung 230315c34e7d62ce4b609f2d08b18a11a2d44e93abaPhil Weaver public void toggleSplitScreen() { 231315c34e7d62ce4b609f2d08b18a11a2d44e93abaPhil Weaver synchronized (mLock) { 232315c34e7d62ce4b609f2d08b18a11a2d44e93abaPhil Weaver mHandler.removeMessages(MSG_TOGGLE_APP_SPLIT_SCREEN); 233315c34e7d62ce4b609f2d08b18a11a2d44e93abaPhil Weaver mHandler.obtainMessage(MSG_TOGGLE_APP_SPLIT_SCREEN, 0, 0, null).sendToTarget(); 234315c34e7d62ce4b609f2d08b18a11a2d44e93abaPhil Weaver } 235315c34e7d62ce4b609f2d08b18a11a2d44e93abaPhil Weaver } 236315c34e7d62ce4b609f2d08b18a11a2d44e93abaPhil Weaver 2373b1fc47d004f6b29af8f40d181baa3460b1e3b15Michael Jurka public void toggleRecentApps() { 23807473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 2393b1fc47d004f6b29af8f40d181baa3460b1e3b15Michael Jurka mHandler.removeMessages(MSG_TOGGLE_RECENT_APPS); 2403b1fc47d004f6b29af8f40d181baa3460b1e3b15Michael Jurka mHandler.obtainMessage(MSG_TOGGLE_RECENT_APPS, 0, 0, null).sendToTarget(); 2413b1fc47d004f6b29af8f40d181baa3460b1e3b15Michael Jurka } 2423b1fc47d004f6b29af8f40d181baa3460b1e3b15Michael Jurka } 2433b1fc47d004f6b29af8f40d181baa3460b1e3b15Michael Jurka 2447f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka public void preloadRecentApps() { 24507473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 2467f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka mHandler.removeMessages(MSG_PRELOAD_RECENT_APPS); 2477f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka mHandler.obtainMessage(MSG_PRELOAD_RECENT_APPS, 0, 0, null).sendToTarget(); 2487f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka } 2497f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka } 2507f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka 2517f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka public void cancelPreloadRecentApps() { 25207473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 2537f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka mHandler.removeMessages(MSG_CANCEL_PRELOAD_RECENT_APPS); 2547f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka mHandler.obtainMessage(MSG_CANCEL_PRELOAD_RECENT_APPS, 0, 0, null).sendToTarget(); 2557f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka } 2567f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka } 2577f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka 258f2debb1f9a8a166e249a456efc0b41d731c275c2Clara Bayarri @Override 2594e850ffaa757cd6f1e2578c454a7a83a93419e83Clara Bayarri public void toggleKeyboardShortcutsMenu(int deviceId) { 26007473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 261c22ab7911a3efd7e0183f954f1760475d702ad3eAndrei Stingaceanu mHandler.removeMessages(MSG_TOGGLE_KEYBOARD_SHORTCUTS); 2624e850ffaa757cd6f1e2578c454a7a83a93419e83Clara Bayarri mHandler.obtainMessage(MSG_TOGGLE_KEYBOARD_SHORTCUTS, deviceId, 0).sendToTarget(); 263f2debb1f9a8a166e249a456efc0b41d731c275c2Clara Bayarri } 264f2debb1f9a8a166e249a456efc0b41d731c275c2Clara Bayarri } 265f2debb1f9a8a166e249a456efc0b41d731c275c2Clara Bayarri 266c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim @Override 267c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim public void requestTvPictureInPicture() { 268c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim synchronized (mLock) { 269c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim mHandler.removeMessages(MSG_REQUEST_TV_PICTURE_IN_PICTURE); 270c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim mHandler.obtainMessage(MSG_REQUEST_TV_PICTURE_IN_PICTURE).sendToTarget(); 271c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim } 272c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim } 273c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim 2749764218ff979f735aee2f1189e3547d5f3b02f83John Spurlock public void setWindowState(int window, int state) { 27507473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 2765b9145bf990a9bbf4fdef1739e61ff8c70ec868fJohn Spurlock // don't coalesce these 2779764218ff979f735aee2f1189e3547d5f3b02f83John Spurlock mHandler.obtainMessage(MSG_SET_WINDOW_STATE, window, state, null).sendToTarget(); 2789764218ff979f735aee2f1189e3547d5f3b02f83John Spurlock } 2799764218ff979f735aee2f1189e3547d5f3b02f83John Spurlock } 2809764218ff979f735aee2f1189e3547d5f3b02f83John Spurlock 281cad5768e22e5132efb2e5179f4988a763c7a8d9eJohn Spurlock public void buzzBeepBlinked() { 28207473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 283cad5768e22e5132efb2e5179f4988a763c7a8d9eJohn Spurlock mHandler.removeMessages(MSG_BUZZ_BEEP_BLINKED); 284cad5768e22e5132efb2e5179f4988a763c7a8d9eJohn Spurlock mHandler.sendEmptyMessage(MSG_BUZZ_BEEP_BLINKED); 285cad5768e22e5132efb2e5179f4988a763c7a8d9eJohn Spurlock } 286cad5768e22e5132efb2e5179f4988a763c7a8d9eJohn Spurlock } 287380ecb81db52a9d0197ca969951d07b91c20d2b9Jorim Jaggi 288cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock public void notificationLightOff() { 28907473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 290cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock mHandler.sendEmptyMessage(MSG_NOTIFICATION_LIGHT_OFF); 291cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock } 292cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock } 293cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock 294cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock public void notificationLightPulse(int argb, int onMillis, int offMillis) { 29507473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 296cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock mHandler.obtainMessage(MSG_NOTIFICATION_LIGHT_PULSE, onMillis, offMillis, argb) 297cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock .sendToTarget(); 298cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock } 299cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock } 300cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock 3015565cb42f2ac07fcdbe3aab2503de07fbeb39504Jason Monk public void showScreenPinningRequest() { 30207473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 3035565cb42f2ac07fcdbe3aab2503de07fbeb39504Jason Monk mHandler.sendEmptyMessage(MSG_SHOW_SCREEN_PIN_REQUEST); 3045565cb42f2ac07fcdbe3aab2503de07fbeb39504Jason Monk } 3055565cb42f2ac07fcdbe3aab2503de07fbeb39504Jason Monk } 3065565cb42f2ac07fcdbe3aab2503de07fbeb39504Jason Monk 30724bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi public void appTransitionPending() { 30807473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 30924bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi mHandler.removeMessages(MSG_APP_TRANSITION_PENDING); 31024bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi mHandler.sendEmptyMessage(MSG_APP_TRANSITION_PENDING); 31124bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi } 31224bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi } 31324bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi 31424bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi public void appTransitionCancelled() { 31507473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 31624bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi mHandler.removeMessages(MSG_APP_TRANSITION_PENDING); 31724bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi mHandler.sendEmptyMessage(MSG_APP_TRANSITION_PENDING); 31824bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi } 31924bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi } 32024bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi 32124bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi public void appTransitionStarting(long startTime, long duration) { 32207473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 32324bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi mHandler.removeMessages(MSG_APP_TRANSITION_STARTING); 32424bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi mHandler.obtainMessage(MSG_APP_TRANSITION_STARTING, Pair.create(startTime, duration)) 32524bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi .sendToTarget(); 32624bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi } 32724bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi } 32824bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi 3292adba07d75419462873dfeef40d4c983d832ed99Jorim Jaggi @Override 3302adba07d75419462873dfeef40d4c983d832ed99Jorim Jaggi public void appTransitionFinished() { 3312adba07d75419462873dfeef40d4c983d832ed99Jorim Jaggi synchronized (mLock) { 3322adba07d75419462873dfeef40d4c983d832ed99Jorim Jaggi mHandler.removeMessages(MSG_APP_TRANSITION_FINISHED); 3332adba07d75419462873dfeef40d4c983d832ed99Jorim Jaggi mHandler.sendEmptyMessage(MSG_APP_TRANSITION_FINISHED); 3342adba07d75419462873dfeef40d4c983d832ed99Jorim Jaggi } 3352adba07d75419462873dfeef40d4c983d832ed99Jorim Jaggi } 3362adba07d75419462873dfeef40d4c983d832ed99Jorim Jaggi 3374f43dc042bf76ec6c3b340b2297dec7c4cdd9098Adrian Roos public void showAssistDisclosure() { 33807473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 3394f43dc042bf76ec6c3b340b2297dec7c4cdd9098Adrian Roos mHandler.removeMessages(MSG_ASSIST_DISCLOSURE); 3404f43dc042bf76ec6c3b340b2297dec7c4cdd9098Adrian Roos mHandler.obtainMessage(MSG_ASSIST_DISCLOSURE).sendToTarget(); 3414f43dc042bf76ec6c3b340b2297dec7c4cdd9098Adrian Roos } 3424f43dc042bf76ec6c3b340b2297dec7c4cdd9098Adrian Roos } 3434f43dc042bf76ec6c3b340b2297dec7c4cdd9098Adrian Roos 344165ce066b701ba0153000f0692bfc7032655d17dJorim Jaggi public void startAssist(Bundle args) { 34507473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 346165ce066b701ba0153000f0692bfc7032655d17dJorim Jaggi mHandler.removeMessages(MSG_START_ASSIST); 347165ce066b701ba0153000f0692bfc7032655d17dJorim Jaggi mHandler.obtainMessage(MSG_START_ASSIST, args).sendToTarget(); 348165ce066b701ba0153000f0692bfc7032655d17dJorim Jaggi } 349165ce066b701ba0153000f0692bfc7032655d17dJorim Jaggi } 350165ce066b701ba0153000f0692bfc7032655d17dJorim Jaggi 351372d1bdd54fe977c71bdaae895687c76ac35202aSelim Cinek @Override 35240aa8811bc817293d7400c14fa60350d2350d29fJorim Jaggi public void onCameraLaunchGestureDetected(int source) { 35307473cea3a6007d5e72b25d3445437a175735fa9Jason Monk synchronized (mLock) { 354372d1bdd54fe977c71bdaae895687c76ac35202aSelim Cinek mHandler.removeMessages(MSG_CAMERA_LAUNCH_GESTURE); 35540aa8811bc817293d7400c14fa60350d2350d29fJorim Jaggi mHandler.obtainMessage(MSG_CAMERA_LAUNCH_GESTURE, source, 0).sendToTarget(); 356372d1bdd54fe977c71bdaae895687c76ac35202aSelim Cinek } 357372d1bdd54fe977c71bdaae895687c76ac35202aSelim Cinek } 358372d1bdd54fe977c71bdaae895687c76ac35202aSelim Cinek 3597e53f20c835ae2614c92717a6fc222b345c75036Jason Monk @Override 3607e53f20c835ae2614c92717a6fc222b345c75036Jason Monk public void addQsTile(ComponentName tile) { 3617e53f20c835ae2614c92717a6fc222b345c75036Jason Monk synchronized (mLock) { 3627e53f20c835ae2614c92717a6fc222b345c75036Jason Monk mHandler.obtainMessage(MSG_ADD_QS_TILE, tile).sendToTarget(); 3637e53f20c835ae2614c92717a6fc222b345c75036Jason Monk } 3647e53f20c835ae2614c92717a6fc222b345c75036Jason Monk } 3657e53f20c835ae2614c92717a6fc222b345c75036Jason Monk 3667e53f20c835ae2614c92717a6fc222b345c75036Jason Monk @Override 3677e53f20c835ae2614c92717a6fc222b345c75036Jason Monk public void remQsTile(ComponentName tile) { 3687e53f20c835ae2614c92717a6fc222b345c75036Jason Monk synchronized (mLock) { 3697e53f20c835ae2614c92717a6fc222b345c75036Jason Monk mHandler.obtainMessage(MSG_REMOVE_QS_TILE, tile).sendToTarget(); 3707e53f20c835ae2614c92717a6fc222b345c75036Jason Monk } 3717e53f20c835ae2614c92717a6fc222b345c75036Jason Monk } 3727e53f20c835ae2614c92717a6fc222b345c75036Jason Monk 3737e53f20c835ae2614c92717a6fc222b345c75036Jason Monk @Override 3747e53f20c835ae2614c92717a6fc222b345c75036Jason Monk public void clickQsTile(ComponentName tile) { 3757e53f20c835ae2614c92717a6fc222b345c75036Jason Monk synchronized (mLock) { 3767e53f20c835ae2614c92717a6fc222b345c75036Jason Monk mHandler.obtainMessage(MSG_CLICK_QS_TILE, tile).sendToTarget(); 3777e53f20c835ae2614c92717a6fc222b345c75036Jason Monk } 3787e53f20c835ae2614c92717a6fc222b345c75036Jason Monk } 3797e53f20c835ae2614c92717a6fc222b345c75036Jason Monk 3800cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato private final class H extends Handler { 3810cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato public void handleMessage(Message msg) { 382f3f0e053f0cc66249a11639eb67d0cdc2da26dedJoe Onorato final int what = msg.what & MSG_MASK; 38366d7d01ed91968f4ed2e2669fd306aa2af61cd16Joe Onorato switch (what) { 3840cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato case MSG_ICON: { 3850cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato switch (msg.arg1) { 3860cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato case OP_SET_ICON: { 38707473cea3a6007d5e72b25d3445437a175735fa9Jason Monk Pair<String, StatusBarIcon> p = (Pair<String, StatusBarIcon>) msg.obj; 38807473cea3a6007d5e72b25d3445437a175735fa9Jason Monk mCallbacks.setIcon(p.first, p.second); 3890cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato break; 3900cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 3910cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato case OP_REMOVE_ICON: 39207473cea3a6007d5e72b25d3445437a175735fa9Jason Monk mCallbacks.removeIcon((String) msg.obj); 3930cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato break; 3940cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 3950cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato break; 396a0c56fe93925d20d9c0b830b9664699ce557e78cJoe Onorato } 397f3f0e053f0cc66249a11639eb67d0cdc2da26dedJoe Onorato case MSG_DISABLE: 398cde0a2a9ea00d6e4acfe6ce7a7c9061343df7fa3Benjamin Franz mCallbacks.disable(msg.arg1, msg.arg2, true /* animate */); 399f3f0e053f0cc66249a11639eb67d0cdc2da26dedJoe Onorato break; 400e20a177d3f147f3011647c3bdab401f90b2c5d1dSvetoslav Ganov case MSG_EXPAND_NOTIFICATIONS: 40111cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler mCallbacks.animateExpandNotificationsPanel(); 402e20a177d3f147f3011647c3bdab401f90b2c5d1dSvetoslav Ganov break; 40311cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler case MSG_COLLAPSE_PANELS: 40411cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler mCallbacks.animateCollapsePanels(0); 405e20a177d3f147f3011647c3bdab401f90b2c5d1dSvetoslav Ganov break; 40611cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler case MSG_EXPAND_SETTINGS: 407a9927325eda025504d59bb6594fee8e240d95b01Jason Monk mCallbacks.animateExpandSettingsPanel((String) msg.obj); 4089305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato break; 40960ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler case MSG_SET_SYSTEMUI_VISIBILITY: 41086905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi SomeArgs args = (SomeArgs) msg.obj; 41186905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi mCallbacks.setSystemUiVisibility(args.argi1, args.argi2, args.argi3, 41286905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi args.argi4, (Rect) args.arg1, (Rect) args.arg2); 41386905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi args.recycle(); 4149305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato break; 4157d04932ef5c001769ccef244f551b75773f1666bDianne Hackborn case MSG_TOP_APP_WINDOW_CHANGED: 4167d04932ef5c001769ccef244f551b75773f1666bDianne Hackborn mCallbacks.topAppWindowChanged(msg.arg1 != 0); 417e02d808abf370965c3c4e4d38af11bc69110fde2Daniel Sandler break; 41806487a58be22b100daf3f950b9a1d25c3ea42aa2satok case MSG_SHOW_IME_BUTTON: 419b605fecd9e4282823af754b3968b21205d64554aJason Monk mCallbacks.setImeWindowStatus((IBinder) msg.obj, msg.arg1, msg.arg2, 420b605fecd9e4282823af754b3968b21205d64554aJason Monk msg.getData().getBoolean(SHOW_IME_SWITCHER_KEY, false)); 42106487a58be22b100daf3f950b9a1d25c3ea42aa2satok break; 4221e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung case MSG_SHOW_RECENT_APPS: 4231e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung mCallbacks.showRecentApps(msg.arg1 != 0); 4241e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung break; 4251e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung case MSG_HIDE_RECENT_APPS: 426cdcd487abad10f728f0542accc42a31d1f7fedacWinson Chung mCallbacks.hideRecentApps(msg.arg1 != 0, msg.arg2 != 0); 4271e8d71b605b4872e93200706a80a88a3ff25498cWinson Chung break; 4283b1fc47d004f6b29af8f40d181baa3460b1e3b15Michael Jurka case MSG_TOGGLE_RECENT_APPS: 4293b1fc47d004f6b29af8f40d181baa3460b1e3b15Michael Jurka mCallbacks.toggleRecentApps(); 4303b1fc47d004f6b29af8f40d181baa3460b1e3b15Michael Jurka break; 4317f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka case MSG_PRELOAD_RECENT_APPS: 4327f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka mCallbacks.preloadRecentApps(); 4337f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka break; 4347f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka case MSG_CANCEL_PRELOAD_RECENT_APPS: 4357f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka mCallbacks.cancelPreloadRecentApps(); 4367f2668c8469934ce83a5647977f6e74ab782cf07Michael Jurka break; 437c22ab7911a3efd7e0183f954f1760475d702ad3eAndrei Stingaceanu case MSG_TOGGLE_KEYBOARD_SHORTCUTS: 4384e850ffaa757cd6f1e2578c454a7a83a93419e83Clara Bayarri mCallbacks.toggleKeyboardShortcutsMenu(msg.arg1); 439f2debb1f9a8a166e249a456efc0b41d731c275c2Clara Bayarri break; 4409764218ff979f735aee2f1189e3547d5f3b02f83John Spurlock case MSG_SET_WINDOW_STATE: 4419764218ff979f735aee2f1189e3547d5f3b02f83John Spurlock mCallbacks.setWindowState(msg.arg1, msg.arg2); 4429764218ff979f735aee2f1189e3547d5f3b02f83John Spurlock break; 443cad5768e22e5132efb2e5179f4988a763c7a8d9eJohn Spurlock case MSG_BUZZ_BEEP_BLINKED: 444cad5768e22e5132efb2e5179f4988a763c7a8d9eJohn Spurlock mCallbacks.buzzBeepBlinked(); 445cad5768e22e5132efb2e5179f4988a763c7a8d9eJohn Spurlock break; 446cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock case MSG_NOTIFICATION_LIGHT_OFF: 447cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock mCallbacks.notificationLightOff(); 448cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock break; 449cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock case MSG_NOTIFICATION_LIGHT_PULSE: 450cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock mCallbacks.notificationLightPulse((Integer) msg.obj, msg.arg1, msg.arg2); 451cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock break; 4525565cb42f2ac07fcdbe3aab2503de07fbeb39504Jason Monk case MSG_SHOW_SCREEN_PIN_REQUEST: 4535565cb42f2ac07fcdbe3aab2503de07fbeb39504Jason Monk mCallbacks.showScreenPinningRequest(); 4545565cb42f2ac07fcdbe3aab2503de07fbeb39504Jason Monk break; 45524bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi case MSG_APP_TRANSITION_PENDING: 45624bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi mCallbacks.appTransitionPending(); 45724bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi break; 45824bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi case MSG_APP_TRANSITION_CANCELLED: 45924bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi mCallbacks.appTransitionCancelled(); 46024bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi break; 46124bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi case MSG_APP_TRANSITION_STARTING: 46224bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi Pair<Long, Long> data = (Pair<Long, Long>) msg.obj; 46324bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi mCallbacks.appTransitionStarting(data.first, data.second); 46424bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi break; 4652adba07d75419462873dfeef40d4c983d832ed99Jorim Jaggi case MSG_APP_TRANSITION_FINISHED: 4662adba07d75419462873dfeef40d4c983d832ed99Jorim Jaggi mCallbacks.appTransitionFinished(); 4672adba07d75419462873dfeef40d4c983d832ed99Jorim Jaggi break; 4684f43dc042bf76ec6c3b340b2297dec7c4cdd9098Adrian Roos case MSG_ASSIST_DISCLOSURE: 4694f43dc042bf76ec6c3b340b2297dec7c4cdd9098Adrian Roos mCallbacks.showAssistDisclosure(); 4704f43dc042bf76ec6c3b340b2297dec7c4cdd9098Adrian Roos break; 471165ce066b701ba0153000f0692bfc7032655d17dJorim Jaggi case MSG_START_ASSIST: 472165ce066b701ba0153000f0692bfc7032655d17dJorim Jaggi mCallbacks.startAssist((Bundle) msg.obj); 473165ce066b701ba0153000f0692bfc7032655d17dJorim Jaggi break; 474372d1bdd54fe977c71bdaae895687c76ac35202aSelim Cinek case MSG_CAMERA_LAUNCH_GESTURE: 47540aa8811bc817293d7400c14fa60350d2350d29fJorim Jaggi mCallbacks.onCameraLaunchGestureDetected(msg.arg1); 476372d1bdd54fe977c71bdaae895687c76ac35202aSelim Cinek break; 477c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim case MSG_REQUEST_TV_PICTURE_IN_PICTURE: 478c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim mCallbacks.requestTvPictureInPicture(); 479c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim break; 4807e53f20c835ae2614c92717a6fc222b345c75036Jason Monk case MSG_ADD_QS_TILE: 4817e53f20c835ae2614c92717a6fc222b345c75036Jason Monk mCallbacks.addQsTile((ComponentName) msg.obj); 4827e53f20c835ae2614c92717a6fc222b345c75036Jason Monk break; 4837e53f20c835ae2614c92717a6fc222b345c75036Jason Monk case MSG_REMOVE_QS_TILE: 4847e53f20c835ae2614c92717a6fc222b345c75036Jason Monk mCallbacks.remQsTile((ComponentName) msg.obj); 4857e53f20c835ae2614c92717a6fc222b345c75036Jason Monk break; 4867e53f20c835ae2614c92717a6fc222b345c75036Jason Monk case MSG_CLICK_QS_TILE: 4877e53f20c835ae2614c92717a6fc222b345c75036Jason Monk mCallbacks.clickTile((ComponentName) msg.obj); 4887e53f20c835ae2614c92717a6fc222b345c75036Jason Monk break; 489315c34e7d62ce4b609f2d08b18a11a2d44e93abaPhil Weaver case MSG_TOGGLE_APP_SPLIT_SCREEN: 490315c34e7d62ce4b609f2d08b18a11a2d44e93abaPhil Weaver mCallbacks.toggleSplitScreen(); 491315c34e7d62ce4b609f2d08b18a11a2d44e93abaPhil Weaver break; 4920cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 4930cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 4940cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato } 4950cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato} 4960cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 497