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 c692df465..9e98f255c 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java +++ b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java @@ -40,7 +40,6 @@ import android.view.MotionEvent; import android.view.View; import android.view.Window; import android.view.WindowManager; -import android.widget.ImageButton; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; @@ -117,6 +116,7 @@ import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; import butterknife.OnLongClick; +import eu.davidea.flipview.FlipView; import io.reactivex.Observer; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.Disposable; @@ -152,11 +152,11 @@ public class CallActivity extends AppCompatActivity { @BindView(R.id.call_controls) RelativeLayout callControls; @BindView(R.id.call_control_microphone) - ImageButton microphoneControlButton; + FlipView microphoneControlButton; @BindView(R.id.call_control_camera) - ImageButton cameraControlButton; + FlipView cameraControlButton; @BindView(R.id.call_control_switch_camera) - ImageButton cameraSwitchButton; + FlipView cameraSwitchButton; @Inject NcApi ncApi; @@ -228,7 +228,7 @@ public class CallActivity extends AppCompatActivity { microphoneControlButton.setOnTouchListener(new microphoneButtonTouchListener()); videoOnClickListener = new videoClickListener(); - pulseAnimation = PulseAnimation.create().with(microphoneControlButton) + pulseAnimation = PulseAnimation.create().with(microphoneControlButton.getFrontImageView()) .setDuration(310) .setRepeatCount(PulseAnimation.INFINITE) .setRepeatMode(PulseAnimation.REVERSE); @@ -393,14 +393,14 @@ public class CallActivity extends AppCompatActivity { audioOn = !audioOn; if (audioOn) { - microphoneControlButton.setImageResource(R.drawable.ic_mic_white_24px); + microphoneControlButton.getFrontImageView().setImageResource(R.drawable.ic_mic_white_24px); } else { - microphoneControlButton.setImageResource(R.drawable.ic_mic_off_white_24px); + microphoneControlButton.getFrontImageView().setImageResource(R.drawable.ic_mic_off_white_24px); } toggleMedia(audioOn, false); } else { - microphoneControlButton.setImageResource(R.drawable.ic_mic_white_24px); + microphoneControlButton.getFrontImageView().setImageResource(R.drawable.ic_mic_white_24px); pulseAnimation.start(); toggleMedia(true, false); } @@ -431,9 +431,13 @@ public class CallActivity extends AppCompatActivity { videoOn = !videoOn; if (videoOn) { - cameraControlButton.setImageResource(R.drawable.ic_videocam_white_24px); + cameraControlButton.getFrontImageView().setImageResource(R.drawable.ic_videocam_white_24px); + cameraSwitchButton.setVisibility(View.GONE); } else { - cameraControlButton.setImageResource(R.drawable.ic_videocam_off_white_24px); + cameraControlButton.getFrontImageView().setImageResource(R.drawable.ic_videocam_off_white_24px); + if (cameraEnumerator.getDeviceNames().length > 1) { + cameraSwitchButton.setVisibility(View.VISIBLE); + } } toggleMedia(videoOn, true); @@ -566,7 +570,7 @@ public class CallActivity extends AppCompatActivity { onCameraClick(); } } else { - cameraControlButton.setImageResource(R.drawable.ic_videocam_off_white_24px); + cameraControlButton.getFrontImageView().setImageResource(R.drawable.ic_videocam_off_white_24px); if (cameraSwitchButton != null) { cameraSwitchButton.setVisibility(View.GONE); } @@ -577,7 +581,7 @@ public class CallActivity extends AppCompatActivity { onMicrophoneClick(); } } else { - microphoneControlButton.setImageResource(R.drawable.ic_mic_off_white_24px); + microphoneControlButton.getFrontImageView().setImageResource(R.drawable.ic_mic_off_white_24px); } if (!inCall) { @@ -1409,7 +1413,7 @@ public class CallActivity extends AppCompatActivity { super.onAnimationEnd(animation); if (callControls != null) { if (!show) { - callControls.setVisibility(View.INVISIBLE); + callControls.setVisibility(View.GONE); } else { handler.postDelayed(new Runnable() { @Override @@ -1441,7 +1445,7 @@ public class CallActivity extends AppCompatActivity { v.onTouchEvent(event); if (event.getAction() == MotionEvent.ACTION_UP && isPTTActive) { isPTTActive = false; - microphoneControlButton.setImageResource(R.drawable.ic_mic_off_white_24px); + microphoneControlButton.getFrontImageView().setImageResource(R.drawable.ic_mic_off_white_24px); pulseAnimation.stop(); toggleMedia(false, false); animateCallControls(false, 5000); diff --git a/app/src/main/res/layout/activity_call.xml b/app/src/main/res/layout/activity_call.xml index cac602078..be2331725 100644 --- a/app/src/main/res/layout/activity_call.xml +++ b/app/src/main/res/layout/activity_call.xml @@ -51,50 +51,57 @@ android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" - android:layout_marginBottom="16dp"> + android:layout_marginBottom="16dp" + android:animateLayoutChanges="true"> - - - - - + android:layout_width="60dp" + android:layout_height="60dp" + android:layout_marginEnd="20dp" + app:alpha="0.7" + app:checked="false" + app:enableInitialAnimation="false" + app:frontBackgroundColor="@color/colorPrimary" + app:frontImage="@drawable/ic_videocam_off_white_24px"/> - + app:alpha="0.7" + app:checked="false" + app:enableInitialAnimation="false" + app:frontBackgroundColor="@color/colorPrimary" + app:frontImage="@drawable/ic_switch_video_white_24px"/> + + + +