Show the right icon and label for work profile in data usage.

Previously, it showed the icon and label of a random application.

BUG:26798809
Change-Id: I9d812943bdf6f99e87dfd9bb4a37b25644b8d18d
This commit is contained in:
Nicolas Prevot
2016-04-12 20:29:22 +01:00
parent 6599660196
commit cda955072d

View File

@@ -20,6 +20,7 @@ import android.content.Intent;
import android.content.Loader; import android.content.Loader;
import android.content.pm.ApplicationInfo; import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.pm.UserInfo;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.net.INetworkStatsSession; import android.net.INetworkStatsSession;
import android.net.NetworkPolicy; import android.net.NetworkPolicy;
@@ -30,6 +31,7 @@ import android.os.AsyncTask;
import android.os.Bundle; import android.os.Bundle;
import android.os.RemoteException; import android.os.RemoteException;
import android.os.UserHandle; import android.os.UserHandle;
import android.os.UserManager;
import android.support.v14.preference.SwitchPreference; import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceCategory; import android.support.v7.preference.PreferenceCategory;
@@ -42,8 +44,10 @@ import com.android.settings.AppHeader;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.applications.AppInfoBase; import com.android.settings.applications.AppInfoBase;
import com.android.settingslib.AppItem; import com.android.settingslib.AppItem;
import com.android.settingslib.Utils;
import com.android.settingslib.net.ChartData; import com.android.settingslib.net.ChartData;
import com.android.settingslib.net.ChartDataLoader; import com.android.settingslib.net.ChartDataLoader;
import com.android.settingslib.net.UidDetailProvider;
import static android.net.NetworkPolicyManager.POLICY_NONE; import static android.net.NetworkPolicyManager.POLICY_NONE;
import static android.net.NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND; import static android.net.NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND;
@@ -123,15 +127,6 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen
addUid(mAppItem.uids.keyAt(i)); addUid(mAppItem.uids.keyAt(i));
} }
} }
if (mPackages.size() != 0) {
PackageManager pm = getPackageManager();
try {
ApplicationInfo info = pm.getApplicationInfo(mPackages.valueAt(0), 0);
mIcon = info.loadIcon(pm);
mLabel = info.loadLabel(pm);
} catch (PackageManager.NameNotFoundException e) {
}
}
addPreferencesFromResource(R.xml.app_data_usage); addPreferencesFromResource(R.xml.app_data_usage);
mTotalUsage = findPreference(KEY_TOTAL_USAGE); mTotalUsage = findPreference(KEY_TOTAL_USAGE);
@@ -142,6 +137,15 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen
mCycleAdapter = new CycleAdapter(getContext(), mCycle, mCycleListener, false); mCycleAdapter = new CycleAdapter(getContext(), mCycle, mCycleListener, false);
if (UserHandle.isApp(mAppItem.key)) { if (UserHandle.isApp(mAppItem.key)) {
if (mPackages.size() != 0) {
PackageManager pm = getPackageManager();
try {
ApplicationInfo info = pm.getApplicationInfo(mPackages.valueAt(0), 0);
mIcon = info.loadIcon(pm);
mLabel = info.loadLabel(pm);
} catch (PackageManager.NameNotFoundException e) {
}
}
mRestrictBackground = (SwitchPreference) findPreference(KEY_RESTRICT_BACKGROUND); mRestrictBackground = (SwitchPreference) findPreference(KEY_RESTRICT_BACKGROUND);
mRestrictBackground.setOnPreferenceChangeListener(this); mRestrictBackground.setOnPreferenceChangeListener(this);
mUnrestrictedData = (SwitchPreference) findPreference(KEY_UNRESTRICTED_DATA); mUnrestrictedData = (SwitchPreference) findPreference(KEY_UNRESTRICTED_DATA);
@@ -176,6 +180,12 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen
removePreference(KEY_APP_LIST); removePreference(KEY_APP_LIST);
} }
} else { } else {
final int userId = UidDetailProvider.getUserIdForKey(mAppItem.key);
final UserManager um = UserManager.get(getActivity());
final UserInfo info = um.getUserInfo(userId);
final PackageManager pm = getPackageManager();
mIcon = Utils.getUserIcon(getActivity(), um, info);
mLabel = Utils.getUserLabel(getActivity(), info);
removePreference(KEY_UNRESTRICTED_DATA); removePreference(KEY_UNRESTRICTED_DATA);
removePreference(KEY_APP_SETTINGS); removePreference(KEY_APP_SETTINGS);
removePreference(KEY_RESTRICT_BACKGROUND); removePreference(KEY_RESTRICT_BACKGROUND);