Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1b7fdc3a authored by Jian Zhou's avatar Jian Zhou Committed by Linux Build Service Account
Browse files

Settings: Fix Settings App crashing when Tethering data usage stats.

Settings App crashes when Tethering data usage stats is accessed on UI.
This is caused by wrong userID returned from UidDetailProvider, then
null user info is returned in user manager.

Use UserHandle instead to get user ID.

CRs-Fixed: 1024028

Conflicts:
	src/com/android/settings/datausage/AppDataUsage.java

Change-Id: I8cbaeb58e8133202a8c8d10e4d68ae5df93a6a43
parent 6fce580d
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ import com.android.settingslib.net.ChartDataLoader;
import com.android.settingslib.net.UidDetailProvider;

import static android.net.NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND;
import static android.net.TrafficStats.UID_TETHERING;

public class AppDataUsage extends DataUsageBase implements Preference.OnPreferenceChangeListener,
        DataSaverBackend.Listener {
@@ -201,6 +202,20 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen
                mLabel = Utils.getUserLabel(getActivity(), info);
                mPackageName = getActivity().getPackageName();
            }
            int userId = 0;
            //UID_TETHERING will return wrong userId from UidDetailProvider, user UserHandle instead
            if (mAppItem.key == UID_TETHERING) {
                userId = UserHandle.getUserId(mAppItem.key);
            } else {
                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_APP_SETTINGS);
            removePreference(KEY_RESTRICT_BACKGROUND);