diff options
author | Sanket Padawe <sanketpadawe@google.com> | 2014-12-05 20:55:51 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-12-05 20:55:52 +0000 |
commit | 0c1a5bea2eb897b3f1d34b9c25ea6ed0bd5ca6eb (patch) | |
tree | c612a4d675d37f05af985469900e6b71a2a3360e /packages/SystemUI/src/com/android | |
parent | 2ff214b603939af60cae11727e189eb350b34c39 (diff) | |
parent | a2bf987b742b328f56e71eab32a9fa37ec1961ca (diff) | |
download | frameworks_base-0c1a5bea2eb897b3f1d34b9c25ea6ed0bd5ca6eb.zip frameworks_base-0c1a5bea2eb897b3f1d34b9c25ea6ed0bd5ca6eb.tar.gz frameworks_base-0c1a5bea2eb897b3f1d34b9c25ea6ed0bd5ca6eb.tar.bz2 |
Merge "Doing provisioning check for wifi tethering from SystemUI" into lmp-mr1-dev
Diffstat (limited to 'packages/SystemUI/src/com/android')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/qs/tiles/HotspotTile.java | 7 | ||||
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java | 24 |
2 files changed, 23 insertions, 8 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 9744dca..6e710ef 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/HotspotTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/HotspotTile.java @@ -24,6 +24,7 @@ import com.android.systemui.R; import com.android.systemui.qs.UsageTracker; import com.android.systemui.qs.QSTile; import com.android.systemui.statusbar.policy.HotspotController; +import com.android.systemui.statusbar.policy.KeyguardMonitor; /** Quick settings tile: Hotspot **/ public class HotspotTile extends QSTile<QSTile.BooleanState> { @@ -34,12 +35,14 @@ public class HotspotTile extends QSTile<QSTile.BooleanState> { private final HotspotController mController; private final Callback mCallback = new Callback(); private final UsageTracker mUsageTracker; + private final KeyguardMonitor mKeyguard; public HotspotTile(Host host) { super(host); mController = host.getHotspotController(); mUsageTracker = newUsageTracker(host.getContext()); mUsageTracker.setListening(true); + mKeyguard = host.getKeyguardMonitor(); } @Override @@ -85,7 +88,9 @@ public class HotspotTile extends QSTile<QSTile.BooleanState> { @Override protected void handleUpdateState(BooleanState state, Object arg) { - state.visible = mController.isHotspotSupported() && mUsageTracker.isRecentlyUsed(); + state.visible = mController.isHotspotSupported() && mUsageTracker.isRecentlyUsed() + && !(mController.isProvisioningNeeded() && mKeyguard.isSecure() + && mKeyguard.isShowing()); 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 8f40011..b05cb31 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java @@ -18,6 +18,7 @@ package com.android.systemui.statusbar.policy; import android.app.ActivityManager; import android.content.BroadcastReceiver; +import android.content.ComponentName; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; @@ -35,9 +36,6 @@ 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(); private final Context mContext; @@ -95,10 +93,22 @@ public class HotspotControllerImpl implements HotspotController { final ContentResolver cr = mContext.getContentResolver(); // 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); + if (isProvisioningNeeded()) { + String tetherEnable = mContext.getResources().getString( + com.android.internal.R.string.config_wifi_tether_enable); + Intent intent = new Intent(); + intent.setComponent(ComponentName.unflattenFromString(tetherEnable)); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mContext.startActivityAsUser(intent, UserHandle.CURRENT); + } else { + int wifiState = mWifiManager.getWifiState(); + if ((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, true); + } } else { mWifiManager.setWifiApEnabled(null, false); if (Settings.Global.getInt(cr, Settings.Global.WIFI_SAVED_STATE, 0) == 1) { |