Renamed Storage Access to Directory Access.
Test: manual verification Test: make RunSettingsRoboTests -j40 Bug: 63720392 Bug: 72135562 Change-Id: I31e63456994d7a9cd2a83a260930835a1052e793
This commit is contained in:
@@ -9193,9 +9193,9 @@
|
|||||||
<!-- UI debug setting: preference summary - describes the behavior of showing a dialog every time an app crashes [CHAR LIMIT=NONE] -->
|
<!-- UI debug setting: preference summary - describes the behavior of showing a dialog every time an app crashes [CHAR LIMIT=NONE] -->
|
||||||
<string name="show_first_crash_dialog_summary">Show dialog every time an app crashes</string>
|
<string name="show_first_crash_dialog_summary">Show dialog every time an app crashes</string>
|
||||||
|
|
||||||
<!-- Title for Storage Access settings -->
|
<!-- Title for Directory Access settings -->
|
||||||
<string name="storage_access">Storage access</string>
|
<string name="directory_access">Directory access</string>
|
||||||
<!-- Keywords for Storage Access settings -->
|
<!-- Keywords for Directory Access settings -->
|
||||||
<string name="keywords_storage_access">storage access scoped directory</string>
|
<string name="keywords_directory_access">directory access</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -113,13 +113,13 @@
|
|||||||
|
|
||||||
<!-- TODO(b/63720392): add when ready
|
<!-- TODO(b/63720392): add when ready
|
||||||
<Preference
|
<Preference
|
||||||
android:key="special_app_storage_access"
|
android:key="special_app_directory_access"
|
||||||
android:title="@string/storage_access"
|
android:title="@string/directory_access"
|
||||||
android:fragment="com.android.settings.applications.manageapplications.ManageApplications"
|
android:fragment="com.android.settings.applications.manageapplications.ManageApplications"
|
||||||
settings:keywords="@string/keywords_storage_access">
|
settings:keywords="@string/keywords_directory_access">
|
||||||
<extra
|
<extra
|
||||||
android:name="classname"
|
android:name="classname"
|
||||||
android:value="com.android.settings.Settings$StorageAccessSettingsActivity" />
|
android:value="com.android.settings.Settings$DirectoryeAccessSettingsActivity" />
|
||||||
</Preference>
|
</Preference>
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
@@ -120,7 +120,7 @@ public class Settings extends SettingsActivity {
|
|||||||
public static class PhotosStorageActivity extends SettingsActivity {
|
public static class PhotosStorageActivity extends SettingsActivity {
|
||||||
/* empty */
|
/* empty */
|
||||||
}
|
}
|
||||||
public static class StorageAccessSettingsActivity extends SettingsActivity { /* empty */ }
|
public static class DirectoryAccessSettingsActivity extends SettingsActivity { /* empty */ }
|
||||||
|
|
||||||
public static class TopLevelSettings extends SettingsActivity { /* empty */ }
|
public static class TopLevelSettings extends SettingsActivity { /* empty */ }
|
||||||
public static class ApnSettingsActivity extends SettingsActivity { /* empty */ }
|
public static class ApnSettingsActivity extends SettingsActivity { /* empty */ }
|
||||||
|
@@ -34,11 +34,11 @@ import com.android.settingslib.applications.ApplicationsState.AppFilter;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
// TODO(b/63720392): add unit tests
|
// TODO(b/63720392): add unit tests
|
||||||
public class AppStateStorageAccessBridge extends AppStateBaseBridge {
|
public class AppStateDirectoryAccessBridge extends AppStateBaseBridge {
|
||||||
|
|
||||||
private static final String TAG = "StorageAccessBridge";
|
private static final String TAG = "DirectoryAccessBridge";
|
||||||
|
|
||||||
public AppStateStorageAccessBridge(ApplicationsState appState, Callback callback) {
|
public AppStateDirectoryAccessBridge(ApplicationsState appState, Callback callback) {
|
||||||
super(appState, callback);
|
super(appState, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -48,7 +48,7 @@ public class AppStateStorageAccessBridge extends AppStateBaseBridge {
|
|||||||
@Override
|
@Override
|
||||||
protected void updateExtraInfo(AppEntry app, String pkg, int uid) { }
|
protected void updateExtraInfo(AppEntry app, String pkg, int uid) { }
|
||||||
|
|
||||||
public static final AppFilter FILTER_APP_HAS_STORAGE_ACCESS = new AppFilter() {
|
public static final AppFilter FILTER_APP_HAS_DIRECTORY_ACCESS = new AppFilter() {
|
||||||
|
|
||||||
private Set<String> mPackages;
|
private Set<String> mPackages;
|
||||||
|
|
@@ -38,13 +38,13 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Detailed settings for an app's storage access permissions (A.K.A Scoped Directory Access).
|
* Detailed settings for an app's directory access permissions (A.K.A Scoped Directory Access).
|
||||||
*/
|
*/
|
||||||
// TODO(b/63720392): explain its layout
|
// TODO(b/63720392): explain its layout
|
||||||
// TODO(b/63720392): add unit tests
|
// TODO(b/63720392): add unit tests
|
||||||
public class StorageAccessDetails extends AppInfoWithHeader implements OnPreferenceChangeListener,
|
public class DirectoryAccessDetails extends AppInfoWithHeader implements OnPreferenceChangeListener,
|
||||||
OnPreferenceClickListener {
|
OnPreferenceClickListener {
|
||||||
private static final String MY_TAG = "StorageAccessDetails";
|
private static final String MY_TAG = "DirectoryAccessDetails";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
@@ -105,6 +105,6 @@ public class StorageAccessDetails extends AppInfoWithHeader implements OnPrefere
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMetricsCategory() {
|
public int getMetricsCategory() {
|
||||||
return MetricsEvent.APPLICATIONS_USAGE_ACCESS_DETAIL;
|
return MetricsEvent.APPLICATIONS_DIRECTORY_ACCESS_DETAIL;
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -23,7 +23,7 @@ import com.android.settings.applications.AppStateInstallAppsBridge;
|
|||||||
import com.android.settings.applications.AppStateNotificationBridge;
|
import com.android.settings.applications.AppStateNotificationBridge;
|
||||||
import com.android.settings.applications.AppStateOverlayBridge;
|
import com.android.settings.applications.AppStateOverlayBridge;
|
||||||
import com.android.settings.applications.AppStatePowerBridge;
|
import com.android.settings.applications.AppStatePowerBridge;
|
||||||
import com.android.settings.applications.AppStateStorageAccessBridge;
|
import com.android.settings.applications.AppStateDirectoryAccessBridge;
|
||||||
import com.android.settings.applications.AppStateUsageBridge;
|
import com.android.settings.applications.AppStateUsageBridge;
|
||||||
import com.android.settings.applications.AppStateWriteSettingsBridge;
|
import com.android.settings.applications.AppStateWriteSettingsBridge;
|
||||||
import com.android.settingslib.applications.ApplicationsState;
|
import com.android.settingslib.applications.ApplicationsState;
|
||||||
@@ -66,7 +66,7 @@ public class AppFilterRegistry {
|
|||||||
public static final int FILTER_APPS_WITH_OVERLAY = 10;
|
public static final int FILTER_APPS_WITH_OVERLAY = 10;
|
||||||
public static final int FILTER_APPS_WRITE_SETTINGS = 11;
|
public static final int FILTER_APPS_WRITE_SETTINGS = 11;
|
||||||
public static final int FILTER_APPS_INSTALL_SOURCES = 12;
|
public static final int FILTER_APPS_INSTALL_SOURCES = 12;
|
||||||
public static final int FILTER_APP_HAS_STORAGE_ACCESS = 13;
|
public static final int FILTER_APP_HAS_DIRECTORY_ACCESS = 13;
|
||||||
// Next id: 14
|
// Next id: 14
|
||||||
|
|
||||||
private static AppFilterRegistry sRegistry;
|
private static AppFilterRegistry sRegistry;
|
||||||
@@ -158,10 +158,10 @@ public class AppFilterRegistry {
|
|||||||
FILTER_APPS_INSTALL_SOURCES,
|
FILTER_APPS_INSTALL_SOURCES,
|
||||||
R.string.filter_install_sources_apps);
|
R.string.filter_install_sources_apps);
|
||||||
|
|
||||||
// Apps that interacted with storage access permissions (A.K.A. Scoped Directory Access)
|
// Apps that interacted with directory access permissions (A.K.A. Scoped Directory Access)
|
||||||
mFilters[FILTER_APP_HAS_STORAGE_ACCESS] = new AppFilterItem(
|
mFilters[FILTER_APP_HAS_DIRECTORY_ACCESS] = new AppFilterItem(
|
||||||
AppStateStorageAccessBridge.FILTER_APP_HAS_STORAGE_ACCESS,
|
AppStateDirectoryAccessBridge.FILTER_APP_HAS_DIRECTORY_ACCESS,
|
||||||
FILTER_APP_HAS_STORAGE_ACCESS,
|
FILTER_APP_HAS_DIRECTORY_ACCESS,
|
||||||
R.string.filter_install_sources_apps);
|
R.string.filter_install_sources_apps);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -185,8 +185,8 @@ public class AppFilterRegistry {
|
|||||||
return FILTER_APPS_WRITE_SETTINGS;
|
return FILTER_APPS_WRITE_SETTINGS;
|
||||||
case ManageApplications.LIST_TYPE_MANAGE_SOURCES:
|
case ManageApplications.LIST_TYPE_MANAGE_SOURCES:
|
||||||
return FILTER_APPS_INSTALL_SOURCES;
|
return FILTER_APPS_INSTALL_SOURCES;
|
||||||
case ManageApplications.LIST_TYPE_STORAGE_ACCESS:
|
case ManageApplications.LIST_TYPE_DIRECTORY_ACCESS:
|
||||||
return FILTER_APP_HAS_STORAGE_ACCESS;
|
return FILTER_APP_HAS_DIRECTORY_ACCESS;
|
||||||
default:
|
default:
|
||||||
return FILTER_APPS_ALL;
|
return FILTER_APPS_ALL;
|
||||||
}
|
}
|
||||||
|
@@ -84,7 +84,7 @@ import com.android.settings.applications.AppStateInstallAppsBridge;
|
|||||||
import com.android.settings.applications.AppStateNotificationBridge;
|
import com.android.settings.applications.AppStateNotificationBridge;
|
||||||
import com.android.settings.applications.AppStateOverlayBridge;
|
import com.android.settings.applications.AppStateOverlayBridge;
|
||||||
import com.android.settings.applications.AppStatePowerBridge;
|
import com.android.settings.applications.AppStatePowerBridge;
|
||||||
import com.android.settings.applications.AppStateStorageAccessBridge;
|
import com.android.settings.applications.AppStateDirectoryAccessBridge;
|
||||||
import com.android.settings.applications.AppStateUsageBridge;
|
import com.android.settings.applications.AppStateUsageBridge;
|
||||||
import com.android.settings.applications.AppStateUsageBridge.UsageState;
|
import com.android.settings.applications.AppStateUsageBridge.UsageState;
|
||||||
import com.android.settings.applications.AppStateWriteSettingsBridge;
|
import com.android.settings.applications.AppStateWriteSettingsBridge;
|
||||||
@@ -93,7 +93,7 @@ import com.android.settings.applications.DefaultAppSettings;
|
|||||||
import com.android.settings.applications.InstalledAppCounter;
|
import com.android.settings.applications.InstalledAppCounter;
|
||||||
import com.android.settings.applications.InstalledAppDetails;
|
import com.android.settings.applications.InstalledAppDetails;
|
||||||
import com.android.settings.applications.NotificationApps;
|
import com.android.settings.applications.NotificationApps;
|
||||||
import com.android.settings.applications.StorageAccessDetails;
|
import com.android.settings.applications.DirectoryAccessDetails;
|
||||||
import com.android.settings.applications.UsageAccessDetails;
|
import com.android.settings.applications.UsageAccessDetails;
|
||||||
import com.android.settings.applications.appinfo.AppInfoDashboardFragment;
|
import com.android.settings.applications.appinfo.AppInfoDashboardFragment;
|
||||||
import com.android.settings.applications.appinfo.DrawOverlayDetails;
|
import com.android.settings.applications.appinfo.DrawOverlayDetails;
|
||||||
@@ -206,7 +206,7 @@ public class ManageApplications extends InstrumentedPreferenceFragment
|
|||||||
public static final int LIST_TYPE_GAMES = 9;
|
public static final int LIST_TYPE_GAMES = 9;
|
||||||
public static final int LIST_TYPE_MOVIES = 10;
|
public static final int LIST_TYPE_MOVIES = 10;
|
||||||
public static final int LIST_TYPE_PHOTOGRAPHY = 11;
|
public static final int LIST_TYPE_PHOTOGRAPHY = 11;
|
||||||
public static final int LIST_TYPE_STORAGE_ACCESS = 12;
|
public static final int LIST_TYPE_DIRECTORY_ACCESS = 12;
|
||||||
|
|
||||||
// List types that should show instant apps.
|
// List types that should show instant apps.
|
||||||
public static final Set<Integer> LIST_TYPES_WITH_INSTANT = new ArraySet<>(Arrays.asList(
|
public static final Set<Integer> LIST_TYPES_WITH_INSTANT = new ArraySet<>(Arrays.asList(
|
||||||
@@ -282,9 +282,9 @@ public class ManageApplications extends InstrumentedPreferenceFragment
|
|||||||
mListType = LIST_TYPE_PHOTOGRAPHY;
|
mListType = LIST_TYPE_PHOTOGRAPHY;
|
||||||
mSortOrder = R.id.sort_order_size;
|
mSortOrder = R.id.sort_order_size;
|
||||||
mStorageType = args.getInt(EXTRA_STORAGE_TYPE, STORAGE_TYPE_DEFAULT);
|
mStorageType = args.getInt(EXTRA_STORAGE_TYPE, STORAGE_TYPE_DEFAULT);
|
||||||
} else if (className.equals(Settings.StorageAccessSettingsActivity.class.getName())) {
|
} else if (className.equals(Settings.DirectoryAccessSettingsActivity.class.getName())) {
|
||||||
mListType = LIST_TYPE_STORAGE_ACCESS;
|
mListType = LIST_TYPE_DIRECTORY_ACCESS;
|
||||||
screenTitle = R.string.storage_access;
|
screenTitle = R.string.directory_access;
|
||||||
} else {
|
} else {
|
||||||
mListType = LIST_TYPE_MAIN;
|
mListType = LIST_TYPE_MAIN;
|
||||||
}
|
}
|
||||||
@@ -449,8 +449,8 @@ public class ManageApplications extends InstrumentedPreferenceFragment
|
|||||||
return MetricsEvent.SYSTEM_ALERT_WINDOW_APPS;
|
return MetricsEvent.SYSTEM_ALERT_WINDOW_APPS;
|
||||||
case LIST_TYPE_MANAGE_SOURCES:
|
case LIST_TYPE_MANAGE_SOURCES:
|
||||||
return MetricsEvent.MANAGE_EXTERNAL_SOURCES;
|
return MetricsEvent.MANAGE_EXTERNAL_SOURCES;
|
||||||
case LIST_TYPE_STORAGE_ACCESS:
|
case LIST_TYPE_DIRECTORY_ACCESS:
|
||||||
return MetricsEvent.STORAGE_ACCESS;
|
return MetricsEvent.DIRECTORY_ACCESS;
|
||||||
default:
|
default:
|
||||||
return MetricsEvent.VIEW_UNKNOWN;
|
return MetricsEvent.VIEW_UNKNOWN;
|
||||||
}
|
}
|
||||||
@@ -545,8 +545,8 @@ public class ManageApplications extends InstrumentedPreferenceFragment
|
|||||||
case LIST_TYPE_PHOTOGRAPHY:
|
case LIST_TYPE_PHOTOGRAPHY:
|
||||||
startAppInfoFragment(AppStorageSettings.class, R.string.storage_photos_videos);
|
startAppInfoFragment(AppStorageSettings.class, R.string.storage_photos_videos);
|
||||||
break;
|
break;
|
||||||
case LIST_TYPE_STORAGE_ACCESS:
|
case LIST_TYPE_DIRECTORY_ACCESS:
|
||||||
startAppInfoFragment(StorageAccessDetails.class, R.string.storage_access);
|
startAppInfoFragment(DirectoryAccessDetails.class, R.string.directory_access);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// TODO: Figure out if there is a way where we can spin up the profile's settings
|
// TODO: Figure out if there is a way where we can spin up the profile's settings
|
||||||
@@ -852,8 +852,8 @@ public class ManageApplications extends InstrumentedPreferenceFragment
|
|||||||
mExtraInfoBridge = new AppStateWriteSettingsBridge(mContext, mState, this);
|
mExtraInfoBridge = new AppStateWriteSettingsBridge(mContext, mState, this);
|
||||||
} else if (mManageApplications.mListType == LIST_TYPE_MANAGE_SOURCES) {
|
} else if (mManageApplications.mListType == LIST_TYPE_MANAGE_SOURCES) {
|
||||||
mExtraInfoBridge = new AppStateInstallAppsBridge(mContext, mState, this);
|
mExtraInfoBridge = new AppStateInstallAppsBridge(mContext, mState, this);
|
||||||
} else if (mManageApplications.mListType == LIST_TYPE_STORAGE_ACCESS) {
|
} else if (mManageApplications.mListType == LIST_TYPE_DIRECTORY_ACCESS) {
|
||||||
mExtraInfoBridge = new AppStateStorageAccessBridge(mState, this);
|
mExtraInfoBridge = new AppStateDirectoryAccessBridge(mState, this);
|
||||||
} else {
|
} else {
|
||||||
mExtraInfoBridge = null;
|
mExtraInfoBridge = null;
|
||||||
}
|
}
|
||||||
@@ -1255,7 +1255,7 @@ public class ManageApplications extends InstrumentedPreferenceFragment
|
|||||||
case LIST_TYPE_MANAGE_SOURCES:
|
case LIST_TYPE_MANAGE_SOURCES:
|
||||||
holder.setSummary(ExternalSourcesDetails.getPreferenceSummary(mContext, entry));
|
holder.setSummary(ExternalSourcesDetails.getPreferenceSummary(mContext, entry));
|
||||||
break;
|
break;
|
||||||
case LIST_TYPE_STORAGE_ACCESS:
|
case LIST_TYPE_DIRECTORY_ACCESS:
|
||||||
holder.setSummary(null);
|
holder.setSummary(null);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@@ -44,7 +44,7 @@ import com.android.settings.applications.ManageDomainUrls;
|
|||||||
import com.android.settings.applications.NotificationApps;
|
import com.android.settings.applications.NotificationApps;
|
||||||
import com.android.settings.applications.ProcessStatsSummary;
|
import com.android.settings.applications.ProcessStatsSummary;
|
||||||
import com.android.settings.applications.ProcessStatsUi;
|
import com.android.settings.applications.ProcessStatsUi;
|
||||||
import com.android.settings.applications.StorageAccessDetails;
|
import com.android.settings.applications.DirectoryAccessDetails;
|
||||||
import com.android.settings.applications.UsageAccessDetails;
|
import com.android.settings.applications.UsageAccessDetails;
|
||||||
import com.android.settings.applications.VrListenerSettings;
|
import com.android.settings.applications.VrListenerSettings;
|
||||||
import com.android.settings.applications.appinfo.AppInfoDashboardFragment;
|
import com.android.settings.applications.appinfo.AppInfoDashboardFragment;
|
||||||
@@ -254,7 +254,7 @@ public class SettingsGateway {
|
|||||||
LockscreenDashboardFragment.class.getName(),
|
LockscreenDashboardFragment.class.getName(),
|
||||||
BluetoothDeviceDetailsFragment.class.getName(),
|
BluetoothDeviceDetailsFragment.class.getName(),
|
||||||
DataUsageList.class.getName(),
|
DataUsageList.class.getName(),
|
||||||
StorageAccessDetails.class.getName()
|
DirectoryAccessDetails.class.getName()
|
||||||
};
|
};
|
||||||
|
|
||||||
public static final String[] SETTINGS_FOR_RESTRICTED = {
|
public static final String[] SETTINGS_FOR_RESTRICTED = {
|
||||||
|
@@ -73,4 +73,4 @@ com.android.settings.TetherSettings
|
|||||||
com.android.settings.ApnEditor
|
com.android.settings.ApnEditor
|
||||||
com.android.settings.UserCredentialsSettings
|
com.android.settings.UserCredentialsSettings
|
||||||
com.android.settings.TestingSettings
|
com.android.settings.TestingSettings
|
||||||
com.android.settings.applications.StorageAccessDetails
|
com.android.settings.applications.DirectoryAccessDetails
|
Reference in New Issue
Block a user