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