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

Commit 63224c39 authored by Sanket Padawe's avatar Sanket Padawe
Browse files

Call entitlement on clicking tethering tile in quick settings.

Call a new activity which would handle enabling of tethering on clicking
Tethering tile in Quick Settings.

Bug: 18368949
Change-Id: I4cc2ba01f6fa1ac005ba1dc27b223b5fc5359d35
parent 8ccf071a
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -85,8 +85,7 @@ public class HotspotTile extends QSTile<QSTile.BooleanState> {

    @Override
    protected void handleUpdateState(BooleanState state, Object arg) {
        state.visible = mController.isHotspotSupported() && mUsageTracker.isRecentlyUsed()
                && !mController.isProvisioningNeeded();
        state.visible = mController.isHotspotSupported() && mUsageTracker.isRecentlyUsed();
        state.label = mContext.getString(R.string.quick_settings_hotspot_label);

        state.value = mController.isHotspotEnabled();
+10 −14
Original line number Diff line number Diff line
@@ -35,6 +35,8 @@ public class HotspotControllerImpl implements HotspotController {

    private static final String TAG = "HotspotController";
    private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
    private static final String TETHER_ENABLE_PACKAGE = "com.android.settings";
    private static final String TETHER_ENABLE_CLASS = "com.android.settings.EnableWifiTether";

    private final ArrayList<Callback> mCallbacks = new ArrayList<Callback>();
    private final Receiver mReceiver = new Receiver();
@@ -91,20 +93,14 @@ public class HotspotControllerImpl implements HotspotController {
    @Override
    public void setHotspotEnabled(boolean enabled) {
        final ContentResolver cr = mContext.getContentResolver();
        // This needs to be kept up to date with Settings (WifiApEnabler.setSoftapEnabled)
        // in case it is turned on in settings and off in qs (or vice versa).
        // Disable Wifi if enabling tethering.
        int wifiState = mWifiManager.getWifiState();
        if (enabled && ((wifiState == WifiManager.WIFI_STATE_ENABLING) ||
                    (wifiState == WifiManager.WIFI_STATE_ENABLED))) {
            mWifiManager.setWifiEnabled(false);
            Settings.Global.putInt(cr, Settings.Global.WIFI_SAVED_STATE, 1);
        }

        mWifiManager.setWifiApEnabled(null, enabled);

        // If needed, restore Wifi on tether disable.
        if (!enabled) {
        // Call provisioning app which is called when enabling Tethering from Settings
        if (enabled) {
            Intent intent = new Intent();
            intent.setClassName(TETHER_ENABLE_PACKAGE, TETHER_ENABLE_CLASS);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            mContext.startActivity(intent);
        } else {
            mWifiManager.setWifiApEnabled(null, false);
            if (Settings.Global.getInt(cr, Settings.Global.WIFI_SAVED_STATE, 0) == 1) {
                mWifiManager.setWifiEnabled(true);
                Settings.Global.putInt(cr, Settings.Global.WIFI_SAVED_STATE, 0);