diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ContactsController.java b/app/src/main/java/com/nextcloud/talk/controllers/ContactsController.java index 26772d2ab..1de23ebea 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ContactsController.java +++ b/app/src/main/java/com/nextcloud/talk/controllers/ContactsController.java @@ -51,6 +51,8 @@ import com.nextcloud.talk.adapters.items.UserItem; import com.nextcloud.talk.api.NcApi; import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.controllers.base.BaseController; +import com.nextcloud.talk.controllers.bottomsheet.CallMenuController; +import com.nextcloud.talk.controllers.bottomsheet.EntryMenuController; import com.nextcloud.talk.controllers.bottomsheet.OperationsMenuController; import com.nextcloud.talk.events.BottomSheetLockEvent; import com.nextcloud.talk.models.RetrofitBucket; @@ -63,6 +65,7 @@ import com.nextcloud.talk.models.json.rooms.RoomOverall; import com.nextcloud.talk.models.json.sharees.Sharee; import com.nextcloud.talk.models.json.sharees.ShareesOverall; import com.nextcloud.talk.utils.ApiUtils; +import com.nextcloud.talk.utils.KeyboardUtils; import com.nextcloud.talk.utils.bundle.BundleKeys; import com.nextcloud.talk.utils.database.user.UserUtils; @@ -135,7 +138,11 @@ public class ContactsController extends BaseController implements SearchView.OnQ FastScroller fastScroller; @BindView(R.id.call_header_layout) - RelativeLayout callHeaderLayout; + RelativeLayout conversationPrivacyToogleLayout; + + @BindView(R.id.joinConversationViaLinkRelativeLayout) + RelativeLayout joinConversationViaLinkLayout; + @BindView(R.id.generic_rv_layout) CoordinatorLayout genericRvLayout; @@ -327,7 +334,7 @@ public class ContactsController extends BaseController implements SearchView.OnQ bundle.putStringArrayList(BundleKeys.KEY_INVITED_PARTICIPANTS, userIds); bundle.putStringArrayList(BundleKeys.KEY_INVITED_GROUP, groupIds); bundle.putInt(BundleKeys.KEY_OPERATION_CODE, 11); - prepareAndShowBottomSheetWithBundle(bundle); + prepareAndShowBottomSheetWithBundle(bundle, false); } } @@ -607,7 +614,8 @@ public class ContactsController extends BaseController implements SearchView.OnQ progressBar.setVisibility(View.GONE); genericRvLayout.setVisibility(View.VISIBLE); if (isNewConversationView) { - callHeaderLayout.setVisibility(View.VISIBLE); + conversationPrivacyToogleLayout.setVisibility(View.VISIBLE); + joinConversationViaLinkLayout.setVisibility(View.VISIBLE); } if (isNewConversationView) { @@ -784,15 +792,22 @@ public class ContactsController extends BaseController implements SearchView.OnQ } - private void prepareAndShowBottomSheetWithBundle(Bundle bundle) { + private void prepareAndShowBottomSheetWithBundle(Bundle bundle, boolean showEntrySheet) { if (view == null) { view = getActivity().getLayoutInflater().inflate(R.layout.bottom_sheet, null, false); } - getChildRouter((ViewGroup) view).setRoot( - RouterTransaction.with(new OperationsMenuController(bundle)) - .popChangeHandler(new VerticalChangeHandler()) - .pushChangeHandler(new VerticalChangeHandler())); + if (showEntrySheet) { + getChildRouter((ViewGroup) view).setRoot( + RouterTransaction.with(new EntryMenuController(bundle)) + .popChangeHandler(new VerticalChangeHandler()) + .pushChangeHandler(new VerticalChangeHandler())); + } else { + getChildRouter((ViewGroup) view).setRoot( + RouterTransaction.with(new OperationsMenuController(bundle)) + .popChangeHandler(new VerticalChangeHandler()) + .pushChangeHandler(new VerticalChangeHandler())); + } if (bottomSheet == null) { bottomSheet = new BottomSheet.Builder(getActivity()).setView(view).create(); @@ -908,6 +923,15 @@ public class ContactsController extends BaseController implements SearchView.OnQ return true; } + @Optional + @OnClick(R.id.joinConversationViaLinkRelativeLayout) + void joinConversationViaLink() { + Bundle bundle = new Bundle(); + bundle.putInt(BundleKeys.KEY_OPERATION_CODE, 10); + + prepareAndShowBottomSheetWithBundle(bundle, true); + } + @Optional @OnClick(R.id.call_header_layout) void toggleCallHeader() { diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java b/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java index bba7f8854..5a680ada5 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java +++ b/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java @@ -246,24 +246,6 @@ public class ConversationsListController extends BaseController implements Searc } } - @Override - public boolean onOptionsItemSelected(@NonNull MenuItem item) { - switch (item.getItemId()) { - /*case R.id.action_new_conversation: - Bundle bundle = new Bundle(); - bundle.putParcelable(BundleKeys.KEY_MENU_TYPE, Parcels.wrap(CallMenuController.MenuType.NEW_CONVERSATION)); - prepareAndShowBottomSheetWithBundle(bundle, true); - return true;*/ - case R.id.action_settings: - getRouter().pushController((RouterTransaction.with(new SettingsController()) - .pushChangeHandler(new VerticalChangeHandler()) - .popChangeHandler(new VerticalChangeHandler()))); - return true; - default: - return super.onOptionsItemSelected(item); - } - } - @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); diff --git a/app/src/main/java/com/nextcloud/talk/controllers/bottomsheet/CallMenuController.java b/app/src/main/java/com/nextcloud/talk/controllers/bottomsheet/CallMenuController.java index 4c57f6b5b..3acf27e97 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/bottomsheet/CallMenuController.java +++ b/app/src/main/java/com/nextcloud/talk/controllers/bottomsheet/CallMenuController.java @@ -254,24 +254,6 @@ public class CallMenuController extends BaseController implements FlexibleAdapte .popChangeHandler(new HorizontalChangeHandler())); } } - } else if (menuType.equals(MenuType.NEW_CONVERSATION) && position != 0) { - MenuItem menuItem = (MenuItem) adapter.getItem(position); - if (menuItem != null) { - if (menuItem.getTag() == 1) { - eventBus.post(new BottomSheetLockEvent(true, 0, false, true)); - bundle = new Bundle(); - bundle.putBoolean(BundleKeys.KEY_NEW_CONVERSATION, true); - getParentController().getRouter().pushController((RouterTransaction.with(new ContactsController(bundle)) - .pushChangeHandler(new VerticalChangeHandler()) - .popChangeHandler(new VerticalChangeHandler()))); - } else { - bundle = new Bundle(); - bundle.putInt(BundleKeys.KEY_OPERATION_CODE, 10); - getRouter().pushController(RouterTransaction.with(new EntryMenuController(bundle)) - .pushChangeHandler(new HorizontalChangeHandler()) - .popChangeHandler(new HorizontalChangeHandler())); - } - } } return true; @@ -279,6 +261,6 @@ public class CallMenuController extends BaseController implements FlexibleAdapte @Parcel public enum MenuType { - REGULAR, SHARE, NEW_CONVERSATION + REGULAR, SHARE } } diff --git a/app/src/main/java/com/nextcloud/talk/controllers/bottomsheet/OperationsMenuController.java b/app/src/main/java/com/nextcloud/talk/controllers/bottomsheet/OperationsMenuController.java index f66f48688..71eda60bc 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/bottomsheet/OperationsMenuController.java +++ b/app/src/main/java/com/nextcloud/talk/controllers/bottomsheet/OperationsMenuController.java @@ -630,8 +630,7 @@ public class OperationsMenuController extends BaseController { conversationIntent.putExtras(bundle); if (getParentController() != null) { - getParentController().getRouter().pushController(RouterTransaction.with(new - ChatController(bundle)) + getParentController().getRouter().replaceTopController(RouterTransaction.with(new ChatController(bundle)) .pushChangeHandler(new HorizontalChangeHandler()) .popChangeHandler(new HorizontalChangeHandler())); } diff --git a/app/src/main/res/layout/controller_contacts_rv.xml b/app/src/main/res/layout/controller_contacts_rv.xml index e12e2f786..c7970c8b8 100644 --- a/app/src/main/res/layout/controller_contacts_rv.xml +++ b/app/src/main/res/layout/controller_contacts_rv.xml @@ -37,7 +37,11 @@ android:indeterminateTintMode="src_in" /> + + -