From 63224c39543688fd7eea62fe0238d1b32daf5d30 Mon Sep 17 00:00:00 2001 From: Sanket Padawe Date: Mon, 1 Dec 2014 18:14:40 -0800 Subject: 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 --- .../com/android/systemui/qs/tiles/HotspotTile.java | 3 +-- .../statusbar/policy/HotspotControllerImpl.java | 24 +++++++++------------- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/HotspotTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/HotspotTile.java index bccc753..9744dca 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/HotspotTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/HotspotTile.java @@ -85,8 +85,7 @@ public class HotspotTile extends QSTile { @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(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java index 63c1100..8f40011 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java @@ -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 mCallbacks = new ArrayList(); 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); -- cgit v1.1