Merge "Protect App pinning" into udc-qpr-dev am: 7127e7606d

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

Change-Id: Id45f32a96ac63bcb6075daed2e23f8ad4ab5aba7
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
TreeHugger Robot
2023-05-31 04:15:08 +00:00
committed by Automerger Merge Worker

View File

@@ -23,7 +23,6 @@ import android.content.Intent;
import android.os.Bundle;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.SearchIndexableResource;
import android.provider.Settings;
import android.widget.Switch;
@@ -38,14 +37,12 @@ import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.password.ChooseLockGeneric;
import com.android.settings.password.ChooseLockSettingsHelper;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.widget.SettingsMainSwitchBar;
import com.android.settingslib.search.SearchIndexable;
import com.android.settingslib.widget.FooterPreference;
import com.android.settingslib.widget.OnMainSwitchChangeListener;
import java.util.Arrays;
import java.util.List;
/**
* Screen pinning settings.
*/
@@ -56,6 +53,7 @@ public class ScreenPinningSettings extends SettingsPreferenceFragment
private static final String KEY_USE_SCREEN_LOCK = "use_screen_lock";
private static final String KEY_FOOTER = "screen_pinning_settings_screen_footer";
private static final int CHANGE_LOCK_METHOD_REQUEST = 43;
private static final int CONFIRM_REQUEST = 1000;
private SettingsMainSwitchBar mSwitchBar;
private SwitchPreference mUseScreenLock;
@@ -129,10 +127,10 @@ public class ScreenPinningSettings extends SettingsPreferenceFragment
}
private boolean setScreenLockUsed(boolean isEnabled) {
if (isEnabled) {
LockPatternUtils lockPatternUtils = new LockPatternUtils(getActivity());
int passwordQuality = lockPatternUtils
final int passwordQuality = lockPatternUtils
.getKeyguardStoredPasswordQuality(UserHandle.myUserId());
if (isEnabled) {
if (passwordQuality == DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED) {
Intent chooseLockIntent = new Intent(DevicePolicyManager.ACTION_SET_NEW_PASSWORD);
chooseLockIntent.putExtra(
@@ -141,6 +139,12 @@ public class ScreenPinningSettings extends SettingsPreferenceFragment
startActivityForResult(chooseLockIntent, CHANGE_LOCK_METHOD_REQUEST);
return false;
}
} else {
if (passwordQuality != DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED) {
final ChooseLockSettingsHelper.Builder builder =
new ChooseLockSettingsHelper.Builder(getActivity(), this);
return builder.setRequestCode(CONFIRM_REQUEST).show();
}
}
setScreenLockUsedSetting(isEnabled);
return true;
@@ -162,6 +166,8 @@ public class ScreenPinningSettings extends SettingsPreferenceFragment
setScreenLockUsed(validPassQuality);
// Make sure the screen updates.
mUseScreenLock.setChecked(validPassQuality);
} else if (requestCode == CONFIRM_REQUEST) {
setScreenLockUsedSetting(false);
}
}
@@ -245,14 +251,5 @@ public class ScreenPinningSettings extends SettingsPreferenceFragment
* For search
*/
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() {
@Override
public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
boolean enabled) {
final SearchIndexableResource sir = new SearchIndexableResource(context);
sir.xmlResId = R.xml.screen_pinning_settings;
return Arrays.asList(sir);
}
};
new BaseSearchIndexProvider(R.xml.screen_pinning_settings);
}