Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c582cc9b authored by DvTonder's avatar DvTonder
Browse files

Framework: Cleanup Quick Settings Sound tiles

Change-Id: I45ba7098ef8c58a6e8e232abaa16780cab2df186
parent 91b05dc0
Loading
Loading
Loading
Loading
+168 −18
Original line number Original line Diff line number Diff line
package com.android.systemui.quicksettings;
package com.android.systemui.quicksettings;


import android.content.BroadcastReceiver;
import android.content.BroadcastReceiver;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Context;
import android.content.Intent;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.IntentFilter;
import android.media.AudioManager;
import android.media.AudioManager;
import android.net.Uri;
import android.os.Handler;
import android.os.Vibrator;
import android.provider.Settings;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View;
import android.view.View.OnLongClickListener;
import android.view.View.OnLongClickListener;
@@ -15,32 +21,49 @@ import com.android.systemui.statusbar.phone.QuickSettingsContainerView;


public class RingerModeTile extends QuickSettingsTile {
public class RingerModeTile extends QuickSettingsTile {


    private static final String SEPARATOR = "OV=I=XseparatorX=I=VO";

    // Define the available ringer modes
    private final Ringer mSilentRinger = new Ringer(AudioManager.RINGER_MODE_SILENT, false);
    private final Ringer mVibrateRinger = new Ringer(AudioManager.RINGER_MODE_VIBRATE, true);
    private final Ringer mSoundRinger = new Ringer(AudioManager.RINGER_MODE_NORMAL, false);
    private final Ringer mSoundVibrateRinger = new Ringer(AudioManager.RINGER_MODE_NORMAL, true);
    private final Ringer[] mRingers = new Ringer[] {
            mSilentRinger, mVibrateRinger, mSoundRinger, mSoundVibrateRinger
    };

    private int mRingersIndex;
    private int[] mRingerValues = new int[] {
            0, 1, 2, 3
    };
    private int mRingerValuesIndex;

    private AudioManager mAudioManager;
    private AudioManager mAudioManager;
    private Handler mHandler;


    public RingerModeTile(Context context, LayoutInflater inflater,
    public RingerModeTile(Context context, LayoutInflater inflater,
            QuickSettingsContainerView container, QuickSettingsController qsc) {
            QuickSettingsContainerView container, QuickSettingsController qsc) {
        super(context, inflater, container, qsc);
        super(context, inflater, container, qsc);


        mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
        mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
        mHandler = new Handler();


        mOnClick = new View.OnClickListener() {
        // Load the available ringer modes
        updateSettings(mContext.getContentResolver());


        // Make sure we show the initial state correctly
        updateState();

        // Tile actions
        mOnClick = new View.OnClickListener() {
            @Override
            @Override
            public void onClick(View v) {
            public void onClick(View v) {
                if(mAudioManager.getRingerMode() == AudioManager.RINGER_MODE_NORMAL){
                toggleState();
                    if(mAudioManager.getVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER) == AudioManager.VIBRATE_SETTING_ON){
                applyVibrationChanges();
                        mAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
                    }else{
                        mAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
                    }
                }else{
                    mAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
                }
            }
            }
        };
        };


        mOnLongClick = new OnLongClickListener() {
        mOnLongClick = new OnLongClickListener() {

            @Override
            @Override
            public boolean onLongClick(View v) {
            public boolean onLongClick(View v) {
                startSettingsActivity(android.provider.Settings.ACTION_SOUND_SETTINGS);
                startSettingsActivity(android.provider.Settings.ACTION_SOUND_SETTINGS);
@@ -48,18 +71,145 @@ public class RingerModeTile extends QuickSettingsTile {
            }
            }
        };
        };
        qsc.registerAction(AudioManager.RINGER_MODE_CHANGED_ACTION, this);
        qsc.registerAction(AudioManager.RINGER_MODE_CHANGED_ACTION, this);
        qsc.registerObservedContent(Settings.System.getUriFor(Settings.System.EXPANDED_RING_MODE)
                , this);
        qsc.registerObservedContent(Settings.System.getUriFor(Settings.System.VIBRATE_WHEN_RINGING)
                , this);
    }
    }


    @Override
    @Override
    public void onReceive(Context context, Intent intent) {
    public void onReceive(Context context, Intent intent) {
        if(mAudioManager.isSilentMode()){
        applyVibrationChanges();
    }

    @Override
    public void onChangeUri(ContentResolver resolver, Uri uri) {
        updateSettings(mContext.getContentResolver());
        applyVibrationChanges();
    }

    private void applyVibrationChanges(){
        updateState();
        updateQuickSettings();
    }

    protected void updateState() {
        // The title does not change
        mLabel = mContext.getString(R.string.quick_settings_ringer_normal);

        // The icon will change depending on index
        findCurrentState();
        switch (mRingersIndex) {
            case 0:
                mDrawable = R.drawable.ic_qs_ring_off;
                mDrawable = R.drawable.ic_qs_ring_off;
            mLabel = mContext.getString(R.string.quick_settings_ringer_off);
                break;
        }else{
            case 1:
                mDrawable = R.drawable.ic_qs_vibrate_on;
                break;
            case 2:
                mDrawable = R.drawable.ic_qs_ring_on;
                mDrawable = R.drawable.ic_qs_ring_on;
            mLabel = mContext.getString(R.string.quick_settings_ringer_on);
                break;
            case 3:
                mDrawable = R.drawable.ic_qs_ring_vibrate_on;
                break;
        }
        }
        updateQuickSettings();

        for (int i = 0; i < mRingerValues.length; i++) {
            if (mRingersIndex == mRingerValues[i]) {
                mRingerValuesIndex = i;
                break;
            }
        }
    }

    protected void toggleState() {
        mRingerValuesIndex++;
        if (mRingerValuesIndex > mRingerValues.length - 1) {
            mRingerValuesIndex = 0;
        }

        mRingersIndex = mRingerValues[mRingerValuesIndex];
        if (mRingersIndex > mRingers.length - 1) {
            mRingersIndex = 0;
        }
        }


        Ringer ringer = mRingers[mRingersIndex];
        ringer.execute(mContext);
    }

    public String[] parseStoredValue(CharSequence val) {
        if (TextUtils.isEmpty(val)) {
          return null;
        } else {
          return val.toString().split(SEPARATOR);
        }
    }

    private void updateSettings(ContentResolver resolver) {
        String[] modes = parseStoredValue(Settings.System.getString(
                resolver, Settings.System.EXPANDED_RING_MODE));
        if (modes == null || modes.length == 0) {
            mRingerValues = new int[] {
                    0, 1, 2, 3
            };
        } else {
            mRingerValues = new int[modes.length];
            for (int i = 0; i < modes.length; i++) {
                mRingerValues[i] = Integer.valueOf(modes[i]);
            }
        }
    }

    private void findCurrentState() {
        ContentResolver resolver = mContext.getContentResolver();
        boolean vibrateWhenRinging = Settings.System.getInt(resolver,
                Settings.System.VIBRATE_WHEN_RINGING, 0) == 1;
        int ringerMode = mAudioManager.getRingerMode();

        Ringer ringer = new Ringer(ringerMode, vibrateWhenRinging);
        for (int i = 0; i < mRingers.length; i++) {
            if (mRingers[i].equals(ringer)) {
                mRingersIndex = i;
                break;
            }
        }
    }

    private class Ringer {
        final boolean mVibrateWhenRinging;
        final int mRingerMode;

        Ringer( int ringerMode, boolean vibrateWhenRinging) {
            mVibrateWhenRinging = vibrateWhenRinging;
            mRingerMode = ringerMode;
        }

        void execute(Context context) {
            // If we are setting a vibrating state, vibrate to indicate it
            if (mVibrateWhenRinging) {
                Vibrator vibrator = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE);
                vibrator.vibrate(250);
            }

            // Set the desired state
            ContentResolver resolver = context.getContentResolver();
            Settings.System.putInt(resolver, Settings.System.VIBRATE_WHEN_RINGING,
                    (mVibrateWhenRinging ? 1 : 0));
            mAudioManager.setRingerMode(mRingerMode);
        }

        @Override
        public boolean equals(Object o) {
            if (o == null) {
                return false;
            }
            if (o.getClass() != getClass()) {
                return false;
            }

            Ringer r = (Ringer) o;
            return r.mVibrateWhenRinging == mVibrateWhenRinging
                    && r.mRingerMode == mRingerMode;
        }
    }
}
}
+0 −216
Original line number Original line Diff line number Diff line
package com.android.systemui.quicksettings;

import android.content.BroadcastReceiver;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.media.AudioManager;
import android.net.Uri;
import android.os.Handler;
import android.os.Vibrator;
import android.provider.Settings;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnLongClickListener;

import com.android.systemui.R;
import com.android.systemui.statusbar.phone.QuickSettingsController;
import com.android.systemui.statusbar.phone.QuickSettingsContainerView;

public class RingerVibrationModeTile extends QuickSettingsTile {

    private static final String SEPARATOR = "OV=I=XseparatorX=I=VO";

    // Define the available ringer modes
    private final Ringer mSilentRinger = new Ringer(AudioManager.RINGER_MODE_SILENT, false);
    private final Ringer mVibrateRinger = new Ringer(AudioManager.RINGER_MODE_VIBRATE, true);
    private final Ringer mSoundRinger = new Ringer(AudioManager.RINGER_MODE_NORMAL, false);
    private final Ringer mSoundVibrateRinger = new Ringer(AudioManager.RINGER_MODE_NORMAL, true);
    private final Ringer[] mRingers = new Ringer[] {
            mSilentRinger, mVibrateRinger, mSoundRinger, mSoundVibrateRinger
    };

    private int mRingersIndex;
    private int[] mRingerValues = new int[] {
            0, 1, 2, 3
    };
    private int mRingerValuesIndex;

    private AudioManager mAudioManager;
    private Handler mHandler;

    public RingerVibrationModeTile(Context context, LayoutInflater inflater,
            QuickSettingsContainerView container, QuickSettingsController qsc) {
        super(context, inflater, container, qsc);

        mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
        mHandler = new Handler();

        // Load the available ringer modes
        updateSettings(mContext.getContentResolver());

        // Make sure we show the initial state correctly
        updateState();

        // Tile actions
        mOnClick = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                toggleState();
                applyVibrationChanges();
            }
        };

        mOnLongClick = new OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                startSettingsActivity(android.provider.Settings.ACTION_SOUND_SETTINGS);
                return true;
            }
        };
        qsc.registerAction(AudioManager.RINGER_MODE_CHANGED_ACTION, this);
        qsc.registerAction(VibrationModeTile.VIBRATION_STATE_CHANGED, this);
        qsc.registerObservedContent(Settings.System.getUriFor(Settings.System.EXPANDED_RING_MODE)
                , this);
        qsc.registerObservedContent(Settings.System.getUriFor(Settings.System.VIBRATE_WHEN_RINGING)
                , this);
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        applyVibrationChanges();
    }

    @Override
    public void onChangeUri(ContentResolver resolver, Uri uri) {
        updateSettings(mContext.getContentResolver());
        applyVibrationChanges();
    }

    private void applyVibrationChanges(){
        updateState();
        updateQuickSettings();
    }

    protected void updateState() {
        // The title does not change
        mLabel = mContext.getString(R.string.quick_settings_ringer_normal);

        // The icon will change depending on index
        findCurrentState();
        switch (mRingersIndex) {
            case 0:
                mDrawable = R.drawable.ic_qs_ring_off;
                break;
            case 1:
                mDrawable = R.drawable.ic_qs_vibrate_on;
                break;
            case 2:
                mDrawable = R.drawable.ic_qs_ring_on;
                break;
            case 3:
                mDrawable = R.drawable.ic_qs_ring_vibrate_on;
                break;
        }

        for (int i = 0; i < mRingerValues.length; i++) {
            if (mRingersIndex == mRingerValues[i]) {
                mRingerValuesIndex = i;
                break;
            }
        }
    }

    protected void toggleState() {
        mRingerValuesIndex++;
        if (mRingerValuesIndex > mRingerValues.length - 1) {
            mRingerValuesIndex = 0;
        }

        mRingersIndex = mRingerValues[mRingerValuesIndex];
        if (mRingersIndex > mRingers.length - 1) {
            mRingersIndex = 0;
        }

        Ringer ringer = mRingers[mRingersIndex];
        ringer.execute(mContext);
    }

    public String[] parseStoredValue(CharSequence val) {
        if (TextUtils.isEmpty(val)) {
          return null;
        } else {
          return val.toString().split(SEPARATOR);
        }
    }

    private void updateSettings(ContentResolver resolver) {
        String[] modes = parseStoredValue(Settings.System.getString(
                resolver, Settings.System.EXPANDED_RING_MODE));
        if (modes == null || modes.length == 0) {
            mRingerValues = new int[] {
                    0, 1, 2, 3
            };
        } else {
            mRingerValues = new int[modes.length];
            for (int i = 0; i < modes.length; i++) {
                mRingerValues[i] = Integer.valueOf(modes[i]);
            }
        }
    }

    private void findCurrentState() {
        ContentResolver resolver = mContext.getContentResolver();
        boolean vibrateWhenRinging = Settings.System.getInt(resolver,
                Settings.System.VIBRATE_WHEN_RINGING, 0) == 1;
        int ringerMode = mAudioManager.getRingerMode();

        Ringer ringer = new Ringer(ringerMode, vibrateWhenRinging);
        for (int i = 0; i < mRingers.length; i++) {
            if (mRingers[i].equals(ringer)) {
                mRingersIndex = i;
                break;
            }
        }
    }

    private class Ringer {
        final boolean mVibrateWhenRinging;
        final int mRingerMode;

        Ringer( int ringerMode, boolean vibrateWhenRinging) {
            mVibrateWhenRinging = vibrateWhenRinging;
            mRingerMode = ringerMode;
        }

        void execute(Context context) {
            // If we are setting a vibrating state, vibrate to indicate it
            if (mVibrateWhenRinging) {
                Vibrator vibrator = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE);
                vibrator.vibrate(250);
            }

            // Set the desired state
            ContentResolver resolver = context.getContentResolver();
            Settings.System.putInt(resolver, Settings.System.VIBRATE_WHEN_RINGING,
                    (mVibrateWhenRinging ? 1 : 0));
            mAudioManager.setRingerMode(mRingerMode);
        }

        @Override
        public boolean equals(Object o) {
            if (o == null) {
                return false;
            }
            if (o.getClass() != getClass()) {
                return false;
            }

            Ringer r = (Ringer) o;
            return r.mVibrateWhenRinging == mVibrateWhenRinging
                    && r.mRingerMode == mRingerMode;
        }
    }
}
+0 −96
Original line number Original line Diff line number Diff line
package com.android.systemui.quicksettings;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.media.AudioManager;
import android.os.Vibrator;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnLongClickListener;

import com.android.systemui.R;
import com.android.systemui.statusbar.phone.QuickSettingsController;
import com.android.systemui.statusbar.phone.QuickSettingsContainerView;

public class VibrationModeTile extends QuickSettingsTile {

    private AudioManager mAudioManager;
    public final static String VIBRATION_STATE_CHANGED = "com.android.systemui.quicksettings.VIBRATION_STATE_CHANGED";

    public VibrationModeTile(Context context, LayoutInflater inflater,
            QuickSettingsContainerView container, QuickSettingsController qsc) {
        super(context, inflater, container, qsc);

        mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);

        mOnClick = new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
                Vibrator vibrator = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE);
                if(mAudioManager.getRingerMode() == AudioManager.RINGER_MODE_VIBRATE){
                    //Vibrate -> Silent
                    mAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
                    mAudioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_OFF);
                }else if(mAudioManager.getRingerMode() == AudioManager.RINGER_MODE_SILENT){
                    //Silent -> Vibrate
                    vibrator.vibrate(300);
                    mAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
                    mAudioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_ON);
                    Intent i = new Intent(VIBRATION_STATE_CHANGED);
                    mContext.sendBroadcast(i);
                }else if(mAudioManager.getRingerMode() == AudioManager.RINGER_MODE_NORMAL){
                    if(mAudioManager.getVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER) == AudioManager.VIBRATE_SETTING_ON){
                        //Sound + Vibrate -> Sound
                        mAudioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_OFF);
                    }else{
                        //Sound -> Sound + Vibrate
                        vibrator.vibrate(300);
                        Intent i = new Intent(VIBRATION_STATE_CHANGED);
                        mContext.sendBroadcast(i);
                        mAudioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_ON);
                    }
                    applyVibrationChanges();
                }
            }
        };

        mOnLongClick = new OnLongClickListener() {

            @Override
            public boolean onLongClick(View v) {
                startSettingsActivity(android.provider.Settings.ACTION_SOUND_SETTINGS);
                return true;
            }
        };
        qsc.registerAction(AudioManager.RINGER_MODE_CHANGED_ACTION, this);
        qsc.registerAction(VIBRATION_STATE_CHANGED, this);
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        applyVibrationChanges();
    }

    private void applyVibrationChanges(){
        int vibrateSetting = mAudioManager.getVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER);
        if(mAudioManager.getRingerMode() == AudioManager.RINGER_MODE_NORMAL && vibrateSetting == AudioManager.VIBRATE_SETTING_ON){
            //Sound + vibrate
            mDrawable = R.drawable.ic_qs_vibrate_on;
            mLabel = mContext.getString(R.string.quick_settings_vibration_on);
        }else if(mAudioManager.getRingerMode() == AudioManager.RINGER_MODE_VIBRATE){
            //Vibrate
            mDrawable = R.drawable.ic_qs_vibrate_on;
            mLabel = mContext.getString(R.string.quick_settings_vibration_on);
        }else{
            //No vibration
            mDrawable = R.drawable.ic_qs_vibrate_off;
            mLabel = mContext.getString(R.string.quick_settings_vibration_off);
        }
        updateQuickSettings();
    }

}
+22 −35
Original line number Original line Diff line number Diff line
@@ -28,7 +28,6 @@ import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager;
import android.database.ContentObserver;
import android.database.ContentObserver;
import android.net.Uri;
import android.net.Uri;
import android.nfc.NfcAdapter;
import android.os.Handler;
import android.os.Handler;
import android.provider.Settings;
import android.provider.Settings;
import android.util.Log;
import android.util.Log;
@@ -52,12 +51,10 @@ import com.android.systemui.quicksettings.PreferencesTile;
import com.android.systemui.quicksettings.ProfileTile;
import com.android.systemui.quicksettings.ProfileTile;
import com.android.systemui.quicksettings.QuickSettingsTile;
import com.android.systemui.quicksettings.QuickSettingsTile;
import com.android.systemui.quicksettings.RingerModeTile;
import com.android.systemui.quicksettings.RingerModeTile;
import com.android.systemui.quicksettings.RingerVibrationModeTile;
import com.android.systemui.quicksettings.SleepScreenTile;
import com.android.systemui.quicksettings.SleepScreenTile;
import com.android.systemui.quicksettings.SyncTile;
import com.android.systemui.quicksettings.SyncTile;
import com.android.systemui.quicksettings.ToggleLockscreenTile;
import com.android.systemui.quicksettings.ToggleLockscreenTile;
import com.android.systemui.quicksettings.UserTile;
import com.android.systemui.quicksettings.UserTile;
import com.android.systemui.quicksettings.VibrationModeTile;
import com.android.systemui.quicksettings.WiFiDisplayTile;
import com.android.systemui.quicksettings.WiFiDisplayTile;
import com.android.systemui.quicksettings.WiFiTile;
import com.android.systemui.quicksettings.WiFiTile;
import com.android.systemui.quicksettings.WifiAPTile;
import com.android.systemui.quicksettings.WifiAPTile;
@@ -86,7 +83,7 @@ public class QuickSettingsController {
    public static final String TILE_GPS = "toggleGPS";
    public static final String TILE_GPS = "toggleGPS";
    public static final String TILE_BLUETOOTH = "toggleBluetooth";
    public static final String TILE_BLUETOOTH = "toggleBluetooth";
    public static final String TILE_BRIGHTNESS = "toggleBrightness";
    public static final String TILE_BRIGHTNESS = "toggleBrightness";
    public static final String TILE_SOUND = "toggleSound";
    public static final String TILE_RINGER = "toggleSound";
    public static final String TILE_SYNC = "toggleSync";
    public static final String TILE_SYNC = "toggleSync";
    public static final String TILE_WIFIAP = "toggleWifiAp";
    public static final String TILE_WIFIAP = "toggleWifiAp";
    public static final String TILE_SCREENTIMEOUT = "toggleScreenTimeout";
    public static final String TILE_SCREENTIMEOUT = "toggleScreenTimeout";
@@ -129,26 +126,24 @@ public class QuickSettingsController {
    public static final int MOBILE_NETWORK_TILE = 1;
    public static final int MOBILE_NETWORK_TILE = 1;
    public static final int AIRPLANE_MODE_TILE = 2;
    public static final int AIRPLANE_MODE_TILE = 2;
    public static final int BLUETOOTH_TILE = 3;
    public static final int BLUETOOTH_TILE = 3;
    public static final int SOUND_TILE = 4;
    public static final int RINGER_TILE = 4;
    public static final int VIBRATION_TILE = 5;
    public static final int SLEEP_TILE = 5;
    public static final int SOUND_VIBRATION_TILE = 6;
    public static final int TOGGLE_LOCKSCREEN_TILE = 6;
    public static final int SLEEP_TILE = 7;
    public static final int GPS_TILE = 7;
    public static final int TOGGLE_LOCKSCREEN_TILE = 8;
    public static final int AUTO_ROTATION_TILE = 8;
    public static final int GPS_TILE = 9;
    public static final int BRIGHTNESS_TILE = 9;
    public static final int AUTO_ROTATION_TILE = 10;
    public static final int MOBILE_NETWORK_TYPE_TILE = 10;
    public static final int BRIGHTNESS_TILE = 11;
    public static final int SETTINGS_TILE = 11;
    public static final int MOBILE_NETWORK_TYPE_TILE = 12;
    public static final int BATTERY_TILE = 12;
    public static final int SETTINGS_TILE = 13;
    public static final int IME_TILE = 13;
    public static final int BATTERY_TILE = 14;
    public static final int ALARM_TILE = 14;
    public static final int IME_TILE = 15;
    public static final int BUG_REPORT_TILE = 15;
    public static final int ALARM_TILE = 16;
    public static final int WIFI_DISPLAY_TILE = 16;
    public static final int BUG_REPORT_TILE = 17;
    public static final int TORCH_TILE = 17;
    public static final int WIFI_DISPLAY_TILE = 18;
    public static final int WIFIAP_TILE = 18;
    public static final int TORCH_TILE = 19;
    public static final int PROFILE_TILE = 19;
    public static final int WIFIAP_TILE = 20;
    public static final int SYNC_TILE = 20;
    public static final int PROFILE_TILE = 21;
    public static final int NFC_TILE = 21;
    public static final int SYNC_TILE = 22;
    public static final int NFC_TILE = 23;
    public static final int USER_TILE = 99;
    public static final int USER_TILE = 99;
    private InputMethodTile IMETile;
    private InputMethodTile IMETile;


@@ -192,8 +187,8 @@ public class QuickSettingsController {
                }
                }
            } else if (tile.equals(TILE_BRIGHTNESS)) {
            } else if (tile.equals(TILE_BRIGHTNESS)) {
                mQuickSettings.add(BRIGHTNESS_TILE);
                mQuickSettings.add(BRIGHTNESS_TILE);
            } else if (tile.equals(TILE_SOUND)) {
            } else if (tile.equals(TILE_RINGER)) {
                mQuickSettings.add(SOUND_VIBRATION_TILE);
                mQuickSettings.add(RINGER_TILE);
            } else if (tile.equals(TILE_SYNC)) {
            } else if (tile.equals(TILE_SYNC)) {
                mQuickSettings.add(SYNC_TILE);
                mQuickSettings.add(SYNC_TILE);
            } else if (tile.equals(TILE_WIFIAP)) {
            } else if (tile.equals(TILE_WIFIAP)) {
@@ -374,18 +369,10 @@ public class QuickSettingsController {
                qs = new BluetoothTile(mContext, inflater,
                qs = new BluetoothTile(mContext, inflater,
                        (QuickSettingsContainerView) mContainerView, this);
                        (QuickSettingsContainerView) mContainerView, this);
                break;
                break;
            case SOUND_TILE:
            case RINGER_TILE:
                qs = new RingerModeTile(mContext, inflater,
                qs = new RingerModeTile(mContext, inflater,
                        (QuickSettingsContainerView) mContainerView, this);
                        (QuickSettingsContainerView) mContainerView, this);
                break;
                break;
            case VIBRATION_TILE:
                qs = new VibrationModeTile(mContext, inflater,
                        (QuickSettingsContainerView) mContainerView, this);
                break;
            case SOUND_VIBRATION_TILE:
                qs = new RingerVibrationModeTile(mContext, inflater,
                        (QuickSettingsContainerView) mContainerView, this);
                break;
            case SLEEP_TILE:
            case SLEEP_TILE:
                qs = new SleepScreenTile(mContext, inflater,
                qs = new SleepScreenTile(mContext, inflater,
                        (QuickSettingsContainerView) mContainerView, this);
                        (QuickSettingsContainerView) mContainerView, this);