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

Commit 67f9d4a4 authored by Danny Baumann's avatar Danny Baumann
Browse files

Fix setting change observing.

The observer doesn't deal with keyguard related options only.

Change-Id: Ib185662f4f8ca7508be3dce10091b5132aa823e1
parent e77f3834
Loading
Loading
Loading
Loading
+17 −14
Original line number Diff line number Diff line
@@ -108,6 +108,7 @@ public class NavigationBarView extends LinearLayout {
    private DeadZone mDeadZone;
    private final NavigationBarTransitions mBarTransitions;

    private boolean mHasCmKeyguard = false;
    private boolean mModLockDisabled = true;
    private boolean mShowDpadArrowKeys = true;
    private SettingsObserver mObserver;
@@ -260,6 +261,12 @@ public class NavigationBarView extends LinearLayout {
        mLockUtils = new LockPatternUtils(context);

        mObserver = new SettingsObserver(new Handler());

        final String keyguardPackage = mContext.getString(
                com.android.internal.R.string.config_keyguardPackage);
        final Bundle keyguardMetadata = getApplicationMetadata(mContext, keyguardPackage);
        mHasCmKeyguard = keyguardMetadata != null &&
                keyguardMetadata.getBoolean("com.cyanogenmod.keyguard", false);
     }

    private void watchForDevicePolicyChanges() {
@@ -649,16 +656,8 @@ public class NavigationBarView extends LinearLayout {
    @Override
    public void onAttachedToWindow() {
        super.onAttachedToWindow();

        final String keyguardPackage = mContext.getString(
                com.android.internal.R.string.config_keyguardPackage);
        final Bundle keyguard_metadata = NavigationBarView
                .getApplicationMetadata(mContext, keyguardPackage);
        if (null != keyguard_metadata &&
                keyguard_metadata.getBoolean("com.cyanogenmod.keyguard", false)) {
        mObserver.observe();
    }
    }

    @Override
    public void onDetachedFromWindow() {
@@ -893,8 +892,8 @@ public class NavigationBarView extends LinearLayout {
    private static Bundle getApplicationMetadata(Context context, String pkg) {
        if (pkg != null) {
            try {
                ApplicationInfo ai = context.getPackageManager().
                    getApplicationInfo(pkg, PackageManager.GET_META_DATA);
                PackageManager pm = context.getPackageManager();
                ApplicationInfo ai = pm.getApplicationInfo(pkg, PackageManager.GET_META_DATA);
                return ai.metaData;
            } catch (NameNotFoundException e) {
                return null;
@@ -937,8 +936,12 @@ public class NavigationBarView extends LinearLayout {

        @Override
        public void onChange(boolean selfChange) {
            if (mHasCmKeyguard) {
                mModLockDisabled = Settings.System.getInt(mContext.getContentResolver(),
                        Settings.System.LOCKSCREEN_MODLOCK_ENABLED, 1) == 0;
            } else {
                mModLockDisabled = true;
            }
            mShowDpadArrowKeys = Settings.System.getInt(mContext.getContentResolver(),
                    Settings.System.NAVIGATION_BAR_MENU_ARROW_KEYS, 1) != 0;