Loading src/com/android/settings/datausage/AppDataUsage.java +10 −1 Original line number Original line Diff line number Diff line Loading @@ -39,6 +39,8 @@ import android.text.format.Formatter; import android.util.ArraySet; import android.util.ArraySet; import android.view.View; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.settings.AppHeader; import com.android.settings.AppHeader; import com.android.settings.R; import com.android.settings.R; Loading Loading @@ -78,6 +80,7 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen private Drawable mIcon; private Drawable mIcon; private CharSequence mLabel; private CharSequence mLabel; private String mPackageName; private INetworkStatsSession mStatsSession; private INetworkStatsSession mStatsSession; private CycleAdapter mCycleAdapter; private CycleAdapter mCycleAdapter; Loading Loading @@ -143,6 +146,7 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen ApplicationInfo info = pm.getApplicationInfo(mPackages.valueAt(0), 0); ApplicationInfo info = pm.getApplicationInfo(mPackages.valueAt(0), 0); mIcon = info.loadIcon(pm); mIcon = info.loadIcon(pm); mLabel = info.loadLabel(pm); mLabel = info.loadLabel(pm); mPackageName = info.packageName; } catch (PackageManager.NameNotFoundException e) { } catch (PackageManager.NameNotFoundException e) { } } } } Loading Loading @@ -186,6 +190,7 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen final PackageManager pm = getPackageManager(); final PackageManager pm = getPackageManager(); mIcon = Utils.getUserIcon(getActivity(), um, info); mIcon = Utils.getUserIcon(getActivity(), um, info); mLabel = Utils.getUserLabel(getActivity(), 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); Loading Loading @@ -214,7 +219,7 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen setAppRestrictBackground(!(Boolean) newValue); setAppRestrictBackground(!(Boolean) newValue); return true; return true; } else if (preference == mUnrestrictedData) { } else if (preference == mUnrestrictedData) { mDataSaverBackend.setIsWhitelisted(mAppItem.key, (Boolean) newValue); mDataSaverBackend.setIsWhitelisted(mAppItem.key, mPackageName, (Boolean) newValue); return true; return true; } } return false; return false; Loading Loading @@ -287,6 +292,10 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen services.mPolicyManager.setUidPolicy( services.mPolicyManager.setUidPolicy( uid, restrictBackground ? POLICY_REJECT_METERED_BACKGROUND : POLICY_NONE); uid, restrictBackground ? POLICY_REJECT_METERED_BACKGROUND : POLICY_NONE); updatePrefs(); // TODO: should have been notified by NPMS instead updatePrefs(); // TODO: should have been notified by NPMS instead if (restrictBackground) { MetricsLogger.action(getContext(), MetricsEvent.ACTION_DATA_SAVER_BLACKLIST, mPackageName); } } } @Override @Override Loading src/com/android/settings/datausage/DataSaverBackend.java +6 −1 Original line number Original line Diff line number Diff line Loading @@ -24,6 +24,9 @@ import android.os.ServiceManager; import android.util.Log; import android.util.Log; import android.util.SparseBooleanArray; import android.util.SparseBooleanArray; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.MetricsProto.MetricsEvent; import java.util.ArrayList; import java.util.ArrayList; public class DataSaverBackend { public class DataSaverBackend { Loading Loading @@ -67,13 +70,14 @@ public class DataSaverBackend { public void setDataSaverEnabled(boolean enabled) { public void setDataSaverEnabled(boolean enabled) { mPolicyManager.setRestrictBackground(enabled); mPolicyManager.setRestrictBackground(enabled); MetricsLogger.action(mContext, MetricsEvent.ACTION_DATA_SAVER_MODE, enabled ? 1 : 0); } } public void refreshWhitelist() { public void refreshWhitelist() { loadWhitelist(); loadWhitelist(); } } public void setIsWhitelisted(int uid, boolean whitelisted) { public void setIsWhitelisted(int uid, String packageName, boolean whitelisted) { mWhitelist.put(uid, whitelisted); mWhitelist.put(uid, whitelisted); try { try { if (whitelisted) { if (whitelisted) { Loading @@ -84,6 +88,7 @@ public class DataSaverBackend { } catch (RemoteException e) { } catch (RemoteException e) { Log.w(TAG, "Can't reach policy manager", e); Log.w(TAG, "Can't reach policy manager", e); } } MetricsLogger.action(mContext, MetricsEvent.ACTION_DATA_SAVER_WHITELIST, packageName); } } public boolean isWhitelisted(int uid) { public boolean isWhitelisted(int uid) { Loading src/com/android/settings/datausage/UnrestrictedDataAccess.java +2 −1 Original line number Original line Diff line number Diff line Loading @@ -200,7 +200,8 @@ public class UnrestrictedDataAccess extends SettingsPreferenceFragment if (preference instanceof AccessPreference) { if (preference instanceof AccessPreference) { AccessPreference accessPreference = (AccessPreference) preference; AccessPreference accessPreference = (AccessPreference) preference; boolean whitelisted = newValue == Boolean.TRUE; boolean whitelisted = newValue == Boolean.TRUE; mDataSaverBackend.setIsWhitelisted(accessPreference.mEntry.info.uid, whitelisted); mDataSaverBackend.setIsWhitelisted(accessPreference.mEntry.info.uid, accessPreference.mEntry.info.packageName, whitelisted); ((AppStateDataUsageBridge.DataUsageState) accessPreference.mEntry.extraInfo) ((AppStateDataUsageBridge.DataUsageState) accessPreference.mEntry.extraInfo) .isDataSaverWhitelisted = whitelisted; .isDataSaverWhitelisted = whitelisted; return true; return true; Loading Loading
src/com/android/settings/datausage/AppDataUsage.java +10 −1 Original line number Original line Diff line number Diff line Loading @@ -39,6 +39,8 @@ import android.text.format.Formatter; import android.util.ArraySet; import android.util.ArraySet; import android.view.View; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.settings.AppHeader; import com.android.settings.AppHeader; import com.android.settings.R; import com.android.settings.R; Loading Loading @@ -78,6 +80,7 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen private Drawable mIcon; private Drawable mIcon; private CharSequence mLabel; private CharSequence mLabel; private String mPackageName; private INetworkStatsSession mStatsSession; private INetworkStatsSession mStatsSession; private CycleAdapter mCycleAdapter; private CycleAdapter mCycleAdapter; Loading Loading @@ -143,6 +146,7 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen ApplicationInfo info = pm.getApplicationInfo(mPackages.valueAt(0), 0); ApplicationInfo info = pm.getApplicationInfo(mPackages.valueAt(0), 0); mIcon = info.loadIcon(pm); mIcon = info.loadIcon(pm); mLabel = info.loadLabel(pm); mLabel = info.loadLabel(pm); mPackageName = info.packageName; } catch (PackageManager.NameNotFoundException e) { } catch (PackageManager.NameNotFoundException e) { } } } } Loading Loading @@ -186,6 +190,7 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen final PackageManager pm = getPackageManager(); final PackageManager pm = getPackageManager(); mIcon = Utils.getUserIcon(getActivity(), um, info); mIcon = Utils.getUserIcon(getActivity(), um, info); mLabel = Utils.getUserLabel(getActivity(), 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); Loading Loading @@ -214,7 +219,7 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen setAppRestrictBackground(!(Boolean) newValue); setAppRestrictBackground(!(Boolean) newValue); return true; return true; } else if (preference == mUnrestrictedData) { } else if (preference == mUnrestrictedData) { mDataSaverBackend.setIsWhitelisted(mAppItem.key, (Boolean) newValue); mDataSaverBackend.setIsWhitelisted(mAppItem.key, mPackageName, (Boolean) newValue); return true; return true; } } return false; return false; Loading Loading @@ -287,6 +292,10 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen services.mPolicyManager.setUidPolicy( services.mPolicyManager.setUidPolicy( uid, restrictBackground ? POLICY_REJECT_METERED_BACKGROUND : POLICY_NONE); uid, restrictBackground ? POLICY_REJECT_METERED_BACKGROUND : POLICY_NONE); updatePrefs(); // TODO: should have been notified by NPMS instead updatePrefs(); // TODO: should have been notified by NPMS instead if (restrictBackground) { MetricsLogger.action(getContext(), MetricsEvent.ACTION_DATA_SAVER_BLACKLIST, mPackageName); } } } @Override @Override Loading
src/com/android/settings/datausage/DataSaverBackend.java +6 −1 Original line number Original line Diff line number Diff line Loading @@ -24,6 +24,9 @@ import android.os.ServiceManager; import android.util.Log; import android.util.Log; import android.util.SparseBooleanArray; import android.util.SparseBooleanArray; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.MetricsProto.MetricsEvent; import java.util.ArrayList; import java.util.ArrayList; public class DataSaverBackend { public class DataSaverBackend { Loading Loading @@ -67,13 +70,14 @@ public class DataSaverBackend { public void setDataSaverEnabled(boolean enabled) { public void setDataSaverEnabled(boolean enabled) { mPolicyManager.setRestrictBackground(enabled); mPolicyManager.setRestrictBackground(enabled); MetricsLogger.action(mContext, MetricsEvent.ACTION_DATA_SAVER_MODE, enabled ? 1 : 0); } } public void refreshWhitelist() { public void refreshWhitelist() { loadWhitelist(); loadWhitelist(); } } public void setIsWhitelisted(int uid, boolean whitelisted) { public void setIsWhitelisted(int uid, String packageName, boolean whitelisted) { mWhitelist.put(uid, whitelisted); mWhitelist.put(uid, whitelisted); try { try { if (whitelisted) { if (whitelisted) { Loading @@ -84,6 +88,7 @@ public class DataSaverBackend { } catch (RemoteException e) { } catch (RemoteException e) { Log.w(TAG, "Can't reach policy manager", e); Log.w(TAG, "Can't reach policy manager", e); } } MetricsLogger.action(mContext, MetricsEvent.ACTION_DATA_SAVER_WHITELIST, packageName); } } public boolean isWhitelisted(int uid) { public boolean isWhitelisted(int uid) { Loading
src/com/android/settings/datausage/UnrestrictedDataAccess.java +2 −1 Original line number Original line Diff line number Diff line Loading @@ -200,7 +200,8 @@ public class UnrestrictedDataAccess extends SettingsPreferenceFragment if (preference instanceof AccessPreference) { if (preference instanceof AccessPreference) { AccessPreference accessPreference = (AccessPreference) preference; AccessPreference accessPreference = (AccessPreference) preference; boolean whitelisted = newValue == Boolean.TRUE; boolean whitelisted = newValue == Boolean.TRUE; mDataSaverBackend.setIsWhitelisted(accessPreference.mEntry.info.uid, whitelisted); mDataSaverBackend.setIsWhitelisted(accessPreference.mEntry.info.uid, accessPreference.mEntry.info.packageName, whitelisted); ((AppStateDataUsageBridge.DataUsageState) accessPreference.mEntry.extraInfo) ((AppStateDataUsageBridge.DataUsageState) accessPreference.mEntry.extraInfo) .isDataSaverWhitelisted = whitelisted; .isDataSaverWhitelisted = whitelisted; return true; return true; Loading