From 08d44641d5c2cd79e9c6eb5d2322dbd6ccd0f8ab Mon Sep 17 00:00:00 2001 From: Mario Danic Date: Sun, 7 Apr 2019 21:05:09 +0200 Subject: [PATCH 1/9] Fix an issue with one2one rooms not leavable Signed-off-by: Mario Danic --- .../com/nextcloud/talk/models/json/rooms/Conversation.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/models/json/rooms/Conversation.java b/app/src/main/java/com/nextcloud/talk/models/json/rooms/Conversation.java index 0203f742d..1371d49fb 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/rooms/Conversation.java +++ b/app/src/main/java/com/nextcloud/talk/models/json/rooms/Conversation.java @@ -101,8 +101,8 @@ public class Conversation { } public boolean canModerate(UserEntity conversationUser) { - return (Participant.ParticipantType.OWNER.equals(participantType) - || Participant.ParticipantType.MODERATOR.equals(participantType) && !isLockedOneToOne(conversationUser)); + return ((Participant.ParticipantType.OWNER.equals(participantType) + || Participant.ParticipantType.MODERATOR.equals(participantType)) && !isLockedOneToOne(conversationUser)); } public boolean isNameEditable(UserEntity conversationUser) { From e1edf954e92f5c75064e4449a69c32dc8c1a37a8 Mon Sep 17 00:00:00 2001 From: Mario Danic Date: Sun, 7 Apr 2019 21:25:21 +0200 Subject: [PATCH 2/9] Fix a menu issue Signed-off-by: Mario Danic --- .../talk/controllers/ChatController.java | 25 ++++++++++++------- app/src/main/res/menu/menu_conversation.xml | 2 -- 2 files changed, 16 insertions(+), 11 deletions(-) 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 b83d120ec..68d01ca5d 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.java +++ b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.java @@ -433,18 +433,14 @@ public class ChatController extends BaseController implements MessagesListAdapte messageInput.setHint(R.string.nc_readonly_hint); conversationVoiceCallMenuItem.getIcon().setAlpha(99); - conversationVoiceCallMenuItem.setEnabled(false); conversationVideoMenuItem.getIcon().setAlpha(99); - conversationVideoMenuItem.setEnabled(false); setChildrenState(messageInputView, false); } else { messageInput.setHint(""); conversationVoiceCallMenuItem.getIcon().setAlpha(255); - conversationVoiceCallMenuItem.setEnabled(true); conversationVideoMenuItem.getIcon().setAlpha(255); - conversationVideoMenuItem.setEnabled(true); setChildrenState(messageInputView, true); } @@ -1048,7 +1044,7 @@ public class ChatController extends BaseController implements MessagesListAdapte } @Override - public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); inflater.inflate(R.menu.menu_conversation, menu); if (conversationUser.getUserId().equals("?")) { @@ -1058,6 +1054,11 @@ public class ChatController extends BaseController implements MessagesListAdapte conversationVoiceCallMenuItem = menu.findItem(R.id.conversation_voice_call); conversationVideoMenuItem = menu.findItem(R.id.conversation_video_call); } + } + + @Override + public void onPrepareOptionsMenu(@NonNull Menu menu) { + super.onPrepareOptionsMenu(menu); if (conversationUser.hasSpreedCapabilityWithName("read-only-rooms")) { checkReadOnlyState(); @@ -1072,11 +1073,17 @@ public class ChatController extends BaseController implements MessagesListAdapte getRouter().popCurrentController(); return true; case R.id.conversation_video_call: - startACall(false); - return true; + if (conversationVideoMenuItem.getIcon().getAlpha() == 255) { + startACall(false); + return true; + } + return false; case R.id.conversation_voice_call: - startACall(true); - return true; + if (conversationVoiceCallMenuItem.getIcon().getAlpha() == 255) { + startACall(true); + return true; + } + return false; case R.id.conversation_info: showConversationInfoScreen(); return true; diff --git a/app/src/main/res/menu/menu_conversation.xml b/app/src/main/res/menu/menu_conversation.xml index 170166418..f9d74ac28 100644 --- a/app/src/main/res/menu/menu_conversation.xml +++ b/app/src/main/res/menu/menu_conversation.xml @@ -25,7 +25,6 @@ android:id="@+id/conversation_voice_call" android:icon="@drawable/ic_call_white_24dp" android:orderInCategory="0" - android:enabled="false" android:title="@string/nc_conversation_menu_voice_call" app:showAsAction="ifRoom" /> @@ -34,7 +33,6 @@ android:icon="@drawable/ic_videocam_white_24px" android:orderInCategory="1" android:title="@string/nc_conversation_menu_video_call" - android:enabled="false" app:showAsAction="ifRoom" /> Date: Sun, 7 Apr 2019 21:30:08 +0200 Subject: [PATCH 3/9] Fix emoji in call menu Signed-off-by: Mario Danic --- .../main/java/com/nextcloud/talk/adapters/items/MenuItem.java | 4 +++- app/src/main/res/layout/rv_item_menu.xml | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/MenuItem.java b/app/src/main/java/com/nextcloud/talk/adapters/items/MenuItem.java index 6868ccbe6..f3e601f4c 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/items/MenuItem.java +++ b/app/src/main/java/com/nextcloud/talk/adapters/items/MenuItem.java @@ -34,6 +34,8 @@ import butterknife.ButterKnife; import com.nextcloud.talk.R; import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.utils.DisplayUtils; +import com.vanniktech.emoji.EmojiTextView; + import eu.davidea.flexibleadapter.FlexibleAdapter; import eu.davidea.flexibleadapter.items.AbstractFlexibleItem; import eu.davidea.viewholders.FlexibleViewHolder; @@ -96,7 +98,7 @@ public class MenuItem extends AbstractFlexibleItem static class MenuItemViewHolder extends FlexibleViewHolder { @BindView(R.id.menu_text) - public TextView menuTitle; + public EmojiTextView menuTitle; /** * Default constructor. diff --git a/app/src/main/res/layout/rv_item_menu.xml b/app/src/main/res/layout/rv_item_menu.xml index 460565583..5e04ba0b7 100644 --- a/app/src/main/res/layout/rv_item_menu.xml +++ b/app/src/main/res/layout/rv_item_menu.xml @@ -26,7 +26,7 @@ android:layout_height="wrap_content" android:background="@color/white"> - Date: Sun, 7 Apr 2019 21:31:34 +0200 Subject: [PATCH 4/9] Tag v6.0.0beta2 Signed-off-by: Mario Danic --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index df893de41..22335289a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,8 +17,8 @@ android { targetSdkVersion 28 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - versionCode 89 - versionName "6.0.0beta1" + versionCode 90 + versionName "6.0.0beta2" flavorDimensions "default" renderscriptTargetApi 19 From 46bfb3e3337e27eb848ffe8a3dfe665c57d0428f Mon Sep 17 00:00:00 2001 From: Nextcloud bot Date: Mon, 8 Apr 2019 00:55:29 +0000 Subject: [PATCH 5/9] [tx-robot] updated from transifex --- app/src/main/res/values-nl/strings.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 0b5c3a4a8..6a296d1d3 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -80,6 +80,7 @@ Kies er eentje vanĀ een provider. Telefoon zal trillen, tenzij deze is gedempt Privacy Schermvergrendeling + Vergrendel %1$s via de Android schermvergendeling of een ondersteunde biometrische methode Schermblokkade inactiviteit time-out Geen Schermbeveiliging @@ -241,4 +242,5 @@ Je kunt proberen om aan het gesprek deel te nemen via een browser. Gebruiker Gast Gebruiker die een openbare link volgde - + Dit gesprek is gesloten + From 3c184f7d526b5e1daf04365a8c666c912a3251f9 Mon Sep 17 00:00:00 2001 From: Mario Danic Date: Tue, 9 Apr 2019 10:27:47 +0200 Subject: [PATCH 6/9] Fix @all mentions Signed-off-by: Mario Danic --- .../java/com/nextcloud/talk/models/json/chat/ChatUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatUtils.java b/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatUtils.java index f71b36895..92d7b2f05 100644 --- a/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatUtils.java +++ b/app/src/main/java/com/nextcloud/talk/models/json/chat/ChatUtils.java @@ -28,7 +28,7 @@ public class ChatUtils { if (messageParameters != null && messageParameters.size() > 0) { for (String key : messageParameters.keySet()) { HashMap individualHashMap = messageParameters.get(key); - if (individualHashMap.get("type").equals("user") || individualHashMap.get("type").equals("guest")) { + if (individualHashMap.get("type").equals("user") || individualHashMap.get("type").equals("guest") || individualHashMap.get("type").equals("call")) { message = message.replaceAll("\\{" + key + "\\}", "@" + messageParameters.get(key).get("name")); } else if (individualHashMap.get("type").equals("file")) { From 48fdee2a65c3e399b8725e7ae6c4d575527ef6ed Mon Sep 17 00:00:00 2001 From: Mario Danic Date: Tue, 9 Apr 2019 10:40:30 +0200 Subject: [PATCH 7/9] Fix mention coloring Signed-off-by: Mario Danic --- .../messages/MagicIncomingTextMessageViewHolder.java | 3 ++- .../messages/MagicOutcomingTextMessageViewHolder.java | 2 +- .../adapters/messages/MagicSystemMessageViewHolder.java | 3 ++- .../main/java/com/nextcloud/talk/utils/DisplayUtils.java | 6 +++--- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.java b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.java index 6df27b1de..42aaf6f1c 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.java +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.java @@ -155,7 +155,8 @@ public class MagicIncomingTextMessageViewHolder .nc_incoming_text_mention_others); } - messageString = DisplayUtils.searchAndColor(message.getText(), "@" + individualHashMap.get("name"), color); + messageString = DisplayUtils.searchAndColor(messageString, + "@" + individualHashMap.get("name"), color); } else if (individualHashMap.get("type").equals("file")) { itemView.setOnClickListener(v -> { Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(individualHashMap.get("link"))); diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.java b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.java index 559ab5d09..26633d1fd 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.java +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.java @@ -92,7 +92,7 @@ public class MagicOutcomingTextMessageViewHolder extends MessageHolders.Outcomin if (individualHashMap.get("type").equals("user") || individualHashMap.get("type").equals("guest") || individualHashMap.get("type").equals("call")) { if (!individualHashMap.get("id").equals(message.getActiveUserId())) { messageString = - DisplayUtils.searchAndColor(message.getText(), + DisplayUtils.searchAndColor(messageString, "@" + individualHashMap.get("name"), NextcloudTalkApplication .getSharedApplication().getResources().getColor(R.color.nc_outcoming_text_default)); } diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicSystemMessageViewHolder.java b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicSystemMessageViewHolder.java index 0f09ab820..ec6f34260 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicSystemMessageViewHolder.java +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicSystemMessageViewHolder.java @@ -68,7 +68,8 @@ public class MagicSystemMessageViewHolder extends MessageHolders.IncomingTextMes } messageString = - DisplayUtils.searchAndColor(message.getText(), "@" + individualHashMap.get("name"), color); + DisplayUtils.searchAndColor(messageString, + "@" + individualHashMap.get("name"), color); } } } diff --git a/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java b/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java index c38714bc5..ffbe23455 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java +++ b/app/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java @@ -209,10 +209,10 @@ public class DisplayUtils { } - public static Spannable searchAndColor(String text, String searchText, @ColorInt int color) { + public static Spannable searchAndColor(Spannable text, String searchText, @ColorInt int color) { Spannable spannableString = new SpannableString(text); - + String stringText = text.toString(); if (TextUtils.isEmpty(text) || TextUtils.isEmpty(searchText)) { return spannableString; } @@ -227,7 +227,7 @@ public class DisplayUtils { int lastStartIndex = -1; while (m.find()) { - int start = text.indexOf(m.group(), lastStartIndex); + int start = stringText.indexOf(m.group(), lastStartIndex); int end = start + m.group().length(); lastStartIndex = end; spannableString.setSpan(new ForegroundColorSpan(color), start, end, From 67b590d9d08e2a65eaba36014af9b6b84155051b Mon Sep 17 00:00:00 2001 From: Mario Danic Date: Tue, 9 Apr 2019 13:27:50 +0200 Subject: [PATCH 8/9] Fix #389 Signed-off-by: Mario Danic --- .../talk/controllers/CallController.java | 29 +++++++++++++++---- app/src/main/res/layout/controller_call.xml | 5 ++-- app/src/main/res/values/dimens.xml | 1 + 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/controllers/CallController.java b/app/src/main/java/com/nextcloud/talk/controllers/CallController.java index 968046319..d03f8bea1 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/CallController.java +++ b/app/src/main/java/com/nextcloud/talk/controllers/CallController.java @@ -35,10 +35,7 @@ import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.RelativeLayout; -import android.widget.TextView; +import android.widget.*; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; @@ -98,6 +95,7 @@ import pub.devrel.easypermissions.AfterPermissionGranted; import javax.inject.Inject; import java.io.IOException; +import java.lang.reflect.Field; import java.util.*; import java.util.concurrent.TimeUnit; @@ -268,6 +266,8 @@ public class CallController extends BaseController { .setRepeatCount(PulseAnimation.INFINITE) .setRepeatMode(PulseAnimation.REVERSE); + setPipVideoViewDimensions(); + try { cache.evictAll(); } catch (IOException e) { @@ -540,7 +540,6 @@ public class CallController extends BaseController { if (enumerator.isFrontFacing(deviceName)) { Logging.d(TAG, "Creating front facing camera capturer."); VideoCapturer videoCapturer = enumerator.createCapturer(deviceName, null); - if (videoCapturer != null) { pipVideoView.setMirror(true); return videoCapturer; @@ -1431,7 +1430,7 @@ public class CallController extends BaseController { videoCapturer.startCapture(1280, 720, 30); } } - + private void processUsersInRoom(List> users) { List newSessions = new ArrayList<>(); Set oldSesssions = new HashSet<>(); @@ -1608,13 +1607,31 @@ public class CallController extends BaseController { public void onMessageEvent(ConfigurationChangeEvent configurationChangeEvent) { powerManagerUtils.setOrientation(Objects.requireNonNull(getResources()).getConfiguration().orientation); + if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { remoteRenderersLayout.setOrientation(LinearLayout.HORIZONTAL); } else if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { remoteRenderersLayout.setOrientation(LinearLayout.VERTICAL); } + + setPipVideoViewDimensions(); } + private void setPipVideoViewDimensions() { + FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) pipVideoView.getLayoutParams(); + + if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { + remoteRenderersLayout.setOrientation(LinearLayout.HORIZONTAL); + layoutParams.height = (int) getResources().getDimension(R.dimen.large_preview_dimension); + layoutParams.width = FrameLayout.LayoutParams.WRAP_CONTENT; + pipVideoView.setLayoutParams(layoutParams); + } else if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { + remoteRenderersLayout.setOrientation(LinearLayout.VERTICAL); + layoutParams.height = FrameLayout.LayoutParams.WRAP_CONTENT; + layoutParams.width = (int) getResources().getDimension(R.dimen.large_preview_dimension); + pipVideoView.setLayoutParams(layoutParams); + } + } @Subscribe(threadMode = ThreadMode.MAIN) public void onMessageEvent(PeerConnectionEvent peerConnectionEvent) { if (peerConnectionEvent.getPeerConnectionEventType().equals(PeerConnectionEvent.PeerConnectionEventType diff --git a/app/src/main/res/layout/controller_call.xml b/app/src/main/res/layout/controller_call.xml index a9ccbe67d..1522b1352 100644 --- a/app/src/main/res/layout/controller_call.xml +++ b/app/src/main/res/layout/controller_call.xml @@ -82,8 +82,8 @@ @@ -94,7 +94,6 @@ android:layout_height="40dp" android:layout_gravity="center_horizontal|bottom" android:layout_marginBottom="20dp" - app:checked="false" app:enableInitialAnimation="false" app:frontBackgroundColor="@color/colorPrimary" diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 357f6c3e6..f4c32781f 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -16,4 +16,5 @@ 14sp 6dp 8dp + 120dp From 19131ad853e17dfea2ac6510c8433941d9cf12ac Mon Sep 17 00:00:00 2001 From: Mario Danic Date: Tue, 9 Apr 2019 13:37:54 +0200 Subject: [PATCH 9/9] Make preview smaller Signed-off-by: Mario Danic --- app/src/main/res/values/dimens.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index f4c32781f..3d6496af5 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -16,5 +16,5 @@ 14sp 6dp 8dp - 120dp + 80dp