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

Commit 3810bf62 authored by Danesh Mondegarian's avatar Danesh Mondegarian
Browse files

QuickSettings : Cleanup receivers/observers

This patchset borrows the idea of a central observer/receiver
from powerwidgets. This way cleanup is a lot easier.

Change-Id: I09ff3118cbc1137e2569dcd3e07acb2a3b083eca
parent aa1add7b
Loading
Loading
Loading
Loading
+12 −28
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.database.ContentObserver;
import android.net.Uri;
import android.os.Handler;
import android.provider.Settings;
import android.view.LayoutInflater;
@@ -25,9 +25,6 @@ public class AlarmTile extends QuickSettingsTile{
            QuickSettingsController qsc, Handler handler) {
        super(context, inflater, container, qsc);

        NextAlarmObserver observer = new NextAlarmObserver(handler);
        observer.startObserving();

        mDrawable = R.drawable.ic_qs_alarm_on;
        String nextAlarmTime = Settings.System.getString(mContext.getContentResolver(), Settings.System.NEXT_ALARM_FORMATTED);
        if(nextAlarmTime != null){
@@ -45,15 +42,19 @@ public class AlarmTile extends QuickSettingsTile{
                startSettingsActivity(intent);
            }
        };
        mBroadcastReceiver = new BroadcastReceiver() {
        qsc.registerAction(Intent.ACTION_ALARM_CHANGED, this);
        qsc.registerObservedContent(Settings.System.getUriFor(
                Settings.System.NEXT_ALARM_FORMATTED), this);
    }

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

        mIntentFilter = new IntentFilter(Intent.ACTION_ALARM_CHANGED);
    @Override
    public void onChangeUri(ContentResolver resolver, Uri uri) {
        onNextAlarmChanged();
    }

    void onAlarmChanged(Intent intent) {
@@ -67,23 +68,6 @@ public class AlarmTile extends QuickSettingsTile{
        updateQuickSettings();
    }

    /** ContentObserver to determine the next alarm */
    private class NextAlarmObserver extends ContentObserver {
        public NextAlarmObserver(Handler handler) {
            super(handler);
        }

        @Override public void onChange(boolean selfChange) {
            onNextAlarmChanged();
        }

        public void startObserving() {
            final ContentResolver cr = mContext.getContentResolver();
            cr.registerContentObserver(
                    Settings.System.getUriFor(Settings.System.NEXT_ALARM_FORMATTED), false, this);
        }
    }

    @Override
    void updateQuickSettings() {
        mTile.setVisibility(enabled ? View.VISIBLE : View.GONE);
+6 −15
Original line number Diff line number Diff line
package com.android.systemui.quicksettings;

import android.content.ContentResolver;
import android.content.Context;
import android.database.ContentObserver;
import android.net.Uri;
import android.os.Handler;
import android.provider.Settings;
@@ -23,8 +23,6 @@ public class AutoRotateTile extends QuickSettingsTile {
            QuickSettingsContainerView container, QuickSettingsController qsc, Handler handler) {
        super(context, inflater, container, qsc);

        new AutoRotationObserver(handler);

        mOnClick = new OnClickListener() {
            @Override
            public void onClick(View v) {
@@ -39,6 +37,8 @@ public class AutoRotateTile extends QuickSettingsTile {
                return true;
            }
        };
        qsc.registerObservedContent(Settings.System.getUriFor(Settings.System.ACCELEROMETER_ROTATION)
                , this);
    }

    void applyAutoRotationChanges() {
@@ -62,17 +62,8 @@ public class AutoRotateTile extends QuickSettingsTile {
        return !RotationPolicy.isRotationLocked(mContext);
    }

    private class AutoRotationObserver extends ContentObserver {
        public AutoRotationObserver(Handler handler) {
            super(handler);
            mContext.getContentResolver().registerContentObserver(Settings.System.getUriFor(Settings.System.ACCELEROMETER_ROTATION),
                    false, this);
        }

    @Override
        public void onChange(boolean selfChange, Uri uri) {
    public void onChangeUri(ContentResolver resolver, Uri uri) {
        applyAutoRotationChanges();
    }
}

}
+16 −21
Original line number Diff line number Diff line
@@ -49,8 +49,9 @@ public class BluetoothTile extends QuickSettingsTile implements BluetoothStateCh
                return true;
            }
        };

        mBroadcastReceiver = new BroadcastReceiver() {
        qsc.registerAction(BluetoothAdapter.ACTION_CONNECTION_STATE_CHANGED, this);
        qsc.registerAction(BluetoothAdapter.ACTION_STATE_CHANGED, this);
    }

    @Override
    public void onReceive(Context context, Intent intent) {
@@ -67,12 +68,6 @@ public class BluetoothTile extends QuickSettingsTile implements BluetoothStateCh
        }
        applyBluetoothChanges();
    }
        };

        mIntentFilter = new IntentFilter();
        mIntentFilter.addAction(BluetoothAdapter.ACTION_CONNECTION_STATE_CHANGED);
        mIntentFilter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
    }

    void checkBluetoothState() {
        enabled = mBluetoothAdapter.getState() == BluetoothAdapter.STATE_ON;
+8 −27
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ import android.app.Dialog;
import android.content.ContentResolver;
import android.content.Context;
import android.content.DialogInterface;
import android.database.ContentObserver;
import android.net.Uri;
import android.os.Handler;
import android.os.RemoteException;
import android.provider.Settings;
@@ -31,7 +31,6 @@ public class BrightnessTile extends QuickSettingsTile implements BrightnessState
    private Dialog mBrightnessDialog;
    private BrightnessController mBrightnessController;
    private final Handler mHandler;
    private final BrightnessObserver mBrightnessObserver;
    private boolean autoBrightness = true;

    public BrightnessTile(Context context, LayoutInflater inflater,
@@ -43,8 +42,6 @@ public class BrightnessTile extends QuickSettingsTile implements BrightnessState
        mBrightnessDialogLongTimeout = mContext.getResources().getInteger(R.integer.quick_settings_brightness_dialog_long_timeout);
        mBrightnessDialogShortTimeout = mContext.getResources().getInteger(R.integer.quick_settings_brightness_dialog_short_timeout);

        mBrightnessObserver = new BrightnessObserver(mHandler);

        mOnClick = new OnClickListener() {

            @Override
@@ -53,7 +50,10 @@ public class BrightnessTile extends QuickSettingsTile implements BrightnessState
                showBrightnessDialog();
            }
        };

        qsc.registerObservedContent(Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS)
                , this);
        qsc.registerObservedContent(Settings.System.getUriFor(Settings.System
                .SCREEN_BRIGHTNESS_MODE), this);
        onBrightnessLevelChanged();
    }

@@ -126,27 +126,8 @@ public class BrightnessTile extends QuickSettingsTile implements BrightnessState
        }
    }

    private class BrightnessObserver extends ContentObserver {
        public BrightnessObserver(Handler handler) {
            super(handler);
            startObserving();
        }

    @Override
        public void onChange(boolean selfChange) {
    public void onChangeUri(ContentResolver resolver, Uri uri) {
        onBrightnessLevelChanged();
    }

        public void startObserving() {
            final ContentResolver cr = mContext.getContentResolver();
            cr.unregisterContentObserver(this);
            cr.registerContentObserver(
                    Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS_MODE),
                    false, this);
            cr.registerContentObserver(
                    Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS),
                    false, this);
        }
    }

}
+5 −18
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@ import android.content.ContentResolver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.database.ContentObserver;
import android.net.Uri;
import android.os.Handler;
import android.os.RemoteException;
import android.provider.Settings;
@@ -40,9 +40,6 @@ public class BugReportTile extends QuickSettingsTile{
        } catch (SettingNotFoundException e) {
        }

        BugreportObserver observer = new BugreportObserver(mHandler);
        observer.startObserving();

        mOnClick = new View.OnClickListener() {

            @Override
@@ -51,24 +48,14 @@ public class BugReportTile extends QuickSettingsTile{
                showBugreportDialog();
            }
        };
        qsc.registerObservedContent(Settings.System.getUriFor(Settings.Secure.BUGREPORT_IN_POWER_MENU), this);
    }

    private class BugreportObserver extends ContentObserver {
        public BugreportObserver(Handler handler) {
            super(handler);
        }

        @Override public void onChange(boolean selfChange) {
    @Override
    public void onChangeUri(ContentResolver resolver, Uri uri) {
        onBugreportChanged();
    }

        public void startObserving() {
            final ContentResolver cr = mContext.getContentResolver();
            cr.registerContentObserver(
                    Settings.Secure.getUriFor(Settings.Secure.BUGREPORT_IN_POWER_MENU), false, this);
        }
    }

    public void onBugreportChanged() {
        final ContentResolver cr = mContext.getContentResolver();
        try {
Loading