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

Commit 2ed21582 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add metrics for Data Saver actions." into nyc-dev

parents 15310bbb 0628e33b
Loading
Loading
Loading
Loading
+10 −1
Original line number Original line Diff line number Diff line
@@ -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;
@@ -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;


@@ -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) {
                }
                }
            }
            }
@@ -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);
@@ -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;
@@ -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
+6 −1
Original line number Original line Diff line number Diff line
@@ -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 {
@@ -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) {
@@ -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) {
+2 −1
Original line number Original line Diff line number Diff line
@@ -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;