More video related API fixes
android.telecom.Connection.VideoProvider
* onSetPauseImage takes Uri instead of String
* changeCallDataUsage -> setCallDataUsage
* add quality constants to changeVideoQuality() docs
android.telecom.InCallService.VideoCall
* setPauseImage takes Uri instea dof String
android.telecom.VideoProfile.VideoState
* Move constants to VideoProfile, prefix with STATE_
Bug: 21040387
Bug: 21066505
Change-Id: I764e72aced9d1e2d30d6d0cf0862100860d47c79
diff --git a/telecomm/java/android/telecom/Call.java b/telecomm/java/android/telecom/Call.java
index adab00b..d74c61c 100644
--- a/telecomm/java/android/telecom/Call.java
+++ b/telecomm/java/android/telecom/Call.java
@@ -202,7 +202,7 @@
/**
* For video calls, indicates whether the outgoing video for the call can be paused using
- * the {@link android.telecom.VideoProfile.VideoState#PAUSED} VideoState.
+ * the {@link android.telecom.VideoProfile#STATE_PAUSED} VideoState.
*/
public static final int CAPABILITY_CAN_PAUSE_VIDEO = 0x00100000;
diff --git a/telecomm/java/android/telecom/Conference.java b/telecomm/java/android/telecom/Conference.java
index e2971f9..6fa94b9 100644
--- a/telecomm/java/android/telecom/Conference.java
+++ b/telecomm/java/android/telecom/Conference.java
@@ -366,10 +366,10 @@
/**
* Set the video state for the conference.
- * Valid values: {@link VideoProfile.VideoState#AUDIO_ONLY},
- * {@link VideoProfile.VideoState#BIDIRECTIONAL},
- * {@link VideoProfile.VideoState#TX_ENABLED},
- * {@link VideoProfile.VideoState#RX_ENABLED}.
+ * Valid values: {@link VideoProfile#STATE_AUDIO_ONLY},
+ * {@link VideoProfile#STATE_BIDIRECTIONAL},
+ * {@link VideoProfile#STATE_TX_ENABLED},
+ * {@link VideoProfile#STATE_RX_ENABLED}.
*
* @param videoState The new video state.
*/
diff --git a/telecomm/java/android/telecom/Connection.java b/telecomm/java/android/telecom/Connection.java
index 5076c38..2ee5d25 100644
--- a/telecomm/java/android/telecom/Connection.java
+++ b/telecomm/java/android/telecom/Connection.java
@@ -186,7 +186,7 @@
/**
* For video calls, indicates whether the outgoing video for the call can be paused using
- * the {@link android.telecom.VideoProfile.VideoState#PAUSED} VideoState.
+ * the {@link android.telecom.VideoProfile#STATE_PAUSED} VideoState.
*/
public static final int CAPABILITY_CAN_PAUSE_VIDEO = 0x00100000;
@@ -484,7 +484,7 @@
onRequestConnectionDataUsage();
break;
case MSG_SET_PAUSE_IMAGE:
- onSetPauseImage((String) msg.obj);
+ onSetPauseImage((Uri) msg.obj);
break;
default:
break;
@@ -547,7 +547,7 @@
mMessageHandler.obtainMessage(MSG_REQUEST_CONNECTION_DATA_USAGE).sendToTarget();
}
- public void setPauseImage(String uri) {
+ public void setPauseImage(Uri uri) {
mMessageHandler.obtainMessage(MSG_SET_PAUSE_IMAGE, uri).sendToTarget();
}
}
@@ -642,7 +642,7 @@
*
* @param uri URI of image to display.
*/
- public abstract void onSetPauseImage(String uri);
+ public abstract void onSetPauseImage(Uri uri);
/**
* Invokes callback method defined in listening {@link InCallService} implementations.
@@ -726,7 +726,7 @@
*
* @param dataUsage The updated data usage.
*/
- public void changeCallDataUsage(long dataUsage) {
+ public void setCallDataUsage(long dataUsage) {
if (mVideoCallbacks != null) {
try {
for (IVideoCallback callback : mVideoCallbacks.values()) {
@@ -740,6 +740,17 @@
/**
* Invokes callback method defined in listening {@link InCallService} implementations.
*
+ * @param dataUsage The updated data usage.
+ * @deprecated - Use {@link #setCallDataUsage(long)} instead.
+ * @hide
+ */
+ public void changeCallDataUsage(long dataUsage) {
+ setCallDataUsage(dataUsage);
+ }
+
+ /**
+ * Invokes callback method defined in listening {@link InCallService} implementations.
+ *
* @param cameraCapabilities The changed camera capabilities.
*/
public void changeCameraCapabilities(VideoProfile.CameraCapabilities cameraCapabilities) {
@@ -756,6 +767,12 @@
/**
* Invokes callback method defined in listening {@link InCallService} implementations.
*
+ * Allowed values:
+ * {@link VideoProfile#QUALITY_HIGH},
+ * {@link VideoProfile#QUALITY_MEDIUM},
+ * {@link VideoProfile#QUALITY_LOW},
+ * {@link VideoProfile#QUALITY_DEFAULT}.
+ *
* @param videoQuality The updated video quality.
*/
public void changeVideoQuality(int videoQuality) {
@@ -859,10 +876,10 @@
/**
* Returns the video state of the connection.
- * Valid values: {@link VideoProfile.VideoState#AUDIO_ONLY},
- * {@link VideoProfile.VideoState#BIDIRECTIONAL},
- * {@link VideoProfile.VideoState#TX_ENABLED},
- * {@link VideoProfile.VideoState#RX_ENABLED}.
+ * Valid values: {@link VideoProfile#STATE_AUDIO_ONLY},
+ * {@link VideoProfile#STATE_BIDIRECTIONAL},
+ * {@link VideoProfile#STATE_TX_ENABLED},
+ * {@link VideoProfile#STATE_RX_ENABLED}.
*
* @return The video state of the connection.
* @hide
@@ -1027,10 +1044,10 @@
/**
* Set the video state for the connection.
- * Valid values: {@link VideoProfile.VideoState#AUDIO_ONLY},
- * {@link VideoProfile.VideoState#BIDIRECTIONAL},
- * {@link VideoProfile.VideoState#TX_ENABLED},
- * {@link VideoProfile.VideoState#RX_ENABLED}.
+ * Valid values: {@link VideoProfile#STATE_AUDIO_ONLY},
+ * {@link VideoProfile#STATE_BIDIRECTIONAL},
+ * {@link VideoProfile#STATE_TX_ENABLED},
+ * {@link VideoProfile#STATE_RX_ENABLED}.
*
* @param videoState The new video state.
*/
diff --git a/telecomm/java/android/telecom/ConnectionRequest.java b/telecomm/java/android/telecom/ConnectionRequest.java
index f5cceea..975df5d 100644
--- a/telecomm/java/android/telecom/ConnectionRequest.java
+++ b/telecomm/java/android/telecom/ConnectionRequest.java
@@ -88,10 +88,10 @@
/**
* Describes the video states supported by the client requesting the connection.
- * Valid values: {@link VideoProfile.VideoState#AUDIO_ONLY},
- * {@link VideoProfile.VideoState#BIDIRECTIONAL},
- * {@link VideoProfile.VideoState#TX_ENABLED},
- * {@link VideoProfile.VideoState#RX_ENABLED}.
+ * Valid values: {@link VideoProfile#STATE_AUDIO_ONLY},
+ * {@link VideoProfile#STATE_BIDIRECTIONAL},
+ * {@link VideoProfile#STATE_TX_ENABLED},
+ * {@link VideoProfile#STATE_RX_ENABLED}.
*
* @return The video state for the connection.
*/
diff --git a/telecomm/java/android/telecom/InCallService.java b/telecomm/java/android/telecom/InCallService.java
index 63a416b..182a7f5 100644
--- a/telecomm/java/android/telecom/InCallService.java
+++ b/telecomm/java/android/telecom/InCallService.java
@@ -20,6 +20,7 @@
import android.annotation.SystemApi;
import android.app.Service;
import android.content.Intent;
+import android.net.Uri;
import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
@@ -466,7 +467,7 @@
*
* @param uri URI of image to display.
*/
- public abstract void setPauseImage(String uri);
+ public abstract void setPauseImage(Uri uri);
/**
* Callback class which invokes callbacks after video call actions occur.
diff --git a/telecomm/java/android/telecom/RemoteConnection.java b/telecomm/java/android/telecom/RemoteConnection.java
index f2e6bcb..19bb3f1 100644
--- a/telecomm/java/android/telecom/RemoteConnection.java
+++ b/telecomm/java/android/telecom/RemoteConnection.java
@@ -379,7 +379,7 @@
}
}
- public void setPauseImage(String uri) {
+ public void setPauseImage(Uri uri) {
try {
mVideoProviderBinder.setPauseImage(uri);
} catch (RemoteException e) {
diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java
index ebd3f12..b2c036c 100644
--- a/telecomm/java/android/telecom/TelecomManager.java
+++ b/telecomm/java/android/telecom/TelecomManager.java
@@ -142,10 +142,10 @@
* Optional extra for {@link android.content.Intent#ACTION_CALL} containing an integer that
* determines the desired video state for an outgoing call.
* Valid options:
- * {@link VideoProfile.VideoState#AUDIO_ONLY},
- * {@link VideoProfile.VideoState#BIDIRECTIONAL},
- * {@link VideoProfile.VideoState#RX_ENABLED},
- * {@link VideoProfile.VideoState#TX_ENABLED}.
+ * {@link VideoProfile#STATE_AUDIO_ONLY},
+ * {@link VideoProfile#STATE_BIDIRECTIONAL},
+ * {@link VideoProfile#STATE_RX_ENABLED},
+ * {@link VideoProfile#STATE_TX_ENABLED}.
*/
public static final String EXTRA_START_CALL_WITH_VIDEO_STATE =
"android.telecom.extra.START_CALL_WITH_VIDEO_STATE";
diff --git a/telecomm/java/android/telecom/VideoCallImpl.java b/telecomm/java/android/telecom/VideoCallImpl.java
index 5352dfc..c8072d1 100644
--- a/telecomm/java/android/telecom/VideoCallImpl.java
+++ b/telecomm/java/android/telecom/VideoCallImpl.java
@@ -16,6 +16,7 @@
package android.telecom;
+import android.net.Uri;
import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
@@ -302,7 +303,7 @@
}
/** {@inheritDoc} */
- public void setPauseImage(String uri) {
+ public void setPauseImage(Uri uri) {
try {
mVideoProvider.setPauseImage(uri);
} catch (RemoteException e) {
diff --git a/telecomm/java/android/telecom/VideoProfile.java b/telecomm/java/android/telecom/VideoProfile.java
index 7ac4090..71de505 100644
--- a/telecomm/java/android/telecom/VideoProfile.java
+++ b/telecomm/java/android/telecom/VideoProfile.java
@@ -48,6 +48,31 @@
*/
public static final int QUALITY_DEFAULT = 4;
+ /**
+ * Call is currently in an audio-only mode with no video transmission or receipt.
+ */
+ public static final int STATE_AUDIO_ONLY = 0x0;
+
+ /**
+ * Video transmission is enabled.
+ */
+ public static final int STATE_TX_ENABLED = 0x1;
+
+ /**
+ * Video reception is enabled.
+ */
+ public static final int STATE_RX_ENABLED = 0x2;
+
+ /**
+ * Video signal is bi-directional.
+ */
+ public static final int STATE_BIDIRECTIONAL = STATE_TX_ENABLED | STATE_RX_ENABLED;
+
+ /**
+ * Video is paused.
+ */
+ public static final int STATE_PAUSED = 0x4;
+
private final int mVideoState;
private final int mQuality;
@@ -74,11 +99,11 @@
/**
* The video state of the call.
- * Valid values: {@link VideoProfile.VideoState#AUDIO_ONLY},
- * {@link VideoProfile.VideoState#BIDIRECTIONAL},
- * {@link VideoProfile.VideoState#TX_ENABLED},
- * {@link VideoProfile.VideoState#RX_ENABLED},
- * {@link VideoProfile.VideoState#PAUSED}.
+ * Valid values: {@link VideoProfile#STATE_AUDIO_ONLY},
+ * {@link VideoProfile#STATE_BIDIRECTIONAL},
+ * {@link VideoProfile#STATE_TX_ENABLED},
+ * {@link VideoProfile#STATE_RX_ENABLED},
+ * {@link VideoProfile#STATE_PAUSED}.
*/
public int getVideoState() {
return mVideoState;
@@ -162,28 +187,41 @@
public static class VideoState {
/**
* Call is currently in an audio-only mode with no video transmission or receipt.
+ * @deprecated Use {@link VideoProfile#STATE_AUDIO_ONLY} instead
+ * @hide
*/
- public static final int AUDIO_ONLY = 0x0;
+ public static final int AUDIO_ONLY = VideoProfile.STATE_AUDIO_ONLY;
/**
* Video transmission is enabled.
+ * @deprecated Use {@link VideoProfile#STATE_TX_ENABLED} instead
+ * @hide
*/
- public static final int TX_ENABLED = 0x1;
+ public static final int TX_ENABLED = VideoProfile.STATE_TX_ENABLED;
/**
* Video reception is enabled.
+ * @deprecated Use {@link VideoProfile#STATE_RX_ENABLED} instead
+ * @hide
*/
- public static final int RX_ENABLED = 0x2;
+ public static final int RX_ENABLED = VideoProfile.STATE_RX_ENABLED;
/**
* Video signal is bi-directional.
+ * @deprecated Use {@link VideoProfile#STATE_BIDIRECTIONAL} instead
+ * @hide
*/
- public static final int BIDIRECTIONAL = TX_ENABLED | RX_ENABLED;
+ public static final int BIDIRECTIONAL = VideoProfile.STATE_BIDIRECTIONAL;
/**
* Video is paused.
+ * @deprecated Use {@link VideoProfile#STATE_PAUSED} instead
+ * @hide
*/
- public static final int PAUSED = 0x4;
+ public static final int PAUSED = VideoProfile.STATE_PAUSED;
+
+ /** @hide */
+ private VideoState() {}
/**
* Whether the video state is audio only.
@@ -191,7 +229,8 @@
* @return Returns true if the video state is audio only.
*/
public static boolean isAudioOnly(int videoState) {
- return !hasState(videoState, TX_ENABLED) && !hasState(videoState, RX_ENABLED);
+ return !hasState(videoState, VideoProfile.STATE_TX_ENABLED)
+ && !hasState(videoState, VideoProfile.STATE_RX_ENABLED);
}
/**
@@ -201,8 +240,9 @@
* @return Returns true if the video state TX or RX or Bidirectional
*/
public static boolean isVideo(int videoState) {
- return hasState(videoState, TX_ENABLED) || hasState(videoState, RX_ENABLED)
- || hasState(videoState, BIDIRECTIONAL);
+ return hasState(videoState, VideoProfile.STATE_TX_ENABLED)
+ || hasState(videoState, VideoProfile.STATE_RX_ENABLED)
+ || hasState(videoState, VideoProfile.STATE_BIDIRECTIONAL);
}
/**
@@ -211,7 +251,7 @@
* @return Returns true if the video transmission is enabled.
*/
public static boolean isTransmissionEnabled(int videoState) {
- return hasState(videoState, TX_ENABLED);
+ return hasState(videoState, VideoProfile.STATE_TX_ENABLED);
}
/**
@@ -220,7 +260,7 @@
* @return Returns true if the video transmission is enabled.
*/
public static boolean isReceptionEnabled(int videoState) {
- return hasState(videoState, RX_ENABLED);
+ return hasState(videoState, VideoProfile.STATE_RX_ENABLED);
}
/**
@@ -229,7 +269,7 @@
* @return Returns true if the video signal is bi-directional.
*/
public static boolean isBidirectional(int videoState) {
- return hasState(videoState, BIDIRECTIONAL);
+ return hasState(videoState, VideoProfile.STATE_BIDIRECTIONAL);
}
/**
@@ -238,7 +278,7 @@
* @return Returns true if the video is paused.
*/
public static boolean isPaused(int videoState) {
- return hasState(videoState, PAUSED);
+ return hasState(videoState, VideoProfile.STATE_PAUSED);
}
/**