@Test @Config(minSdk = LOLLIPOP) public void getAppTasks_shouldReturnAppTaskList() { final ActivityManager activityManager = getActivityManager(); final AppTask task1 = ShadowAppTask.newInstance(); final AppTask task2 = ShadowAppTask.newInstance(); assertThat(activityManager.getAppTasks()).isEmpty(); shadowOf(activityManager).setAppTasks(Lists.newArrayList(task1, task2)); assertThat(activityManager.getAppTasks()).containsExactly(task1, task2); }
private static ActivityManager.AppTask getTopTaskAfterL(Context context) { ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) return activityManager.getAppTasks().get(0); return null; }
private static ActivityManager.AppTask getTopTaskAfterL(Context context) { ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) return activityManager.getAppTasks().get(0); return null; }
/** Returns a Set of Intents for all Chrome tasks currently known by the ActivityManager. */ @TargetApi(Build.VERSION_CODES.LOLLIPOP) protected Set<Intent> getBaseIntentsForAllTasks() { Set<Intent> baseIntents = new HashSet<Intent>(); Context context = ContextUtils.getApplicationContext(); ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); for (AppTask task : manager.getAppTasks()) { Intent intent = DocumentUtils.getBaseIntentFromTask(task); if (intent != null) baseIntents.add(intent); } return baseIntents; } }
private int getLargestTaskIdFromRecents() { int biggestId = Tab.INVALID_TAB_ID; Context context = ContextUtils.getApplicationContext(); ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); for (ActivityManager.AppTask task : activityManager.getAppTasks()) { RecentTaskInfo info = DocumentUtils.getTaskInfoFromTask(task); if (info == null) continue; biggestId = Math.max(biggestId, info.persistentId); } return biggestId; }
@Override public boolean isIncognitoDocumentAccessibleToUser() { Context context = ContextUtils.getApplicationContext(); ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); for (ActivityManager.AppTask task : activityManager.getAppTasks()) { Intent intent = DocumentUtils.getBaseIntentFromTask(task); if (isValidActivity(true, intent)) return true; } return false; }
/** * @param className The class name of the Activity to look for in Android recents * @param context The current Context, used to retrieve the ActivityManager system service. * @return True if the Activity still has a task in Android recents, regardless of whether * the Activity has been destroyed. */ private boolean isActivityTaskInRecents(String className, Context context) { ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List<AppTask> appTasks = activityManager.getAppTasks(); for (AppTask task : appTasks) { if (task.getTaskInfo() == null || task.getTaskInfo().baseActivity == null) continue; String baseActivity = task.getTaskInfo().baseActivity.getClassName(); if (TextUtils.equals(baseActivity, className)) return true; } return false; }
String packageName = application.getPackageName(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { List<ActivityManager.AppTask> appTasks = activityManager.getAppTasks(); for (int i = 0, size = appTasks.size(); i < size; i++) { ActivityManager.RecentTaskInfo taskInfo = appTasks.get(size - 1 - i).getTaskInfo();
<uses-permission android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.REORDER_TASKS" /> private void bringApplicationToForeground(){ ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { List<ActivityManager.AppTask> tasksList = am.getAppTasks(); for (ActivityManager.AppTask task : tasksList){ task.moveToFront(); } }else{ List<ActivityManager.RunningTaskInfo> tasksList = am.getRunningTasks(Integer.MAX_VALUE); if(!tasksList.isEmpty()){ int nSize = tasksList.size(); for(int i = 0; i < nSize; i++){ if(tasksList.get(i).topActivity.getPackageName().equals(getPackageName())){ am.moveTaskToFront(tasksList.get(i).id, 0); } } } } }
String packagename = ""; if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { List<ActivityManager.AppTask> tasks = mgr.getAppTasks(); for (ActivityManager.AppTask task : tasks) { packagename = task.getTaskInfo().baseIntent.getComponent().getPackageName();
@TargetApi(Build.VERSION_CODES.LOLLIPOP) private void removeNonVisibleChromeTabbedRecentEntries() { Set<Integer> visibleTaskIds = getTaskIdsForVisibleActivities(); Context context = ContextUtils.getApplicationContext(); ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); PackageManager pm = getPackageManager(); for (AppTask task : manager.getAppTasks()) { RecentTaskInfo info = DocumentUtils.getTaskInfoFromTask(task); if (info == null) continue; String className = DocumentUtils.getTaskClassName(task, pm); // It is not easily possible to distinguish between tasks sitting on top of // ChromeLauncherActivity, so we treat them all as likely ChromeTabbedActivities and // close them to be on the cautious side of things. if ((TextUtils.equals(className, ChromeTabbedActivity.class.getName()) || TextUtils.equals(className, ChromeLauncherActivity.class.getName())) && !visibleTaskIds.contains(info.id)) { task.finishAndRemoveTask(); } } }
/** If the API allows it, returns whether a Task still exists for the parent Activity. */ @TargetApi(Build.VERSION_CODES.LOLLIPOP) private boolean isParentInAndroidOverview() { ActivityManager activityManager = (ActivityManager) mTab.getApplicationContext() .getSystemService(Context.ACTIVITY_SERVICE); for (ActivityManager.AppTask task : activityManager.getAppTasks()) { Intent taskIntent = DocumentUtils.getBaseIntentFromTask(task); if (taskIntent != null && taskIntent.filterEquals(mTab.getParentIntent())) { return true; } } return false; } };
/** * Finishes tasks other than the one with the given ID that were started with the given data * in the Intent, removing those tasks from Recents and leaving a unique task with the data. * @param data Passed in as part of the Intent's data when starting the Activity. * @param canonicalTaskId ID of the task will be the only one left with the ID. * @return Intent of one of the tasks that were finished. */ public static Intent finishOtherTasksWithData(Uri data, int canonicalTaskId) { if (data == null || Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) return null; String dataString = data.toString(); Context context = ContextUtils.getApplicationContext(); ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.AppTask> tasksToFinish = new ArrayList<ActivityManager.AppTask>(); for (ActivityManager.AppTask task : manager.getAppTasks()) { RecentTaskInfo taskInfo = getTaskInfoFromTask(task); if (taskInfo == null) continue; int taskId = taskInfo.id; Intent baseIntent = taskInfo.baseIntent; String taskData = baseIntent == null ? null : taskInfo.baseIntent.getDataString(); if (TextUtils.equals(dataString, taskData) && (taskId == -1 || taskId != canonicalTaskId)) { tasksToFinish.add(task); } } return finishAndRemoveTasks(tasksToFinish); }
private ActivityManager.AppTask getTask(boolean isIncognito, int tabId) { Context context = ContextUtils.getApplicationContext(); ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); for (ActivityManager.AppTask task : activityManager.getAppTasks()) { Intent intent = DocumentUtils.getBaseIntentFromTask(task); int taskId = getTabIdFromIntent(intent); if (taskId == tabId && isValidActivity(isIncognito, intent)) return task; } return null; }
void checkBubbles() { if (Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { Set<String> taskOpenUrls = new HashSet<>(); ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); for (ActivityManager.AppTask task : manager.getAppTasks()) { Intent baseIntent = task.getTaskInfo().baseIntent; String url = baseIntent.getDataString(); if (url != null && task.getTaskInfo().id > -1) { taskOpenUrls.add(url); } } for (Iterator<String> iterator = mQuickSwitchWebsites.keySet().iterator(); iterator.hasNext(); ) { String quickSwitchUrl = iterator.next(); if (!taskOpenUrls.contains(quickSwitchUrl)) { removeUrl(quickSwitchUrl, false); iterator.remove(); } } for (String taskOpenUrl : taskOpenUrls) { if (!mQuickSwitchWebsites.containsKey(taskOpenUrl)) { addBubble(taskOpenUrl, true); } } checkExit(); } }
/** * Finishes all DocumentActivities that appear in Android's Recents. */ @TargetApi(Build.VERSION_CODES.LOLLIPOP) public void finishAllDocumentActivities() { Context context = ContextUtils.getApplicationContext(); ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); for (ActivityManager.AppTask task : activityManager.getAppTasks()) { Intent intent = DocumentUtils.getBaseIntentFromTask(task); if (isValidActivity(false, intent) || isValidActivity(true, intent)) { task.finishAndRemoveTask(); } } }
@Override public List<Entry> getTasksFromRecents(boolean isIncognito) { Context context = ContextUtils.getApplicationContext(); ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List<Entry> entries = new ArrayList<Entry>(); for (ActivityManager.AppTask task : activityManager.getAppTasks()) { Intent intent = DocumentUtils.getBaseIntentFromTask(task); if (!isValidActivity(isIncognito, intent)) continue; int tabId = getTabIdFromIntent(intent); if (tabId == Tab.INVALID_TAB_ID) continue; String initialUrl = getInitialUrlForDocument(intent); entries.add(new Entry(tabId, initialUrl)); } return entries; }
private List<ActivityManager.AppTask> getRecentAppTasks() { ActivityManager activityManager = (ActivityManager) getInstrumentation().getTargetContext() .getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.AppTask> appTasks = activityManager.getAppTasks(); return appTasks; }
ActivityManager manager = (ActivityManager) mQuickSwitchService.getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.AppTask> appTasks; appTasks = manager.getAppTasks();
final ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); if (am != null) { List<ActivityManager.AppTask> tasks = am.getAppTasks(); if (tasks != null && tasks.size() > 0) { for (ActivityManager.AppTask task : tasks) {