Merge "Add work profile badge for icon of free up space" into tm-dev am: 6d0b9c7bd4
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/17462163 Change-Id: Id3925d5b24a5bd8bd7ee3dc533af979d76e7e8fc Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -19,10 +19,8 @@ package com.android.settings.deviceinfo;
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.app.usage.StorageStatsManager;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Bundle;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
import android.os.storage.StorageManager;
|
||||
import android.util.SparseArray;
|
||||
@@ -31,12 +29,12 @@ import android.view.View;
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
import androidx.loader.app.LoaderManager;
|
||||
import androidx.loader.content.Loader;
|
||||
import androidx.preference.Preference;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settings.dashboard.DashboardFragment;
|
||||
import com.android.settings.dashboard.profileselector.ProfileSelectFragment;
|
||||
import com.android.settings.deviceinfo.storage.ManageStoragePreferenceController;
|
||||
import com.android.settings.deviceinfo.storage.SecondaryUserController;
|
||||
import com.android.settings.deviceinfo.storage.StorageAsyncLoader;
|
||||
import com.android.settings.deviceinfo.storage.StorageCacheHelper;
|
||||
@@ -44,10 +42,8 @@ import com.android.settings.deviceinfo.storage.StorageEntry;
|
||||
import com.android.settings.deviceinfo.storage.StorageItemPreferenceController;
|
||||
import com.android.settings.deviceinfo.storage.UserIconLoader;
|
||||
import com.android.settings.deviceinfo.storage.VolumeSizesLoader;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settingslib.applications.StorageStatsSource;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||
import com.android.settingslib.deviceinfo.PrivateStorageInfo;
|
||||
import com.android.settingslib.deviceinfo.StorageManagerVolumeProvider;
|
||||
|
||||
@@ -70,12 +66,10 @@ import java.util.Optional;
|
||||
*/
|
||||
public class StorageCategoryFragment extends DashboardFragment
|
||||
implements
|
||||
LoaderManager.LoaderCallbacks<SparseArray<StorageAsyncLoader.StorageResult>>,
|
||||
Preference.OnPreferenceClickListener {
|
||||
LoaderManager.LoaderCallbacks<SparseArray<StorageAsyncLoader.StorageResult>> {
|
||||
private static final String TAG = "StorageCategoryFrag";
|
||||
private static final String SELECTED_STORAGE_ENTRY_KEY = "selected_storage_entry_key";
|
||||
private static final String SUMMARY_PREF_KEY = "storage_summary";
|
||||
private static final String FREE_UP_SPACE_PREF_KEY = "free_up_space";
|
||||
private static final int STORAGE_JOB_ID = 0;
|
||||
private static final int ICON_JOB_ID = 1;
|
||||
private static final int VOLUME_SIZE_JOB_ID = 2;
|
||||
@@ -90,7 +84,6 @@ public class StorageCategoryFragment extends DashboardFragment
|
||||
private List<AbstractPreferenceController> mSecondaryUsers;
|
||||
private boolean mIsWorkProfile;
|
||||
private int mUserId;
|
||||
private Preference mFreeUpSpacePreference;
|
||||
private boolean mIsLoadedFromCache;
|
||||
private StorageCacheHelper mStorageCacheHelper;
|
||||
|
||||
@@ -152,8 +145,6 @@ public class StorageCategoryFragment extends DashboardFragment
|
||||
mSelectedStorageEntry = icicle.getParcelable(SELECTED_STORAGE_ENTRY_KEY);
|
||||
}
|
||||
|
||||
initializePreference();
|
||||
|
||||
if (mStorageCacheHelper.hasCachedSizeInfo()) {
|
||||
mIsLoadedFromCache = true;
|
||||
if (mSelectedStorageEntry != null) {
|
||||
@@ -164,11 +155,6 @@ public class StorageCategoryFragment extends DashboardFragment
|
||||
}
|
||||
}
|
||||
|
||||
private void initializePreference() {
|
||||
mFreeUpSpacePreference = getPreferenceScreen().findPreference(FREE_UP_SPACE_PREF_KEY);
|
||||
mFreeUpSpacePreference.setOnPreferenceClickListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
// These member variables are initialized befoer super.onAttach for
|
||||
@@ -180,6 +166,10 @@ public class StorageCategoryFragment extends DashboardFragment
|
||||
mStorageCacheHelper = new StorageCacheHelper(getContext(), mUserId);
|
||||
|
||||
super.onAttach(context);
|
||||
|
||||
ManageStoragePreferenceController manageStoragePreferenceController =
|
||||
use(ManageStoragePreferenceController.class);
|
||||
manageStoragePreferenceController.setUserId(mUserId);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -305,22 +295,6 @@ public class StorageCategoryFragment extends DashboardFragment
|
||||
public void onLoaderReset(Loader<SparseArray<StorageAsyncLoader.StorageResult>> loader) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
if (preference == mFreeUpSpacePreference) {
|
||||
final Context context = getContext();
|
||||
final MetricsFeatureProvider metricsFeatureProvider =
|
||||
FeatureFactory.getFactory(context).getMetricsFeatureProvider();
|
||||
metricsFeatureProvider.logClickedPreference(preference, getMetricsCategory());
|
||||
metricsFeatureProvider.action(context, SettingsEnums.STORAGE_FREE_UP_SPACE_NOW);
|
||||
final Intent intent = new Intent(StorageManager.ACTION_MANAGE_STORAGE);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivityAsUser(intent, new UserHandle(mUserId));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
public PrivateStorageInfo getPrivateStorageInfo() {
|
||||
return mStorageInfo;
|
||||
|
@@ -20,7 +20,6 @@ import android.app.Activity;
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.app.usage.StorageStatsManager;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Bundle;
|
||||
import android.os.UserHandle;
|
||||
@@ -38,13 +37,13 @@ import android.view.View;
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
import androidx.loader.app.LoaderManager;
|
||||
import androidx.loader.content.Loader;
|
||||
import androidx.preference.Preference;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settings.dashboard.DashboardFragment;
|
||||
import com.android.settings.deviceinfo.storage.AutomaticStorageManagementSwitchPreferenceController;
|
||||
import com.android.settings.deviceinfo.storage.DiskInitFragment;
|
||||
import com.android.settings.deviceinfo.storage.ManageStoragePreferenceController;
|
||||
import com.android.settings.deviceinfo.storage.SecondaryUserController;
|
||||
import com.android.settings.deviceinfo.storage.StorageAsyncLoader;
|
||||
import com.android.settings.deviceinfo.storage.StorageCacheHelper;
|
||||
@@ -55,11 +54,9 @@ import com.android.settings.deviceinfo.storage.StorageUsageProgressBarPreference
|
||||
import com.android.settings.deviceinfo.storage.StorageUtils;
|
||||
import com.android.settings.deviceinfo.storage.UserIconLoader;
|
||||
import com.android.settings.deviceinfo.storage.VolumeSizesLoader;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settings.search.BaseSearchIndexProvider;
|
||||
import com.android.settingslib.applications.StorageStatsSource;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||
import com.android.settingslib.deviceinfo.PrivateStorageInfo;
|
||||
import com.android.settingslib.deviceinfo.StorageManagerVolumeProvider;
|
||||
import com.android.settingslib.search.SearchIndexable;
|
||||
@@ -85,11 +82,9 @@ import java.util.Optional;
|
||||
@SearchIndexable
|
||||
public class StorageDashboardFragment extends DashboardFragment
|
||||
implements
|
||||
LoaderManager.LoaderCallbacks<SparseArray<StorageAsyncLoader.StorageResult>>,
|
||||
Preference.OnPreferenceClickListener {
|
||||
LoaderManager.LoaderCallbacks<SparseArray<StorageAsyncLoader.StorageResult>> {
|
||||
private static final String TAG = "StorageDashboardFrag";
|
||||
private static final String SUMMARY_PREF_KEY = "storage_summary";
|
||||
private static final String FREE_UP_SPACE_PREF_KEY = "free_up_space";
|
||||
private static final String SELECTED_STORAGE_ENTRY_KEY = "selected_storage_entry_key";
|
||||
private static final int STORAGE_JOB_ID = 0;
|
||||
private static final int ICON_JOB_ID = 1;
|
||||
@@ -109,7 +104,6 @@ public class StorageDashboardFragment extends DashboardFragment
|
||||
private List<AbstractPreferenceController> mSecondaryUsers;
|
||||
private boolean mIsWorkProfile;
|
||||
private int mUserId;
|
||||
private Preference mFreeUpSpacePreference;
|
||||
private boolean mIsLoadedFromCache;
|
||||
private StorageCacheHelper mStorageCacheHelper;
|
||||
|
||||
@@ -290,7 +284,6 @@ public class StorageDashboardFragment extends DashboardFragment
|
||||
mSelectedStorageEntry = icicle.getParcelable(SELECTED_STORAGE_ENTRY_KEY);
|
||||
}
|
||||
|
||||
initializePreference();
|
||||
initializeOptionsMenu(activity);
|
||||
|
||||
if (mStorageCacheHelper.hasCachedSizeInfo()) {
|
||||
@@ -304,11 +297,6 @@ public class StorageDashboardFragment extends DashboardFragment
|
||||
}
|
||||
}
|
||||
|
||||
private void initializePreference() {
|
||||
mFreeUpSpacePreference = getPreferenceScreen().findPreference(FREE_UP_SPACE_PREF_KEY);
|
||||
mFreeUpSpacePreference.setOnPreferenceClickListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
// These member variables are initialized befoer super.onAttach for
|
||||
@@ -334,6 +322,10 @@ public class StorageDashboardFragment extends DashboardFragment
|
||||
}
|
||||
});
|
||||
mStorageUsageProgressBarController = use(StorageUsageProgressBarPreferenceController.class);
|
||||
|
||||
ManageStoragePreferenceController manageStoragePreferenceController =
|
||||
use(ManageStoragePreferenceController.class);
|
||||
manageStoragePreferenceController.setUserId(mUserId);
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
@@ -505,22 +497,6 @@ public class StorageDashboardFragment extends DashboardFragment
|
||||
public void onLoaderReset(Loader<SparseArray<StorageAsyncLoader.StorageResult>> loader) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
if (preference == mFreeUpSpacePreference) {
|
||||
final Context context = getContext();
|
||||
final MetricsFeatureProvider metricsFeatureProvider =
|
||||
FeatureFactory.getFactory(context).getMetricsFeatureProvider();
|
||||
metricsFeatureProvider.logClickedPreference(preference, getMetricsCategory());
|
||||
metricsFeatureProvider.action(context, SettingsEnums.STORAGE_FREE_UP_SPACE_NOW);
|
||||
final Intent intent = new Intent(StorageManager.ACTION_MANAGE_STORAGE);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivityAsUser(intent, new UserHandle(mUserId));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
public PrivateStorageInfo getPrivateStorageInfo() {
|
||||
return mStorageInfo;
|
||||
|
@@ -0,0 +1,77 @@
|
||||
/*
|
||||
* Copyright (C) 2022 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.deviceinfo.storage;
|
||||
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.UserHandle;
|
||||
import android.os.storage.StorageManager;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settings.core.BasePreferenceController;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||
|
||||
/**
|
||||
* Preference controller to control the storage management preference.
|
||||
*/
|
||||
public class ManageStoragePreferenceController extends BasePreferenceController {
|
||||
|
||||
private int mUserId;
|
||||
private Drawable mManageStorageDrawable;
|
||||
|
||||
public ManageStoragePreferenceController(Context context, String preferenceKey) {
|
||||
super(context, preferenceKey);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set user ID.
|
||||
*/
|
||||
public void setUserId(int userId) {
|
||||
mUserId = userId;
|
||||
mManageStorageDrawable = StorageUtils.getManageStorageIcon(mContext, userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getAvailabilityStatus() {
|
||||
return mManageStorageDrawable == null ? CONDITIONALLY_UNAVAILABLE : AVAILABLE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void displayPreference(PreferenceScreen screen) {
|
||||
super.displayPreference(screen);
|
||||
|
||||
Preference preference = screen.findPreference(getPreferenceKey());
|
||||
preference.setIcon(mManageStorageDrawable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean handlePreferenceTreeClick(Preference preference) {
|
||||
final MetricsFeatureProvider metricsFeatureProvider =
|
||||
FeatureFactory.getFactory(mContext).getMetricsFeatureProvider();
|
||||
metricsFeatureProvider.action(mContext, SettingsEnums.STORAGE_FREE_UP_SPACE_NOW);
|
||||
|
||||
final Intent intent = new Intent(StorageManager.ACTION_MANAGE_STORAGE);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
mContext.startActivityAsUser(intent, new UserHandle(mUserId));
|
||||
return true;
|
||||
}
|
||||
}
|
@@ -19,6 +19,9 @@ package com.android.settings.deviceinfo.storage;
|
||||
import android.app.Dialog;
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
@@ -35,6 +38,7 @@ import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settings.core.SubSettingLauncher;
|
||||
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
||||
import com.android.settings.deviceinfo.PrivateVolumeForget;
|
||||
@@ -231,4 +235,15 @@ public class StorageUtils {
|
||||
bytes, Formatter.FLAG_SHORTER);
|
||||
return context.getString(resId, result.value, result.units);
|
||||
}
|
||||
|
||||
/** Gets icon for Preference of Free up space. */
|
||||
public static Drawable getManageStorageIcon(Context context, int userId) {
|
||||
ResolveInfo resolveInfo = context.getPackageManager().resolveActivityAsUser(
|
||||
new Intent(StorageManager.ACTION_MANAGE_STORAGE), 0 /* flags */, userId);
|
||||
if (resolveInfo == null || resolveInfo.activityInfo == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return Utils.getBadgedIcon(context, resolveInfo.activityInfo.applicationInfo);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user