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 a297e6ff9..dadbfed48 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 @@ -132,6 +132,14 @@ public class CallMenuController extends BaseController implements FlexibleAdapte menuItems.add(new MenuItem(getResources().getString(R.string.nc_configure_room), 0, null)); } + if (conversation.isPinned()) { + menuItems.add(new MenuItem(getResources().getString(R.string.nc_unpin), 97, getResources() + .getDrawable(R.drawable.ic_unpin_grey600_24px))); + } else { + menuItems.add(new MenuItem(getResources().getString(R.string.nc_pin_to_top), 98, getResources() + .getDrawable(R.drawable.ic_pin_grey600_24px))); + } + if (conversation.isNameEditable()) { menuItems.add(new MenuItem(getResources().getString(R.string.nc_rename), 2, getResources().getDrawable(R.drawable .ic_pencil_grey600_24dp))); @@ -202,7 +210,7 @@ public class CallMenuController extends BaseController implements FlexibleAdapte conversation.setPassword(""); } - if (tag > 0 && tag < 10) { + if (tag > 0 && tag < 11) { bundle.putInt(BundleKeys.KEY_OPERATION_CODE, tag); if (tag != 2 && tag != 4 && tag != 6 && tag != 7) { eventBus.post(new BottomSheetLockEvent(false, 0, false, false)); 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 f6ee4e91a..e6a24e50f 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 @@ -163,7 +163,7 @@ public class OperationsMenuController extends BaseController { currentUser = userUtils.getCurrentUser(); OperationsObserver operationsObserver = new OperationsObserver(); - if (!TextUtils.isEmpty(callUrl)) { + if (!TextUtils.isEmpty(callUrl) ) { conversationToken = callUrl.substring(callUrl.lastIndexOf("/") + 1, callUrl.length()); if (callUrl.contains("/index.php")) { baseUrl = callUrl.substring(0, callUrl.indexOf("/index.php")); @@ -316,6 +316,24 @@ public class OperationsMenuController extends BaseController { }); break; + case 97: + case 98: + if (operationCode == 97) { + ncApi.unpinConversation(credentials, ApiUtils.getUrlForConversationPin(currentUser.getBaseUrl(), + conversation.getToken())) + .subscribeOn(Schedulers.newThread()) + .observeOn(AndroidSchedulers.mainThread()) + .retry(1) + .subscribe(operationsObserver); + } else { + ncApi.pinConversation(credentials, ApiUtils.getUrlForConversationPin(currentUser.getBaseUrl(), + conversation.getToken())) + .subscribeOn(Schedulers.newThread()) + .observeOn(AndroidSchedulers.mainThread()) + .retry(1) + .subscribe(operationsObserver); + } + break; case 99: ncApi.joinRoom(credentials, ApiUtils.getUrlForSettingMyselfAsActiveParticipant(baseUrl, conversationToken), callPassword) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index dec913c8e..e22f1d970 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -102,6 +102,8 @@ New conversation Join via link Join via web + Pin to top + Unpin Select contacts