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}