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

Commit c1a0610b 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: I2704176c17a986a630658907c38af2ff0038cfa8
parents 2e23b3ff 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() {