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

Commit 6b9a3fa3 authored by Rajeev Kumar's avatar Rajeev Kumar Committed by android-build-merger
Browse files

Merge "Data plan setting in SystemUI quick settings." into oc-mr1-dev

am: 56eec294

Change-Id: I4cf9310cbfb8a6aec263d351dcbba83771b68455
parents c5662c9a 56eec294
Loading
Loading
Loading
Loading
+40 −8
Original line number Original line Diff line number Diff line
@@ -19,13 +19,14 @@ package com.android.systemui.qs.tiles;
import android.content.ComponentName;
import android.content.ComponentName;
import android.content.Context;
import android.content.Context;
import android.content.Intent;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.content.res.Resources;
import android.os.SystemProperties;
import android.service.quicksettings.Tile;
import android.service.quicksettings.Tile;
import android.view.LayoutInflater;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup;
import android.widget.Switch;
import android.widget.Switch;

import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settingslib.net.DataUsageController;
import com.android.settingslib.net.DataUsageController;
@@ -38,7 +39,6 @@ import com.android.systemui.plugins.qs.QSTile.SignalState;
import com.android.systemui.qs.CellTileView;
import com.android.systemui.qs.CellTileView;
import com.android.systemui.qs.CellTileView.SignalIcon;
import com.android.systemui.qs.CellTileView.SignalIcon;
import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.SignalTileView;
import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.statusbar.policy.NetworkController;
import com.android.systemui.statusbar.policy.NetworkController;
import com.android.systemui.statusbar.policy.NetworkController.IconState;
import com.android.systemui.statusbar.policy.NetworkController.IconState;
@@ -46,8 +46,17 @@ import com.android.systemui.statusbar.policy.NetworkController.SignalCallback;


/** Quick settings tile: Cellular **/
/** Quick settings tile: Cellular **/
public class CellularTile extends QSTileImpl<SignalState> {
public class CellularTile extends QSTileImpl<SignalState> {
    static final Intent CELLULAR_SETTINGS = new Intent().setComponent(new ComponentName(
    private static final ComponentName CELLULAR_SETTING_COMPONENT = new ComponentName(
            "com.android.settings", "com.android.settings.Settings$DataUsageSummaryActivity"));
            "com.android.settings", "com.android.settings.Settings$DataUsageSummaryActivity");
    private static final ComponentName DATA_PLAN_CELLULAR_COMPONENT = new ComponentName(
            "com.android.settings", "com.android.settings.Settings$DataPlanUsageSummaryActivity");

    private static final Intent CELLULAR_SETTINGS =
            new Intent().setComponent(CELLULAR_SETTING_COMPONENT);
    private static final Intent DATA_PLAN_CELLULAR_SETTINGS =
            new Intent().setComponent(DATA_PLAN_CELLULAR_COMPONENT);

    private static final String ENABLE_SETTINGS_DATA_PLAN = "enable.settings.data.plan";


    private final NetworkController mController;
    private final NetworkController mController;
    private final DataUsageController mDataController;
    private final DataUsageController mDataController;
@@ -90,7 +99,7 @@ public class CellularTile extends QSTileImpl<SignalState> {


    @Override
    @Override
    public Intent getLongClickIntent() {
    public Intent getLongClickIntent() {
        return CELLULAR_SETTINGS;
        return getCellularSettingIntent(mContext);
    }
    }


    @Override
    @Override
@@ -103,7 +112,9 @@ public class CellularTile extends QSTileImpl<SignalState> {
        if (mDataController.isMobileDataSupported()) {
        if (mDataController.isMobileDataSupported()) {
            showDetail(true);
            showDetail(true);
        } else {
        } else {
            mActivityStarter.postStartActivityDismissingKeyguard(CELLULAR_SETTINGS, 0);
            mActivityStarter
                    .postStartActivityDismissingKeyguard(getCellularSettingIntent(mContext),
                            0 /* delay */);
        }
        }
    }
    }


@@ -240,7 +251,28 @@ public class CellularTile extends QSTileImpl<SignalState> {
        public void setMobileDataEnabled(boolean enabled) {
        public void setMobileDataEnabled(boolean enabled) {
            mDetailAdapter.setMobileDataEnabled(enabled);
            mDetailAdapter.setMobileDataEnabled(enabled);
        }
        }
    };
    }

    static Intent getCellularSettingIntent(Context context) {
        // TODO(b/62349208): We should replace feature flag check below with data plans
        // availability check. If the data plans are available we display the data plans usage
        // summary otherwise we display data usage summary without data plans.
        boolean isDataPlanFeatureEnabled =
                SystemProperties.getBoolean(ENABLE_SETTINGS_DATA_PLAN, false /* default */);
        context.getPackageManager()
                .setComponentEnabledSetting(
                        DATA_PLAN_CELLULAR_COMPONENT,
                        isDataPlanFeatureEnabled ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED
                                : PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
                        PackageManager.DONT_KILL_APP);
        context.getPackageManager()
                .setComponentEnabledSetting(
                        CELLULAR_SETTING_COMPONENT,
                        isDataPlanFeatureEnabled ? PackageManager.COMPONENT_ENABLED_STATE_DISABLED
                                : PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
                        PackageManager.DONT_KILL_APP);
        return isDataPlanFeatureEnabled ? DATA_PLAN_CELLULAR_SETTINGS : CELLULAR_SETTINGS;
    }


    private final class CellularDetailAdapter implements DetailAdapter {
    private final class CellularDetailAdapter implements DetailAdapter {


@@ -258,7 +290,7 @@ public class CellularTile extends QSTileImpl<SignalState> {


        @Override
        @Override
        public Intent getSettingsIntent() {
        public Intent getSettingsIntent() {
            return CELLULAR_SETTINGS;
            return getCellularSettingIntent(mContext);
        }
        }


        @Override
        @Override
+5 −13
Original line number Original line Diff line number Diff line
@@ -14,18 +14,16 @@


package com.android.systemui.qs.tiles;
package com.android.systemui.qs.tiles;


import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.content.Intent;
import android.service.quicksettings.Tile;
import android.service.quicksettings.Tile;
import android.widget.Switch;
import android.widget.Switch;

import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.systemui.Dependency;
import com.android.systemui.Dependency;
import com.android.systemui.Prefs;
import com.android.systemui.Prefs;
import com.android.systemui.R;
import com.android.systemui.R;
import com.android.systemui.qs.QSHost;
import com.android.systemui.plugins.qs.QSTile.BooleanState;
import com.android.systemui.plugins.qs.QSTile.BooleanState;
import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.statusbar.phone.SystemUIDialog;
import com.android.systemui.statusbar.phone.SystemUIDialog;
import com.android.systemui.statusbar.policy.DataSaverController;
import com.android.systemui.statusbar.policy.DataSaverController;
@@ -57,9 +55,8 @@ public class DataSaverTile extends QSTileImpl<BooleanState> implements


    @Override
    @Override
    public Intent getLongClickIntent() {
    public Intent getLongClickIntent() {
        return CellularTile.CELLULAR_SETTINGS;
        return CellularTile.getCellularSettingIntent(mContext);
    }
    }

    @Override
    @Override
    protected void handleClick() {
    protected void handleClick() {
        if (mState.value
        if (mState.value
@@ -73,12 +70,7 @@ public class DataSaverTile extends QSTileImpl<BooleanState> implements
        dialog.setTitle(com.android.internal.R.string.data_saver_enable_title);
        dialog.setTitle(com.android.internal.R.string.data_saver_enable_title);
        dialog.setMessage(com.android.internal.R.string.data_saver_description);
        dialog.setMessage(com.android.internal.R.string.data_saver_description);
        dialog.setPositiveButton(com.android.internal.R.string.data_saver_enable_button,
        dialog.setPositiveButton(com.android.internal.R.string.data_saver_enable_button,
                new DialogInterface.OnClickListener() {
                (OnClickListener) (dialogInterface, which) -> toggleDataSaver());
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        toggleDataSaver();
                    }
                });
        dialog.setNegativeButton(com.android.internal.R.string.cancel, null);
        dialog.setNegativeButton(com.android.internal.R.string.cancel, null);
        dialog.setShowForAllUsers(true);
        dialog.setShowForAllUsers(true);
        dialog.show();
        dialog.show();