mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-20 12:09:45 +01:00
replace CallMenuController with ConversationOperationDialog.kt
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
parent
90a99d4994
commit
cb9189da19
@ -70,11 +70,9 @@ import com.nextcloud.talk.adapters.items.GenericTextHeaderItem;
|
|||||||
import com.nextcloud.talk.api.NcApi;
|
import com.nextcloud.talk.api.NcApi;
|
||||||
import com.nextcloud.talk.application.NextcloudTalkApplication;
|
import com.nextcloud.talk.application.NextcloudTalkApplication;
|
||||||
import com.nextcloud.talk.controllers.base.BaseController;
|
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.EntryMenuController;
|
||||||
import com.nextcloud.talk.events.BottomSheetLockEvent;
|
import com.nextcloud.talk.events.BottomSheetLockEvent;
|
||||||
import com.nextcloud.talk.events.EventStatus;
|
import com.nextcloud.talk.events.EventStatus;
|
||||||
import com.nextcloud.talk.events.MoreMenuClickEvent;
|
|
||||||
import com.nextcloud.talk.interfaces.ConversationMenuInterface;
|
import com.nextcloud.talk.interfaces.ConversationMenuInterface;
|
||||||
import com.nextcloud.talk.jobs.AccountRemovalWorker;
|
import com.nextcloud.talk.jobs.AccountRemovalWorker;
|
||||||
import com.nextcloud.talk.jobs.ContactAddressBookWorker;
|
import com.nextcloud.talk.jobs.ContactAddressBookWorker;
|
||||||
@ -85,6 +83,7 @@ import com.nextcloud.talk.models.database.UserEntity;
|
|||||||
import com.nextcloud.talk.models.json.conversations.Conversation;
|
import com.nextcloud.talk.models.json.conversations.Conversation;
|
||||||
import com.nextcloud.talk.models.json.participants.Participant;
|
import com.nextcloud.talk.models.json.participants.Participant;
|
||||||
import com.nextcloud.talk.ui.dialog.ChooseAccountDialogFragment;
|
import com.nextcloud.talk.ui.dialog.ChooseAccountDialogFragment;
|
||||||
|
import com.nextcloud.talk.ui.dialog.ConversationOperationDialog;
|
||||||
import com.nextcloud.talk.utils.ApiUtils;
|
import com.nextcloud.talk.utils.ApiUtils;
|
||||||
import com.nextcloud.talk.utils.ClosedInterfaceImpl;
|
import com.nextcloud.talk.utils.ClosedInterfaceImpl;
|
||||||
import com.nextcloud.talk.utils.ConductorRemapping;
|
import com.nextcloud.talk.utils.ConductorRemapping;
|
||||||
@ -217,6 +216,8 @@ public class ConversationsListController extends BaseController implements Searc
|
|||||||
|
|
||||||
private HashMap<String, GenericTextHeaderItem> callHeaderItems = new HashMap<>();
|
private HashMap<String, GenericTextHeaderItem> callHeaderItems = new HashMap<>();
|
||||||
|
|
||||||
|
private ConversationOperationDialog conversationOperationDialog;
|
||||||
|
|
||||||
public ConversationsListController(Bundle bundle) {
|
public ConversationsListController(Bundle bundle) {
|
||||||
super();
|
super();
|
||||||
setHasOptionsMenu(true);
|
setHasOptionsMenu(true);
|
||||||
@ -828,15 +829,15 @@ public class ConversationsListController extends BaseController implements Searc
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
// @Subscribe(threadMode = ThreadMode.MAIN)
|
||||||
public void onMessageEvent(MoreMenuClickEvent moreMenuClickEvent) {
|
// public void onMessageEvent(MoreMenuClickEvent moreMenuClickEvent) {
|
||||||
Bundle bundle = new Bundle();
|
//// Bundle bundle = new Bundle();
|
||||||
Conversation conversation = moreMenuClickEvent.getConversation();
|
//// Conversation conversation = moreMenuClickEvent.getConversation();
|
||||||
bundle.putParcelable(BundleKeys.INSTANCE.getKEY_ROOM(), Parcels.wrap(conversation));
|
//// bundle.putParcelable(BundleKeys.INSTANCE.getKEY_ROOM(), Parcels.wrap(conversation));
|
||||||
bundle.putParcelable(BundleKeys.INSTANCE.getKEY_MENU_TYPE(), Parcels.wrap(CallMenuController.MenuType.REGULAR));
|
//// bundle.putParcelable(BundleKeys.INSTANCE.getKEY_MENU_TYPE(), Parcels.wrap(CallMenuController.MenuType.REGULAR));
|
||||||
|
////
|
||||||
prepareAndShowBottomSheetWithBundle(bundle, true);
|
//// prepareAndShowBottomSheetWithBundle(bundle, true);
|
||||||
}
|
// }
|
||||||
|
|
||||||
private void prepareAndShowBottomSheetWithBundle(Bundle bundle, boolean shouldShowCallMenuController) {
|
private void prepareAndShowBottomSheetWithBundle(Bundle bundle, boolean shouldShowCallMenuController) {
|
||||||
if (view == null) {
|
if (view == null) {
|
||||||
@ -844,10 +845,12 @@ public class ConversationsListController extends BaseController implements Searc
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (shouldShowCallMenuController) {
|
if (shouldShowCallMenuController) {
|
||||||
getChildRouter((ViewGroup) view).setRoot(
|
// getChildRouter((ViewGroup) view).setRoot(
|
||||||
RouterTransaction.with(new CallMenuController(bundle, this))
|
// RouterTransaction.with(new CallMenuController(bundle, this))
|
||||||
.popChangeHandler(new VerticalChangeHandler())
|
// .popChangeHandler(new VerticalChangeHandler())
|
||||||
.pushChangeHandler(new VerticalChangeHandler()));
|
// .pushChangeHandler(new VerticalChangeHandler()));
|
||||||
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
getChildRouter((ViewGroup) view).setRoot(
|
getChildRouter((ViewGroup) view).setRoot(
|
||||||
RouterTransaction.with(new EntryMenuController(bundle))
|
RouterTransaction.with(new EntryMenuController(bundle))
|
||||||
@ -855,13 +858,13 @@ public class ConversationsListController extends BaseController implements Searc
|
|||||||
.pushChangeHandler(new VerticalChangeHandler()));
|
.pushChangeHandler(new VerticalChangeHandler()));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bottomSheet == null) {
|
// if (bottomSheet == null) {
|
||||||
bottomSheet = new BottomSheet.Builder(getActivity()).setView(view).create();
|
// bottomSheet = new BottomSheet.Builder(getActivity()).setView(view).create();
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
// bottomSheet.setOnShowListener(dialog -> new KeyboardUtils(getActivity(), bottomSheet.getLayout(), true));
|
//// bottomSheet.setOnShowListener(dialog -> new KeyboardUtils(getActivity(), bottomSheet.getLayout(), true));
|
||||||
bottomSheet.setOnDismissListener(dialog -> showSearchOrToolbar());
|
// bottomSheet.setOnDismissListener(dialog -> showSearchOrToolbar());
|
||||||
bottomSheet.show();
|
// bottomSheet.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -949,8 +952,12 @@ public class ConversationsListController extends BaseController implements Searc
|
|||||||
Object clickedItem = adapter.getItem(position);
|
Object clickedItem = adapter.getItem(position);
|
||||||
if (clickedItem != null) {
|
if (clickedItem != null) {
|
||||||
Conversation conversation = ((ConversationItem) clickedItem).getModel();
|
Conversation conversation = ((ConversationItem) clickedItem).getModel();
|
||||||
MoreMenuClickEvent moreMenuClickEvent = new MoreMenuClickEvent(conversation);
|
conversationOperationDialog = new ConversationOperationDialog(
|
||||||
onMessageEvent(moreMenuClickEvent);
|
getActivity(),
|
||||||
|
this,
|
||||||
|
userUtils.getCurrentUser(),
|
||||||
|
conversation);
|
||||||
|
conversationOperationDialog.show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1239,7 +1246,6 @@ public class ConversationsListController extends BaseController implements Searc
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -151,82 +151,82 @@ public class CallMenuController extends BaseController implements FlexibleAdapte
|
|||||||
menuItems = new ArrayList<>();
|
menuItems = new ArrayList<>();
|
||||||
|
|
||||||
if (menuType.equals(MenuType.REGULAR)) {
|
if (menuType.equals(MenuType.REGULAR)) {
|
||||||
if (!TextUtils.isEmpty(conversation.getDisplayName())) {
|
// if (!TextUtils.isEmpty(conversation.getDisplayName())) {
|
||||||
menuItems.add(new MenuItem(conversation.getDisplayName(), 0, null));
|
// menuItems.add(new MenuItem(conversation.getDisplayName(), 0, null));
|
||||||
} else if (!TextUtils.isEmpty(conversation.getName())) {
|
// } else if (!TextUtils.isEmpty(conversation.getName())) {
|
||||||
menuItems.add(new MenuItem(conversation.getName(), 0, null));
|
// menuItems.add(new MenuItem(conversation.getName(), 0, null));
|
||||||
} else {
|
// } else {
|
||||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_configure_room), 0, null));
|
// menuItems.add(new MenuItem(getResources().getString(R.string.nc_configure_room), 0, null));
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
currentUser = userUtils.getCurrentUser();
|
// currentUser = userUtils.getCurrentUser();
|
||||||
|
//
|
||||||
if (conversation.isFavorite()) {
|
// if (conversation.isFavorite()) {
|
||||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_remove_from_favorites), 97, DisplayUtils.getTintedDrawable(getResources(), R.drawable.ic_star_border_black_24dp, R.color.grey_600)));
|
// menuItems.add(new MenuItem(getResources().getString(R.string.nc_remove_from_favorites), 97, DisplayUtils.getTintedDrawable(getResources(), R.drawable.ic_star_border_black_24dp, R.color.grey_600)));
|
||||||
} else if (CapabilitiesUtil.hasSpreedFeatureCapability(currentUser, "favorites")) {
|
// } else if (CapabilitiesUtil.hasSpreedFeatureCapability(currentUser, "favorites")) {
|
||||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_add_to_favorites),
|
// menuItems.add(new MenuItem(getResources().getString(R.string.nc_add_to_favorites),
|
||||||
98,
|
// 98,
|
||||||
DisplayUtils.getTintedDrawable(getResources(),
|
// DisplayUtils.getTintedDrawable(getResources(),
|
||||||
R.drawable.ic_star_black_24dp,
|
// R.drawable.ic_star_black_24dp,
|
||||||
R.color.grey_600)));
|
// R.color.grey_600)));
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
if(conversation.unreadMessages > ALL_MESSAGES_READ && CapabilitiesUtil.canSetChatReadMarker(currentUser)) {
|
// if(conversation.unreadMessages > ALL_MESSAGES_READ && CapabilitiesUtil.canSetChatReadMarker(currentUser)) {
|
||||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_mark_as_read),
|
// menuItems.add(new MenuItem(getResources().getString(R.string.nc_mark_as_read),
|
||||||
96,
|
// 96,
|
||||||
ContextCompat.getDrawable(context, R.drawable.ic_eye)));
|
// ContextCompat.getDrawable(context, R.drawable.ic_eye)));
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
if (conversation.isNameEditable(currentUser)) {
|
// if (conversation.isNameEditable(currentUser)) {
|
||||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_rename),
|
// menuItems.add(new MenuItem(getResources().getString(R.string.nc_rename),
|
||||||
2,
|
// 2,
|
||||||
ContextCompat.getDrawable(context,
|
// ContextCompat.getDrawable(context,
|
||||||
R.drawable.ic_pencil_grey600_24dp)));
|
// R.drawable.ic_pencil_grey600_24dp)));
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
if (conversation.canModerate(currentUser)) {
|
// if (conversation.canModerate(currentUser)) {
|
||||||
if (!conversation.isPublic()) {
|
// if (!conversation.isPublic()) {
|
||||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_make_call_public),
|
// menuItems.add(new MenuItem(getResources().getString(R.string.nc_make_call_public),
|
||||||
3, ContextCompat.getDrawable(context,
|
// 3, ContextCompat.getDrawable(context,
|
||||||
R.drawable.ic_link_grey600_24px)));
|
// R.drawable.ic_link_grey600_24px)));
|
||||||
} else {
|
// } else {
|
||||||
if (conversation.isHasPassword()) {
|
// if (conversation.isHasPassword()) {
|
||||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_change_password),
|
// menuItems.add(new MenuItem(getResources().getString(R.string.nc_change_password),
|
||||||
4, ContextCompat.getDrawable(context,
|
// 4, ContextCompat.getDrawable(context,
|
||||||
R.drawable.ic_lock_grey600_24px)));
|
// R.drawable.ic_lock_grey600_24px)));
|
||||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_clear_password),
|
// menuItems.add(new MenuItem(getResources().getString(R.string.nc_clear_password),
|
||||||
5,
|
// 5,
|
||||||
ContextCompat.getDrawable(context,
|
// ContextCompat.getDrawable(context,
|
||||||
R.drawable.ic_lock_open_grey600_24dp)));
|
// R.drawable.ic_lock_open_grey600_24dp)));
|
||||||
} else {
|
// } else {
|
||||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_set_password),
|
// menuItems.add(new MenuItem(getResources().getString(R.string.nc_set_password),
|
||||||
6, ContextCompat.getDrawable(context,
|
// 6, ContextCompat.getDrawable(context,
|
||||||
R.drawable.ic_lock_plus_grey600_24dp)));
|
// R.drawable.ic_lock_plus_grey600_24dp)));
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_delete_call),
|
// menuItems.add(new MenuItem(getResources().getString(R.string.nc_delete_call),
|
||||||
9, ContextCompat.getDrawable(context,
|
// 9, ContextCompat.getDrawable(context,
|
||||||
R.drawable.ic_delete_grey600_24dp)));
|
// R.drawable.ic_delete_grey600_24dp)));
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
if (conversation.isPublic()) {
|
// if (conversation.isPublic()) {
|
||||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_share_link),
|
// menuItems.add(new MenuItem(getResources().getString(R.string.nc_share_link),
|
||||||
7, ContextCompat.getDrawable(context,
|
// 7, ContextCompat.getDrawable(context,
|
||||||
R.drawable.ic_link_grey600_24px)));
|
// R.drawable.ic_link_grey600_24px)));
|
||||||
if (conversation.canModerate(currentUser)) {
|
// if (conversation.canModerate(currentUser)) {
|
||||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_make_call_private),
|
// menuItems.add(new MenuItem(getResources().getString(R.string.nc_make_call_private),
|
||||||
8, ContextCompat.getDrawable(context,
|
// 8, ContextCompat.getDrawable(context,
|
||||||
R.drawable.ic_group_grey600_24px)));
|
// R.drawable.ic_group_grey600_24px)));
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
if (conversation.canLeave(currentUser)) {
|
// if (conversation.canLeave(currentUser)) {
|
||||||
menuItems.add(new MenuItem(getResources().getString(R.string.nc_leave), 1,
|
// menuItems.add(new MenuItem(getResources().getString(R.string.nc_leave), 1,
|
||||||
DisplayUtils.getTintedDrawable(getResources(),
|
// DisplayUtils.getTintedDrawable(getResources(),
|
||||||
R.drawable.ic_exit_to_app_black_24dp, R.color.grey_600)
|
// R.drawable.ic_exit_to_app_black_24dp, R.color.grey_600)
|
||||||
));
|
// ));
|
||||||
}
|
// }
|
||||||
} else if (menuType.equals(MenuType.SHARE)) {
|
} else if (menuType.equals(MenuType.SHARE)) {
|
||||||
prepareIntent();
|
prepareIntent();
|
||||||
List<AppAdapter.AppInfo> appInfoList = ShareUtils.getShareApps(getActivity(), shareIntent, null,
|
List<AppAdapter.AppInfo> appInfoList = ShareUtils.getShareApps(getActivity(), shareIntent, null,
|
||||||
@ -282,13 +282,20 @@ public class CallMenuController extends BaseController implements FlexibleAdapte
|
|||||||
}
|
}
|
||||||
eventBus.post(new BottomSheetLockEvent(true, 0, false, true));
|
eventBus.post(new BottomSheetLockEvent(true, 0, false, true));
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
// TODO: continue here to extract more setOnClickListeners to ConversationOperationDialog.kt
|
||||||
|
|
||||||
bundle.putInt(BundleKeys.INSTANCE.getKEY_OPERATION_CODE(), tag);
|
bundle.putInt(BundleKeys.INSTANCE.getKEY_OPERATION_CODE(), tag);
|
||||||
if (tag != 2 && tag != 4 && tag != 6 && tag != 7) {
|
if (tag != 2 && tag != 4 && tag != 6 && tag != 7) {
|
||||||
|
// 3=make call public, 5=clear pw, 8=make call private ..
|
||||||
eventBus.post(new BottomSheetLockEvent(false, 0, false, false));
|
eventBus.post(new BottomSheetLockEvent(false, 0, false, false));
|
||||||
getRouter().pushController(RouterTransaction.with(new OperationsMenuController(bundle))
|
getRouter().pushController(RouterTransaction.with(new OperationsMenuController(bundle))
|
||||||
.pushChangeHandler(new HorizontalChangeHandler())
|
.pushChangeHandler(new HorizontalChangeHandler())
|
||||||
.popChangeHandler(new HorizontalChangeHandler()));
|
.popChangeHandler(new HorizontalChangeHandler()));
|
||||||
} else if (tag != 7) {
|
} else if (tag != 7) {
|
||||||
|
// 3=make call public, 5=clear pw, 8=make call private ..
|
||||||
|
|
||||||
|
// rename and set password !?
|
||||||
getRouter().pushController(RouterTransaction.with(new EntryMenuController(bundle))
|
getRouter().pushController(RouterTransaction.with(new EntryMenuController(bundle))
|
||||||
.pushChangeHandler(new HorizontalChangeHandler())
|
.pushChangeHandler(new HorizontalChangeHandler())
|
||||||
.popChangeHandler(new HorizontalChangeHandler()));
|
.popChangeHandler(new HorizontalChangeHandler()));
|
||||||
|
@ -0,0 +1,314 @@
|
|||||||
|
package com.nextcloud.talk.ui.dialog
|
||||||
|
|
||||||
|
import android.app.Activity
|
||||||
|
import android.os.Bundle
|
||||||
|
import android.text.TextUtils
|
||||||
|
import android.view.View
|
||||||
|
import android.view.ViewGroup
|
||||||
|
import androidx.work.Data
|
||||||
|
import androidx.work.OneTimeWorkRequest
|
||||||
|
import androidx.work.WorkManager
|
||||||
|
import autodagger.AutoInjector
|
||||||
|
import com.bluelinelabs.conductor.RouterTransaction
|
||||||
|
import com.bluelinelabs.conductor.changehandler.HorizontalChangeHandler
|
||||||
|
import com.bluelinelabs.conductor.changehandler.VerticalChangeHandler
|
||||||
|
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
||||||
|
import com.google.android.material.bottomsheet.BottomSheetDialog
|
||||||
|
import com.nextcloud.talk.R
|
||||||
|
import com.nextcloud.talk.api.NcApi
|
||||||
|
import com.nextcloud.talk.application.NextcloudTalkApplication
|
||||||
|
import com.nextcloud.talk.controllers.ConversationsListController
|
||||||
|
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.databinding.DialogConversationOperationsBinding
|
||||||
|
import com.nextcloud.talk.jobs.LeaveConversationWorker
|
||||||
|
import com.nextcloud.talk.models.database.CapabilitiesUtil
|
||||||
|
import com.nextcloud.talk.models.database.UserEntity
|
||||||
|
import com.nextcloud.talk.models.json.conversations.Conversation
|
||||||
|
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_INTERNAL_USER_ID
|
||||||
|
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_OPERATION_CODE
|
||||||
|
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM
|
||||||
|
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_TOKEN
|
||||||
|
import org.parceler.Parcels
|
||||||
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
@AutoInjector(NextcloudTalkApplication::class)
|
||||||
|
class ConversationOperationDialog(
|
||||||
|
val activity: Activity,
|
||||||
|
val controller: ConversationsListController,
|
||||||
|
val currentUser: UserEntity,
|
||||||
|
val conversation: Conversation
|
||||||
|
) : BottomSheetDialog(activity) {
|
||||||
|
|
||||||
|
private lateinit var binding: DialogConversationOperationsBinding
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
@JvmField
|
||||||
|
var ncApi: NcApi? = null
|
||||||
|
|
||||||
|
init {
|
||||||
|
NextcloudTalkApplication.sharedApplication?.componentApplication?.inject(this)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
|
super.onCreate(savedInstanceState)
|
||||||
|
binding = DialogConversationOperationsBinding.inflate(layoutInflater)
|
||||||
|
setContentView(binding.root)
|
||||||
|
window?.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
|
||||||
|
|
||||||
|
initHeaderDescription()
|
||||||
|
initItemsVisibility()
|
||||||
|
initClickListeners()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun initHeaderDescription() {
|
||||||
|
if (!TextUtils.isEmpty(conversation.getDisplayName())) {
|
||||||
|
binding.conversationOperationHeader.text = conversation.getDisplayName()
|
||||||
|
} else if (!TextUtils.isEmpty(conversation.getName())) {
|
||||||
|
binding.conversationOperationHeader.text = conversation.getName()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun initItemsVisibility() {
|
||||||
|
val hasFavoritesCapability = CapabilitiesUtil.hasSpreedFeatureCapability(currentUser, "favorites")
|
||||||
|
val canModerate = conversation.canModerate(currentUser)
|
||||||
|
|
||||||
|
binding.conversationOperationRemoveFavorite.visibility = setVisibleIf(
|
||||||
|
hasFavoritesCapability && conversation.isFavorite()
|
||||||
|
)
|
||||||
|
binding.conversationOperationAddFavorite.visibility = setVisibleIf(
|
||||||
|
hasFavoritesCapability && !conversation.isFavorite()
|
||||||
|
)
|
||||||
|
|
||||||
|
binding.conversationOperationMarkAsRead.visibility = setVisibleIf(
|
||||||
|
conversation.unreadMessages > CallMenuController.ALL_MESSAGES_READ
|
||||||
|
&& CapabilitiesUtil.canSetChatReadMarker(currentUser)
|
||||||
|
)
|
||||||
|
|
||||||
|
binding.conversationOperationRename.visibility = setVisibleIf(
|
||||||
|
conversation.isNameEditable(currentUser)
|
||||||
|
)
|
||||||
|
|
||||||
|
binding.conversationOperationMakePublic.visibility = setVisibleIf(
|
||||||
|
canModerate && !conversation.isPublic
|
||||||
|
)
|
||||||
|
|
||||||
|
binding.conversationOperationChangePassword.visibility = setVisibleIf(
|
||||||
|
canModerate && conversation.isHasPassword
|
||||||
|
)
|
||||||
|
|
||||||
|
binding.conversationOperationClearPassword.visibility = setVisibleIf(
|
||||||
|
canModerate && conversation.isHasPassword
|
||||||
|
)
|
||||||
|
|
||||||
|
binding.conversationOperationSetPassword.visibility = setVisibleIf(
|
||||||
|
canModerate && !conversation.isHasPassword
|
||||||
|
)
|
||||||
|
|
||||||
|
binding.conversationOperationDelete.visibility = setVisibleIf(
|
||||||
|
canModerate
|
||||||
|
)
|
||||||
|
|
||||||
|
binding.conversationOperationShareLink.visibility = setVisibleIf(
|
||||||
|
conversation.isPublic
|
||||||
|
)
|
||||||
|
|
||||||
|
binding.conversationOperationMakePrivate.visibility = setVisibleIf(
|
||||||
|
conversation.isPublic && canModerate
|
||||||
|
)
|
||||||
|
|
||||||
|
binding.conversationOperationLeave.visibility = setVisibleIf(
|
||||||
|
conversation.canLeave(currentUser)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun setVisibleIf(boolean: Boolean): Int {
|
||||||
|
return if (boolean) {
|
||||||
|
View.VISIBLE
|
||||||
|
} else {
|
||||||
|
View.GONE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun initClickListeners() {
|
||||||
|
// // val credentials = ApiUtils.getCredentials(currentUser.username, currentUser.token)
|
||||||
|
// // val apiVersion = ApiUtils.getConversationApiVersion(currentUser, intArrayOf(ApiUtils.APIv4, ApiUtils.APIv1))
|
||||||
|
//
|
||||||
|
// binding.conversationOperationAddFavorite.setOnClickListener {
|
||||||
|
// // TODO: this weird KEY_OPERATION_CODE stuff came from CallMenuController.
|
||||||
|
// // CallMenuController was replaced with the class you're in here.
|
||||||
|
// // This KEY_OPERATION_CODE stuff still needs to be deleted/rewritten in the classes where it's passed to.
|
||||||
|
//
|
||||||
|
// val bundle = Bundle()
|
||||||
|
// bundle.putParcelable(KEY_ROOM, Parcels.wrap(conversation))
|
||||||
|
// bundle.putInt(KEY_OPERATION_CODE, 98)
|
||||||
|
//
|
||||||
|
// // controller.router.pushController(
|
||||||
|
// // RouterTransaction.with(OperationsMenuController(bundle))
|
||||||
|
// // .pushChangeHandler(HorizontalChangeHandler())
|
||||||
|
// // .popChangeHandler(HorizontalChangeHandler())
|
||||||
|
// // )
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// // var view = activity.layoutInflater.inflate(R.layout.bottom_sheet, null, true)
|
||||||
|
// // controller.getChildRouter((view as ViewGroup?)!!).setRoot(
|
||||||
|
// // RouterTransaction.with(OperationsMenuController(bundle))
|
||||||
|
// // .popChangeHandler(VerticalChangeHandler())
|
||||||
|
// // .pushChangeHandler(VerticalChangeHandler())
|
||||||
|
// // )
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// // dismiss()
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// binding.conversationOperationRemoveFavorite.setOnClickListener {
|
||||||
|
// // TODO: this weird KEY_OPERATION_CODE stuff came from CallMenuController.
|
||||||
|
// // CallMenuController was replaced with the class you're in here.
|
||||||
|
// // This KEY_OPERATION_CODE stuff still needs to be deleted/rewritten in the classes where it's passed to.
|
||||||
|
//
|
||||||
|
// val bundle = Bundle()
|
||||||
|
// bundle.putParcelable(KEY_ROOM, Parcels.wrap(conversation))
|
||||||
|
// bundle.putInt(KEY_OPERATION_CODE, 97)
|
||||||
|
//
|
||||||
|
// controller.router.pushController(
|
||||||
|
// RouterTransaction.with(OperationsMenuController(bundle))
|
||||||
|
// .pushChangeHandler(HorizontalChangeHandler())
|
||||||
|
// .popChangeHandler(HorizontalChangeHandler())
|
||||||
|
// )
|
||||||
|
//
|
||||||
|
// dismiss()
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// binding.conversationOperationClearPassword.setOnClickListener {
|
||||||
|
// conversation.setPassword("")
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// binding.conversationOperationLeave.setOnClickListener {
|
||||||
|
// val dataBuilder = Data.Builder()
|
||||||
|
// dataBuilder.putString(KEY_ROOM_TOKEN, conversation.getToken())
|
||||||
|
// dataBuilder.putLong(KEY_INTERNAL_USER_ID, currentUser.id)
|
||||||
|
// val data = dataBuilder.build()
|
||||||
|
//
|
||||||
|
// val leaveConversationWorker =
|
||||||
|
// OneTimeWorkRequest.Builder(LeaveConversationWorker::class.java).setInputData(
|
||||||
|
// data
|
||||||
|
// ).build()
|
||||||
|
// WorkManager.getInstance().enqueue(leaveConversationWorker)
|
||||||
|
//
|
||||||
|
// dismiss()
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// binding.conversationOperationDelete.setOnClickListener {
|
||||||
|
// if (!TextUtils.isEmpty(conversation.getToken())) {
|
||||||
|
// val bundle = Bundle()
|
||||||
|
// bundle.putLong(KEY_INTERNAL_USER_ID, currentUser.id)
|
||||||
|
// bundle.putParcelable(KEY_ROOM, Parcels.wrap(conversation))
|
||||||
|
//
|
||||||
|
// controller.openLovelyDialogWithIdAndBundle(
|
||||||
|
// ConversationsListController.ID_DELETE_CONVERSATION_DIALOG,
|
||||||
|
// bundle
|
||||||
|
// )
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// dismiss()
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// binding.conversationOperationMakePublic.setOnClickListener {
|
||||||
|
// // TODO: this weird KEY_OPERATION_CODE stuff came from CallMenuController.
|
||||||
|
// // CallMenuController was replaced with the class you're in here.
|
||||||
|
// // This KEY_OPERATION_CODE stuff still needs to be deleted/rewritten in the classes where it's passed to.
|
||||||
|
//
|
||||||
|
// val bundle = Bundle()
|
||||||
|
// bundle.putParcelable(KEY_ROOM, Parcels.wrap(conversation))
|
||||||
|
// bundle.putInt(KEY_OPERATION_CODE, 3)
|
||||||
|
//
|
||||||
|
// controller.router.pushController(
|
||||||
|
// RouterTransaction.with(OperationsMenuController(bundle))
|
||||||
|
// .pushChangeHandler(HorizontalChangeHandler())
|
||||||
|
// .popChangeHandler(HorizontalChangeHandler())
|
||||||
|
// )
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// binding.conversationOperationMakePrivate.setOnClickListener {
|
||||||
|
// // TODO: this weird KEY_OPERATION_CODE stuff came from CallMenuController.
|
||||||
|
// // CallMenuController was replaced with the class you're in here.
|
||||||
|
// // This KEY_OPERATION_CODE stuff still needs to be deleted/rewritten in the classes where it's passed to.
|
||||||
|
//
|
||||||
|
// val bundle = Bundle()
|
||||||
|
// bundle.putParcelable(KEY_ROOM, Parcels.wrap(conversation))
|
||||||
|
// bundle.putInt(KEY_OPERATION_CODE, 8)
|
||||||
|
//
|
||||||
|
// controller.router.pushController(
|
||||||
|
// RouterTransaction.with(OperationsMenuController(bundle))
|
||||||
|
// .pushChangeHandler(HorizontalChangeHandler())
|
||||||
|
// .popChangeHandler(HorizontalChangeHandler())
|
||||||
|
// )
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// binding.conversationOperationClearPassword.setOnClickListener {
|
||||||
|
// // TODO: this weird KEY_OPERATION_CODE stuff came from CallMenuController.
|
||||||
|
// // CallMenuController was replaced with the class you're in here.
|
||||||
|
// // This KEY_OPERATION_CODE stuff still needs to be deleted/rewritten in the classes where it's passed to.
|
||||||
|
//
|
||||||
|
// val bundle = Bundle()
|
||||||
|
// bundle.putParcelable(KEY_ROOM, Parcels.wrap(conversation))
|
||||||
|
// bundle.putInt(KEY_OPERATION_CODE, 5)
|
||||||
|
//
|
||||||
|
// controller.router.pushController(
|
||||||
|
// RouterTransaction.with(OperationsMenuController(bundle))
|
||||||
|
// .pushChangeHandler(HorizontalChangeHandler())
|
||||||
|
// .popChangeHandler(HorizontalChangeHandler())
|
||||||
|
// )
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// binding.conversationOperationRename.setOnClickListener {
|
||||||
|
// // TODO: this weird KEY_OPERATION_CODE stuff came from CallMenuController.
|
||||||
|
// // CallMenuController was replaced with the class you're in here.
|
||||||
|
// // This KEY_OPERATION_CODE stuff still needs to be deleted/rewritten in the classes where it's passed to.
|
||||||
|
//
|
||||||
|
// val bundle = Bundle()
|
||||||
|
// bundle.putParcelable(KEY_ROOM, Parcels.wrap(conversation))
|
||||||
|
// bundle.putInt(KEY_OPERATION_CODE, 2)
|
||||||
|
//
|
||||||
|
// controller.router.pushController(
|
||||||
|
// RouterTransaction.with(EntryMenuController(bundle))
|
||||||
|
// .pushChangeHandler(HorizontalChangeHandler())
|
||||||
|
// .popChangeHandler(HorizontalChangeHandler())
|
||||||
|
// )
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// binding.conversationOperationSetPassword.setOnClickListener {
|
||||||
|
// // TODO: this weird KEY_OPERATION_CODE stuff came from CallMenuController.
|
||||||
|
// // CallMenuController was replaced with the class you're in here.
|
||||||
|
// // This KEY_OPERATION_CODE stuff still needs to be deleted/rewritten in the classes where it's passed to.
|
||||||
|
//
|
||||||
|
// val bundle = Bundle()
|
||||||
|
// bundle.putParcelable(KEY_ROOM, Parcels.wrap(conversation))
|
||||||
|
// bundle.putInt(KEY_OPERATION_CODE, 6)
|
||||||
|
//
|
||||||
|
// controller.router.pushController(
|
||||||
|
// RouterTransaction.with(EntryMenuController(bundle))
|
||||||
|
// .pushChangeHandler(HorizontalChangeHandler())
|
||||||
|
// .popChangeHandler(HorizontalChangeHandler())
|
||||||
|
// )
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// binding.conversationOperationShareLink.setOnClickListener {
|
||||||
|
// // TODO share by intent
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onStart() {
|
||||||
|
super.onStart()
|
||||||
|
val bottomSheet = findViewById<View>(R.id.design_bottom_sheet)
|
||||||
|
val behavior = BottomSheetBehavior.from(bottomSheet as View)
|
||||||
|
behavior.state = BottomSheetBehavior.STATE_EXPANDED
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private const val TAG = "ConversationOperationDialog"
|
||||||
|
}
|
||||||
|
}
|
@ -19,6 +19,7 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:id="@+id/controller_operations_view"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:background="@color/bg_default">
|
android:background="@color/bg_default">
|
||||||
|
346
app/src/main/res/layout/dialog_conversation_operations.xml
Normal file
346
app/src/main/res/layout/dialog_conversation_operations.xml
Normal file
@ -0,0 +1,346 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@color/bg_call_screen_dialog"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:paddingStart="@dimen/standard_padding"
|
||||||
|
android:paddingEnd="@dimen/standard_padding"
|
||||||
|
android:paddingBottom="@dimen/standard_half_padding">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/conversation_operation_header"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="@dimen/bottom_sheet_item_height"
|
||||||
|
android:gravity="start|center_vertical"
|
||||||
|
android:textColor="@color/medium_emphasis_text_dark_background"
|
||||||
|
android:textSize="@dimen/bottom_sheet_text_size"
|
||||||
|
tools:text="conversation name"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/conversation_operation_remove_favorite"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/bottom_sheet_item_height"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
tools:ignore="UseCompoundDrawables">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:contentDescription="@null"
|
||||||
|
android:src="@drawable/ic_star_border_black_24dp"
|
||||||
|
app:tint="@color/grey_600" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="start|center_vertical"
|
||||||
|
android:paddingStart="@dimen/standard_double_padding"
|
||||||
|
android:paddingEnd="@dimen/zero"
|
||||||
|
android:text="@string/nc_remove_from_favorites"
|
||||||
|
android:textAlignment="viewStart"
|
||||||
|
android:textColor="@color/high_emphasis_text_dark_background"
|
||||||
|
android:textSize="@dimen/bottom_sheet_text_size" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/conversation_operation_add_favorite"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/bottom_sheet_item_height"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
tools:ignore="UseCompoundDrawables">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:contentDescription="@null"
|
||||||
|
android:src="@drawable/ic_star_black_24dp"
|
||||||
|
app:tint="@color/grey_600" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="start|center_vertical"
|
||||||
|
android:paddingStart="@dimen/standard_double_padding"
|
||||||
|
android:paddingEnd="@dimen/zero"
|
||||||
|
android:text="@string/nc_add_to_favorites"
|
||||||
|
android:textAlignment="viewStart"
|
||||||
|
android:textColor="@color/high_emphasis_text_dark_background"
|
||||||
|
android:textSize="@dimen/bottom_sheet_text_size" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/conversation_operation_mark_as_read"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/bottom_sheet_item_height"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
tools:ignore="UseCompoundDrawables">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:contentDescription="@null"
|
||||||
|
android:src="@drawable/ic_eye"
|
||||||
|
app:tint="@color/grey_600" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="start|center_vertical"
|
||||||
|
android:paddingStart="@dimen/standard_double_padding"
|
||||||
|
android:paddingEnd="@dimen/zero"
|
||||||
|
android:text="@string/nc_mark_as_read"
|
||||||
|
android:textAlignment="viewStart"
|
||||||
|
android:textColor="@color/high_emphasis_text_dark_background"
|
||||||
|
android:textSize="@dimen/bottom_sheet_text_size" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/conversation_operation_rename"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/bottom_sheet_item_height"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
tools:ignore="UseCompoundDrawables">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:contentDescription="@null"
|
||||||
|
android:src="@drawable/ic_pencil_grey600_24dp"
|
||||||
|
app:tint="@color/grey_600" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="start|center_vertical"
|
||||||
|
android:paddingStart="@dimen/standard_double_padding"
|
||||||
|
android:paddingEnd="@dimen/zero"
|
||||||
|
android:text="@string/nc_rename"
|
||||||
|
android:textAlignment="viewStart"
|
||||||
|
android:textColor="@color/high_emphasis_text_dark_background"
|
||||||
|
android:textSize="@dimen/bottom_sheet_text_size" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/conversation_operation_make_public"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/bottom_sheet_item_height"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
tools:ignore="UseCompoundDrawables">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:contentDescription="@null"
|
||||||
|
android:src="@drawable/ic_link_grey600_24px"
|
||||||
|
app:tint="@color/grey_600" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="start|center_vertical"
|
||||||
|
android:paddingStart="@dimen/standard_double_padding"
|
||||||
|
android:paddingEnd="@dimen/zero"
|
||||||
|
android:text="@string/nc_make_call_public"
|
||||||
|
android:textAlignment="viewStart"
|
||||||
|
android:textColor="@color/high_emphasis_text_dark_background"
|
||||||
|
android:textSize="@dimen/bottom_sheet_text_size" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/conversation_operation_change_password"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/bottom_sheet_item_height"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
tools:ignore="UseCompoundDrawables">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:contentDescription="@null"
|
||||||
|
android:src="@drawable/ic_lock_grey600_24px"
|
||||||
|
app:tint="@color/grey_600" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="start|center_vertical"
|
||||||
|
android:paddingStart="@dimen/standard_double_padding"
|
||||||
|
android:paddingEnd="@dimen/zero"
|
||||||
|
android:text="@string/nc_change_password"
|
||||||
|
android:textAlignment="viewStart"
|
||||||
|
android:textColor="@color/high_emphasis_text_dark_background"
|
||||||
|
android:textSize="@dimen/bottom_sheet_text_size" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/conversation_operation_clear_password"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/bottom_sheet_item_height"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
tools:ignore="UseCompoundDrawables">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:contentDescription="@null"
|
||||||
|
android:src="@drawable/ic_lock_open_grey600_24dp"
|
||||||
|
app:tint="@color/grey_600" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="start|center_vertical"
|
||||||
|
android:paddingStart="@dimen/standard_double_padding"
|
||||||
|
android:paddingEnd="@dimen/zero"
|
||||||
|
android:text="@string/nc_clear_password"
|
||||||
|
android:textAlignment="viewStart"
|
||||||
|
android:textColor="@color/high_emphasis_text_dark_background"
|
||||||
|
android:textSize="@dimen/bottom_sheet_text_size" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/conversation_operation_set_password"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/bottom_sheet_item_height"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
tools:ignore="UseCompoundDrawables">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:contentDescription="@null"
|
||||||
|
android:src="@drawable/ic_lock_plus_grey600_24dp"
|
||||||
|
app:tint="@color/grey_600" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="start|center_vertical"
|
||||||
|
android:paddingStart="@dimen/standard_double_padding"
|
||||||
|
android:paddingEnd="@dimen/zero"
|
||||||
|
android:text="@string/nc_set_password"
|
||||||
|
android:textAlignment="viewStart"
|
||||||
|
android:textColor="@color/high_emphasis_text_dark_background"
|
||||||
|
android:textSize="@dimen/bottom_sheet_text_size" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/conversation_operation_delete"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/bottom_sheet_item_height"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
tools:ignore="UseCompoundDrawables">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:contentDescription="@null"
|
||||||
|
android:src="@drawable/ic_delete_grey600_24dp"
|
||||||
|
app:tint="@color/grey_600" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="start|center_vertical"
|
||||||
|
android:paddingStart="@dimen/standard_double_padding"
|
||||||
|
android:paddingEnd="@dimen/zero"
|
||||||
|
android:text="@string/nc_delete_call"
|
||||||
|
android:textAlignment="viewStart"
|
||||||
|
android:textColor="@color/high_emphasis_text_dark_background"
|
||||||
|
android:textSize="@dimen/bottom_sheet_text_size" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/conversation_operation_share_link"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/bottom_sheet_item_height"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
tools:ignore="UseCompoundDrawables">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:contentDescription="@null"
|
||||||
|
android:src="@drawable/ic_link_grey600_24px"
|
||||||
|
app:tint="@color/grey_600" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="start|center_vertical"
|
||||||
|
android:paddingStart="@dimen/standard_double_padding"
|
||||||
|
android:paddingEnd="@dimen/zero"
|
||||||
|
android:text="@string/nc_share_link"
|
||||||
|
android:textAlignment="viewStart"
|
||||||
|
android:textColor="@color/high_emphasis_text_dark_background"
|
||||||
|
android:textSize="@dimen/bottom_sheet_text_size" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/conversation_operation_make_private"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/bottom_sheet_item_height"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
tools:ignore="UseCompoundDrawables">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:contentDescription="@null"
|
||||||
|
android:src="@drawable/ic_group_grey600_24px"
|
||||||
|
app:tint="@color/grey_600" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="start|center_vertical"
|
||||||
|
android:paddingStart="@dimen/standard_double_padding"
|
||||||
|
android:paddingEnd="@dimen/zero"
|
||||||
|
android:text="@string/nc_make_call_private"
|
||||||
|
android:textAlignment="viewStart"
|
||||||
|
android:textColor="@color/high_emphasis_text_dark_background"
|
||||||
|
android:textSize="@dimen/bottom_sheet_text_size" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/conversation_operation_leave"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/bottom_sheet_item_height"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
tools:ignore="UseCompoundDrawables">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:contentDescription="@null"
|
||||||
|
android:src="@drawable/ic_exit_to_app_black_24dp"
|
||||||
|
app:tint="@color/grey_600" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="start|center_vertical"
|
||||||
|
android:paddingStart="@dimen/standard_double_padding"
|
||||||
|
android:paddingEnd="@dimen/zero"
|
||||||
|
android:text="@string/nc_leave"
|
||||||
|
android:textAlignment="viewStart"
|
||||||
|
android:textColor="@color/high_emphasis_text_dark_background"
|
||||||
|
android:textSize="@dimen/bottom_sheet_text_size" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
Loading…
Reference in New Issue
Block a user