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

Commit eba529b1 authored by Rajeev Kumar's avatar Rajeev Kumar Committed by Android (Google) Code Review
Browse files

Merge "Data plan setting in SystemUI quick settings."

parents eff6ae08 2d20d90c
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();