diff options
Diffstat (limited to 'src/com/android/internal/utils/du/ActionHandler.java')
| -rw-r--r-- | src/com/android/internal/utils/du/ActionHandler.java | 89 |
1 files changed, 74 insertions, 15 deletions
diff --git a/src/com/android/internal/utils/du/ActionHandler.java b/src/com/android/internal/utils/du/ActionHandler.java index 0d65cf7..507b51a 100644 --- a/src/com/android/internal/utils/du/ActionHandler.java +++ b/src/com/android/internal/utils/du/ActionHandler.java @@ -66,7 +66,7 @@ import android.view.InputDevice; import android.view.KeyCharacterMap; import android.view.KeyEvent; import android.view.WindowManagerGlobal; -import android.view.WindowManagerPolicyControl; +//import android.view.WindowManagerPolicyControl; import android.view.inputmethod.InputMethodManager; import android.widget.Toast; @@ -74,8 +74,10 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import com.android.internal.statusbar.IStatusBarService; import com.android.internal.utils.du.Config.ActionConfig; @@ -142,6 +144,18 @@ public class ActionHandler { public static final String INTENT_SCREENSHOT = "action_handler_screenshot"; public static final String INTENT_REGION_SCREENSHOT = "action_handler_region_screenshot"; + // remove actions from here as they come back on deck + static final Set<String> sDisabledActions = new HashSet<String>(); + static { + sDisabledActions.add(SYSTEMUI_TASK_SCREENRECORD); + sDisabledActions.add(SYSTEMUI_TASK_EXPANDED_DESKTOP); + sDisabledActions.add(SYSTEMUI_TASK_ONE_HANDED_MODE_LEFT); + sDisabledActions.add(SYSTEMUI_TASK_ONE_HANDED_MODE_RIGHT); + // we need to make this more reliable when the user tap the partial screenshot button + // quickly and more times + sDisabledActions.add(SYSTEMUI_TASK_REGION_SCREENSHOT); + } + static enum SystemAction { NoAction(SYSTEMUI_TASK_NO_ACTION, SYSTEMUI, "label_action_no_action", "ic_sysbar_no_action"), SettingsPanel(SYSTEMUI_TASK_SETTINGS_PANEL, SYSTEMUI, "label_action_settings_panel", "ic_sysbar_settings_panel"), @@ -185,12 +199,14 @@ public class ActionHandler { String mResPackage; String mLabelRes; String mIconRes; + String mDarkIconRes; private SystemAction(String action, String resPackage, String labelRes, String iconRes) { mAction = action; mResPackage = resPackage; mLabelRes = labelRes; mIconRes = iconRes; + mDarkIconRes = iconRes + "_dark"; } private ActionConfig create(Context ctx) { @@ -225,15 +241,19 @@ public class ActionHandler { public static class ActionIconResources { Drawable[] mDrawables; + Drawable[] mDarkDrawables; Map<String, Integer> mIndexMap; public ActionIconResources(Resources res) { mDrawables = new Drawable[systemActions.length]; + mDarkDrawables = new Drawable[systemActions.length]; mIndexMap = new HashMap<String, Integer>(); for (int i = 0; i < systemActions.length; i++) { mIndexMap.put(systemActions[i].mAction, i); mDrawables[i] = DUActionUtils.getDrawable(res, systemActions[i].mIconRes, systemActions[i].mResPackage); + mDarkDrawables[i] = DUActionUtils.getDrawable(res, systemActions[i].mDarkIconRes, + systemActions[i].mResPackage); } } @@ -241,12 +261,18 @@ public class ActionHandler { for (int i = 0; i < mDrawables.length; i++) { mDrawables[i] = DUActionUtils.getDrawable(res, systemActions[i].mIconRes, systemActions[i].mResPackage); + mDarkDrawables[i] = DUActionUtils.getDrawable(res, systemActions[i].mDarkIconRes, + systemActions[i].mResPackage); } } public Drawable getActionDrawable(String action) { return mDrawables[mIndexMap.get(action)]; } + + public Drawable getDarkActionDrawable(String action) { + return mDarkDrawables[mIndexMap.get(action)]; + } } /* @@ -259,6 +285,9 @@ public class ActionHandler { for (int i = 0; i < systemActions.length; i++) { ActionConfig c = systemActions[i].create(context); String action = c.getAction(); + if (sDisabledActions.contains(action)) { + continue; + } if (TextUtils.equals(action, SYSTEMUI_TASK_STOP_SCREENPINNING) || TextUtils.equals(action, SYSTEMUI_TASK_IME_NAVIGATION_DOWN) || TextUtils.equals(action, SYSTEMUI_TASK_IME_NAVIGATION_LEFT) @@ -316,6 +345,26 @@ public class ActionHandler { } } + private static void dispatchNavigationEditorResult(Intent intent) { + IStatusBarService service = getStatusBarService(); + if (service != null) { + try { + service.dispatchNavigationEditorResults(intent); + } catch (RemoteException e) { + e.printStackTrace(); + } + } + } + + private static void toggleNavigationEditor() { + IStatusBarService service = getStatusBarService(); + try { + service.toggleNavigationEditor(); + } catch (RemoteException e) { + e.printStackTrace(); + } + } + private static void toggleFlashlight() { IStatusBarService service = getStatusBarService(); try { @@ -455,11 +504,18 @@ public class ActionHandler { } } */ + public static void dispatchNavigationEditorResult(Intent intent) { + StatusBarHelper.dispatchNavigationEditorResult(intent); + } + public static void performTask(Context context, String action) { // null: throw it out if (action == null) { return; } + if (sDisabledActions.contains(action)) { + return; + } // not a system action, should be intent if (!action.startsWith(SYSTEM_PREFIX)) { Intent intent = DUActionUtils.getIntent(action); @@ -485,7 +541,7 @@ public class ActionHandler { // } else if (action.equals(SYSTEMUI_TASK_AUDIORECORD)) { // takeAudiorecord(); } else if (action.equals(SYSTEMUI_TASK_EXPANDED_DESKTOP)) { - toggleExpandedDesktop(context); + // toggleExpandedDesktop(context); return; } else if (action.equals(SYSTEMUI_TASK_SCREENOFF)) { screenOff(context); @@ -641,16 +697,16 @@ public class ActionHandler { volumePanel(context); return; } else if (action.equals(SYSTEMUI_TASK_EDITING_SMARTBAR)) { - editingSmartbar(context); + StatusBarHelper.toggleNavigationEditor(); return; } else if (action.equals(SYSTEMUI_TASK_SPLIT_SCREEN)) { StatusBarHelper.splitScreen(); return; } else if (action.equals(SYSTEMUI_TASK_ONE_HANDED_MODE_LEFT)) { - toggleOneHandedMode(context, "left"); +// toggleOneHandedMode(context, "left"); return; } else if (action.equals(SYSTEMUI_TASK_ONE_HANDED_MODE_RIGHT)) { - toggleOneHandedMode(context, "right"); +// toggleOneHandedMode(context, "right"); return; } } @@ -682,10 +738,17 @@ public class ActionHandler { ActivityManager.RunningTaskInfo lastTask = getLastTask(context, am); if (lastTask != null) { - am.moveTaskToFront(lastTask.id, ActivityManager.MOVE_TASK_NO_USER_ACTION); + am.moveTaskToFront(lastTask.id, ActivityManager.MOVE_TASK_NO_USER_ACTION, + getAnimation(context).toBundle()); } } + private static ActivityOptions getAnimation(Context context) { + return ActivityOptions.makeCustomAnimation(context, + com.android.internal.R.anim.du_app_in, + com.android.internal.R.anim.du_app_out); + } + private static ActivityManager.RunningTaskInfo getLastTask(Context context, final ActivityManager am) { final String defaultHomePackage = resolveCurrentLauncherPackage(context); @@ -719,7 +782,7 @@ public class ActionHandler { } } - +/* private static void toggleExpandedDesktop(Context context) { ContentResolver cr = context.getContentResolver(); String newVal = ""; @@ -735,7 +798,7 @@ public class ActionHandler { WindowManagerPolicyControl.reloadFromSetting(context); } } - +*/ private static void launchVoiceSearch(Context context) { sendCloseSystemWindows("assist"); // launch the search activity @@ -876,7 +939,6 @@ public class ActionHandler { private static void killProcess(Context context) { if (context.checkCallingOrSelfPermission(android.Manifest.permission.FORCE_STOP_PACKAGES) == PackageManager.PERMISSION_GRANTED - && context.checkCallingOrSelfPermission(android.Manifest.permission.FORCE_STOP_PACKAGES) == PackageManager.PERMISSION_GRANTED && !isLockTaskOn()) { try { PackageManager packageManager = context.getPackageManager(); @@ -945,7 +1007,7 @@ public class ActionHandler { context.getSystemService(Context.ACTIVITY_SERVICE); final List<ActivityManager.RecentTaskInfo> recentTasks = am.getRecentTasksForUser(ActivityManager.getMaxRecentTasksStatic(), - ActivityManager.RECENT_IGNORE_HOME_STACK_TASKS + ActivityManager.RECENT_IGNORE_HOME_AND_RECENTS_STACK_TASKS | ActivityManager.RECENT_INGORE_PINNED_STACK_TASKS | ActivityManager.RECENT_IGNORE_UNAVAILABLE | ActivityManager.RECENT_INCLUDE_PROFILES, @@ -1029,7 +1091,6 @@ public class ActionHandler { public static void turnOffLockTask() { try { -// ActivityManagerNative.getDefault().stopLockTaskModeOnCurrent(); ActivityManagerNative.getDefault().stopLockTaskMode(); } catch (Exception e) { } @@ -1047,11 +1108,8 @@ public class ActionHandler { AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); am.adjustVolume(AudioManager.ADJUST_SAME, AudioManager.FLAG_SHOW_UI); } - public static void editingSmartbar(Context context) { - context.sendBroadcastAsUser(new Intent("intent_navbar_edit"), new UserHandle( - UserHandle.USER_ALL)); - } +/* private static void toggleOneHandedMode(Context context, String direction) { String str = Settings.Global.getString(context.getContentResolver(), Settings.Global.SINGLE_HAND_MODE); @@ -1060,4 +1118,5 @@ public class ActionHandler { else Settings.Global.putString(context.getContentResolver(), Settings.Global.SINGLE_HAND_MODE, ""); } + */ } |
