Loading src/com/android/settings/ChooseLockSettingsHelper.java +2 −2 Original line number Diff line number Diff line Loading @@ -88,8 +88,8 @@ public final class ChooseLockSettingsHelper { * @return true if one exists and we launched an activity to confirm it * @see Activity#onActivityResult(int, int, android.content.Intent) */ boolean launchConfirmationActivity(int request, CharSequence title, boolean returnCredentials, int userId) { public boolean launchConfirmationActivity(int request, CharSequence title, boolean returnCredentials, int userId) { return launchConfirmationActivity(request, title, null, null, returnCredentials, false, false, 0, Utils.enforceSameOwner(mActivity, userId)); } Loading src/com/android/settings/accounts/AddAccountSettings.java +33 −12 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.os.UserManager; import android.util.Log; import android.widget.Toast; import com.android.settings.ChooseLockSettingsHelper; import com.android.settings.R; import com.android.settings.Utils; import com.android.settingslib.RestrictedLockUtils; Loading Loading @@ -83,6 +84,7 @@ public class AddAccountSettings extends Activity { private static final int CHOOSE_ACCOUNT_REQUEST = 1; private static final int ADD_ACCOUNT_REQUEST = 2; private static final int UNLOCK_WORK_PROFILE_REQUEST = 3; private PendingIntent mPendingIntent; Loading Loading @@ -154,24 +156,27 @@ public class AddAccountSettings extends Activity { finish(); return; } final String[] authorities = getIntent().getStringArrayExtra(AccountPreferenceBase.AUTHORITIES_FILTER_KEY); final String[] accountTypes = getIntent().getStringArrayExtra(AccountPreferenceBase.ACCOUNT_TYPES_FILTER_KEY); final Intent intent = new Intent(this, ChooseAccountActivity.class); if (authorities != null) { intent.putExtra(AccountPreferenceBase.AUTHORITIES_FILTER_KEY, authorities); } if (accountTypes != null) { intent.putExtra(AccountPreferenceBase.ACCOUNT_TYPES_FILTER_KEY, accountTypes); // If the profile is locked, we must ask the user to unlock it first. ChooseLockSettingsHelper helper = new ChooseLockSettingsHelper(this); if (!helper.launchConfirmationActivity(UNLOCK_WORK_PROFILE_REQUEST, getString(R.string.unlock_set_unlock_launch_picker_title), false, mUserHandle.getIdentifier())) { requestChooseAccount(); } intent.putExtra(EXTRA_USER, mUserHandle); startActivityForResult(intent, CHOOSE_ACCOUNT_REQUEST); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case UNLOCK_WORK_PROFILE_REQUEST: if (resultCode == Activity.RESULT_OK) { requestChooseAccount(); } else { finish(); } break; case CHOOSE_ACCOUNT_REQUEST: if (resultCode == RESULT_CANCELED) { if (data != null) { Loading Loading @@ -202,6 +207,22 @@ public class AddAccountSettings extends Activity { if (Log.isLoggable(TAG, Log.VERBOSE)) Log.v(TAG, "saved"); } private void requestChooseAccount() { final String[] authorities = getIntent().getStringArrayExtra(AccountPreferenceBase.AUTHORITIES_FILTER_KEY); final String[] accountTypes = getIntent().getStringArrayExtra(AccountPreferenceBase.ACCOUNT_TYPES_FILTER_KEY); final Intent intent = new Intent(this, ChooseAccountActivity.class); if (authorities != null) { intent.putExtra(AccountPreferenceBase.AUTHORITIES_FILTER_KEY, authorities); } if (accountTypes != null) { intent.putExtra(AccountPreferenceBase.ACCOUNT_TYPES_FILTER_KEY, accountTypes); } intent.putExtra(EXTRA_USER, mUserHandle); startActivityForResult(intent, CHOOSE_ACCOUNT_REQUEST); } private void addAccount(String accountType) { Bundle addAccountOptions = new Bundle(); /* Loading Loading
src/com/android/settings/ChooseLockSettingsHelper.java +2 −2 Original line number Diff line number Diff line Loading @@ -88,8 +88,8 @@ public final class ChooseLockSettingsHelper { * @return true if one exists and we launched an activity to confirm it * @see Activity#onActivityResult(int, int, android.content.Intent) */ boolean launchConfirmationActivity(int request, CharSequence title, boolean returnCredentials, int userId) { public boolean launchConfirmationActivity(int request, CharSequence title, boolean returnCredentials, int userId) { return launchConfirmationActivity(request, title, null, null, returnCredentials, false, false, 0, Utils.enforceSameOwner(mActivity, userId)); } Loading
src/com/android/settings/accounts/AddAccountSettings.java +33 −12 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.os.UserManager; import android.util.Log; import android.widget.Toast; import com.android.settings.ChooseLockSettingsHelper; import com.android.settings.R; import com.android.settings.Utils; import com.android.settingslib.RestrictedLockUtils; Loading Loading @@ -83,6 +84,7 @@ public class AddAccountSettings extends Activity { private static final int CHOOSE_ACCOUNT_REQUEST = 1; private static final int ADD_ACCOUNT_REQUEST = 2; private static final int UNLOCK_WORK_PROFILE_REQUEST = 3; private PendingIntent mPendingIntent; Loading Loading @@ -154,24 +156,27 @@ public class AddAccountSettings extends Activity { finish(); return; } final String[] authorities = getIntent().getStringArrayExtra(AccountPreferenceBase.AUTHORITIES_FILTER_KEY); final String[] accountTypes = getIntent().getStringArrayExtra(AccountPreferenceBase.ACCOUNT_TYPES_FILTER_KEY); final Intent intent = new Intent(this, ChooseAccountActivity.class); if (authorities != null) { intent.putExtra(AccountPreferenceBase.AUTHORITIES_FILTER_KEY, authorities); } if (accountTypes != null) { intent.putExtra(AccountPreferenceBase.ACCOUNT_TYPES_FILTER_KEY, accountTypes); // If the profile is locked, we must ask the user to unlock it first. ChooseLockSettingsHelper helper = new ChooseLockSettingsHelper(this); if (!helper.launchConfirmationActivity(UNLOCK_WORK_PROFILE_REQUEST, getString(R.string.unlock_set_unlock_launch_picker_title), false, mUserHandle.getIdentifier())) { requestChooseAccount(); } intent.putExtra(EXTRA_USER, mUserHandle); startActivityForResult(intent, CHOOSE_ACCOUNT_REQUEST); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case UNLOCK_WORK_PROFILE_REQUEST: if (resultCode == Activity.RESULT_OK) { requestChooseAccount(); } else { finish(); } break; case CHOOSE_ACCOUNT_REQUEST: if (resultCode == RESULT_CANCELED) { if (data != null) { Loading Loading @@ -202,6 +207,22 @@ public class AddAccountSettings extends Activity { if (Log.isLoggable(TAG, Log.VERBOSE)) Log.v(TAG, "saved"); } private void requestChooseAccount() { final String[] authorities = getIntent().getStringArrayExtra(AccountPreferenceBase.AUTHORITIES_FILTER_KEY); final String[] accountTypes = getIntent().getStringArrayExtra(AccountPreferenceBase.ACCOUNT_TYPES_FILTER_KEY); final Intent intent = new Intent(this, ChooseAccountActivity.class); if (authorities != null) { intent.putExtra(AccountPreferenceBase.AUTHORITIES_FILTER_KEY, authorities); } if (accountTypes != null) { intent.putExtra(AccountPreferenceBase.ACCOUNT_TYPES_FILTER_KEY, accountTypes); } intent.putExtra(EXTRA_USER, mUserHandle); startActivityForResult(intent, CHOOSE_ACCOUNT_REQUEST); } private void addAccount(String accountType) { Bundle addAccountOptions = new Bundle(); /* Loading