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

Commit 775d25e6 authored by Danesh Mondegarian's avatar Danesh Mondegarian Committed by DvTonder
Browse files

SystemUI : QuickSettings Cleanup

Introduce new class to reference from settings and SystemUI to avoid
code duplication.

Differentiate between configuration change vs tile layout modification.

Patchset 2  - Remove whitespace
Patchset 3  - Remove unused ids
Patchset 4  - Better organize the classes
Patchset 5  - Rebase
Patchset 6  - Introduce updateResources()
Patchset 8  - Update tiles to use updateResources()
Patchset 9  - Expand imports
Patchset 10 - Updated all tiles to support updateResources()
              Added dinamic tiles to mQuickSettingsTiles
              Optimized and standarized of calls to updateQuickSettings() from tiles
                 onPostCreate() -> updateTile() -> super.onPostCreate() -> updateQuickSettings()
                 updateResources() -> updateTile() -> super.updateResources() -> updateQuickSettings()
              Rebased
Patchset 11 - Remove unnecessary calls to update Quick Settings

Change-Id: I0baff915b4c3486cc0ac165e3e927399c2b15776
parent fd373b7b
Loading
Loading
Loading
Loading
+44 −0
Original line number Diff line number Diff line
package com.android.internal.util.cm;

import java.util.ArrayList;

public class QSConstants {
        public static final String TILE_USER = "toggleUser";
        public static final String TILE_BATTERY = "toggleBattery";
        public static final String TILE_SETTINGS = "toggleSettings";
        public static final String TILE_WIFI = "toggleWifi";
        public static final String TILE_GPS = "toggleGPS";
        public static final String TILE_BLUETOOTH = "toggleBluetooth";
        public static final String TILE_BRIGHTNESS = "toggleBrightness";
        public static final String TILE_RINGER = "toggleSound";
        public static final String TILE_SYNC = "toggleSync";
        public static final String TILE_WIFIAP = "toggleWifiAp";
        public static final String TILE_SCREENTIMEOUT = "toggleScreenTimeout";
        public static final String TILE_MOBILEDATA = "toggleMobileData";
        public static final String TILE_LOCKSCREEN = "toggleLockScreen";
        public static final String TILE_NETWORKMODE = "toggleNetworkMode";
        public static final String TILE_AUTOROTATE = "toggleAutoRotate";
        public static final String TILE_AIRPLANE = "toggleAirplane";
        public static final String TILE_TORCH = "toggleFlashlight";  // Keep old string for compatibility
        public static final String TILE_SLEEP = "toggleSleepMode";
        public static final String TILE_LTE = "toggleLte";
        public static final String TILE_WIMAX = "toggleWimax";
        public static final String TILE_PROFILE = "toggleProfile";
        public static final String TILE_NFC = "toggleNfc";
        public static final String TILE_USBTETHER = "toggleUsbTether";
        public static final String TILE_QUIETHOURS = "toggleQuietHours";

        public static final String TILE_DELIMITER = "|";
        public static ArrayList<String> TILES_DEFAULT = new ArrayList<String>();

        static {
            TILES_DEFAULT.add(TILE_USER);
            TILES_DEFAULT.add(TILE_BRIGHTNESS);
            TILES_DEFAULT.add(TILE_SETTINGS);
            TILES_DEFAULT.add(TILE_WIFI);
            TILES_DEFAULT.add(TILE_MOBILEDATA);
            TILES_DEFAULT.add(TILE_BATTERY);
            TILES_DEFAULT.add(TILE_AIRPLANE);
            TILES_DEFAULT.add(TILE_BLUETOOTH);
        }
}
+40 −0
Original line number Diff line number Diff line
package com.android.internal.util.cm;

import android.bluetooth.BluetoothAdapter;
import android.content.ContentResolver;
import android.content.Context;
import android.content.pm.PackageManager;
import android.hardware.display.DisplayManager;
import android.hardware.display.WifiDisplayStatus;
import android.net.ConnectivityManager;
import android.nfc.NfcAdapter;
import android.provider.Settings;

public class QSUtils {
        public static boolean deviceSupportsUsbTether(Context ctx) {
            ConnectivityManager cm = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
            return (cm.getTetherableUsbRegexs().length != 0);
        }

        public static boolean deviceSupportsWifiDisplay(Context ctx) {
            DisplayManager dm = (DisplayManager) ctx.getSystemService(Context.DISPLAY_SERVICE);
            return (dm.getWifiDisplayStatus().getFeatureState() != WifiDisplayStatus.FEATURE_STATE_UNAVAILABLE);
        }

        public static boolean deviceSupportsTelephony(Context ctx) {
            PackageManager pm = ctx.getPackageManager();
            return pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY);
        }

        public static boolean deviceSupportsBluetooth() {
            return (BluetoothAdapter.getDefaultAdapter() != null);
        }

        public static boolean systemProfilesEnabled(ContentResolver resolver) {
            return (Settings.System.getInt(resolver, Settings.System.SYSTEM_PROFILES_ENABLED, 1) == 1);
        }

        public static boolean deviceSupportsNfc(Context ctx) {
            return NfcAdapter.getDefaultAdapter(ctx) != null;
        }
}
+14 −13
Original line number Diff line number Diff line
@@ -9,7 +9,6 @@ import android.view.View.OnLongClickListener;

import com.android.systemui.R;
import com.android.systemui.statusbar.phone.QuickSettingsController;
import com.android.systemui.statusbar.phone.PhoneStatusBar;
import com.android.systemui.statusbar.phone.QuickSettingsContainerView;
import com.android.systemui.statusbar.policy.NetworkController;
import com.android.systemui.statusbar.policy.NetworkController.NetworkSignalChangedCallback;
@@ -22,10 +21,7 @@ public class AirplaneModeTile extends QuickSettingsTile implements NetworkSignal
            QuickSettingsContainerView container, QuickSettingsController qsc) {
        super(context, inflater, container, qsc);

        mLabel = mContext.getString(R.string.quick_settings_airplane_mode_label);

        mOnClick = new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // Change the system setting
@@ -52,9 +48,21 @@ public class AirplaneModeTile extends QuickSettingsTile implements NetworkSignal
    void onPostCreate() {
        NetworkController controller = new NetworkController(mContext);
        controller.addNetworkSignalChangedCallback(this);
        updateTile();
        super.onPostCreate();
    }

    @Override
    public void updateResources() {
        updateTile();
        super.updateResources();
    }

    private synchronized void updateTile() {
        mLabel = mContext.getString(R.string.quick_settings_airplane_mode_label);
        mDrawable = (enabled) ? R.drawable.ic_qs_airplane_on : R.drawable.ic_qs_airplane_off;
    }

    @Override
    public void onWifiSignalChanged(boolean enabled, int wifiSignalIconId,
            String wifitSignalContentDescriptionId, String description) {
@@ -65,19 +73,12 @@ public class AirplaneModeTile extends QuickSettingsTile implements NetworkSignal
            int mobileSignalIconId, String mobileSignalContentDescriptionId,
            int dataTypeIconId, String dataTypeContentDescriptionId,
            String description) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onAirplaneModeChanged(boolean enabled) {
        this.enabled = enabled;
        if(enabled){
            mDrawable = R.drawable.ic_qs_airplane_on;
        }else{
            mDrawable = R.drawable.ic_qs_airplane_off;
        }
        updateQuickSettings();
        updateResources();
    }

}
+24 −13
Original line number Diff line number Diff line
@@ -22,8 +22,6 @@ public class AlarmTile extends QuickSettingsTile {
            QuickSettingsController qsc, Handler handler) {
        super(context, inflater, container, qsc);

        mDrawable = R.drawable.ic_qs_alarm_on;

        mOnClick = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
@@ -37,27 +35,40 @@ public class AlarmTile extends QuickSettingsTile {

        qsc.registerObservedContent(Settings.System.getUriFor(
                Settings.System.NEXT_ALARM_FORMATTED), this);
        updateStatus();
    }

    @Override
    public void onChangeUri(ContentResolver resolver, Uri uri) {
        updateStatus();
        updateQuickSettings();
    void onPostCreate() {
        updateTile();
        super.onPostCreate();
    }

    @Override
    public void updateQuickSettings() {
        mTile.setVisibility(!TextUtils.isEmpty(mLabel) ? View.VISIBLE : View.GONE);
        super.updateQuickSettings();
    public void updateResources() {
        updateTile();
        super.updateResources();
    }

    /**
     * Updates the alarm status shown on the tile.
     */
    private void updateStatus() {
    private synchronized void updateTile() {
        mDrawable = R.drawable.ic_qs_alarm_on;
        mLabel = Settings.System.getString(mContext.getContentResolver(),
                Settings.System.NEXT_ALARM_FORMATTED);
    }

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

    @Override
    public void onChangeUri(ContentResolver resolver, Uri uri) {
        updateResources();
    }

    @Override
    public void updateQuickSettings() {
        mTile.setVisibility(!TextUtils.isEmpty(mLabel) ? View.VISIBLE : View.GONE);
        super.updateQuickSettings();
    }

}
+9 −6
Original line number Diff line number Diff line
@@ -17,8 +17,6 @@ import com.android.systemui.statusbar.phone.QuickSettingsContainerView;

public class AutoRotateTile extends QuickSettingsTile {

    private static final String TAG = "AutoRotateButton";

    public AutoRotateTile(Context context, LayoutInflater inflater,
            QuickSettingsContainerView container, QuickSettingsController qsc, Handler handler) {
        super(context, inflater, container, qsc);
@@ -41,7 +39,13 @@ public class AutoRotateTile extends QuickSettingsTile {
                , this);
    }

    void applyAutoRotationChanges() {
    @Override
    public void updateResources() {
        updateTile();
        updateQuickSettings();
    }

    private synchronized void updateTile() {
        if(!getAutoRotation()){
            mDrawable = R.drawable.ic_qs_rotation_locked;
            mLabel = mContext.getString(R.string.quick_settings_rotation_locked_label);
@@ -49,12 +53,11 @@ public class AutoRotateTile extends QuickSettingsTile {
            mDrawable = R.drawable.ic_qs_auto_rotate;
            mLabel = mContext.getString(R.string.quick_settings_rotation_unlocked_label);
        }
        updateQuickSettings();
    }

    @Override
    void onPostCreate() {
        applyAutoRotationChanges();
        updateTile();
        super.onPostCreate();
    }

@@ -64,6 +67,6 @@ public class AutoRotateTile extends QuickSettingsTile {

    @Override
    public void onChangeUri(ContentResolver resolver, Uri uri) {
        applyAutoRotationChanges();
        updateResources();
    }
}
Loading