From 48cda08854ae7ef983ed5f9e17f91a1ee106ec6f Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Tue, 16 Nov 2021 11:46:11 +0100 Subject: [PATCH 1/4] delete if-checks for view bindings Signed-off-by: Marcel Hibbe --- .../talk/activities/CallActivity.java | 228 ++++++++---------- 1 file changed, 96 insertions(+), 132 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java index 5c1a1259e..d6d3d1989 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java +++ b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java @@ -986,92 +986,80 @@ public class CallActivity extends CallBaseActivity { duration = 1000; } - if (binding.callControls != null) { - binding.callControls.setEnabled(false); - binding.callControls.animate() - .translationY(0) - .alpha(alpha) - .setDuration(duration) - .setStartDelay(startDelay) - .setListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - super.onAnimationEnd(animation); - if (binding.callControls != null) { - if (!show) { - binding.callControls.setVisibility(View.GONE); - if (spotlightView != null && spotlightView.getVisibility() != View.GONE) { - spotlightView.setVisibility(View.GONE); + binding.callControls.setEnabled(false); + binding.callControls.animate() + .translationY(0) + .alpha(alpha) + .setDuration(duration) + .setStartDelay(startDelay) + .setListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + super.onAnimationEnd(animation); + if (!show) { + binding.callControls.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); } - - binding.callControls.setEnabled(true); - } + }, 7500); } - }); - } - if (binding.callInfosLinearLayout != null) { - binding.callInfosLinearLayout.setEnabled(false); - binding.callInfosLinearLayout.animate() - .translationY(0) - .alpha(alpha) - .setDuration(duration) - .setStartDelay(startDelay) - .setListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - super.onAnimationEnd(animation); - if (binding.callInfosLinearLayout != null) { - if (!show) { - binding.callInfosLinearLayout.setVisibility(View.GONE); - } else { - callInfosHandler.postDelayed(new Runnable() { - @Override - public void run() { - if (!isPTTActive) { - animateCallControls(false, 0); - } - } - }, 7500); + binding.callControls.setEnabled(true); + } + }); + + binding.callInfosLinearLayout.setEnabled(false); + binding.callInfosLinearLayout.animate() + .translationY(0) + .alpha(alpha) + .setDuration(duration) + .setStartDelay(startDelay) + .setListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + super.onAnimationEnd(animation); + if (!show) { + binding.callInfosLinearLayout.setVisibility(View.GONE); + } else { + callInfosHandler.postDelayed(new Runnable() { + @Override + public void run() { + if (!isPTTActive) { + animateCallControls(false, 0); + } } - - binding.callInfosLinearLayout.setEnabled(true); - } + }, 7500); } - }); - } - if (binding.switchSelfVideoButton != null) { - 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.callInfosLinearLayout.setEnabled(true); + } + }); - 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); + } + }); } } @@ -2225,33 +2213,25 @@ public class CallActivity extends CallBaseActivity { handler.postDelayed(() -> setCallState(CallStatus.CALLING_TIMEOUT), 45000); handler.post(() -> { binding.callModeTextView.setText(getDescriptionForCallType()); - if (binding.callStates.callStateRelativeLayout != null) { - if (isIncomingCallFromNotification) { - binding.callStates.callStateTextView.setText(R.string.nc_call_incoming); - } else { - binding.callStates.callStateTextView.setText(R.string.nc_call_ringing); - } - if (binding.callStates.callStateRelativeLayout.getVisibility() != View.VISIBLE) { - binding.callStates.callStateRelativeLayout.setVisibility(View.VISIBLE); - } + if (isIncomingCallFromNotification) { + binding.callStates.callStateTextView.setText(R.string.nc_call_incoming); + } else { + binding.callStates.callStateTextView.setText(R.string.nc_call_ringing); + } + if (binding.callStates.callStateRelativeLayout.getVisibility() != View.VISIBLE) { + binding.callStates.callStateRelativeLayout.setVisibility(View.VISIBLE); } - if (binding.callStates.callStateProgressBar != null) { - if (binding.callStates.callStateProgressBar.getVisibility() != View.VISIBLE) { - binding.callStates.callStateProgressBar.setVisibility(View.VISIBLE); - } + if (binding.callStates.callStateProgressBar.getVisibility() != View.VISIBLE) { + binding.callStates.callStateProgressBar.setVisibility(View.VISIBLE); } - if (binding.gridview != null) { - if (binding.gridview.getVisibility() != View.INVISIBLE) { - binding.gridview.setVisibility(View.INVISIBLE); - } + if (binding.gridview.getVisibility() != View.INVISIBLE) { + binding.gridview.setVisibility(View.INVISIBLE); } - if (binding.callStates.errorImageView != null) { - if (binding.callStates.errorImageView.getVisibility() != View.GONE) { - binding.callStates.errorImageView.setVisibility(View.GONE); - } + if (binding.callStates.errorImageView.getVisibility() != View.GONE) { + binding.callStates.errorImageView.setVisibility(View.GONE); } }); break; @@ -2268,28 +2248,20 @@ public class CallActivity extends CallBaseActivity { animateCallControls(false, 5000); } - if (binding.callStates.callStateRelativeLayout != null) { - if (binding.callStates.callStateRelativeLayout.getVisibility() != View.INVISIBLE) { - binding.callStates.callStateRelativeLayout.setVisibility(View.INVISIBLE); - } + if (binding.callStates.callStateRelativeLayout.getVisibility() != View.INVISIBLE) { + binding.callStates.callStateRelativeLayout.setVisibility(View.INVISIBLE); } - if (binding.callStates.callStateProgressBar != null) { - if (binding.callStates.callStateProgressBar.getVisibility() != View.GONE) { - binding.callStates.callStateProgressBar.setVisibility(View.GONE); - } + if (binding.callStates.callStateProgressBar.getVisibility() != View.GONE) { + binding.callStates.callStateProgressBar.setVisibility(View.GONE); } - if (binding.gridview != null) { - if (binding.gridview.getVisibility() != View.VISIBLE) { - binding.gridview.setVisibility(View.VISIBLE); - } + if (binding.gridview.getVisibility() != View.VISIBLE) { + binding.gridview.setVisibility(View.VISIBLE); } - if (binding.callStates.errorImageView != null) { - if (binding.callStates.errorImageView.getVisibility() != View.GONE) { - binding.callStates.errorImageView.setVisibility(View.GONE); - } + if (binding.callStates.errorImageView.getVisibility() != View.GONE) { + binding.callStates.errorImageView.setVisibility(View.GONE); } }); break; @@ -2297,32 +2269,24 @@ public class CallActivity extends CallBaseActivity { handler.post(() -> { 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) { - binding.callStates.callStateRelativeLayout.setVisibility(View.VISIBLE); - } + if (binding.callStates.callStateRelativeLayout.getVisibility() != View.VISIBLE) { + binding.callStates.callStateRelativeLayout.setVisibility(View.VISIBLE); } - if (binding.gridview != null) { - if (binding.gridview.getVisibility() != View.INVISIBLE) { - binding.gridview.setVisibility(View.INVISIBLE); - } + if (binding.gridview.getVisibility() != View.INVISIBLE) { + binding.gridview.setVisibility(View.INVISIBLE); } - if (binding.callStates.callStateProgressBar != null) { - if (binding.callStates.callStateProgressBar.getVisibility() != View.GONE) { - binding.callStates.callStateProgressBar.setVisibility(View.GONE); - } + if (binding.callStates.callStateProgressBar.getVisibility() != 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); - if (binding.callStates.errorImageView.getVisibility() != View.VISIBLE) { - binding.callStates.errorImageView.setVisibility(View.VISIBLE); - } + binding.callStates.errorImageView.setImageResource(R.drawable.ic_signal_wifi_off_white_24dp); + if (binding.callStates.errorImageView.getVisibility() != View.VISIBLE) { + binding.callStates.errorImageView.setVisibility(View.VISIBLE); } }); break; From e2668c40004352e33963f06e456012d515624a7e Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Tue, 16 Nov 2021 14:32:33 +0100 Subject: [PATCH 2/4] delete zlevel of call controls (not needed) Signed-off-by: Marcel Hibbe --- .../java/com/nextcloud/talk/activities/CallActivity.java | 6 ------ 1 file changed, 6 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java index d6d3d1989..66b319112 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java +++ b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java @@ -305,7 +305,6 @@ public class CallActivity extends CallBaseActivity { .setRepeatCount(PulseAnimation.INFINITE) .setRepeatMode(PulseAnimation.REVERSE); - binding.callControls.setZ(100.0f); basicInitialization(); participantDisplayItems = new HashMap<>(); initViews(); @@ -1846,10 +1845,6 @@ public class CallActivity extends CallBaseActivity { if (!isDestroyed()) { initGridAdapter(); - - if (binding.callControls != null) { - binding.callControls.setZ(100.0f); - } } } @@ -2123,7 +2118,6 @@ public class CallActivity extends CallBaseActivity { participantDisplayItems.put(session, participantDisplayItem); initGridAdapter(); - binding.callControls.setZ(100.0f); } private void setCallState(CallStatus callState) { From 9499b8117ba0550b70dae15cdb868e474955d36d Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Tue, 16 Nov 2021 14:46:23 +0100 Subject: [PATCH 3/4] fix that call controls appear on touch when connecting Signed-off-by: Marcel Hibbe --- .../com/nextcloud/talk/activities/CallActivity.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java index 66b319112..df21e8ec5 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java +++ b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java @@ -530,6 +530,17 @@ public class CallActivity extends CallBaseActivity { } }); + // TODO maybe not necessary if it doesnt disappear + 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); initGridAdapter(); From 41ff61be5f9c04c6f2a0a39284b88eda83ca296a Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Tue, 16 Nov 2021 16:14:59 +0100 Subject: [PATCH 4/4] set pipGroupCallOverlay to gone when not needed Signed-off-by: Marcel Hibbe --- .../java/com/nextcloud/talk/activities/CallActivity.java | 5 ++--- app/src/main/res/layout/call_activity.xml | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java index df21e8ec5..0b69bb9e7 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java +++ b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java @@ -530,7 +530,6 @@ public class CallActivity extends CallBaseActivity { } }); - // TODO maybe not necessary if it doesnt disappear binding.conversationRelativeLayout.setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent me) { int action = me.getActionMasked(); @@ -2471,7 +2470,7 @@ public class CallActivity extends CallBaseActivity { binding.pipCallConversationNameTextView.setText(conversationName); binding.pipGroupCallOverlay.setVisibility(View.VISIBLE); } else { - binding.pipGroupCallOverlay.setVisibility(View.INVISIBLE); + binding.pipGroupCallOverlay.setVisibility(View.GONE); } binding.selfVideoRenderer.release(); @@ -2489,7 +2488,7 @@ public class CallActivity extends CallBaseActivity { binding.callInfosLinearLayout.setVisibility(View.VISIBLE); binding.selfVideoViewWrapper.setVisibility(View.VISIBLE); - binding.pipGroupCallOverlay.setVisibility(View.INVISIBLE); + binding.pipGroupCallOverlay.setVisibility(View.GONE); } @Override diff --git a/app/src/main/res/layout/call_activity.xml b/app/src/main/res/layout/call_activity.xml index 42d739733..ca1c5ddbe 100644 --- a/app/src/main/res/layout/call_activity.xml +++ b/app/src/main/res/layout/call_activity.xml @@ -202,7 +202,7 @@ android:orientation="vertical" android:background="@color/black" android:gravity="center" - android:visibility="invisible"> + android:visibility="gone">