Merge "Fix "Automatically sync app data" button state not changed" into tm-dev am: b94c0ab44e
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/17397182 Change-Id: Ifb118af9849109abb3ec164716eed903ef6957a4 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -30,6 +30,7 @@ import android.util.Log;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceFragmentCompat;
|
||||
import androidx.preference.SwitchPreference;
|
||||
|
||||
import com.android.settings.R;
|
||||
@@ -45,11 +46,11 @@ public class AutoSyncDataPreferenceController extends AbstractPreferenceControll
|
||||
private static final String KEY_AUTO_SYNC_ACCOUNT = "auto_sync_account_data";
|
||||
|
||||
protected final UserManager mUserManager;
|
||||
private final Fragment mParentFragment;
|
||||
private final PreferenceFragmentCompat mParentFragment;
|
||||
|
||||
protected UserHandle mUserHandle;
|
||||
|
||||
public AutoSyncDataPreferenceController(Context context, Fragment parent) {
|
||||
public AutoSyncDataPreferenceController(Context context, PreferenceFragmentCompat parent) {
|
||||
super(context);
|
||||
mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
|
||||
mParentFragment = parent;
|
||||
@@ -72,8 +73,9 @@ public class AutoSyncDataPreferenceController extends AbstractPreferenceControll
|
||||
if (ActivityManager.isUserAMonkey()) {
|
||||
Log.d(TAG, "ignoring monkey's attempt to flip sync state");
|
||||
} else {
|
||||
ConfirmAutoSyncChangeFragment.show(mParentFragment, checked, mUserHandle,
|
||||
switchPreference);
|
||||
ConfirmAutoSyncChangeFragment
|
||||
.newInstance(checked, mUserHandle.getIdentifier(), getPreferenceKey())
|
||||
.show(mParentFragment);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -97,34 +99,33 @@ public class AutoSyncDataPreferenceController extends AbstractPreferenceControll
|
||||
*/
|
||||
public static class ConfirmAutoSyncChangeFragment extends InstrumentedDialogFragment implements
|
||||
DialogInterface.OnClickListener {
|
||||
private static final String SAVE_ENABLING = "enabling";
|
||||
private static final String SAVE_USER_HANDLE = "userHandle";
|
||||
boolean mEnabling;
|
||||
UserHandle mUserHandle;
|
||||
SwitchPreference mPreference;
|
||||
private static final String ARG_ENABLING = "enabling";
|
||||
private static final String ARG_USER_ID = "userId";
|
||||
private static final String ARG_KEY = "key";
|
||||
|
||||
public static void show(Fragment parent, boolean enabling, UserHandle userHandle,
|
||||
SwitchPreference preference) {
|
||||
if (!parent.isAdded()) return;
|
||||
static ConfirmAutoSyncChangeFragment newInstance(boolean enabling, int userId, String key) {
|
||||
ConfirmAutoSyncChangeFragment dialogFragment = new ConfirmAutoSyncChangeFragment();
|
||||
Bundle arguments = new Bundle();
|
||||
arguments.putBoolean(ARG_ENABLING, enabling);
|
||||
arguments.putInt(ARG_USER_ID, userId);
|
||||
arguments.putString(ARG_KEY, key);
|
||||
dialogFragment.setArguments(arguments);
|
||||
return dialogFragment;
|
||||
}
|
||||
|
||||
final ConfirmAutoSyncChangeFragment dialog = new ConfirmAutoSyncChangeFragment();
|
||||
dialog.mEnabling = enabling;
|
||||
dialog.mUserHandle = userHandle;
|
||||
dialog.setTargetFragment(parent, 0);
|
||||
dialog.mPreference = preference;
|
||||
dialog.show(parent.getFragmentManager(), TAG_CONFIRM_AUTO_SYNC_CHANGE);
|
||||
void show(PreferenceFragmentCompat parent) {
|
||||
if (!parent.isAdded()) {
|
||||
return;
|
||||
}
|
||||
setTargetFragment(parent, 0);
|
||||
show(parent.getParentFragmentManager(), TAG_CONFIRM_AUTO_SYNC_CHANGE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||
final Context context = getActivity();
|
||||
if (savedInstanceState != null) {
|
||||
mEnabling = savedInstanceState.getBoolean(SAVE_ENABLING);
|
||||
mUserHandle = (UserHandle) savedInstanceState.getParcelable(SAVE_USER_HANDLE);
|
||||
}
|
||||
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(context);
|
||||
if (!mEnabling) {
|
||||
if (!requireArguments().getBoolean(ARG_ENABLING)) {
|
||||
builder.setTitle(R.string.data_usage_auto_sync_off_dialog_title);
|
||||
builder.setMessage(R.string.data_usage_auto_sync_off_dialog);
|
||||
} else {
|
||||
@@ -138,13 +139,6 @@ public class AutoSyncDataPreferenceController extends AbstractPreferenceControll
|
||||
return builder.create();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSaveInstanceState(Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
outState.putBoolean(SAVE_ENABLING, mEnabling);
|
||||
outState.putParcelable(SAVE_USER_HANDLE, mUserHandle);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMetricsCategory() {
|
||||
return SettingsEnums.DIALOG_CONFIRM_AUTO_SYNC_CHANGE;
|
||||
@@ -153,10 +147,18 @@ public class AutoSyncDataPreferenceController extends AbstractPreferenceControll
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
if (which == DialogInterface.BUTTON_POSITIVE) {
|
||||
ContentResolver.setMasterSyncAutomaticallyAsUser(mEnabling,
|
||||
mUserHandle.getIdentifier());
|
||||
if (mPreference != null) {
|
||||
mPreference.setChecked(mEnabling);
|
||||
Bundle arguments = requireArguments();
|
||||
boolean enabling = arguments.getBoolean(ARG_ENABLING);
|
||||
ContentResolver.setMasterSyncAutomaticallyAsUser(enabling,
|
||||
arguments.getInt(ARG_USER_ID));
|
||||
Fragment targetFragment = getTargetFragment();
|
||||
if (targetFragment instanceof PreferenceFragmentCompat) {
|
||||
Preference preference =
|
||||
((PreferenceFragmentCompat) targetFragment).findPreference(
|
||||
arguments.getString(ARG_KEY));
|
||||
if (preference instanceof SwitchPreference) {
|
||||
((SwitchPreference) preference).setChecked(enabling);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,14 +18,14 @@ package com.android.settings.users;
|
||||
import android.content.Context;
|
||||
import android.os.UserHandle;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.preference.PreferenceFragmentCompat;
|
||||
|
||||
public class AutoSyncPersonalDataPreferenceController extends AutoSyncDataPreferenceController {
|
||||
|
||||
private static final String TAG = "AutoSyncPersonalData";
|
||||
private static final String KEY_AUTO_SYNC_PERSONAL_ACCOUNT = "auto_sync_personal_account_data";
|
||||
|
||||
public AutoSyncPersonalDataPreferenceController(Context context, Fragment parent) {
|
||||
public AutoSyncPersonalDataPreferenceController(Context context,
|
||||
PreferenceFragmentCompat parent) {
|
||||
super(context, parent);
|
||||
}
|
||||
|
||||
|
||||
@@ -18,16 +18,15 @@ package com.android.settings.users;
|
||||
import android.content.Context;
|
||||
import android.os.UserHandle;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.preference.PreferenceFragmentCompat;
|
||||
|
||||
import com.android.settings.Utils;
|
||||
|
||||
public class AutoSyncWorkDataPreferenceController extends AutoSyncPersonalDataPreferenceController {
|
||||
|
||||
private static final String TAG = "AutoSyncWorkData";
|
||||
private static final String KEY_AUTO_SYNC_WORK_ACCOUNT = "auto_sync_work_account_data";
|
||||
|
||||
public AutoSyncWorkDataPreferenceController(Context context, Fragment parent) {
|
||||
public AutoSyncWorkDataPreferenceController(Context context, PreferenceFragmentCompat parent) {
|
||||
super(context, parent);
|
||||
mUserHandle = Utils.getManagedProfileWithDisabled(mUserManager);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user