From a0d778235d679c36e83cf3d9f093ebcf1563afb6 Mon Sep 17 00:00:00 2001 From: Mario Danic Date: Mon, 30 Apr 2018 13:34:02 +0200 Subject: [PATCH] Start video call from chat Signed-off-by: Mario Danic --- .../talk/controllers/ChatController.java | 60 ++++++++++++------- .../main/res/drawable/ic_call_white_24dp.xml | 29 +++++++++ app/src/main/res/menu/menu_conversation.xml | 36 +++++++++++ app/src/main/res/values/strings.xml | 2 + 4 files changed, 106 insertions(+), 21 deletions(-) create mode 100644 app/src/main/res/drawable/ic_call_white_24dp.xml create mode 100644 app/src/main/res/menu/menu_conversation.xml diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.java b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.java index 1e0fd3350..6feafe121 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.java +++ b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.java @@ -21,12 +21,14 @@ package com.nextcloud.talk.controllers; +import android.content.Intent; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v7.widget.LinearLayoutManager; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.Menu; +import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; @@ -38,6 +40,7 @@ import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.load.resource.bitmap.CircleCrop; import com.bumptech.glide.request.RequestOptions; import com.nextcloud.talk.R; +import com.nextcloud.talk.activities.CallActivity; import com.nextcloud.talk.adapters.messages.MagicIncomingTextMessageViewHolder; import com.nextcloud.talk.api.NcApi; import com.nextcloud.talk.application.NextcloudTalkApplication; @@ -175,25 +178,6 @@ public class ChatController extends BaseController implements MessagesListAdapte return conversationName; } - @Override - public boolean onOptionsItemSelected(@NonNull MenuItem item) { - switch (item.getItemId()) { - case android.R.id.home: - inChat = false; - if (getRouter().hasRootController()) { - getRouter().popToRoot(new HorizontalChangeHandler()); - } else { - getRouter().setRoot(RouterTransaction.with(new MagicBottomNavigationController()) - .pushChangeHandler(new HorizontalChangeHandler()) - .popChangeHandler(new HorizontalChangeHandler())); - } - return true; - default: - return super.onOptionsItemSelected(item); - } - } - - @Override public boolean handleBack() { if (getRouter().hasRootController()) { @@ -435,11 +419,45 @@ public class ChatController extends BaseController implements MessagesListAdapte } @Override - public void onPrepareOptionsMenu(Menu menu) { - super.onPrepareOptionsMenu(menu); + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + super.onCreateOptionsMenu(menu, inflater); + inflater.inflate(R.menu.menu_conversation, menu); globalMenu = menu; } + + @Override + public boolean onOptionsItemSelected(@NonNull MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + inChat = false; + if (getRouter().hasRootController()) { + getRouter().popToRoot(new HorizontalChangeHandler()); + } else { + getRouter().setRoot(RouterTransaction.with(new MagicBottomNavigationController()) + .pushChangeHandler(new HorizontalChangeHandler()) + .popChangeHandler(new HorizontalChangeHandler())); + } + return true; + + case R.id.conversation_video_call: + Bundle bundle = new Bundle(); + bundle.putString(BundleKeys.KEY_ROOM_TOKEN, roomToken); + bundle.putParcelable(BundleKeys.KEY_USER_ENTITY, Parcels.wrap(currentUser)); + bundle.putString(BundleKeys.KEY_CALL_SESSION, currentCall.getSessionId()); + + Intent callIntent = new Intent(getActivity(), CallActivity.class); + callIntent.putExtras(bundle); + + return true; + case R.id.conversation_voice_call: + return true; + + default: + return super.onOptionsItemSelected(item); + } + } + @Override public void onSelectionChanged(int count) { //globalMenu.findItem(R.id.action_delete).setVisible(count > 0); diff --git a/app/src/main/res/drawable/ic_call_white_24dp.xml b/app/src/main/res/drawable/ic_call_white_24dp.xml new file mode 100644 index 000000000..bc827fa62 --- /dev/null +++ b/app/src/main/res/drawable/ic_call_white_24dp.xml @@ -0,0 +1,29 @@ + + + + + diff --git a/app/src/main/res/menu/menu_conversation.xml b/app/src/main/res/menu/menu_conversation.xml new file mode 100644 index 000000000..749674d9d --- /dev/null +++ b/app/src/main/res/menu/menu_conversation.xml @@ -0,0 +1,36 @@ + + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7ebac42e2..009e8e370 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -171,5 +171,7 @@ Find Nextcloud on https://nextcloud.com Enter a message… Yesterday Today + Voice call + Video call