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

Commit eb353285 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Fix camera permission warning message not disappearing after permission...

Merge "Fix camera permission warning message not disappearing after permission is re-granted" into sc-dev am: 8f9488ee

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/15084370

Change-Id: I4e2a09cf38bbc09cd776f8047201a14ec56fda5d
parents 7b059195 8f9488ee
Loading
Loading
Loading
Loading
+21 −4
Original line number Diff line number Diff line
@@ -23,19 +23,24 @@ import android.content.Context;
import android.content.Intent;
import android.net.Uri;

import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;

import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnResume;
import com.android.settingslib.widget.BannerMessagePreference;

/**
 * The controller of camera based rotate permission warning preference. The preference appears when
 * the camera permission is missing for the camera based rotation feature.
 */
public class SmartAutoRotatePermissionController extends BasePreferenceController {
public class SmartAutoRotatePermissionController extends BasePreferenceController implements
        LifecycleObserver, OnResume {

    private final Intent mIntent;
    private BannerMessagePreference mPreference;

    public SmartAutoRotatePermissionController(Context context, String key) {
        super(context, key);
@@ -48,15 +53,27 @@ public class SmartAutoRotatePermissionController extends BasePreferenceControlle
    @Override
    public void displayPreference(PreferenceScreen screen) {
        super.displayPreference(screen);
        final BannerMessagePreference preference =
                (BannerMessagePreference) screen.findPreference(getPreferenceKey());
        preference
        mPreference = screen.findPreference(getPreferenceKey());
        mPreference
                .setPositiveButtonText(R.string.auto_rotate_manage_permission_button)
                .setPositiveButtonOnClickListener(v -> {
                    mContext.startActivity(mIntent);
                });
    }

    @Override
    public void onResume() {
        updateState(mPreference);
    }

    @Override
    public void updateState(Preference preference) {
        super.updateState(preference);
        if (preference != null) {
            preference.setVisible(isAvailable());
        }
    }

    @Override
    @AvailabilityStatus
    public int getAvailabilityStatus() {