Optimize code on get UidDetail in AppDataUsage

The class UidDetailProvider providers details about a specific UID,
we can directly  apply it here.

Optimize: https://code.google.com/p/android/issues/detail?id=237810
Test: for case TrafficStats.UID_REMOVED
1.add an new User
2.generate some data traffic under the new user
3.switch to the phone owner
4.delete the User added just now
5.go to Data usage and open the item "Removed apps and users"

    for case TrafficStats.UID_TETHERING
1.open tethering and generate some data traffic
2.go to Data usage and open the item "Tethering & portable hotspot"

Change-Id: I05aa522728b296d6c06580adf809f274491cdcea
Signed-off-by: tiansiming <tiansiming@xiaomi.com>
This commit is contained in:
tiansiming
2017-03-07 10:46:13 +08:00
parent 084c20409b
commit 40234f6fe2

View File

@@ -49,6 +49,7 @@ import com.android.settingslib.AppItem;
import com.android.settingslib.Utils; 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.UidDetail;
import com.android.settingslib.net.UidDetailProvider; import com.android.settingslib.net.UidDetailProvider;
import java.util.concurrent.BlockingQueue; import java.util.concurrent.BlockingQueue;
@@ -207,19 +208,12 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen
removePreference(KEY_APP_LIST); removePreference(KEY_APP_LIST);
} }
} else { } else {
if (mAppItem.key == TrafficStats.UID_REMOVED) { final Context context = getActivity();
mLabel = getContext().getString(R.string.data_usage_uninstalled_apps_users); UidDetail uidDetail = new UidDetailProvider(context).getUidDetail(mAppItem.key, true);
} else if (mAppItem.key == TrafficStats.UID_TETHERING) { mIcon = uidDetail.icon;
mLabel = getContext().getString(R.string.tether_settings_title_all); mLabel = uidDetail.label;
} else { mPackageName = context.getPackageName();
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);
mPackageName = getActivity().getPackageName();
}
removePreference(KEY_UNRESTRICTED_DATA); removePreference(KEY_UNRESTRICTED_DATA);
removePreference(KEY_APP_SETTINGS); removePreference(KEY_APP_SETTINGS);
removePreference(KEY_RESTRICT_BACKGROUND); removePreference(KEY_RESTRICT_BACKGROUND);