diff options
Diffstat (limited to 'telecomm/java/android')
| -rw-r--r-- | telecomm/java/android/telecom/CameraCapabilities.aidl | 22 | ||||
| -rw-r--r-- | telecomm/java/android/telecom/CameraCapabilities.java | 157 | ||||
| -rw-r--r-- | telecomm/java/android/telecom/Conference.java | 39 | ||||
| -rw-r--r-- | telecomm/java/android/telecom/Connection.java | 2 | ||||
| -rw-r--r-- | telecomm/java/android/telecom/InCallService.java | 3 | ||||
| -rw-r--r-- | telecomm/java/android/telecom/PhoneAccount.java | 2 | ||||
| -rw-r--r-- | telecomm/java/android/telecom/PhoneAccountHandle.java | 2 | ||||
| -rw-r--r-- | telecomm/java/android/telecom/RemoteConference.java | 119 | ||||
| -rw-r--r-- | telecomm/java/android/telecom/RemoteConnection.java | 5 | ||||
| -rw-r--r-- | telecomm/java/android/telecom/VideoCallImpl.java | 4 | ||||
| -rw-r--r-- | telecomm/java/android/telecom/VideoCallbackServant.java | 5 | ||||
| -rw-r--r-- | telecomm/java/android/telecom/VideoProfile.aidl | 1 | ||||
| -rw-r--r-- | telecomm/java/android/telecom/VideoProfile.java | 138 |
13 files changed, 293 insertions, 206 deletions
diff --git a/telecomm/java/android/telecom/CameraCapabilities.aidl b/telecomm/java/android/telecom/CameraCapabilities.aidl deleted file mode 100644 index c8e0c5e..0000000 --- a/telecomm/java/android/telecom/CameraCapabilities.aidl +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (C) 2014 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package android.telecom; - -/** - * {@hide} - */ -parcelable CameraCapabilities; diff --git a/telecomm/java/android/telecom/CameraCapabilities.java b/telecomm/java/android/telecom/CameraCapabilities.java deleted file mode 100644 index 6242956..0000000 --- a/telecomm/java/android/telecom/CameraCapabilities.java +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Copyright (C) 2014 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package android.telecom; - -import android.os.Parcel; -import android.os.Parcelable; - -/** - * Represents the camera capabilities important to a Video Telephony provider. - */ -public final class CameraCapabilities implements Parcelable { - - /** - * The width of the camera video in pixels. - */ - private final int mWidth; - - /** - * The height of the camera video in pixels. - */ - private final int mHeight; - - /** - * Whether the camera supports zoom. - */ - private final boolean mZoomSupported; - - /** - * The maximum zoom supported by the camera. - */ - private final float mMaxZoom; - - /** - * Create a call camera capabilities instance. - * - * @param width The width of the camera video (in pixels). - * @param height The height of the camera video (in pixels). - */ - public CameraCapabilities(int width, int height) { - this(width, height, false, 1.0f); - } - - /** - * Create a call camera capabilities instance that optionally - * supports zoom. - * - * @param width The width of the camera video (in pixels). - * @param height The height of the camera video (in pixels). - * @param zoomSupported True when camera supports zoom. - * @param maxZoom Maximum zoom supported by camera. - * @hide - */ - public CameraCapabilities(int width, int height, boolean zoomSupported, float maxZoom) { - mWidth = width; - mHeight = height; - mZoomSupported = zoomSupported; - mMaxZoom = maxZoom; - } - - /** - * Responsible for creating CallCameraCapabilities objects from deserialized Parcels. - **/ - public static final Parcelable.Creator<CameraCapabilities> CREATOR = - new Parcelable.Creator<CameraCapabilities> () { - /** - * Creates a CallCameraCapabilities instances from a parcel. - * - * @param source The parcel. - * @return The CallCameraCapabilities. - */ - @Override - public CameraCapabilities createFromParcel(Parcel source) { - int width = source.readInt(); - int height = source.readInt(); - boolean supportsZoom = source.readByte() != 0; - float maxZoom = source.readFloat(); - - return new CameraCapabilities(width, height, supportsZoom, maxZoom); - } - - @Override - public CameraCapabilities[] newArray(int size) { - return new CameraCapabilities[size]; - } - }; - - /** - * Describe the kinds of special objects contained in this Parcelable's - * marshalled representation. - * - * @return a bitmask indicating the set of special object types marshalled - * by the Parcelable. - */ - @Override - public int describeContents() { - return 0; - } - - /** - * Flatten this object in to a Parcel. - * - * @param dest The Parcel in which the object should be written. - * @param flags Additional flags about how the object should be written. - * May be 0 or {@link #PARCELABLE_WRITE_RETURN_VALUE}. - */ - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeInt(getWidth()); - dest.writeInt(getHeight()); - dest.writeByte((byte) (isZoomSupported() ? 1 : 0)); - dest.writeFloat(getMaxZoom()); - } - - /** - * The width of the camera video in pixels. - */ - public int getWidth() { - return mWidth; - } - - /** - * The height of the camera video in pixels. - */ - public int getHeight() { - return mHeight; - } - - /** - * Whether the camera supports zoom. - * @hide - */ - public boolean isZoomSupported() { - return mZoomSupported; - } - - /** - * The maximum zoom supported by the camera. - * @hide - */ - public float getMaxZoom() { - return mMaxZoom; - } -} diff --git a/telecomm/java/android/telecom/Conference.java b/telecomm/java/android/telecom/Conference.java index e682697..e2971f9 100644 --- a/telecomm/java/android/telecom/Conference.java +++ b/telecomm/java/android/telecom/Conference.java @@ -16,6 +16,7 @@ package android.telecom; +import android.annotation.SystemApi; import android.telecom.Connection.VideoProvider; import java.util.ArrayList; @@ -116,7 +117,7 @@ public abstract class Conference implements Conferenceable { } /** - * Returns the capabilities of a conference. See {@code CAPABILITY_*} constants in class + * Returns the capabilities of the conference. See {@code CAPABILITY_*} constants in class * {@link Connection} for valid values. * * @return A bitmask of the capabilities of the conference call. @@ -458,7 +459,9 @@ public abstract class Conference implements Conferenceable { * the connection from which the conference will retrieve its current state. * * @return The primary connection. + * @hide */ + @SystemApi public Connection getPrimaryConnection() { if (mUnmodifiableChildConnections == null || mUnmodifiableChildConnections.isEmpty()) { return null; @@ -467,22 +470,42 @@ public abstract class Conference implements Conferenceable { } /** - * Sets the connect time of the {@code Conference}. + * @hide + * @deprecated Use {@link #setConnectionTime}. + */ + @Deprecated + @SystemApi + public final void setConnectTimeMillis(long connectTimeMillis) { + setConnectionTime(connectTimeMillis); + } + + /** + * Sets the connection start time of the {@code Conference}. * - * @param connectTimeMillis The connection time, in milliseconds. + * @param connectionTimeMillis The connection time, in milliseconds. */ - public void setConnectTimeMillis(long connectTimeMillis) { - mConnectTimeMillis = connectTimeMillis; + public final void setConnectionTime(long connectionTimeMillis) { + mConnectTimeMillis = connectionTimeMillis; } /** - * Retrieves the connect time of the {@code Conference}, if specified. A value of + * @hide + * @deprecated Use {@link #getConnectionTime}. + */ + @Deprecated + @SystemApi + public final long getConnectTimeMillis() { + return getConnectionTime(); + } + + /** + * Retrieves the connection start time of the {@code Conference}, if specified. A value of * {@link #CONNECT_TIME_NOT_SPECIFIED} indicates that Telecom should determine the start time * of the conference. * - * @return The time the {@code Conference} has been connected. + * @return The time at which the {@code Conference} was connected. */ - public final long getConnectTimeMillis() { + public final long getConnectionTime() { return mConnectTimeMillis; } diff --git a/telecomm/java/android/telecom/Connection.java b/telecomm/java/android/telecom/Connection.java index 0bf9118..5076c38 100644 --- a/telecomm/java/android/telecom/Connection.java +++ b/telecomm/java/android/telecom/Connection.java @@ -742,7 +742,7 @@ public abstract class Connection implements Conferenceable { * * @param cameraCapabilities The changed camera capabilities. */ - public void changeCameraCapabilities(CameraCapabilities cameraCapabilities) { + public void changeCameraCapabilities(VideoProfile.CameraCapabilities cameraCapabilities) { if (mVideoCallbacks != null) { try { for (IVideoCallback callback : mVideoCallbacks.values()) { diff --git a/telecomm/java/android/telecom/InCallService.java b/telecomm/java/android/telecom/InCallService.java index 3cb4e87..63a416b 100644 --- a/telecomm/java/android/telecom/InCallService.java +++ b/telecomm/java/android/telecom/InCallService.java @@ -546,7 +546,8 @@ public abstract class InCallService extends Service { * * @param cameraCapabilities The changed camera capabilities. */ - public abstract void onCameraCapabilitiesChanged(CameraCapabilities cameraCapabilities); + public abstract void onCameraCapabilitiesChanged( + VideoProfile.CameraCapabilities cameraCapabilities); } } } diff --git a/telecomm/java/android/telecom/PhoneAccount.java b/telecomm/java/android/telecom/PhoneAccount.java index bab460d..86475b1 100644 --- a/telecomm/java/android/telecom/PhoneAccount.java +++ b/telecomm/java/android/telecom/PhoneAccount.java @@ -47,7 +47,7 @@ import java.util.MissingResourceException; * should supply a valid {@link PhoneAccountHandle} that references the connection service * implementation Telecom will use to interact with the app. */ -public class PhoneAccount implements Parcelable { +public final class PhoneAccount implements Parcelable { /** * Flag indicating that this {@code PhoneAccount} can act as a connection manager for diff --git a/telecomm/java/android/telecom/PhoneAccountHandle.java b/telecomm/java/android/telecom/PhoneAccountHandle.java index 60917b2..6dc6e9c 100644 --- a/telecomm/java/android/telecom/PhoneAccountHandle.java +++ b/telecomm/java/android/telecom/PhoneAccountHandle.java @@ -35,7 +35,7 @@ import java.util.Objects; * * See {@link PhoneAccount}, {@link TelecomManager}. */ -public class PhoneAccountHandle implements Parcelable { +public final class PhoneAccountHandle implements Parcelable { private final ComponentName mComponentName; private final String mId; private final UserHandle mUserHandle; diff --git a/telecomm/java/android/telecom/RemoteConference.java b/telecomm/java/android/telecom/RemoteConference.java index a76bf59..b59584b 100644 --- a/telecomm/java/android/telecom/RemoteConference.java +++ b/telecomm/java/android/telecom/RemoteConference.java @@ -29,7 +29,10 @@ import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CopyOnWriteArraySet; /** - * Represents a conference call which can contain any number of {@link Connection} objects. + * A conference provided to a {@link ConnectionService} by another {@code ConnectionService} + * running in a different process. + * + * @see ConnectionService#onRemoteConferenceAdded */ public final class RemoteConference { @@ -62,18 +65,18 @@ public final class RemoteConference { private DisconnectCause mDisconnectCause; private int mConnectionCapabilities; - /** {@hide} */ + /** @hide */ RemoteConference(String id, IConnectionService connectionService) { mId = id; mConnectionService = connectionService; } - /** {@hide} */ + /** @hide */ String getId() { return mId; } - /** {@hide} */ + /** @hide */ void setDestroyed() { for (RemoteConnection connection : mChildConnections) { connection.setConference(null); @@ -90,7 +93,7 @@ public final class RemoteConference { } } - /** {@hide} */ + /** @hide */ void setState(final int newState) { if (newState != Connection.STATE_ACTIVE && newState != Connection.STATE_HOLDING && @@ -116,7 +119,7 @@ public final class RemoteConference { } } - /** {@hide} */ + /** @hide */ void addConnection(final RemoteConnection connection) { if (!mChildConnections.contains(connection)) { mChildConnections.add(connection); @@ -134,7 +137,7 @@ public final class RemoteConference { } } - /** {@hide} */ + /** @hide */ void removeConnection(final RemoteConnection connection) { if (mChildConnections.contains(connection)) { mChildConnections.remove(connection); @@ -152,7 +155,7 @@ public final class RemoteConference { } } - /** {@hide} */ + /** @hide */ void setConnectionCapabilities(final int connectionCapabilities) { if (mConnectionCapabilities != connectionCapabilities) { mConnectionCapabilities = connectionCapabilities; @@ -187,7 +190,7 @@ public final class RemoteConference { } } - /** {@hide} */ + /** @hide */ void setDisconnected(final DisconnectCause disconnectCause) { if (mState != Connection.STATE_DISCONNECTED) { mDisconnectCause = disconnectCause; @@ -205,18 +208,37 @@ public final class RemoteConference { } } + /** + * Returns the list of {@link RemoteConnection}s contained in this conference. + * + * @return A list of child connections. + */ public final List<RemoteConnection> getConnections() { return mUnmodifiableChildConnections; } + /** + * Gets the state of the conference call. See {@link Connection} for valid values. + * + * @return A constant representing the state the conference call is currently in. + */ public final int getState() { return mState; } + /** + * Returns the capabilities of the conference. See {@code CAPABILITY_*} constants in class + * {@link Connection} for valid values. + * + * @return A bitmask of the capabilities of the conference call. + */ public final int getConnectionCapabilities() { return mConnectionCapabilities; } + /** + * Disconnects the conference call as well as the child {@link RemoteConnection}s. + */ public void disconnect() { try { mConnectionService.disconnect(mId); @@ -224,6 +246,13 @@ public final class RemoteConference { } } + /** + * Removes the specified {@link RemoteConnection} from the conference. This causes the + * {@link RemoteConnection} to become a standalone connection. This is a no-op if the + * {@link RemoteConnection} does not belong to this conference. + * + * @param connection The remote-connection to remove. + */ public void separate(RemoteConnection connection) { if (mChildConnections.contains(connection)) { try { @@ -233,6 +262,16 @@ public final class RemoteConference { } } + /** + * Merges all {@link RemoteConnection}s of this conference into a single call. This should be + * invoked only if the conference contains the capability + * {@link Connection#CAPABILITY_MERGE_CONFERENCE}, otherwise it is a no-op. The presence of said + * capability indicates that the connections of this conference, despite being part of the + * same conference object, are yet to have their audio streams merged; this is a common pattern + * for CDMA conference calls, but the capability is not used for GSM and SIP conference calls. + * Invoking this method will cause the unmerged child connections to merge their audio + * streams. + */ public void merge() { try { mConnectionService.mergeConference(mId); @@ -240,6 +279,15 @@ public final class RemoteConference { } } + /** + * Swaps the active audio stream between the conference's child {@link RemoteConnection}s. + * This should be invoked only if the conference contains the capability + * {@link Connection#CAPABILITY_SWAP_CONFERENCE}, otherwise it is a no-op. This is only used by + * {@link ConnectionService}s that create conferences for connections that do not yet have + * their audio streams merged; this is a common pattern for CDMA conference calls, but the + * capability is not used for GSM and SIP conference calls. Invoking this method will change the + * active audio stream to a different child connection. + */ public void swap() { try { mConnectionService.swapConference(mId); @@ -247,6 +295,9 @@ public final class RemoteConference { } } + /** + * Puts the conference on hold. + */ public void hold() { try { mConnectionService.hold(mId); @@ -254,6 +305,9 @@ public final class RemoteConference { } } + /** + * Unholds the conference call. + */ public void unhold() { try { mConnectionService.unhold(mId); @@ -261,10 +315,22 @@ public final class RemoteConference { } } + /** + * Returns the {@link DisconnectCause} for the conference if it is in the state + * {@link Connection#STATE_DISCONNECTED}. If the conference is not disconnected, this will + * return null. + * + * @return The disconnect cause. + */ public DisconnectCause getDisconnectCause() { return mDisconnectCause; } + /** + * Requests that the conference start playing the specified DTMF tone. + * + * @param digit The digit for which to play a DTMF tone. + */ public void playDtmfTone(char digit) { try { mConnectionService.playDtmfTone(mId, digit); @@ -272,6 +338,11 @@ public final class RemoteConference { } } + /** + * Stops the most recent request to play a DTMF tone. + * + * @see #playDtmfTone + */ public void stopDtmfTone() { try { mConnectionService.stopDtmfTone(mId); @@ -279,6 +350,12 @@ public final class RemoteConference { } } + /** + * Request to change the conference's audio routing to the specified state. The specified state + * can include audio routing (Bluetooth, Speaker, etc) and muting state. + * + * @see android.telecom.AudioState + */ public void setAudioState(AudioState state) { try { mConnectionService.onAudioStateChanged(mId, state); @@ -286,14 +363,31 @@ public final class RemoteConference { } } + /** + * Returns a list of independent connections that can me merged with this conference. + * + * @return A list of conferenceable connections. + */ public List<RemoteConnection> getConferenceableConnections() { return mUnmodifiableConferenceableConnections; } + /** + * Register a callback through which to receive state updates for this conference. + * + * @param callback The callback to notify of state changes. + */ public final void registerCallback(Callback callback) { registerCallback(callback, new Handler()); } + /** + * Registers a callback through which to receive state updates for this conference. + * Callbacks will be notified using the specified handler, if provided. + * + * @param callback The callback to notify of state changes. + * @param handler The handler on which to execute the callbacks. + */ public final void registerCallback(Callback callback, Handler handler) { unregisterCallback(callback); if (callback != null && handler != null) { @@ -301,6 +395,13 @@ public final class RemoteConference { } } + /** + * Unregisters a previously registered callback. + * + * @see #registerCallback + * + * @param callback The callback to unregister. + */ public final void unregisterCallback(Callback callback) { if (callback != null) { for (CallbackRecord<Callback> record : mCallbackRecords) { diff --git a/telecomm/java/android/telecom/RemoteConnection.java b/telecomm/java/android/telecom/RemoteConnection.java index 9ca9f31..f2e6bcb 100644 --- a/telecomm/java/android/telecom/RemoteConnection.java +++ b/telecomm/java/android/telecom/RemoteConnection.java @@ -220,7 +220,7 @@ public final class RemoteConnection { public void onCameraCapabilitiesChanged( VideoProvider videoProvider, - CameraCapabilities cameraCapabilities) {} + VideoProfile.CameraCapabilities cameraCapabilities) {} public void onVideoQualityChanged(VideoProvider videoProvider, int videoQuality) {} } @@ -267,7 +267,8 @@ public final class RemoteConnection { } @Override - public void changeCameraCapabilities(CameraCapabilities cameraCapabilities) { + public void changeCameraCapabilities( + VideoProfile.CameraCapabilities cameraCapabilities) { for (Listener l : mListeners) { l.onCameraCapabilitiesChanged(VideoProvider.this, cameraCapabilities); } diff --git a/telecomm/java/android/telecom/VideoCallImpl.java b/telecomm/java/android/telecom/VideoCallImpl.java index 331f57e..5352dfc 100644 --- a/telecomm/java/android/telecom/VideoCallImpl.java +++ b/telecomm/java/android/telecom/VideoCallImpl.java @@ -98,7 +98,7 @@ public class VideoCallImpl extends VideoCall { } @Override - public void changeCameraCapabilities(CameraCapabilities cameraCapabilities) { + public void changeCameraCapabilities(VideoProfile.CameraCapabilities cameraCapabilities) { mHandler.obtainMessage(MessageHandler.MSG_CHANGE_CAMERA_CAPABILITIES, cameraCapabilities).sendToTarget(); } @@ -160,7 +160,7 @@ public class VideoCallImpl extends VideoCall { break; case MSG_CHANGE_CAMERA_CAPABILITIES: mCallback.onCameraCapabilitiesChanged( - (CameraCapabilities) msg.obj); + (VideoProfile.CameraCapabilities) msg.obj); break; case MSG_CHANGE_VIDEO_QUALITY: mVideoQuality = msg.arg1; diff --git a/telecomm/java/android/telecom/VideoCallbackServant.java b/telecomm/java/android/telecom/VideoCallbackServant.java index 1123621..1fbad22 100644 --- a/telecomm/java/android/telecom/VideoCallbackServant.java +++ b/telecomm/java/android/telecom/VideoCallbackServant.java @@ -98,7 +98,7 @@ final class VideoCallbackServant { break; } case MSG_CHANGE_CAMERA_CAPABILITIES: { - mDelegate.changeCameraCapabilities((CameraCapabilities) msg.obj); + mDelegate.changeCameraCapabilities((VideoProfile.CameraCapabilities) msg.obj); break; } case MSG_CHANGE_VIDEO_QUALITY: { @@ -148,7 +148,8 @@ final class VideoCallbackServant { } @Override - public void changeCameraCapabilities(CameraCapabilities cameraCapabilities) + public void changeCameraCapabilities( + VideoProfile.CameraCapabilities cameraCapabilities) throws RemoteException { mHandler.obtainMessage(MSG_CHANGE_CAMERA_CAPABILITIES, cameraCapabilities) .sendToTarget(); diff --git a/telecomm/java/android/telecom/VideoProfile.aidl b/telecomm/java/android/telecom/VideoProfile.aidl index 091b569..0b32721 100644 --- a/telecomm/java/android/telecom/VideoProfile.aidl +++ b/telecomm/java/android/telecom/VideoProfile.aidl @@ -21,3 +21,4 @@ package android.telecom; * {@hide} */ parcelable VideoProfile; +parcelable VideoProfile.CameraCapabilities; diff --git a/telecomm/java/android/telecom/VideoProfile.java b/telecomm/java/android/telecom/VideoProfile.java index 902fddb..7ac4090 100644 --- a/telecomm/java/android/telecom/VideoProfile.java +++ b/telecomm/java/android/telecom/VideoProfile.java @@ -278,4 +278,142 @@ public class VideoProfile implements Parcelable { return sb.toString(); } } + + /** + * Represents the camera capabilities important to a Video Telephony provider. + */ + public static final class CameraCapabilities implements Parcelable { + + /** + * The width of the camera video in pixels. + */ + private final int mWidth; + + /** + * The height of the camera video in pixels. + */ + private final int mHeight; + + /** + * Whether the camera supports zoom. + */ + private final boolean mZoomSupported; + + /** + * The maximum zoom supported by the camera. + */ + private final float mMaxZoom; + + /** + * Create a call camera capabilities instance. + * + * @param width The width of the camera video (in pixels). + * @param height The height of the camera video (in pixels). + */ + public CameraCapabilities(int width, int height) { + this(width, height, false, 1.0f); + } + + /** + * Create a call camera capabilities instance that optionally + * supports zoom. + * + * @param width The width of the camera video (in pixels). + * @param height The height of the camera video (in pixels). + * @param zoomSupported True when camera supports zoom. + * @param maxZoom Maximum zoom supported by camera. + * @hide + */ + public CameraCapabilities(int width, int height, boolean zoomSupported, float maxZoom) { + mWidth = width; + mHeight = height; + mZoomSupported = zoomSupported; + mMaxZoom = maxZoom; + } + + /** + * Responsible for creating CallCameraCapabilities objects from deserialized Parcels. + **/ + public static final Parcelable.Creator<CameraCapabilities> CREATOR = + new Parcelable.Creator<CameraCapabilities> () { + /** + * Creates a CallCameraCapabilities instances from a parcel. + * + * @param source The parcel. + * @return The CallCameraCapabilities. + */ + @Override + public CameraCapabilities createFromParcel(Parcel source) { + int width = source.readInt(); + int height = source.readInt(); + boolean supportsZoom = source.readByte() != 0; + float maxZoom = source.readFloat(); + + return new CameraCapabilities(width, height, supportsZoom, maxZoom); + } + + @Override + public CameraCapabilities[] newArray(int size) { + return new CameraCapabilities[size]; + } + }; + + /** + * Describe the kinds of special objects contained in this Parcelable's + * marshalled representation. + * + * @return a bitmask indicating the set of special object types marshalled + * by the Parcelable. + */ + @Override + public int describeContents() { + return 0; + } + + /** + * Flatten this object in to a Parcel. + * + * @param dest The Parcel in which the object should be written. + * @param flags Additional flags about how the object should be written. + * May be 0 or {@link #PARCELABLE_WRITE_RETURN_VALUE}. + */ + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeInt(getWidth()); + dest.writeInt(getHeight()); + dest.writeByte((byte) (isZoomSupported() ? 1 : 0)); + dest.writeFloat(getMaxZoom()); + } + + /** + * The width of the camera video in pixels. + */ + public int getWidth() { + return mWidth; + } + + /** + * The height of the camera video in pixels. + */ + public int getHeight() { + return mHeight; + } + + /** + * Whether the camera supports zoom. + * @hide + */ + public boolean isZoomSupported() { + return mZoomSupported; + } + + /** + * The maximum zoom supported by the camera. + * @hide + */ + public float getMaxZoom() { + return mMaxZoom; + } + } + } |
