1e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu/* 2e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu * Copyright (C) 2008 The Android Open Source Project 3e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu * 4e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu * Licensed under the Apache License, Version 2.0 (the "License"); 5e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu * you may not use this file except in compliance with the License. 6e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu * You may obtain a copy of the License at 7e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu * 8e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu * http://www.apache.org/licenses/LICENSE-2.0 9e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu * 10e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu * Unless required by applicable law or agreed to in writing, software 11e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu * distributed under the License is distributed on an "AS IS" BASIS, 12e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu * See the License for the specific language governing permissions and 14e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu * limitations under the License. 15e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu */ 16e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu 17e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglupackage com.android.internal.app; 18e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu 19e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyaliogluimport android.content.ComponentName; 20e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyaliogluimport android.content.Intent; 21e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyaliogluimport android.content.pm.ActivityInfo; 22e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyaliogluimport android.content.pm.ApplicationInfo; 23e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyaliogluimport android.content.pm.ResolveInfo; 24e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyaliogluimport android.os.UserHandle; 25e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu 26e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyaliogluimport java.util.HashMap; 27e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyaliogluimport java.util.Map; 28e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyaliogluimport java.util.concurrent.atomic.AtomicInteger; 29e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu 30e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu/** 319149dcaf414ebdac231af93d44abd5951a514a7eHakan Seyalioglu * Utility class used by resolver tests to create mock data 32e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu */ 339149dcaf414ebdac231af93d44abd5951a514a7eHakan Seyaliogluclass ResolverDataProvider { 34e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu 3513405c552956eee529462eb8004ca3eab4273a8bHakan Seyalioglu static private int USER_SOMEONE_ELSE = 10; 3613405c552956eee529462eb8004ca3eab4273a8bHakan Seyalioglu 37e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu static ResolverActivity.ResolvedComponentInfo createResolvedComponentInfo(int i) { 38e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu return new ResolverActivity.ResolvedComponentInfo(createComponentName(i), 3913405c552956eee529462eb8004ca3eab4273a8bHakan Seyalioglu createResolverIntent(i), createResolveInfo(i, UserHandle.USER_CURRENT)); 4013405c552956eee529462eb8004ca3eab4273a8bHakan Seyalioglu } 4113405c552956eee529462eb8004ca3eab4273a8bHakan Seyalioglu 4213405c552956eee529462eb8004ca3eab4273a8bHakan Seyalioglu static ResolverActivity.ResolvedComponentInfo createResolvedComponentInfoWithOtherId(int i) { 4313405c552956eee529462eb8004ca3eab4273a8bHakan Seyalioglu return new ResolverActivity.ResolvedComponentInfo(createComponentName(i), 4413405c552956eee529462eb8004ca3eab4273a8bHakan Seyalioglu createResolverIntent(i), createResolveInfo(i, USER_SOMEONE_ELSE)); 45e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu } 46e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu 47e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu static ComponentName createComponentName(int i) { 48e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu final String name = "component" + i; 49e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu return new ComponentName("foo.bar." + name, name); 50e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu } 51e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu 5213405c552956eee529462eb8004ca3eab4273a8bHakan Seyalioglu static ResolveInfo createResolveInfo(int i, int userId) { 53e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu final ResolveInfo resolveInfo = new ResolveInfo(); 54e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu resolveInfo.activityInfo = createActivityInfo(i); 5513405c552956eee529462eb8004ca3eab4273a8bHakan Seyalioglu resolveInfo.targetUserId = userId; 56e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu return resolveInfo; 57e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu } 58e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu 59e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu static ActivityInfo createActivityInfo(int i) { 60e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu ActivityInfo ai = new ActivityInfo(); 61e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu ai.name = "activity_name" + i; 62e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu ai.packageName = "foo_bar" + i; 63e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu ai.enabled = true; 64e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu ai.exported = true; 65e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu ai.permission = null; 66e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu ai.applicationInfo = createApplicationInfo(); 67e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu return ai; 68e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu } 69e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu 70e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu static ApplicationInfo createApplicationInfo() { 71e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu ApplicationInfo ai = new ApplicationInfo(); 72e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu ai.name = "app_name"; 73e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu ai.packageName = "foo.bar"; 74e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu ai.enabled = true; 75e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu return ai; 76e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu } 77e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu 78e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu static Intent createResolverIntent(int i) { 79e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu return new Intent("intentAction" + i); 80e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu } 81e1276bfe086a40a0fba7e81dd5db13f95287714dHakan Seyalioglu}