summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRavi Paluri <rpaluri@codeaurora.org>2014-11-17 19:50:43 +0530
committerArne Coucheron <arco68@gmail.com>2014-12-13 01:45:49 +0100
commit81e9d19661636e779c26a631385075ee67f9226e (patch)
treec2f07058565f9d01701b793013968abc0d32ff67
parentbf939870e04678a9d31e8e050b782ec8b498ca41 (diff)
downloadpackages_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.xml12
-rw-r--r--src/com/android/incallui/InCallVideoCallListener.java1
-rw-r--r--src/com/android/incallui/InCallVideoCallListenerNotifier.java18
-rw-r--r--src/com/android/incallui/VideoCallFragment.java32
-rw-r--r--src/com/android/incallui/VideoCallPresenter.java17
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();