From cd1449c1576a83426128bee89704f1b450cdc1a0 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 16 Nov 2018 16:24:15 +0100 Subject: [PATCH] Improved incoming call's answer and delete buttons UI --- .../java/org/linphone/LinphoneService.java | 10 +- .../linphone/call/CallIncomingActivity.java | 25 ++- app/src/main/res/layout/call_incoming.xml | 155 ++++++++++-------- 3 files changed, 100 insertions(+), 90 deletions(-) diff --git a/app/src/main/java/org/linphone/LinphoneService.java b/app/src/main/java/org/linphone/LinphoneService.java index 3af103886..afda9fe50 100644 --- a/app/src/main/java/org/linphone/LinphoneService.java +++ b/app/src/main/java/org/linphone/LinphoneService.java @@ -527,7 +527,7 @@ public final class LinphoneService extends Service { } int notificationTextId; - int inconId; + int iconId; switch (call.getState()) { case Released: case End: @@ -537,15 +537,15 @@ public final class LinphoneService extends Service { case Paused: case PausedByRemote: case Pausing: - inconId = R.drawable.topbar_call_notification; + iconId = R.drawable.topbar_call_notification; notificationTextId = R.string.incall_notif_paused; break; default: if (call.getCurrentParams().videoEnabled()) { - inconId = R.drawable.topbar_videocall_notification; + iconId = R.drawable.topbar_videocall_notification; notificationTextId = R.string.incall_notif_video; } else { - inconId = R.drawable.topbar_call_notification; + iconId = R.drawable.topbar_call_notification; notificationTextId = R.string.incall_notif_active; } break; @@ -565,7 +565,7 @@ public final class LinphoneService extends Service { Intent notifIntent = new Intent(this, incomingReceivedActivity); notifIntent.putExtra("Notification", true); mNotifContentIntent = PendingIntent.getActivity(this, 0, notifIntent, PendingIntent.FLAG_UPDATE_CURRENT); - Notification notification = Compatibility.createInCallNotification(getApplicationContext(), notif.notificationId, showAnswerAction, mNotificationTitle, getString(notificationTextId), inconId, bm, name, mNotifContentIntent); + Notification notification = Compatibility.createInCallNotification(getApplicationContext(), notif.notificationId, showAnswerAction, mNotificationTitle, getString(notificationTextId), iconId, bm, name, mNotifContentIntent); notifyWrapper(notif.notificationId, notification); } diff --git a/app/src/main/java/org/linphone/call/CallIncomingActivity.java b/app/src/main/java/org/linphone/call/CallIncomingActivity.java index 4b4563583..b185bdaea 100644 --- a/app/src/main/java/org/linphone/call/CallIncomingActivity.java +++ b/app/src/main/java/org/linphone/call/CallIncomingActivity.java @@ -60,7 +60,8 @@ public class CallIncomingActivity extends LinphoneGenericActivity { private static CallIncomingActivity instance; private TextView name, number; - private ImageView contactPicture, accept, decline, arrow; + private ImageView contactPicture, acceptIcon; + private LinearLayout accept, decline; private Call mCall; private CoreListenerStub mListener; private LinearLayout acceptUnlock; @@ -102,17 +103,17 @@ public class CallIncomingActivity extends LinphoneGenericActivity { acceptUnlock = findViewById(R.id.acceptUnlock); declineUnlock = findViewById(R.id.declineUnlock); + acceptIcon = findViewById(R.id.acceptIcon); accept = findViewById(R.id.accept); lookupCurrentCall(); if (LinphonePreferences.instance() != null && mCall != null && mCall.getRemoteParams() != null && LinphonePreferences.instance().shouldAutomaticallyAcceptVideoRequests() && mCall.getRemoteParams().videoEnabled()) { - accept.setImageResource(R.drawable.call_video_start); + acceptIcon.setImageResource(R.drawable.call_video_start); } decline = findViewById(R.id.decline); - arrow = findViewById(R.id.arrow_hangup); mKeyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE); boolean doNotUseSliders = getResources().getBoolean(R.bool.do_not_use_sliders_to_answer_hangup_call_if_phone_unlocked); @@ -131,47 +132,46 @@ public class CallIncomingActivity extends LinphoneGenericActivity { } }); } else { + acceptUnlock.setVisibility(View.VISIBLE); accept.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motionEvent) { float curX; switch (motionEvent.getAction()) { case MotionEvent.ACTION_DOWN: - acceptUnlock.setVisibility(View.VISIBLE); decline.setVisibility(View.GONE); - answerX = motionEvent.getX() + accept.getWidth() / 2; + answerX = motionEvent.getX() - accept.getWidth(); begin = true; oldMove = 0; break; case MotionEvent.ACTION_MOVE: - curX = motionEvent.getX(); + curX = motionEvent.getX() - accept.getWidth(); view.scrollBy((int) (answerX - curX), view.getScrollY()); oldMove -= answerX - curX; answerX = curX; if (oldMove < -25) begin = false; - if (curX < arrow.getWidth() && !begin) { + if (curX < (screenWidth / 4) - accept.getWidth() && !begin) { answer(); return true; } break; case MotionEvent.ACTION_UP: - view.scrollTo(0, view.getScrollY()); decline.setVisibility(View.VISIBLE); - acceptUnlock.setVisibility(View.GONE); + view.scrollTo(0, view.getScrollY()); break; } return true; } }); + declineUnlock.setVisibility(View.VISIBLE); decline.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motionEvent) { float curX; switch (motionEvent.getAction()) { case MotionEvent.ACTION_DOWN: - declineUnlock.setVisibility(View.VISIBLE); accept.setVisibility(View.GONE); declineX = motionEvent.getX(); break; @@ -179,15 +179,14 @@ public class CallIncomingActivity extends LinphoneGenericActivity { curX = motionEvent.getX(); view.scrollBy((int) (declineX - curX), view.getScrollY()); declineX = curX; - if (curX > (screenWidth - arrow.getWidth() * 4)) { + if (curX > (3 * screenWidth / 4)) { decline(); return true; } break; case MotionEvent.ACTION_UP: - view.scrollTo(0, view.getScrollY()); accept.setVisibility(View.VISIBLE); - declineUnlock.setVisibility(View.GONE); + view.scrollTo(0, view.getScrollY()); break; } return true; diff --git a/app/src/main/res/layout/call_incoming.xml b/app/src/main/res/layout/call_incoming.xml index 522cd9f56..c49e36705 100644 --- a/app/src/main/res/layout/call_incoming.xml +++ b/app/src/main/res/layout/call_incoming.xml @@ -93,88 +93,99 @@ android:layout_alignParentBottom="true" android:orientation="horizontal" > - + - + - + - + - - + - + - + - + - + - + - + + + + + + + + + + +