• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2 * Copyright (C) 2015 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 
17 package com.android.packageinstaller.permission.ui;
18 
19 import android.app.Fragment;
20 import android.content.Intent;
21 import android.os.Bundle;
22 import android.util.Log;
23 
24 import com.android.packageinstaller.DeviceUtils;
25 import com.android.packageinstaller.permission.ui.handheld.ManageStandardPermissionsFragment;
26 import com.android.packageinstaller.permission.ui.wear.AppPermissionsFragmentWear;
27 
28 public final class ManagePermissionsActivity extends OverlayTouchActivity {
29     private static final String LOG_TAG = "ManagePermissionsActivity";
30 
31     public static final String EXTRA_ALL_PERMISSIONS =
32             "com.android.packageinstaller.extra.ALL_PERMISSIONS";
33 
34     @Override
onCreate(Bundle savedInstanceState)35     public void onCreate(Bundle savedInstanceState) {
36         super.onCreate(savedInstanceState);
37 
38         if (savedInstanceState != null) {
39             return;
40         }
41 
42         Fragment fragment;
43         String action = getIntent().getAction();
44 
45         switch (action) {
46             case Intent.ACTION_MANAGE_PERMISSIONS: {
47                 if (DeviceUtils.isTelevision(this)) {
48                     fragment = com.android.packageinstaller.permission.ui.television
49                             .ManagePermissionsFragment.newInstance();
50                 } else {
51                     fragment = ManageStandardPermissionsFragment.newInstance();
52                 }
53             } break;
54 
55             case Intent.ACTION_MANAGE_APP_PERMISSIONS: {
56                 String packageName = getIntent().getStringExtra(Intent.EXTRA_PACKAGE_NAME);
57                 if (packageName == null) {
58                     Log.i(LOG_TAG, "Missing mandatory argument EXTRA_PACKAGE_NAME");
59                     finish();
60                     return;
61                 }
62                 if (DeviceUtils.isWear(this)) {
63                     fragment = AppPermissionsFragmentWear.newInstance(packageName);
64                 } else if (DeviceUtils.isTelevision(this)) {
65                     fragment = com.android.packageinstaller.permission.ui.television
66                             .AppPermissionsFragment.newInstance(packageName);
67                 } else {
68                     final boolean allPermissions = getIntent().getBooleanExtra(
69                             EXTRA_ALL_PERMISSIONS, false);
70                     if (allPermissions) {
71                         fragment = com.android.packageinstaller.permission.ui.handheld
72                                 .AllAppPermissionsFragment.newInstance(packageName);
73                     } else {
74                         fragment = com.android.packageinstaller.permission.ui.handheld
75                                 .AppPermissionsFragment.newInstance(packageName);
76                     }
77                 }
78             } break;
79 
80             case Intent.ACTION_MANAGE_PERMISSION_APPS: {
81                 String permissionName = getIntent().getStringExtra(Intent.EXTRA_PERMISSION_NAME);
82                 if (permissionName == null) {
83                     Log.i(LOG_TAG, "Missing mandatory argument EXTRA_PERMISSION_NAME");
84                     finish();
85                     return;
86                 }
87                 if (DeviceUtils.isTelevision(this)) {
88                     fragment = com.android.packageinstaller.permission.ui.television
89                             .PermissionAppsFragment.newInstance(permissionName);
90                 } else {
91                     fragment = com.android.packageinstaller.permission.ui.handheld
92                             .PermissionAppsFragment.newInstance(permissionName);
93                 }
94             } break;
95 
96             default: {
97                 Log.w(LOG_TAG, "Unrecognized action " + action);
98                 finish();
99                 return;
100             }
101         }
102 
103         getFragmentManager().beginTransaction().replace(android.R.id.content, fragment).commit();
104     }
105 }
106