Merge "Hide hotspot tile if 'provisioning' is needed" into lmp-dev

This commit is contained in:
Jason Monk
2014-10-07 18:53:20 +00:00
committed by Android (Google) Code Review
3 changed files with 18 additions and 1 deletions

View File

@@ -66,7 +66,8 @@ 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();
state.label = mContext.getString(R.string.quick_settings_hotspot_label);
state.value = mController.isHotspotEnabled();

View File

@@ -22,6 +22,7 @@ public interface HotspotController {
boolean isHotspotEnabled();
boolean isHotspotSupported();
void setHotspotEnabled(boolean enabled);
boolean isProvisioningNeeded();
public interface Callback {
void onHotspotChanged(boolean enabled);

View File

@@ -24,6 +24,7 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.wifi.WifiManager;
import android.os.SystemProperties;
import android.os.UserHandle;
import android.provider.Settings;
import android.util.Log;
@@ -73,6 +74,20 @@ public class HotspotControllerImpl implements HotspotController {
return !isSecondaryUser && mConnectivityManager.isTetheringSupported();
}
@Override
public boolean isProvisioningNeeded() {
// Keep in sync with other usage of config_mobile_hotspot_provision_app.
// TetherSettings#isProvisioningNeeded and
// ConnectivityManager#enforceTetherChangePermission
String[] provisionApp = mContext.getResources().getStringArray(
com.android.internal.R.array.config_mobile_hotspot_provision_app);
if (SystemProperties.getBoolean("net.tethering.noprovisioning", false)
|| provisionApp == null) {
return false;
}
return (provisionApp.length == 2);
}
@Override
public void setHotspotEnabled(boolean enabled) {
final ContentResolver cr = mContext.getContentResolver();