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