Merge pull request #1696 from nextcloud/bugfix/1690/showCallControls

fix to show call controls when connecting
This commit is contained in:
Marcel Hibbe 2021-11-16 17:58:03 +01:00 committed by GitHub
commit ca0948d1af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 109 additions and 141 deletions

View File

@ -305,7 +305,6 @@ public class CallActivity extends CallBaseActivity {
.setRepeatCount(PulseAnimation.INFINITE) .setRepeatCount(PulseAnimation.INFINITE)
.setRepeatMode(PulseAnimation.REVERSE); .setRepeatMode(PulseAnimation.REVERSE);
binding.callControls.setZ(100.0f);
basicInitialization(); basicInitialization();
participantDisplayItems = new HashMap<>(); participantDisplayItems = new HashMap<>();
initViews(); initViews();
@ -531,6 +530,16 @@ public class CallActivity extends CallBaseActivity {
} }
}); });
binding.conversationRelativeLayout.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent me) {
int action = me.getActionMasked();
if (action == MotionEvent.ACTION_DOWN) {
animateCallControls(true, 0);
}
return false;
}
});
animateCallControls(true, 0); animateCallControls(true, 0);
initGridAdapter(); initGridAdapter();
@ -986,92 +995,80 @@ public class CallActivity extends CallBaseActivity {
duration = 1000; duration = 1000;
} }
if (binding.callControls != null) { binding.callControls.setEnabled(false);
binding.callControls.setEnabled(false); binding.callControls.animate()
binding.callControls.animate() .translationY(0)
.translationY(0) .alpha(alpha)
.alpha(alpha) .setDuration(duration)
.setDuration(duration) .setStartDelay(startDelay)
.setStartDelay(startDelay) .setListener(new AnimatorListenerAdapter() {
.setListener(new AnimatorListenerAdapter() { @Override
@Override public void onAnimationEnd(Animator animation) {
public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation);
super.onAnimationEnd(animation); if (!show) {
if (binding.callControls != null) { binding.callControls.setVisibility(View.GONE);
if (!show) { if (spotlightView != null && spotlightView.getVisibility() != View.GONE) {
binding.callControls.setVisibility(View.GONE); spotlightView.setVisibility(View.GONE);
if (spotlightView != null && spotlightView.getVisibility() != View.GONE) { }
spotlightView.setVisibility(View.GONE); } else {
callControlHandler.postDelayed(new Runnable() {
@Override
public void run() {
if (!isPTTActive) {
animateCallControls(false, 0);
} }
} else {
callControlHandler.postDelayed(new Runnable() {
@Override
public void run() {
if (!isPTTActive) {
animateCallControls(false, 0);
}
}
}, 7500);
} }
}, 7500);
binding.callControls.setEnabled(true);
}
} }
});
}
if (binding.callInfosLinearLayout != null) { binding.callControls.setEnabled(true);
binding.callInfosLinearLayout.setEnabled(false); }
binding.callInfosLinearLayout.animate() });
.translationY(0)
.alpha(alpha) binding.callInfosLinearLayout.setEnabled(false);
.setDuration(duration) binding.callInfosLinearLayout.animate()
.setStartDelay(startDelay) .translationY(0)
.setListener(new AnimatorListenerAdapter() { .alpha(alpha)
@Override .setDuration(duration)
public void onAnimationEnd(Animator animation) { .setStartDelay(startDelay)
super.onAnimationEnd(animation); .setListener(new AnimatorListenerAdapter() {
if (binding.callInfosLinearLayout != null) { @Override
if (!show) { public void onAnimationEnd(Animator animation) {
binding.callInfosLinearLayout.setVisibility(View.GONE); super.onAnimationEnd(animation);
} else { if (!show) {
callInfosHandler.postDelayed(new Runnable() { binding.callInfosLinearLayout.setVisibility(View.GONE);
@Override } else {
public void run() { callInfosHandler.postDelayed(new Runnable() {
if (!isPTTActive) { @Override
animateCallControls(false, 0); public void run() {
} if (!isPTTActive) {
} animateCallControls(false, 0);
}, 7500); }
} }
}, 7500);
binding.callInfosLinearLayout.setEnabled(true);
}
} }
});
}
if (binding.switchSelfVideoButton != null) { binding.callInfosLinearLayout.setEnabled(true);
binding.switchSelfVideoButton.setEnabled(false); }
binding.switchSelfVideoButton.animate() });
.translationY(0)
.alpha(alpha)
.setDuration(duration)
.setStartDelay(startDelay)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
if (binding.switchSelfVideoButton != null) {
if (!show) {
binding.switchSelfVideoButton.setVisibility(View.GONE);
}
binding.switchSelfVideoButton.setEnabled(true); binding.switchSelfVideoButton.setEnabled(false);
} binding.switchSelfVideoButton.animate()
.translationY(0)
.alpha(alpha)
.setDuration(duration)
.setStartDelay(startDelay)
.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
if (!show) {
binding.switchSelfVideoButton.setVisibility(View.GONE);
} }
});
} binding.switchSelfVideoButton.setEnabled(true);
}
});
} }
} }
@ -1858,10 +1855,6 @@ public class CallActivity extends CallBaseActivity {
if (!isDestroyed()) { if (!isDestroyed()) {
initGridAdapter(); initGridAdapter();
if (binding.callControls != null) {
binding.callControls.setZ(100.0f);
}
} }
} }
@ -2135,7 +2128,6 @@ public class CallActivity extends CallBaseActivity {
participantDisplayItems.put(session, participantDisplayItem); participantDisplayItems.put(session, participantDisplayItem);
initGridAdapter(); initGridAdapter();
binding.callControls.setZ(100.0f);
} }
private void setCallState(CallStatus callState) { private void setCallState(CallStatus callState) {
@ -2225,33 +2217,25 @@ public class CallActivity extends CallBaseActivity {
handler.postDelayed(() -> setCallState(CallStatus.CALLING_TIMEOUT), 45000); handler.postDelayed(() -> setCallState(CallStatus.CALLING_TIMEOUT), 45000);
handler.post(() -> { handler.post(() -> {
binding.callModeTextView.setText(getDescriptionForCallType()); binding.callModeTextView.setText(getDescriptionForCallType());
if (binding.callStates.callStateRelativeLayout != null) { if (isIncomingCallFromNotification) {
if (isIncomingCallFromNotification) { binding.callStates.callStateTextView.setText(R.string.nc_call_incoming);
binding.callStates.callStateTextView.setText(R.string.nc_call_incoming); } else {
} else { binding.callStates.callStateTextView.setText(R.string.nc_call_ringing);
binding.callStates.callStateTextView.setText(R.string.nc_call_ringing); }
} if (binding.callStates.callStateRelativeLayout.getVisibility() != View.VISIBLE) {
if (binding.callStates.callStateRelativeLayout.getVisibility() != View.VISIBLE) { binding.callStates.callStateRelativeLayout.setVisibility(View.VISIBLE);
binding.callStates.callStateRelativeLayout.setVisibility(View.VISIBLE);
}
} }
if (binding.callStates.callStateProgressBar != null) { if (binding.callStates.callStateProgressBar.getVisibility() != View.VISIBLE) {
if (binding.callStates.callStateProgressBar.getVisibility() != View.VISIBLE) { binding.callStates.callStateProgressBar.setVisibility(View.VISIBLE);
binding.callStates.callStateProgressBar.setVisibility(View.VISIBLE);
}
} }
if (binding.gridview != null) { if (binding.gridview.getVisibility() != View.INVISIBLE) {
if (binding.gridview.getVisibility() != View.INVISIBLE) { binding.gridview.setVisibility(View.INVISIBLE);
binding.gridview.setVisibility(View.INVISIBLE);
}
} }
if (binding.callStates.errorImageView != null) { if (binding.callStates.errorImageView.getVisibility() != View.GONE) {
if (binding.callStates.errorImageView.getVisibility() != View.GONE) { binding.callStates.errorImageView.setVisibility(View.GONE);
binding.callStates.errorImageView.setVisibility(View.GONE);
}
} }
}); });
break; break;
@ -2268,28 +2252,20 @@ public class CallActivity extends CallBaseActivity {
animateCallControls(false, 5000); animateCallControls(false, 5000);
} }
if (binding.callStates.callStateRelativeLayout != null) { if (binding.callStates.callStateRelativeLayout.getVisibility() != View.INVISIBLE) {
if (binding.callStates.callStateRelativeLayout.getVisibility() != View.INVISIBLE) { binding.callStates.callStateRelativeLayout.setVisibility(View.INVISIBLE);
binding.callStates.callStateRelativeLayout.setVisibility(View.INVISIBLE);
}
} }
if (binding.callStates.callStateProgressBar != null) { if (binding.callStates.callStateProgressBar.getVisibility() != View.GONE) {
if (binding.callStates.callStateProgressBar.getVisibility() != View.GONE) { binding.callStates.callStateProgressBar.setVisibility(View.GONE);
binding.callStates.callStateProgressBar.setVisibility(View.GONE);
}
} }
if (binding.gridview != null) { if (binding.gridview.getVisibility() != View.VISIBLE) {
if (binding.gridview.getVisibility() != View.VISIBLE) { binding.gridview.setVisibility(View.VISIBLE);
binding.gridview.setVisibility(View.VISIBLE);
}
} }
if (binding.callStates.errorImageView != null) { if (binding.callStates.errorImageView.getVisibility() != View.GONE) {
if (binding.callStates.errorImageView.getVisibility() != View.GONE) { binding.callStates.errorImageView.setVisibility(View.GONE);
binding.callStates.errorImageView.setVisibility(View.GONE);
}
} }
}); });
break; break;
@ -2297,32 +2273,24 @@ public class CallActivity extends CallBaseActivity {
handler.post(() -> { handler.post(() -> {
stopCallingSound(); stopCallingSound();
if (binding.callStates.callStateTextView != null) { binding.callStates.callStateTextView.setText(R.string.nc_offline);
binding.callStates.callStateTextView.setText(R.string.nc_offline);
if (binding.callStates.callStateRelativeLayout.getVisibility() != View.VISIBLE) { if (binding.callStates.callStateRelativeLayout.getVisibility() != View.VISIBLE) {
binding.callStates.callStateRelativeLayout.setVisibility(View.VISIBLE); binding.callStates.callStateRelativeLayout.setVisibility(View.VISIBLE);
}
} }
if (binding.gridview != null) { if (binding.gridview.getVisibility() != View.INVISIBLE) {
if (binding.gridview.getVisibility() != View.INVISIBLE) { binding.gridview.setVisibility(View.INVISIBLE);
binding.gridview.setVisibility(View.INVISIBLE);
}
} }
if (binding.callStates.callStateProgressBar != null) { if (binding.callStates.callStateProgressBar.getVisibility() != View.GONE) {
if (binding.callStates.callStateProgressBar.getVisibility() != View.GONE) { binding.callStates.callStateProgressBar.setVisibility(View.GONE);
binding.callStates.callStateProgressBar.setVisibility(View.GONE);
}
} }
if (binding.callStates.errorImageView != null) { binding.callStates.errorImageView.setImageResource(R.drawable.ic_signal_wifi_off_white_24dp);
binding.callStates.errorImageView.setImageResource(R.drawable.ic_signal_wifi_off_white_24dp); if (binding.callStates.errorImageView.getVisibility() != View.VISIBLE) {
if (binding.callStates.errorImageView.getVisibility() != View.VISIBLE) { binding.callStates.errorImageView.setVisibility(View.VISIBLE);
binding.callStates.errorImageView.setVisibility(View.VISIBLE);
}
} }
}); });
break; break;
@ -2502,7 +2470,7 @@ public class CallActivity extends CallBaseActivity {
binding.pipCallConversationNameTextView.setText(conversationName); binding.pipCallConversationNameTextView.setText(conversationName);
binding.pipGroupCallOverlay.setVisibility(View.VISIBLE); binding.pipGroupCallOverlay.setVisibility(View.VISIBLE);
} else { } else {
binding.pipGroupCallOverlay.setVisibility(View.INVISIBLE); binding.pipGroupCallOverlay.setVisibility(View.GONE);
} }
binding.selfVideoRenderer.release(); binding.selfVideoRenderer.release();
@ -2520,7 +2488,7 @@ public class CallActivity extends CallBaseActivity {
binding.callInfosLinearLayout.setVisibility(View.VISIBLE); binding.callInfosLinearLayout.setVisibility(View.VISIBLE);
binding.selfVideoViewWrapper.setVisibility(View.VISIBLE); binding.selfVideoViewWrapper.setVisibility(View.VISIBLE);
binding.pipGroupCallOverlay.setVisibility(View.INVISIBLE); binding.pipGroupCallOverlay.setVisibility(View.GONE);
} }
@Override @Override

View File

@ -202,7 +202,7 @@
android:orientation="vertical" android:orientation="vertical"
android:background="@color/black" android:background="@color/black"
android:gravity="center" android:gravity="center"
android:visibility="invisible"> android:visibility="gone">
<TextView <TextView
android:id="@+id/pipCallConversationNameTextView" android:id="@+id/pipCallConversationNameTextView"