diff options
Diffstat (limited to 'src/com/android/settings/cyanogenmod/QuickSettings.java')
-rw-r--r-- | src/com/android/settings/cyanogenmod/QuickSettings.java | 86 |
1 files changed, 50 insertions, 36 deletions
diff --git a/src/com/android/settings/cyanogenmod/QuickSettings.java b/src/com/android/settings/cyanogenmod/QuickSettings.java index c62be68..a7dd00c 100644 --- a/src/com/android/settings/cyanogenmod/QuickSettings.java +++ b/src/com/android/settings/cyanogenmod/QuickSettings.java @@ -16,23 +16,33 @@ package com.android.settings.cyanogenmod; -import android.bluetooth.BluetoothAdapter; +import static com.android.internal.util.cm.QSConstants.TILE_BLUETOOTH; +import static com.android.internal.util.cm.QSConstants.TILE_MOBILEDATA; +import static com.android.internal.util.cm.QSConstants.TILE_NETWORKMODE; +import static com.android.internal.util.cm.QSConstants.TILE_NFC; +import static com.android.internal.util.cm.QSConstants.TILE_PROFILE; +import static com.android.internal.util.cm.QSConstants.TILE_WIFIAP; +import static com.android.internal.util.cm.QSConstants.TILE_LTE; +import static com.android.internal.util.cm.QSConstants.TILE_TORCH; +import static com.android.internal.util.cm.QSUtils.deviceSupportsBluetooth; +import static com.android.internal.util.cm.QSUtils.deviceSupportsImeSwitcher; +import static com.android.internal.util.cm.QSUtils.deviceSupportsLte; +import static com.android.internal.util.cm.QSUtils.deviceSupportsNfc; +import static com.android.internal.util.cm.QSUtils.deviceSupportsUsbTether; +import static com.android.internal.util.cm.QSUtils.deviceSupportsWifiDisplay; +import static com.android.internal.util.cm.QSUtils.systemProfilesEnabled; + import android.content.ContentResolver; -import android.content.Context; import android.content.pm.PackageManager; import android.content.res.Resources; -import android.hardware.display.DisplayManager; -import android.hardware.display.WifiDisplayStatus; -import android.net.ConnectivityManager; -import android.nfc.NfcAdapter; import android.os.Bundle; import android.preference.CheckBoxPreference; import android.preference.ListPreference; import android.preference.MultiSelectListPreference; import android.preference.Preference; import android.preference.Preference.OnPreferenceChangeListener; -import android.preference.PreferenceScreen; import android.preference.PreferenceCategory; +import android.preference.PreferenceScreen; import android.provider.Settings; import android.text.TextUtils; import android.util.Log; @@ -140,10 +150,17 @@ public class QuickSettings extends SettingsPreferenceFragment implements OnPrefe mDynamicBugReport = (CheckBoxPreference) prefSet.findPreference(DYNAMIC_BUGREPORT); mDynamicBugReport.setChecked(Settings.System.getInt(resolver, Settings.System.QS_DYNAMIC_BUGREPORT, 1) == 1); mDynamicIme = (CheckBoxPreference) prefSet.findPreference(DYNAMIC_IME); - mDynamicIme.setChecked(Settings.System.getInt(resolver, Settings.System.QS_DYNAMIC_IME, 1) == 1); + if (mDynamicIme != null) { + if (deviceSupportsImeSwitcher(getActivity())) { + mDynamicIme.setChecked(Settings.System.getInt(resolver, Settings.System.QS_DYNAMIC_IME, 1) == 1); + } else { + mDynamicTiles.removePreference(mDynamicIme); + mDynamicIme = null; + } + } mDynamicUsbTether = (CheckBoxPreference) prefSet.findPreference(DYNAMIC_USBTETHER); if (mDynamicUsbTether != null) { - if (deviceSupportsUsbTether()) { + if (deviceSupportsUsbTether(getActivity())) { mDynamicUsbTether.setChecked(Settings.System.getInt(resolver, Settings.System.QS_DYNAMIC_USBTETHER, 1) == 1); } else { mDynamicTiles.removePreference(mDynamicUsbTether); @@ -152,7 +169,7 @@ public class QuickSettings extends SettingsPreferenceFragment implements OnPrefe } mDynamicWifi = (CheckBoxPreference) prefSet.findPreference(DYNAMIC_WIFI); if (mDynamicWifi != null) { - if (deviceSupportsWifiDisplay()) { + if (deviceSupportsWifiDisplay(getActivity())) { mDynamicWifi.setChecked(Settings.System.getInt(resolver, Settings.System.QS_DYNAMIC_WIFI, 1) == 1); } else { mDynamicTiles.removePreference(mDynamicWifi); @@ -163,14 +180,12 @@ public class QuickSettings extends SettingsPreferenceFragment implements OnPrefe // Don't show mobile data options if not supported boolean isMobileData = pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY); if (!isMobileData) { - QuickSettingsUtil.TILES.remove(QuickSettingsUtil.TILE_MOBILEDATA); - QuickSettingsUtil.TILES.remove(QuickSettingsUtil.TILE_WIFIAP); - QuickSettingsUtil.TILES.remove(QuickSettingsUtil.TILE_NETWORKMODE); - if(mNetworkMode != null) + QuickSettingsUtil.TILES.remove(TILE_MOBILEDATA); + QuickSettingsUtil.TILES.remove(TILE_WIFIAP); + QuickSettingsUtil.TILES.remove(TILE_NETWORKMODE); + if(mNetworkMode != null) { mStaticTiles.removePreference(mNetworkMode); - QuickSettingsUtil.TILES_DEFAULT.remove(QuickSettingsUtil.TILE_WIFIAP); - QuickSettingsUtil.TILES_DEFAULT.remove(QuickSettingsUtil.TILE_MOBILEDATA); - QuickSettingsUtil.TILES_DEFAULT.remove(QuickSettingsUtil.TILE_NETWORKMODE); + } } else { // We have telephony support however, some phones run on networks not supported // by the networkmode tile so remove both it and the associated options list @@ -190,26 +205,35 @@ public class QuickSettings extends SettingsPreferenceFragment implements OnPrefe case Phone.NT_MODE_GSM_ONLY: break; default: - QuickSettingsUtil.TILES.remove(QuickSettingsUtil.TILE_NETWORKMODE); + QuickSettingsUtil.TILES.remove(TILE_NETWORKMODE); mStaticTiles.removePreference(mNetworkMode); break; } } // Don't show the bluetooth options if not supported - if (BluetoothAdapter.getDefaultAdapter() == null) { - QuickSettingsUtil.TILES.remove(QuickSettingsUtil.TILE_BLUETOOTH); - QuickSettingsUtil.TILES_DEFAULT.remove(QuickSettingsUtil.TILE_BLUETOOTH); + if (!deviceSupportsBluetooth()) { + QuickSettingsUtil.TILES.remove(TILE_BLUETOOTH); } // Dont show the profiles tile if profiles are disabled - if (Settings.System.getInt(resolver, Settings.System.SYSTEM_PROFILES_ENABLED, 1) != 1) { - QuickSettingsUtil.TILES.remove(QuickSettingsUtil.TILE_PROFILE); + if (!systemProfilesEnabled(resolver)) { + QuickSettingsUtil.TILES.remove(TILE_PROFILE); } // Dont show the NFC tile if not supported - if (NfcAdapter.getDefaultAdapter(getActivity()) == null) { - QuickSettingsUtil.TILES.remove(QuickSettingsUtil.TILE_NFC); + if (!deviceSupportsNfc(getActivity())) { + QuickSettingsUtil.TILES.remove(TILE_NFC); + } + + // Dont show the LTE tile if not supported + if (!deviceSupportsLte(getActivity())) { + QuickSettingsUtil.TILES.remove(TILE_LTE); + } + + // Dont show the torch tile if not supported + if (!getResources().getBoolean(R.bool.has_led_flash)) { + QuickSettingsUtil.TILES.remove(TILE_TORCH); } } @@ -224,7 +248,7 @@ public class QuickSettings extends SettingsPreferenceFragment implements OnPrefe Settings.System.putInt(resolver, Settings.System.QS_DYNAMIC_BUGREPORT, mDynamicBugReport.isChecked() ? 1 : 0); return true; - } else if (preference == mDynamicIme) { + } else if (mDynamicIme != null && preference == mDynamicIme) { Settings.System.putInt(resolver, Settings.System.QS_DYNAMIC_IME, mDynamicIme.isChecked() ? 1 : 0); return true; @@ -333,14 +357,4 @@ public class QuickSettings extends SettingsPreferenceFragment implements OnPrefe return val.toString().split(SEPARATOR); } } - - private boolean deviceSupportsUsbTether() { - ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); - return (cm.getTetherableUsbRegexs().length != 0); - } - - private boolean deviceSupportsWifiDisplay() { - DisplayManager dm = (DisplayManager) getSystemService(Context.DISPLAY_SERVICE); - return (dm.getWifiDisplayStatus().getFeatureState() != WifiDisplayStatus.FEATURE_STATE_UNAVAILABLE); - } } |