Home | History | Annotate | Download | only in ui
      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
     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