Loading src/com/android/settings/applications/AppStateManageExternalStorageBridge.java +26 −2 Original line number Original line Diff line number Diff line Loading @@ -22,20 +22,25 @@ import android.content.Context; import com.android.settingslib.applications.ApplicationsState; import com.android.settingslib.applications.ApplicationsState; import java.util.List; /** /** * Retrieves information from {@link AppOpsManager} and {@link android.content.pm.PackageManager} * Retrieves information from {@link AppOpsManager} and {@link android.content.pm.PackageManager} * regarding {@link AppOpsManager#OP_MANAGE_EXTERNAL_STORAGE} and * regarding {@link AppOpsManager#OP_MANAGE_EXTERNAL_STORAGE} and * {@link Manifest.permission#MANAGE_EXTERNAL_STORAGE}. * {@link Manifest.permission#MANAGE_EXTERNAL_STORAGE}. */ */ public class AppStateManageExternalStorageBridge extends AppStateAppOpsBridge { public class AppStateManageExternalStorageBridge extends AppStateAppOpsBridge { private static final int APP_OPS_OP_CODE = AppOpsManager.OP_MANAGE_EXTERNAL_STORAGE; private static final String APP_OP_STR = AppOpsManager.OPSTR_MANAGE_EXTERNAL_STORAGE; private static final String[] PERMISSIONS = { private static final String[] PERMISSIONS = { Manifest.permission.MANAGE_EXTERNAL_STORAGE Manifest.permission.MANAGE_EXTERNAL_STORAGE }; }; private final AppOpsManager mAppOpsManager; public AppStateManageExternalStorageBridge(Context context, ApplicationsState appState, public AppStateManageExternalStorageBridge(Context context, ApplicationsState appState, Callback callback) { Callback callback) { super(context, appState, callback, APP_OPS_OP_CODE, PERMISSIONS); super(context, appState, callback, AppOpsManager.strOpToOp(APP_OP_STR), PERMISSIONS); mAppOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE); } } @Override @Override Loading @@ -43,6 +48,25 @@ public class AppStateManageExternalStorageBridge extends AppStateAppOpsBridge { app.extraInfo = getManageExternalStoragePermState(pkg, uid); app.extraInfo = getManageExternalStoragePermState(pkg, uid); } } @Override protected void loadAllExtraInfo() { super.loadAllExtraInfo(); List<ApplicationsState.AppEntry> apps = mAppSession.getAllApps(); for (ApplicationsState.AppEntry app : apps) { if (app.extraInfo instanceof PermissionState) { ((PermissionState) app.extraInfo).appOpMode = mAppOpsManager.unsafeCheckOpNoThrow( APP_OP_STR, app.info.uid, app.info.packageName); } } } @Override public PermissionState getPermissionInfo(String pkg, int uid) { PermissionState ps = super.getPermissionInfo(pkg, uid); ps.appOpMode = mAppOpsManager.unsafeCheckOpNoThrow(APP_OP_STR, uid, pkg); return ps; } /** /** * Returns the MANAGE_EXTERNAL_STORAGE {@link AppStateAppOpsBridge.PermissionState} object * Returns the MANAGE_EXTERNAL_STORAGE {@link AppStateAppOpsBridge.PermissionState} object * associated with the given package and user. * associated with the given package and user. Loading src/com/android/settings/applications/appinfo/ManageExternalStorageDetails.java +2 −3 Original line number Original line Diff line number Diff line Loading @@ -23,7 +23,6 @@ import android.view.LayoutInflater; import android.view.View; import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup; import androidx.annotation.VisibleForTesting; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog; import androidx.preference.Preference; import androidx.preference.Preference; import androidx.preference.Preference.OnPreferenceChangeListener; import androidx.preference.Preference.OnPreferenceChangeListener; Loading Loading @@ -110,8 +109,8 @@ public class ManageExternalStorageDetails extends AppInfoWithHeader implements */ */ private void setManageExternalStorageState(boolean newState) { private void setManageExternalStorageState(boolean newState) { logSpecialPermissionChange(newState, mPackageName); logSpecialPermissionChange(newState, mPackageName); mAppOpsManager.setMode(AppOpsManager.OP_MANAGE_EXTERNAL_STORAGE, mAppOpsManager.setUidMode(AppOpsManager.OP_MANAGE_EXTERNAL_STORAGE, mPackageInfo.applicationInfo.uid, mPackageName, newState mPackageInfo.applicationInfo.uid, newState ? AppOpsManager.MODE_ALLOWED : AppOpsManager.MODE_ERRORED); ? AppOpsManager.MODE_ALLOWED : AppOpsManager.MODE_ERRORED); } } Loading Loading
src/com/android/settings/applications/AppStateManageExternalStorageBridge.java +26 −2 Original line number Original line Diff line number Diff line Loading @@ -22,20 +22,25 @@ import android.content.Context; import com.android.settingslib.applications.ApplicationsState; import com.android.settingslib.applications.ApplicationsState; import java.util.List; /** /** * Retrieves information from {@link AppOpsManager} and {@link android.content.pm.PackageManager} * Retrieves information from {@link AppOpsManager} and {@link android.content.pm.PackageManager} * regarding {@link AppOpsManager#OP_MANAGE_EXTERNAL_STORAGE} and * regarding {@link AppOpsManager#OP_MANAGE_EXTERNAL_STORAGE} and * {@link Manifest.permission#MANAGE_EXTERNAL_STORAGE}. * {@link Manifest.permission#MANAGE_EXTERNAL_STORAGE}. */ */ public class AppStateManageExternalStorageBridge extends AppStateAppOpsBridge { public class AppStateManageExternalStorageBridge extends AppStateAppOpsBridge { private static final int APP_OPS_OP_CODE = AppOpsManager.OP_MANAGE_EXTERNAL_STORAGE; private static final String APP_OP_STR = AppOpsManager.OPSTR_MANAGE_EXTERNAL_STORAGE; private static final String[] PERMISSIONS = { private static final String[] PERMISSIONS = { Manifest.permission.MANAGE_EXTERNAL_STORAGE Manifest.permission.MANAGE_EXTERNAL_STORAGE }; }; private final AppOpsManager mAppOpsManager; public AppStateManageExternalStorageBridge(Context context, ApplicationsState appState, public AppStateManageExternalStorageBridge(Context context, ApplicationsState appState, Callback callback) { Callback callback) { super(context, appState, callback, APP_OPS_OP_CODE, PERMISSIONS); super(context, appState, callback, AppOpsManager.strOpToOp(APP_OP_STR), PERMISSIONS); mAppOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE); } } @Override @Override Loading @@ -43,6 +48,25 @@ public class AppStateManageExternalStorageBridge extends AppStateAppOpsBridge { app.extraInfo = getManageExternalStoragePermState(pkg, uid); app.extraInfo = getManageExternalStoragePermState(pkg, uid); } } @Override protected void loadAllExtraInfo() { super.loadAllExtraInfo(); List<ApplicationsState.AppEntry> apps = mAppSession.getAllApps(); for (ApplicationsState.AppEntry app : apps) { if (app.extraInfo instanceof PermissionState) { ((PermissionState) app.extraInfo).appOpMode = mAppOpsManager.unsafeCheckOpNoThrow( APP_OP_STR, app.info.uid, app.info.packageName); } } } @Override public PermissionState getPermissionInfo(String pkg, int uid) { PermissionState ps = super.getPermissionInfo(pkg, uid); ps.appOpMode = mAppOpsManager.unsafeCheckOpNoThrow(APP_OP_STR, uid, pkg); return ps; } /** /** * Returns the MANAGE_EXTERNAL_STORAGE {@link AppStateAppOpsBridge.PermissionState} object * Returns the MANAGE_EXTERNAL_STORAGE {@link AppStateAppOpsBridge.PermissionState} object * associated with the given package and user. * associated with the given package and user. Loading
src/com/android/settings/applications/appinfo/ManageExternalStorageDetails.java +2 −3 Original line number Original line Diff line number Diff line Loading @@ -23,7 +23,6 @@ import android.view.LayoutInflater; import android.view.View; import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup; import androidx.annotation.VisibleForTesting; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog; import androidx.preference.Preference; import androidx.preference.Preference; import androidx.preference.Preference.OnPreferenceChangeListener; import androidx.preference.Preference.OnPreferenceChangeListener; Loading Loading @@ -110,8 +109,8 @@ public class ManageExternalStorageDetails extends AppInfoWithHeader implements */ */ private void setManageExternalStorageState(boolean newState) { private void setManageExternalStorageState(boolean newState) { logSpecialPermissionChange(newState, mPackageName); logSpecialPermissionChange(newState, mPackageName); mAppOpsManager.setMode(AppOpsManager.OP_MANAGE_EXTERNAL_STORAGE, mAppOpsManager.setUidMode(AppOpsManager.OP_MANAGE_EXTERNAL_STORAGE, mPackageInfo.applicationInfo.uid, mPackageName, newState mPackageInfo.applicationInfo.uid, newState ? AppOpsManager.MODE_ALLOWED : AppOpsManager.MODE_ERRORED); ? AppOpsManager.MODE_ALLOWED : AppOpsManager.MODE_ERRORED); } } Loading