Merge 1c3842b50bf8bf1a492a4ded559b79b005eb7de1 on remote branch
Change-Id: I46b666e1446405fb1e642bdabc402c3590e8064f
diff --git a/Android.mk b/Android.mk
index 2cd7477..b2eba17 100644
--- a/Android.mk
+++ b/Android.mk
@@ -9,6 +9,7 @@
# $ protoc --plugin=protoc-gen-grpc-java=prebuilts/tools/common/m2/repository/io/grpc/protoc-gen-grpc-java/1.0.3/protoc-gen-grpc-java-1.0.3-linux-x86_64.exe \
# --grpc-java_out=lite:"packages/apps/Dialer/java/com/android/voicemail/impl/" \
# --proto_path="packages/apps/Dialer/java/com/android/voicemail/impl/transcribe/grpc/" "packages/apps/Dialer/java/com/android/voicemail/impl/transcribe/grpc/voicemail_transcription.proto"
+ifneq ($(TARGET_NO_TELEPHONY), true)
ifeq ($(TARGET_FWK_SUPPORTS_FULL_VALUEADDS), true)
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
@@ -501,3 +502,4 @@
include $(CLEAR_VARS)
endif
+endif # TARGET_NO_TELEPHONY
\ No newline at end of file
diff --git a/java/com/android/incallui/BottomSheetHelper.java b/java/com/android/incallui/BottomSheetHelper.java
index 3f94a9d..6402b51 100755
--- a/java/com/android/incallui/BottomSheetHelper.java
+++ b/java/com/android/incallui/BottomSheetHelper.java
@@ -87,7 +87,6 @@
private static final int BLIND_TRANSFER = 0;
private static final int ASSURED_TRANSFER = 1;
private static final int CONSULTATIVE_TRANSFER = 2;
- private boolean mShowStaticImageUiConfig = false;
private QtiImsExtListenerBaseImpl imsInterfaceListener =
new QtiImsExtListenerBaseImpl() {
@@ -159,7 +158,6 @@
mPrimaryCallTracker = null;
}
mIsHideMe = false;
- mShowStaticImageUiConfig = false;
if (mQtiImsExtConnector != null) {
mQtiImsExtConnector.disconnect();
mQtiImsExtConnector = null;
@@ -390,14 +388,8 @@
}
}
- private void notifyStaticImageStateChanged(boolean staticImageState) {
- LogUtil.v("BottomSheetHelper.notifyStaticImageStateChanged",
- " notifying static image changed = " + staticImageState);
- InCallPresenter.getInstance().notifyStaticImageStateChanged(staticImageState);
- }
-
private boolean isHideMeOptionVisible() {
- if (!mShowStaticImageUiConfig ||
+ if (!QtiImsExtUtils.shallShowStaticImageUi(getPhoneId(), mContext) ||
!VideoUtils.hasCameraPermissionAndShownPrivacyToast(mContext)) {
return false;
}
@@ -407,12 +399,6 @@
private void maybeUpdateHideMeInMap() {
LogUtil.v("BottomSheetHelper.maybeUpdateHideMeInMap", " mIsHideMe = " + mIsHideMe);
- boolean showStaticImageUiConfig = QtiImsExtUtils.shallShowStaticImageUi(getPhoneId(),
- mContext);
- if(mShowStaticImageUiConfig != showStaticImageUiConfig) {
- mShowStaticImageUiConfig = showStaticImageUiConfig;
- notifyStaticImageStateChanged(mShowStaticImageUiConfig && mIsHideMe);
- }
String hideMeText = mIsHideMe ? mResources.getString(R.string.qti_ims_hideMeText_selected) :
mResources.getString(R.string.qti_ims_hideMeText_unselected);
moreOptionsMap.put(hideMeText, isHideMeOptionVisible());
@@ -438,17 +424,20 @@
/* Click on hideme shall change the static image state i.e. decision
is made in VideoCallPresenter whether to replace preview video with
static image or whether to resume preview video streaming */
- notifyStaticImageStateChanged(isHideMe);
+ InCallPresenter.getInstance().notifyHideMeUiModeChanged();
}
// Returns TRUE if UE is in hide me mode else returns FALSE
- public boolean isInHideMeMode() {
- LogUtil.v("BottomSheetHelper.isInHideMeMode", "mIsHideMe: " + mIsHideMe +
- " mShowStaticImageUiConfig: " + mShowStaticImageUiConfig);
- return mIsHideMe && mShowStaticImageUiConfig;
+ public boolean isInHideMeMode(DialerCall call) {
+ LogUtil.v("BottomSheetHelper.isInHideMeMode", "mIsHideMe: " + mIsHideMe);
+ return mIsHideMe &&
+ QtiImsExtUtils.shallShowStaticImageUi(getPhoneIdExtra(call), mContext);
}
private int getPhoneIdExtra(DialerCall call) {
+ if (call == null) {
+ return QtiCallConstants.INVALID_PHONE_ID;
+ }
final Bundle extras = call.getExtras();
return ((extras == null) ? QtiCallConstants.INVALID_PHONE_ID :
extras.getInt(QtiImsExtUtils.QTI_IMS_PHONE_ID_EXTRA_KEY,
@@ -477,7 +466,7 @@
}
@Override
- public void onSendStaticImageStateChanged(boolean isEnabled) {
+ public void onHideMeUiModeChanged() {
//No-op
}
diff --git a/java/com/android/incallui/CallButtonPresenter.java b/java/com/android/incallui/CallButtonPresenter.java
index 1cf2250..5fd9244 100755
--- a/java/com/android/incallui/CallButtonPresenter.java
+++ b/java/com/android/incallui/CallButtonPresenter.java
@@ -563,7 +563,7 @@
inCallButtonUi.showButton(
InCallButtonIds.BUTTON_SWITCH_CAMERA,
isVideo && hasCameraPermission && call.getVideoTech().isTransmitting()
- && !BottomSheetHelper.getInstance().isInHideMeMode()
+ && !BottomSheetHelper.getInstance().isInHideMeMode(call)
&& !ScreenShareHelper.screenShareRequested());
inCallButtonUi.showButton(InCallButtonIds.BUTTON_PAUSE_VIDEO, showPauseVideo);
if (isVideo) {
@@ -598,12 +598,9 @@
/**
* Handles a change to the video call hide me selection
- *
- * @param shallTransmitStaticImage {@code true} if the app should show static image in preview,
- * {@code false} otherwise.
*/
@Override
- public void onSendStaticImageStateChanged(boolean shallTransmitStaticImage) {
+ public void onHideMeUiModeChanged() {
if (call == null) {
return;
}
diff --git a/java/com/android/incallui/CallCardPresenter.java b/java/com/android/incallui/CallCardPresenter.java
index f4c47af..73193de 100755
--- a/java/com/android/incallui/CallCardPresenter.java
+++ b/java/com/android/incallui/CallCardPresenter.java
@@ -1087,7 +1087,7 @@
}
@Override
- public void onSendStaticImageStateChanged(boolean isEnabled) {
+ public void onHideMeUiModeChanged() {
//No-op
}
diff --git a/java/com/android/incallui/InCallPresenter.java b/java/com/android/incallui/InCallPresenter.java
index e35393c..97ca973 100644
--- a/java/com/android/incallui/InCallPresenter.java
+++ b/java/com/android/incallui/InCallPresenter.java
@@ -1381,7 +1381,6 @@
public void addInCallEventListener(InCallEventListener listener) {
Objects.requireNonNull(listener);
inCallEventListeners.add(listener);
- listener.onSendStaticImageStateChanged(BottomSheetHelper.getInstance().isInHideMeMode());
}
public void removeInCallEventListener(InCallEventListener listener) {
@@ -1709,12 +1708,10 @@
/**
* Called by the {@link BottomSheetHelper} to inform of a change in hide me selection.
- *
- * @param isEnabled {@code True} if entering hide me mode.
*/
- public void notifyStaticImageStateChanged(boolean isEnabled) {
+ public void notifyHideMeUiModeChanged() {
for (InCallEventListener listener : inCallEventListeners) {
- listener.onSendStaticImageStateChanged(isEnabled);
+ listener.onHideMeUiModeChanged();
}
}
@@ -2247,7 +2244,7 @@
public interface InCallEventListener {
void onSessionModificationStateChange(DialerCall call);
void onFullscreenModeChanged(boolean isFullscreenMode);
- void onSendStaticImageStateChanged(boolean isEnabled);
+ void onHideMeUiModeChanged();
void onOutgoingVideoSourceChanged(int videoSource);
void onSipDtmfChanged(int bitMask);
}
diff --git a/java/com/android/incallui/OrientationModeHandler.java b/java/com/android/incallui/OrientationModeHandler.java
index 54b87d0..e689565 100644
--- a/java/com/android/incallui/OrientationModeHandler.java
+++ b/java/com/android/incallui/OrientationModeHandler.java
@@ -205,7 +205,8 @@
// When VT call is put on hold, user is presented with VoLTE UI.
// Hence, restricting held VT call to change orientation.
if (isVideoOrUpgrade(call) && (call.getNonConferenceState() != DialerCallState.ONHOLD)
- && (call.getNonConferenceState() != DialerCallState.DISCONNECTED)) {
+ && (call.getNonConferenceState() != DialerCallState.DISCONNECTED)
+ && !QtiCallUtils.isVideoCrs(call)) {
return (mOrientationMode == QtiCallConstants.ORIENTATION_MODE_UNSPECIFIED) ?
InCallOrientationEventListener.ACTIVITY_PREFERENCE_ALLOW_ROTATION :
QtiCallUtils.toScreenOrientation(mOrientationMode);
@@ -259,7 +260,7 @@
public void onFullscreenModeChanged(boolean isFullscreenMode) {}
@Override
- public void onSendStaticImageStateChanged(boolean isEnabled) {}
+ public void onHideMeUiModeChanged() {}
@Override
public void onOutgoingVideoSourceChanged(int videoSource) {}
diff --git a/java/com/android/incallui/VideoCallPresenter.java b/java/com/android/incallui/VideoCallPresenter.java
index e0b2f66..460572a 100644
--- a/java/com/android/incallui/VideoCallPresenter.java
+++ b/java/com/android/incallui/VideoCallPresenter.java
@@ -62,6 +62,7 @@
import org.codeaurora.ims.ImsScreenShareListenerBase;
import org.codeaurora.ims.ImsScreenShareManager;
+import org.codeaurora.ims.QtiCallConstants;
import org.codeaurora.ims.QtiImsException;
import org.codeaurora.ims.QtiImsExtConnector;
import org.codeaurora.ims.QtiImsExtManager;
@@ -780,25 +781,23 @@
/**
* Handles a change to the video call hide me selection
- *
- * @param shallTransmitStaticImage {@code true} if the app should show static image in preview,
- * {@code false} otherwise.
*/
@Override
- public void onSendStaticImageStateChanged(boolean shallTransmitStaticImage) {
- LogUtil.d("VideoCallPresenter.onSendStaticImageStateChanged"," shallTransmitStaticImage: "
- + shallTransmitStaticImage + " primaryCall: " + primaryCall);
+ public void onHideMeUiModeChanged() {
- sShallTransmitStaticImage = shallTransmitStaticImage;
+ maybeUpdateTransmitStaticImageState(primaryCall);
+
+ LogUtil.d("VideoCallPresenter.onHideMeUiModeChanged"," shallTransmitStaticImage: "
+ + sShallTransmitStaticImage + " primaryCall: " + primaryCall);
if (!isActiveVideoCall(primaryCall)) {
- LogUtil.w("VideoCallPresenter.onSendStaticImageStateChanged",
+ LogUtil.w("VideoCallPresenter.onHideMeUiModeChanged",
" received for non-active video call");
return;
}
if (videoCall == null || videoCallScreen == null) {
- LogUtil.w("VideoCallPresenter.onSendStaticImageStateChanged",
+ LogUtil.w("VideoCallPresenter.onHideMeUiModeChanged",
" mVideoCall/mVideoCallScreen is null");
return;
}
@@ -806,7 +805,7 @@
enableCamera(primaryCall, isCameraRequired(currentVideoState,
SessionModificationState.NO_REQUEST));
- if (shallTransmitStaticImage) {
+ if (sShallTransmitStaticImage) {
// Handle showing static image in preview based on external storage permissions
videoCallScreen.onRequestReadStoragePermission();
} else {
@@ -1027,12 +1026,14 @@
private void onPrimaryCallChanged(DialerCall newPrimaryCall) {
final boolean shouldShowVideoUi = shouldShowVideoUiForCall(newPrimaryCall);
final boolean isVideoMode = isVideoMode();
-
- LogUtil.v(
+ // Get the hide me mode for the new call
+ maybeUpdateTransmitStaticImageState(newPrimaryCall);
+ LogUtil.i(
"VideoCallPresenter.onPrimaryCallChanged",
- "shouldShowVideoUi: %b, isVideoMode: %b",
+ "shouldShowVideoUi: %b, isVideoMode: %b, shallTransmitStaticImage: %b",
shouldShowVideoUi,
- isVideoMode);
+ isVideoMode,
+ sShallTransmitStaticImage);
if (!shouldShowVideoUi && isVideoMode) {
// Terminate video mode if new primary call is not a video call
@@ -1111,6 +1112,7 @@
}
private void updateVideoCall(DialerCall call) {
+ maybeUpdateTransmitStaticImageState(call);
checkForVideoCallChange(call);
checkForVideoStateChange(call);
checkForCallStateChange(call);
@@ -1119,6 +1121,15 @@
call.getState(), call.getVideoTech().getSessionModificationState());
}
+ private void maybeUpdateTransmitStaticImageState(DialerCall call) {
+ // Phone id extra is not updated at the time a dialing call is created.
+ // Update the static image mode only when we are sure about the phoneid
+ if (QtiCallUtils.getPhoneId(call) != QtiCallConstants.INVALID_PHONE_ID) {
+ sShallTransmitStaticImage = BottomSheetHelper.getInstance()
+ .isInHideMeMode(call);
+ }
+ }
+
private void checkForOrientationAllowedChange(@Nullable DialerCall call) {
LogUtil.d("VideoCallPresenter.checkForOrientationAllowedChange","call : "+ call +
" currentOrientationMode = " + currentOrientationMode);