diff options
author | Ravi Paluri <rpaluri@codeaurora.org> | 2014-11-17 19:50:43 +0530 |
---|---|---|
committer | Arne Coucheron <arco68@gmail.com> | 2014-12-13 01:45:49 +0100 |
commit | 81e9d19661636e779c26a631385075ee67f9226e (patch) | |
tree | c2f07058565f9d01701b793013968abc0d32ff67 | |
parent | bf939870e04678a9d31e8e050b782ec8b498ca41 (diff) | |
download | packages_apps_InCallUI-81e9d19661636e779c26a631385075ee67f9226e.tar.gz packages_apps_InCallUI-81e9d19661636e779c26a631385075ee67f9226e.tar.bz2 packages_apps_InCallUI-81e9d19661636e779c26a631385075ee67f9226e.zip |
IMS-VT: Provide Player State indication to user.
Change to display "player started/stopped" toast message
whenever video starts/stops flowing
Change-Id: Iaab4772a253c7705da5b8ebc39593ed28059e0e5
CRs-Fixed: 686192
-rw-r--r-- | res/values/strings.xml | 12 | ||||
-rw-r--r-- | src/com/android/incallui/InCallVideoCallListener.java | 1 | ||||
-rw-r--r-- | src/com/android/incallui/InCallVideoCallListenerNotifier.java | 18 | ||||
-rw-r--r-- | src/com/android/incallui/VideoCallFragment.java | 32 | ||||
-rw-r--r-- | src/com/android/incallui/VideoCallPresenter.java | 17 |
5 files changed, 80 insertions, 0 deletions
diff --git a/res/values/strings.xml b/res/values/strings.xml index 94530611..bb171f42 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -308,6 +308,18 @@ <!-- Message indicating video calls not allowed if user enabled TTY Mode --> <string name="video_call_not_allowed_if_tty_enabled">Please disable TTY Mode to upgrade to video calls.</string> + <!-- Message indicating that Video Started flowing for IMS-VT calls --> + <string name="player_started">Player Started</string> + <!-- Message indicating that Video Stopped flowing for IMS-VT calls --> + <string name="player_stopped">Player Stopped</string> + <!-- Message indicating that camera failure has occurred for the selected camera and + as result camera is not ready --> + <string name="camera_not_ready">Camera not ready</string> + <!-- Message indicating that camera is ready/available --> + <string name="camera_ready">Camera ready</string> + <!-- Message indicating unknown call session event --> + <string name="unknown_call_session_event">"Unkown call session event"</string> + <!-- For incoming calls, this is a string we can get from a CDMA network instead of the actual phone number, to indicate there's no number present. DO NOT TRANSLATE. --> <string-array name="absent_num" translatable="false"> diff --git a/src/com/android/incallui/InCallVideoCallListener.java b/src/com/android/incallui/InCallVideoCallListener.java index 23319922..401efcf5 100644 --- a/src/com/android/incallui/InCallVideoCallListener.java +++ b/src/com/android/incallui/InCallVideoCallListener.java @@ -101,6 +101,7 @@ public class InCallVideoCallListener extends VideoCall.Listener { */ @Override public void onCallSessionEvent(int event) { + InCallVideoCallListenerNotifier.getInstance().callSessionEvent(event); } /** diff --git a/src/com/android/incallui/InCallVideoCallListenerNotifier.java b/src/com/android/incallui/InCallVideoCallListenerNotifier.java index a0eee060..fe9dc895 100644 --- a/src/com/android/incallui/InCallVideoCallListenerNotifier.java +++ b/src/com/android/incallui/InCallVideoCallListenerNotifier.java @@ -167,6 +167,17 @@ public class InCallVideoCallListenerNotifier { } /** + * Inform listeners of a call session event. + * + * @param event The call session event. + */ + public void callSessionEvent(int event) { + for (VideoEventListener listener : mVideoEventListeners) { + listener.onCallSessionEvent(event); + } + } + + /** * Inform listeners of a downgrade to audio. * * @param call The call. @@ -293,6 +304,13 @@ public class InCallVideoCallListenerNotifier { * @param dataUsage call data usage value */ public void onCallDataUsageChange(long dataUsage); + + /** + * Called when call session event is raised. + * + * @param event The call session event. + */ + public void onCallSessionEvent(int event); } /** diff --git a/src/com/android/incallui/VideoCallFragment.java b/src/com/android/incallui/VideoCallFragment.java index 39868bd0..3b839819 100644 --- a/src/com/android/incallui/VideoCallFragment.java +++ b/src/com/android/incallui/VideoCallFragment.java @@ -19,6 +19,7 @@ package com.android.incallui; import android.content.Context; import android.content.res.Resources; import android.content.res.Configuration; +//import android.content.res.Resources; import android.graphics.Point; import android.graphics.SurfaceTexture; import android.os.Bundle; @@ -34,6 +35,8 @@ import android.widget.Toast; import com.google.common.base.Objects; import android.widget.Toast; +import android.telecom.Connection; +import android.telecom.Connection.VideoProvider; import android.telecom.VideoProfile; import android.telecom.Connection; @@ -780,6 +783,35 @@ public class VideoCallFragment extends BaseFragment<VideoCallPresenter, Toast.makeText(context, "dataUsage=" + dataUsage, Toast.LENGTH_LONG).show(); } + private int fromCallSessionEvent(int event) { + switch (event) { + case Connection.VideoProvider.SESSION_EVENT_RX_PAUSE: + return R.string.player_stopped; + case Connection.VideoProvider.SESSION_EVENT_RX_RESUME: + return R.string.player_started; + case Connection.VideoProvider.SESSION_EVENT_CAMERA_FAILURE: + return R.string.camera_not_ready; + case Connection.VideoProvider.SESSION_EVENT_CAMERA_READY: + return R.string.camera_ready; + default: + return R.string.unknown_call_session_event; + } + } + + /** + * Sets the call's data usage value + * + * @param context the current context + * @param event the call session event + */ + @Override + public void displayCallSessionEvent(int event) { + Log.d(this, "displayCallSessionEvent: event = " + event); + Context context = getActivity(); + String msg = context.getResources().getString(fromCallSessionEvent(event)); + Toast.makeText(context, msg, Toast.LENGTH_SHORT).show(); + } + /** * Determines the size of the device screen. * diff --git a/src/com/android/incallui/VideoCallPresenter.java b/src/com/android/incallui/VideoCallPresenter.java index 9b408866..00e1236e 100644 --- a/src/com/android/incallui/VideoCallPresenter.java +++ b/src/com/android/incallui/VideoCallPresenter.java @@ -695,6 +695,22 @@ public class VideoCallPresenter extends Presenter<VideoCallPresenter.VideoCallUi } /** + * Called when call session event is raised. + * + * @param event The call session event. + */ + @Override + public void onCallSessionEvent(int event) { + Log.d(this, "onCallSessionEvent event =" + event); + VideoCallUi ui = getUi(); + if (ui == null) { + Log.e(this, "onCallSessionEvent: VideoCallUi is null"); + return; + } + ui.displayCallSessionEvent(event); + } + + /** * Handles a change to the call data usage * * @param dataUsage call data usage value @@ -855,6 +871,7 @@ public class VideoCallPresenter extends Presenter<VideoCallPresenter.VideoCallUi void setPreviewSurfaceSize(int width, int height); void setDisplayVideoSize(int width, int height); void setCallDataUsage(Context context, long dataUsage); + void displayCallSessionEvent(int event); Point getScreenSize(); void cleanupSurfaces(); boolean isActivityRestart(); |