diff options
author | Tony Mak <tonymak@google.com> | 2015-12-01 10:51:26 +0000 |
---|---|---|
committer | Tony Mak <tonymak@google.com> | 2015-12-02 21:08:48 +0000 |
commit | 95d594a27a71121a633b18e347821c87346ff006 (patch) | |
tree | a4ee01477e1f3cf4f67865896b70eefc4dcb8623 | |
parent | 9650e1bb0c9a61be7e9250bd0c47cb5a5d29efff (diff) |
Allow non-primary users to configure calling accounts
Given that we allow every users to have their own phone accounts, it
doesn't make sense we only allow primary user to configure its default
outgoing account.
This change allows other user to configure default outgoing account as
well.
Bug: 25941865
Change-Id: Iad7c93366c77dfafc06ae8a7bb4fed3cb7eb1c79
-rw-r--r-- | src/com/android/dialer/settings/DialerSettingsActivity.java | 46 |
1 files changed, 24 insertions, 22 deletions
diff --git a/src/com/android/dialer/settings/DialerSettingsActivity.java b/src/com/android/dialer/settings/DialerSettingsActivity.java index a6e8944d4..99507b733 100644 --- a/src/com/android/dialer/settings/DialerSettingsActivity.java +++ b/src/com/android/dialer/settings/DialerSettingsActivity.java @@ -65,28 +65,30 @@ public class DialerSettingsActivity extends AppCompatPreferenceActivity { TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); - // Only show call setting menus if the current user is the primary/owner user. - if (isPrimaryUser()) { - // Show "Call Settings" if there is one SIM and "Phone Accounts" if there are more. - if (telephonyManager.getPhoneCount() <= 1) { - Header callSettingsHeader = new Header(); - Intent callSettingsIntent = new Intent(TelecomManager.ACTION_SHOW_CALL_SETTINGS); - callSettingsIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); - - callSettingsHeader.titleRes = R.string.call_settings_label; - callSettingsHeader.intent = callSettingsIntent; - target.add(callSettingsHeader); - } else { - Header phoneAccountSettingsHeader = new Header(); - Intent phoneAccountSettingsIntent = - new Intent(TelecomManager.ACTION_CHANGE_PHONE_ACCOUNTS); - phoneAccountSettingsIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); - - phoneAccountSettingsHeader.titleRes = R.string.phone_account_settings_label; - phoneAccountSettingsHeader.intent = phoneAccountSettingsIntent; - target.add(phoneAccountSettingsHeader); - } - + // "Call Settings" (full settings) is shown if the current user is primary user and there + // is only one SIM. Before N, "Calling accounts" setting is shown if the current user is + // primary user and there are multiple SIMs. In N+, "Calling accounts" is shown whenever + // "Call Settings" is not shown. + boolean isPrimaryUser = isPrimaryUser(); + if (isPrimaryUser && telephonyManager.getPhoneCount() <= 1) { + Header callSettingsHeader = new Header(); + Intent callSettingsIntent = new Intent(TelecomManager.ACTION_SHOW_CALL_SETTINGS); + callSettingsIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + + callSettingsHeader.titleRes = R.string.call_settings_label; + callSettingsHeader.intent = callSettingsIntent; + target.add(callSettingsHeader); + } else if (android.os.Build.VERSION.CODENAME.startsWith("N") || isPrimaryUser) { + Header phoneAccountSettingsHeader = new Header(); + Intent phoneAccountSettingsIntent = + new Intent(TelecomManager.ACTION_CHANGE_PHONE_ACCOUNTS); + phoneAccountSettingsIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + + phoneAccountSettingsHeader.titleRes = R.string.phone_account_settings_label; + phoneAccountSettingsHeader.intent = phoneAccountSettingsIntent; + target.add(phoneAccountSettingsHeader); + } + if (isPrimaryUser) { Header blockedCallsHeader = new Header(); blockedCallsHeader.titleRes = R.string.manage_blocked_numbers_label; blockedCallsHeader.intent = new Intent(this, BlockedNumbersSettingsActivity.class); |