Merge "Handle premultiplication correctly for ColorMatrixColorFilters" into lmp-dev
diff --git a/api/current.txt b/api/current.txt
index f9913fa..cbf4d67 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -28073,14 +28073,18 @@
ctor public Conference(android.telecom.PhoneAccountHandle);
method public final boolean addConnection(android.telecom.Connection);
method public final void destroy();
+ method public final android.telecom.AudioState getAudioState();
method public final int getCapabilities();
method public final java.util.List<android.telecom.Connection> getConnections();
method public final android.telecom.PhoneAccountHandle getPhoneAccountHandle();
method public final int getState();
+ method public void onAudioStateChanged(android.telecom.AudioState);
method public void onDisconnect();
method public void onHold();
method public void onMerge();
+ method public void onPlayDtmfTone(char);
method public void onSeparate(android.telecom.Connection);
+ method public void onStopDtmfTone();
method public void onSwap();
method public void onUnhold();
method public final void removeConnection(android.telecom.Connection);
@@ -28219,7 +28223,6 @@
method public android.net.Uri getSubscriptionAddress();
method public java.util.List<java.lang.String> getSupportedUriSchemes();
method public boolean hasCapabilities(int);
- method public boolean isEnabled();
method public boolean supportsUriScheme(java.lang.String);
method public void writeToParcel(android.os.Parcel, int);
field public static final int CAPABILITY_CONNECTION_MANAGER = 1; // 0x1
@@ -28274,8 +28277,11 @@
method public android.telecom.DisconnectCause getDisconnectCause();
method public final int getState();
method public void hold();
+ method public void playDtmfTone(char);
method public final void registerCallback(android.telecom.RemoteConference.Callback);
method public void separate(android.telecom.RemoteConnection);
+ method public void setAudioState(android.telecom.AudioState);
+ method public void stopDtmfTone();
method public void unhold();
method public final void unregisterCallback(android.telecom.RemoteConference.Callback);
}
@@ -28349,21 +28355,19 @@
method public void addNewIncomingCall(android.telecom.PhoneAccountHandle, android.os.Bundle);
method public void cancelMissedCallsNotification();
method public void clearAccounts();
+ method public java.util.List<android.telecom.PhoneAccountHandle> getCallCapablePhoneAccounts();
method public android.telecom.PhoneAccountHandle getConnectionManager();
method public android.telecom.PhoneAccountHandle getDefaultOutgoingPhoneAccount(java.lang.String);
- method public java.util.List<android.telecom.PhoneAccountHandle> getEnabledPhoneAccounts();
method public android.telecom.PhoneAccount getPhoneAccount(android.telecom.PhoneAccountHandle);
method public java.util.List<android.telecom.PhoneAccountHandle> getPhoneAccountsSupportingScheme(java.lang.String);
method public boolean handleMmi(java.lang.String);
- method public boolean hasMultipleEnabledAccounts();
+ method public boolean hasMultipleCallCapableAccounts();
method public boolean isInCall();
method public void registerPhoneAccount(android.telecom.PhoneAccount);
method public void showInCallScreen(boolean);
method public void unregisterPhoneAccount(android.telecom.PhoneAccountHandle);
field public static final java.lang.String ACTION_CHANGE_PHONE_ACCOUNTS = "android.telecom.action.CHANGE_PHONE_ACCOUNTS";
field public static final java.lang.String ACTION_CONNECTION_SERVICE_CONFIGURE = "android.telecom.action.CONNECTION_SERVICE_CONFIGURE";
- field public static final java.lang.String ACTION_PHONE_ACCOUNT_DISABLED = "android.telecom.action.PHONE_ACCOUNT_DISABLED";
- field public static final java.lang.String ACTION_PHONE_ACCOUNT_ENABLED = "android.telecom.action.PHONE_ACCOUNT_ENABLED";
field public static final java.lang.String ACTION_SHOW_CALL_SETTINGS = "android.telecom.action.SHOW_CALL_SETTINGS";
field public static final char DTMF_CHARACTER_PAUSE = 44; // 0x002c ','
field public static final char DTMF_CHARACTER_WAIT = 59; // 0x003b ';'
diff --git a/cmds/dpm/src/com/android/commands/dpm/Dpm.java b/cmds/dpm/src/com/android/commands/dpm/Dpm.java
index 6a5ecee..b8b2087 100644
--- a/cmds/dpm/src/com/android/commands/dpm/Dpm.java
+++ b/cmds/dpm/src/com/android/commands/dpm/Dpm.java
@@ -39,6 +39,7 @@
}
private static final String COMMAND_SET_DEVICE_OWNER = "set-device-owner";
+ private static final String COMMAND_SET_PROFILE_OWNER = "set-profile-owner";
private IDevicePolicyManager mDevicePolicyManager;
@@ -47,9 +48,13 @@
out.println(
"usage: dpm [subcommand] [options]\n" +
"usage: dpm set-device-owner <COMPONENT>\n" +
+ "usage: dpm set-profile-owner <COMPONENT> <USER_ID>\n" +
"\n" +
"dpm set-device-owner: Sets the given component as active admin, and its\n" +
- " package as device owner.\n");
+ " package as device owner.\n" +
+ "\n" +
+ "dpm set-profile-owner: Sets the given component as active admin and profile" +
+ " owner for an existing user.\n");
}
@Override
@@ -64,24 +69,25 @@
String command = nextArgRequired();
switch (command) {
case COMMAND_SET_DEVICE_OWNER:
- runSetDeviceOwner(nextArgRequired());
+ runSetDeviceOwner();
+ break;
+ case COMMAND_SET_PROFILE_OWNER:
+ runSetProfileOwner();
break;
default:
throw new IllegalArgumentException ("unknown command '" + command + "'");
}
}
- private void runSetDeviceOwner(String argument) throws Exception {
- ComponentName component = ComponentName.unflattenFromString(argument);
- if (component == null) {
- throw new IllegalArgumentException ("Invalid component " + argument);
- }
- mDevicePolicyManager.setActiveAdmin(component, true, UserHandle.USER_OWNER);
+ private void runSetDeviceOwner() throws RemoteException {
+ ComponentName component = parseComponentName(nextArgRequired());
+ mDevicePolicyManager.setActiveAdmin(component, true /*refreshing*/, UserHandle.USER_OWNER);
String packageName = component.getPackageName();
try {
- if (!mDevicePolicyManager.setDeviceOwner(packageName, null)) {
- throw new Exception("Can't set package " + packageName + " as device owner.");
+ if (!mDevicePolicyManager.setDeviceOwner(packageName, null /*ownerName*/)) {
+ throw new RuntimeException(
+ "Can't set package " + packageName + " as device owner.");
}
} catch (Exception e) {
// Need to remove the admin that we just added.
@@ -91,4 +97,39 @@
System.out.println("Device owner set to package " + packageName);
System.out.println("Active admin set to component " + component.toShortString());
}
+
+ private void runSetProfileOwner() throws RemoteException {
+ ComponentName component = parseComponentName(nextArgRequired());
+ int userId = parseInt(nextArgRequired());
+ mDevicePolicyManager.setActiveAdmin(component, true /*refreshing*/, userId);
+
+ try {
+ if (!mDevicePolicyManager.setProfileOwner(component, "" /*ownerName*/, userId)) {
+ throw new RuntimeException("Can't set component " + component.toShortString() +
+ " as profile owner for user " + userId);
+ }
+ } catch (Exception e) {
+ // Need to remove the admin that we just added.
+ mDevicePolicyManager.removeActiveAdmin(component, userId);
+ throw e;
+ }
+ System.out.println("Active admin and profile owner set to " + component.toShortString() +
+ " for user " + userId);
+ }
+
+ private ComponentName parseComponentName(String component) {
+ ComponentName cn = ComponentName.unflattenFromString(component);
+ if (cn == null) {
+ throw new IllegalArgumentException ("Invalid component " + component);
+ }
+ return cn;
+ }
+
+ private int parseInt(String argument) {
+ try {
+ return Integer.parseInt(argument);
+ } catch (NumberFormatException e) {
+ throw new IllegalArgumentException ("Invalid integer argument '" + argument + "'", e);
+ }
+ }
}
\ No newline at end of file
diff --git a/cmds/pm/src/com/android/commands/pm/Pm.java b/cmds/pm/src/com/android/commands/pm/Pm.java
index 6d12133..5e9d8f7 100644
--- a/cmds/pm/src/com/android/commands/pm/Pm.java
+++ b/cmds/pm/src/com/android/commands/pm/Pm.java
@@ -1190,10 +1190,6 @@
if (userId < 0) {
info = mUm.createUser(name, flags);
} else {
- if (Process.myUid() != 0) {
- System.err.println("Error: not running as root.");
- return;
- }
info = mUm.createProfileForUser(name, flags, userId);
}
if (info != null) {
diff --git a/core/res/res/values/colors.xml b/core/res/res/values/colors.xml
index 5a7e168..cbaf54f 100644
--- a/core/res/res/values/colors.xml
+++ b/core/res/res/values/colors.xml
@@ -148,10 +148,10 @@
<color name="battery_saver_mode_color">#fff4511e</color><!-- deep orange 600 -->
<!-- Default user icon colors -->
- <color name="user_icon_1">#ffe91e63</color><!-- pink 500 -->
+ <color name="user_icon_1">#ff00bcd4</color><!-- teal 500 -->
<color name="user_icon_2">#ff3f51b5</color><!-- indigo 500 -->
<color name="user_icon_3">#ff4285f4</color><!-- blue 500 -->
- <color name="user_icon_4">#ff00bcd4</color><!-- teal 500 -->
+ <color name="user_icon_4">#ffe91e63</color><!-- pink 500 -->
<color name="user_icon_5">#ff0f9d58</color><!-- green 500 -->
<color name="user_icon_6">#ff8bc34a</color><!-- light green 500 -->
<color name="user_icon_7">#ffff9800</color><!-- orange 500 -->
diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml
index b94a258..3c2a776 100644
--- a/packages/SystemUI/AndroidManifest.xml
+++ b/packages/SystemUI/AndroidManifest.xml
@@ -199,7 +199,7 @@
android:excludeFromRecents="true"
android:stateNotNeeded="true"
android:resumeWhilePausing="true"
- android:theme="@style/RecentsTheme">
+ android:theme="@style/config_recents_activity_theme">
<intent-filter>
<action android:name="com.android.systemui.recents.TOGGLE_RECENTS" />
</intent-filter>
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml
index a8c95c1..9654da9 100644
--- a/packages/SystemUI/res/values/config.xml
+++ b/packages/SystemUI/res/values/config.xml
@@ -35,6 +35,10 @@
<!-- The number of app icons we keep in memory -->
<integer name="config_recents_max_icon_count">20</integer>
+
+ <!-- The theme to use for RecentsActivity. -->
+ <item type="style" name="config_recents_activity_theme">@style/RecentsTheme.Wallpaper</item>
+
<!-- Control whether status bar should distinguish HSPA data icon form UMTS
data icon on devices -->
<bool name="config_hspa_data_distinguishable">false</bool>
diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml
index 0456c82..46e7587 100644
--- a/packages/SystemUI/res/values/styles.xml
+++ b/packages/SystemUI/res/values/styles.xml
@@ -20,14 +20,9 @@
<item name="android:windowAnimationStyle">@style/Animation.RecentsActivity</item>
</style>
- <!-- Alternate Recents theme -->
<style name="RecentsTheme" parent="@android:style/Theme">
<!-- NoTitle -->
<item name="android:windowNoTitle">true</item>
- <!-- Wallpaper -->
- <item name="android:windowBackground">@color/transparent</item>
- <item name="android:colorBackgroundCacheHint">@null</item>
- <item name="android:windowShowWallpaper">true</item>
<!-- Misc -->
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:navigationBarColor">@android:color/transparent</item>
@@ -36,6 +31,20 @@
<item name="android:ambientShadowAlpha">0.35</item>
</style>
+
+ <!-- Alternate Recents theme -->
+ <style name="RecentsTheme.Wallpaper">
+ <!-- Wallpaper -->
+ <item name="android:windowBackground">@color/transparent</item>
+ <item name="android:colorBackgroundCacheHint">@null</item>
+ <item name="android:windowShowWallpaper">true</item>
+ </style>
+
+ <!-- Performance optimized alternate Recents theme (no wallpaper) -->
+ <style name="RecentsTheme.NoWallpaper">
+ <item name="android:windowBackground">@android:color/black</item>
+ </style>
+
<!-- Animations for a non-full-screen window or activity. -->
<style name="Animation.RecentsActivity" parent="@android:style/Animation.Activity">
<item name="android:activityOpenEnterAnimation">@anim/recents_launch_from_launcher_enter</item>
diff --git a/telecomm/java/android/telecom/Conference.java b/telecomm/java/android/telecom/Conference.java
index d1e150f..9b350c1 100644
--- a/telecomm/java/android/telecom/Conference.java
+++ b/telecomm/java/android/telecom/Conference.java
@@ -43,6 +43,7 @@
Collections.unmodifiableList(mChildConnections);
private PhoneAccountHandle mPhoneAccount;
+ private AudioState mAudioState;
private int mState = Connection.STATE_NEW;
private DisconnectCause mDisconnectCause;
private int mCapabilities;
@@ -94,6 +95,15 @@
}
/**
+ * @return The audio state of the conference, describing how its audio is currently
+ * being routed by the system. This is {@code null} if this Conference
+ * does not directly know about its audio state.
+ */
+ public final AudioState getAudioState() {
+ return mAudioState;
+ }
+
+ /**
* Invoked when the Conference and all it's {@link Connection}s should be disconnected.
*/
public void onDisconnect() {}
@@ -128,6 +138,25 @@
public void onSwap() {}
/**
+ * Notifies this conference of a request to play a DTMF tone.
+ *
+ * @param c A DTMF character.
+ */
+ public void onPlayDtmfTone(char c) {}
+
+ /**
+ * Notifies this conference of a request to stop any currently playing DTMF tones.
+ */
+ public void onStopDtmfTone() {}
+
+ /**
+ * Notifies this conference that the {@link #getAudioState()} property has a new value.
+ *
+ * @param state The new call audio state.
+ */
+ public void onAudioStateChanged(AudioState state) {}
+
+ /**
* Sets state to be on hold.
*/
public final void setOnHold() {
@@ -251,6 +280,18 @@
return this;
}
+ /**
+ * Inform this Conference that the state of its audio output has been changed externally.
+ *
+ * @param state The new audio state.
+ * @hide
+ */
+ final void setAudioState(AudioState state) {
+ Log.d(this, "setAudioState %s", state);
+ mAudioState = state;
+ onAudioStateChanged(state);
+ }
+
private void setState(int newState) {
if (newState != Connection.STATE_ACTIVE &&
newState != Connection.STATE_HOLDING &&
diff --git a/telecomm/java/android/telecom/ConnectionService.java b/telecomm/java/android/telecom/ConnectionService.java
index 0da0adb..3e18bac 100644
--- a/telecomm/java/android/telecom/ConnectionService.java
+++ b/telecomm/java/android/telecom/ConnectionService.java
@@ -400,7 +400,7 @@
@Override
public void onDisconnected(Connection c, DisconnectCause disconnectCause) {
String id = mIdByConnection.get(c);
- Log.d(this, "Adapter set disconnected %d %s", disconnectCause);
+ Log.d(this, "Adapter set disconnected %s", disconnectCause);
mAdapter.setDisconnected(id, disconnectCause);
}
@@ -607,17 +607,29 @@
private void onAudioStateChanged(String callId, AudioState audioState) {
Log.d(this, "onAudioStateChanged %s %s", callId, audioState);
- findConnectionForAction(callId, "onAudioStateChanged").setAudioState(audioState);
+ if (mConnectionById.containsKey(callId)) {
+ findConnectionForAction(callId, "onAudioStateChanged").setAudioState(audioState);
+ } else {
+ findConferenceForAction(callId, "onAudioStateChanged").setAudioState(audioState);
+ }
}
private void playDtmfTone(String callId, char digit) {
Log.d(this, "playDtmfTone %s %c", callId, digit);
- findConnectionForAction(callId, "playDtmfTone").onPlayDtmfTone(digit);
+ if (mConnectionById.containsKey(callId)) {
+ findConnectionForAction(callId, "playDtmfTone").onPlayDtmfTone(digit);
+ } else {
+ findConferenceForAction(callId, "playDtmfTone").onPlayDtmfTone(digit);
+ }
}
private void stopDtmfTone(String callId) {
Log.d(this, "stopDtmfTone %s", callId);
- findConnectionForAction(callId, "stopDtmfTone").onStopDtmfTone();
+ if (mConnectionById.containsKey(callId)) {
+ findConnectionForAction(callId, "stopDtmfTone").onStopDtmfTone();
+ } else {
+ findConferenceForAction(callId, "stopDtmfTone").onStopDtmfTone();
+ }
}
private void conference(String callId1, String callId2) {
diff --git a/telecomm/java/android/telecom/PhoneAccount.java b/telecomm/java/android/telecom/PhoneAccount.java
index 0c233eb..4b059b2 100644
--- a/telecomm/java/android/telecom/PhoneAccount.java
+++ b/telecomm/java/android/telecom/PhoneAccount.java
@@ -91,17 +91,6 @@
public static final int CAPABILITY_PLACE_EMERGENCY_CALLS = 0x10;
/**
- * Flag indicating that this {@code PhoneAccount} is always enabled and cannot be disabled by
- * the user.
- * This capability is reserved for important {@code PhoneAccount}s such as the emergency calling
- * only {@code PhoneAccount}.
- * <p>
- * See {@link #getCapabilities}
- * @hide
- */
- public static final int CAPABILITY_ALWAYS_ENABLED = 0x20;
-
- /**
* URI scheme for telephone number URIs.
*/
public static final String SCHEME_TEL = "tel";
@@ -124,7 +113,6 @@
private final CharSequence mLabel;
private final CharSequence mShortDescription;
private final List<String> mSupportedUriSchemes;
- private final boolean mIsEnabled;
public static class Builder {
private PhoneAccountHandle mAccountHandle;
@@ -135,7 +123,6 @@
private CharSequence mLabel;
private CharSequence mShortDescription;
private List<String> mSupportedUriSchemes = new ArrayList<String>();
- private boolean mIsEnabled = false;
public Builder(PhoneAccountHandle accountHandle, CharSequence label) {
this.mAccountHandle = accountHandle;
@@ -157,7 +144,6 @@
mLabel = phoneAccount.getLabel();
mShortDescription = phoneAccount.getShortDescription();
mSupportedUriSchemes.addAll(phoneAccount.getSupportedUriSchemes());
- mIsEnabled = phoneAccount.isEnabled();
}
public Builder setAddress(Uri value) {
@@ -217,19 +203,6 @@
}
/**
- * Specifies whether the {@link PhoneAccount} is enabled or not. {@link PhoneAccount}s are
- * by default not enabled.
- *
- * @param value {@code True} if the {@link PhoneAccount} is enabled.
- * @return The Builder.
- * @hide
- */
- public Builder setEnabled(boolean value) {
- this.mIsEnabled = value;
- return this;
- }
-
- /**
* Creates an instance of a {@link PhoneAccount} based on the current builder settings.
*
* @return The {@link PhoneAccount}.
@@ -248,8 +221,7 @@
mIconResId,
mLabel,
mShortDescription,
- mSupportedUriSchemes,
- mIsEnabled);
+ mSupportedUriSchemes);
}
}
@@ -261,8 +233,7 @@
int iconResId,
CharSequence label,
CharSequence shortDescription,
- List<String> supportedUriSchemes,
- boolean enabled) {
+ List<String> supportedUriSchemes) {
mAccountHandle = account;
mAddress = address;
mSubscriptionAddress = subscriptionAddress;
@@ -271,7 +242,6 @@
mLabel = label;
mShortDescription = shortDescription;
mSupportedUriSchemes = Collections.unmodifiableList(supportedUriSchemes);
- mIsEnabled = enabled;
}
public static Builder builder(
@@ -392,15 +362,6 @@
}
/**
- * Determines whether this {@code PhoneAccount} is enabled.
- *
- * @return {@code True} if this {@code PhoneAccount} is enabled..
- */
- public boolean isEnabled() {
- return mIsEnabled;
- }
-
- /**
* The icon resource ID for the icon of this {@code PhoneAccount}.
*
* @return A resource ID.
@@ -455,7 +416,6 @@
out.writeCharSequence(mLabel);
out.writeCharSequence(mShortDescription);
out.writeList(mSupportedUriSchemes);
- out.writeInt(mIsEnabled ? 1 : 0);
}
public static final Creator<PhoneAccount> CREATOR
@@ -485,6 +445,5 @@
List<String> supportedUriSchemes = new ArrayList<>();
in.readList(supportedUriSchemes, classLoader);
mSupportedUriSchemes = Collections.unmodifiableList(supportedUriSchemes);
- mIsEnabled = in.readInt() == 1;
}
}
diff --git a/telecomm/java/android/telecom/RemoteConference.java b/telecomm/java/android/telecom/RemoteConference.java
index 0cf84d0..f931bc5 100644
--- a/telecomm/java/android/telecom/RemoteConference.java
+++ b/telecomm/java/android/telecom/RemoteConference.java
@@ -181,6 +181,27 @@
return mDisconnectCause;
}
+ public void playDtmfTone(char digit) {
+ try {
+ mConnectionService.playDtmfTone(mId, digit);
+ } catch (RemoteException e) {
+ }
+ }
+
+ public void stopDtmfTone() {
+ try {
+ mConnectionService.stopDtmfTone(mId);
+ } catch (RemoteException e) {
+ }
+ }
+
+ public void setAudioState(AudioState state) {
+ try {
+ mConnectionService.onAudioStateChanged(mId, state);
+ } catch (RemoteException e) {
+ }
+ }
+
public final void registerCallback(Callback callback) {
mCallbacks.add(callback);
}
diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java
index 4d438ed..a91d92f 100644
--- a/telecomm/java/android/telecom/TelecomManager.java
+++ b/telecomm/java/android/telecom/TelecomManager.java
@@ -71,24 +71,6 @@
"android.telecom.action.CHANGE_PHONE_ACCOUNTS";
/**
- * The {@link android.content.Intent} action used to inform a
- * {@link android.telecom.ConnectionService} that one of its {@link PhoneAccount}s has been
- * enabled. The {@link TelecomManager#EXTRA_PHONE_ACCOUNT_HANDLE} extra is used to indicate
- * which {@link PhoneAccount} has been enabled.
- */
- public static final String ACTION_PHONE_ACCOUNT_ENABLED =
- "android.telecom.action.PHONE_ACCOUNT_ENABLED";
-
- /**
- * The {@link android.content.Intent} action used to inform a
- * {@link android.telecom.ConnectionService} that one of its {@link PhoneAccount}s has been
- * disabled. The {@link TelecomManager#EXTRA_PHONE_ACCOUNT_HANDLE} extra is used to indicate
- * which {@link PhoneAccount} has been disabled.
- */
- public static final String ACTION_PHONE_ACCOUNT_DISABLED =
- "android.telecom.action.PHONE_ACCOUNT_DISABLED";
-
- /**
* Optional extra for {@link android.content.Intent#ACTION_CALL} containing a boolean that
* determines whether the speakerphone should be automatically turned on for an outgoing call.
*/
@@ -325,14 +307,14 @@
/**
* Return the {@link PhoneAccount} which is the user-chosen default for making outgoing phone
* calls with a specified URI scheme. This {@code PhoneAccount} will always be a member of the
- * list which is returned from calling {@link #getEnabledPhoneAccounts()}.
+ * list which is returned from calling {@link #getCallCapablePhoneAccounts()}.
* <p>
* Apps must be prepared for this method to return {@code null}, indicating that there currently
* exists no user-chosen default {@code PhoneAccount}. In this case, apps wishing to initiate a
* phone call must either create their {@link android.content.Intent#ACTION_CALL} or
* {@link android.content.Intent#ACTION_DIAL} {@code Intent} with no
* {@link TelecomManager#EXTRA_PHONE_ACCOUNT_HANDLE}, or present the user with an affordance to
- * select one of the elements of {@link #getEnabledPhoneAccounts()}.
+ * select one of the elements of {@link #getCallCapablePhoneAccounts()}.
* <p>
* An {@link android.content.Intent#ACTION_CALL} or {@link android.content.Intent#ACTION_DIAL}
* {@code Intent} with no {@link TelecomManager#EXTRA_PHONE_ACCOUNT_HANDLE} is valid, and
@@ -355,7 +337,7 @@
/**
* Return the {@link PhoneAccount} which is the user-chosen default for making outgoing phone
* calls. This {@code PhoneAccount} will always be a member of the list which is returned from
- * calling {@link #getEnabledPhoneAccounts()}
+ * calling {@link #getCallCapablePhoneAccounts()}
*
* Apps must be prepared for this method to return {@code null}, indicating that there currently
* exists no user-chosen default {@code PhoneAccount}.
@@ -389,19 +371,19 @@
}
/**
- * Return a list of enabled {@link PhoneAccountHandle}s which can be used to make and receive
- * phone calls.
+ * Return a list of {@link PhoneAccountHandle}s which can be used to make and receive phone
+ * calls.
*
* @see #EXTRA_PHONE_ACCOUNT_HANDLE
* @return A list of {@code PhoneAccountHandle} objects.
*/
- public List<PhoneAccountHandle> getEnabledPhoneAccounts() {
+ public List<PhoneAccountHandle> getCallCapablePhoneAccounts() {
try {
if (isServiceConnected()) {
- return getTelecomService().getEnabledPhoneAccounts();
+ return getTelecomService().getCallCapablePhoneAccounts();
}
} catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecomService#getEnabledPhoneAccounts", e);
+ Log.e(TAG, "Error calling ITelecomService#getCallCapablePhoneAccounts", e);
}
return new ArrayList<>();
}
@@ -467,8 +449,8 @@
}
/**
- * Returns a list of the enabled {@link PhoneAccountHandle}s which can be used to make and
- * receive phone calls which support the specified URI scheme.
+ * Returns a list of the {@link PhoneAccountHandle}s which can be used to make and receive phone
+ * calls which support the specified URI scheme.
* <P>
* For example, invoking with {@code "tel"} will find all {@link PhoneAccountHandle}s which
* support telephone calls (e.g. URIs such as {@code tel:555-555-1212}). Invoking with
@@ -490,13 +472,14 @@
}
/**
- * Determine whether the device has more than one account registered and enabled.
+ * Determine whether the device has more than one account registered that can make and receive
+ * phone calls.
*
- * @return {@code true} if the device has more than one account registered and enabled and
- * {@code false} otherwise.
+ * @return {@code true} if the device has more than one account registered and {@code false}
+ * otherwise.
*/
- public boolean hasMultipleEnabledAccounts() {
- return getEnabledPhoneAccounts().size() > 1;
+ public boolean hasMultipleCallCapableAccounts() {
+ return getCallCapablePhoneAccounts().size() > 1;
}
/**
@@ -518,9 +501,9 @@
}
/**
- * Returns a count of enabled and disabled {@link PhoneAccount}s.
+ * Returns a count of all {@link PhoneAccount}s.
*
- * @return The count of enabled and disabled {@link PhoneAccount}s.
+ * @return The count of {@link PhoneAccount}s.
* @hide
*/
@SystemApi
@@ -572,24 +555,6 @@
}
/**
- * Enables or disables a {@link PhoneAccount}.
- *
- * @param account The {@link PhoneAccountHandle} to enable or disable.
- * @param isEnabled {@code True} if the phone account should be enabled.
- * @hide
- */
- @SystemApi
- public void setPhoneAccountEnabled(PhoneAccountHandle account, boolean isEnabled) {
- try {
- if (isServiceConnected()) {
- getTelecomService().setPhoneAccountEnabled(account, isEnabled);
- }
- } catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecomService#setPhoneAccountEnabled", e);
- }
- }
-
- /**
* Register a {@link PhoneAccount} for use by the system.
*
* @param account The complete {@link PhoneAccount}.
@@ -797,9 +762,8 @@
/**
* Registers a new incoming call. A {@link ConnectionService} should invoke this method when it
* has an incoming call. The specified {@link PhoneAccountHandle} must have been registered
- * with {@link #registerPhoneAccount} and subsequently enabled by the user within the phone's
- * settings. Once invoked, this method will cause the system to bind to the
- * {@link ConnectionService} associated with the {@link PhoneAccountHandle} and request
+ * with {@link #registerPhoneAccount}. Once invoked, this method will cause the system to bind
+ * to the {@link ConnectionService} associated with the {@link PhoneAccountHandle} and request
* additional information about the call (See
* {@link ConnectionService#onCreateIncomingConnection}) before starting the incoming call UI.
*
diff --git a/telecomm/java/com/android/internal/telecom/ITelecomService.aidl b/telecomm/java/com/android/internal/telecom/ITelecomService.aidl
index 4875cc3..77a80fe 100644
--- a/telecomm/java/com/android/internal/telecom/ITelecomService.aidl
+++ b/telecomm/java/com/android/internal/telecom/ITelecomService.aidl
@@ -50,9 +50,9 @@
void setUserSelectedOutgoingPhoneAccount(in PhoneAccountHandle account);
/**
- * @see TelecomServiceImpl#getEnabledPhoneAccounts
+ * @see TelecomServiceImpl#getCallCapablePhoneAccounts
*/
- List<PhoneAccountHandle> getEnabledPhoneAccounts();
+ List<PhoneAccountHandle> getCallCapablePhoneAccounts();
/**
* @see TelecomManager#getPhoneAccountsSupportingScheme
@@ -95,11 +95,6 @@
List<PhoneAccountHandle> getSimCallManagers();
/**
- * @see TelecomServiceImpl#setPhoneAccountEnabled
- */
- void setPhoneAccountEnabled(in PhoneAccountHandle account, in boolean isEnabled);
-
- /**
* @see TelecomServiceImpl#registerPhoneAccount
*/
void registerPhoneAccount(in PhoneAccount metadata);