コード例 #1
0
  private QSTile<?> createTile(String tileSpec) {
    IQuickSettingsPlugin quickSettingsPlugin = PluginFactory.getQuickSettingsPlugin(mContext);
    if (tileSpec.equals("wifi")) return new WifiTile(this);
    else if (tileSpec.equals("bt")) return new BluetoothTile(this);
    else if (tileSpec.equals("inversion")) return new ColorInversionTile(this);
    /** M: Customize to replace the cell to Data usage by some operators.@{ */
    else if (tileSpec.equals("cell")) {
      boolean displayDataUsage = quickSettingsPlugin.customizeDisplayDataUsage(false);
      Log.i(TAG, "createTile, cell displayDataUsage = " + displayDataUsage);
      if (displayDataUsage) {
        return new DataUsageTile(this);
      } else {
        return new CellularTile(this);
      }
    }
    /** M: Customize to replace the cell to Data usage by some operators.@} */
    else if (tileSpec.equals("airplane")) return new AirplaneModeTile(this);
    else if (tileSpec.equals("rotation")) return new RotationLockTile(this);
    else if (tileSpec.equals("flashlight")) return new FlashlightTile(this);
    else if (tileSpec.equals("location")) return new LocationTile(this);
    // M: Remove CastTile when WFD is not support in quicksetting
    else if (tileSpec.equals("cast") && SIMHelper.isWifiDisplaySupport()) return new CastTile(this);
    else if (tileSpec.equals("hotspot")) return new HotspotTile(this);

    /// M: add HotKnot in quicksetting @{
    else if (tileSpec.equals("hotknot") && SIMHelper.isMtkHotKnotSupport())
      return new HotKnotTile(this);
    /// add HotKnot in quicksetting @}
    /// M: add AudioProfile in quicksetting @{
    else if (tileSpec.equals("audioprofile") && SIMHelper.isMtkAudioProfilesSupport())
      return new AudioProfileTile(this);
    /// add AudioProfile in quicksetting @}
    /// M: add DataConnection in quicksetting @{
    else if (tileSpec.equals("dataconnection") && !SIMHelper.isWifiOnlyDevice())
      return new DataConnectionTile(this);
    /// M: add DataConnection in quicksetting @}
    /// M: Customize the quick settings tiles for operator. @{
    else if (quickSettingsPlugin.customizeAddQSTile(false)
        && tileSpec.equals("simdataconnection")
        && !SIMHelper.isWifiOnlyDevice()) {
      return new SimDataConnectionTile(this);
    } else if (quickSettingsPlugin.customizeAddQSTile(false)
        && tileSpec.equals("dulsimsettings")
        && !SIMHelper.isWifiOnlyDevice()) {
      return new DualSimSettingsTile(this);
    }
    /// @}
    else if (tileSpec.startsWith(IntentTile.PREFIX)) return IntentTile.create(this, tileSpec);
    else throw new IllegalArgumentException("Bad tile spec: " + tileSpec);
  }