From f6fa794a1862bafd70bd6d38ccfa8407c9118b53 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Thu, 28 Apr 2022 14:40:11 +0200 Subject: [PATCH 1/4] Restore voice call test (was fixed in #5847) --- .../androidTest/java/im/vector/app/ui/robot/RoomDetailRobot.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/vector/src/androidTest/java/im/vector/app/ui/robot/RoomDetailRobot.kt b/vector/src/androidTest/java/im/vector/app/ui/robot/RoomDetailRobot.kt index 0ea1191fba..91409582d9 100644 --- a/vector/src/androidTest/java/im/vector/app/ui/robot/RoomDetailRobot.kt +++ b/vector/src/androidTest/java/im/vector/app/ui/robot/RoomDetailRobot.kt @@ -56,10 +56,8 @@ class RoomDetailRobot { // Menu openMenu() pressBack() - /* TODO something has changed in the menu :/ clickMenu(R.id.voice_call) pressBack() - */ clickMenu(R.id.video_call) pressBack() } From f48be229c8b55e36f7c9cbc5bf39f2694688520e Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Thu, 28 Apr 2022 16:39:59 +0200 Subject: [PATCH 2/4] Fix issue with ignored users. Preference Category and Preference title have the same value. --- .../app/espresso/tools/EspressoPreference.kt | 14 +++++++++++--- .../app/ui/robot/settings/SettingsSecurityRobot.kt | 8 ++------ 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/vector/src/androidTest/java/im/vector/app/espresso/tools/EspressoPreference.kt b/vector/src/androidTest/java/im/vector/app/espresso/tools/EspressoPreference.kt index 178b9fb9f6..80cdeeccf1 100644 --- a/vector/src/androidTest/java/im/vector/app/espresso/tools/EspressoPreference.kt +++ b/vector/src/androidTest/java/im/vector/app/espresso/tools/EspressoPreference.kt @@ -26,18 +26,26 @@ import androidx.test.espresso.action.ViewActions.click import androidx.test.espresso.contrib.RecyclerViewActions.actionOnItem import androidx.test.espresso.matcher.PreferenceMatchers.withKey import androidx.test.espresso.matcher.ViewMatchers.hasDescendant +import androidx.test.espresso.matcher.ViewMatchers.isFocusable import androidx.test.espresso.matcher.ViewMatchers.withClassName import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.espresso.matcher.ViewMatchers.withText import im.vector.app.R +import org.hamcrest.Matchers.`is` import org.hamcrest.Matchers.allOf import org.hamcrest.Matchers.instanceOf -import org.hamcrest.Matchers.`is` fun clickOnPreference(@StringRes textResId: Int) { onView(withId(R.id.recycler_view)) - .perform(actionOnItem( - hasDescendant(withText(textResId)), click())) + .perform( + actionOnItem( + allOf( + hasDescendant(withText(textResId)), + // Avoid to click on the Preference Category + isFocusable() + ), click() + ) + ) } fun clickOnSwitchPreference(preferenceKey: String) { diff --git a/vector/src/androidTest/java/im/vector/app/ui/robot/settings/SettingsSecurityRobot.kt b/vector/src/androidTest/java/im/vector/app/ui/robot/settings/SettingsSecurityRobot.kt index ef20d7764b..841c99e1b5 100644 --- a/vector/src/androidTest/java/im/vector/app/ui/robot/settings/SettingsSecurityRobot.kt +++ b/vector/src/androidTest/java/im/vector/app/ui/robot/settings/SettingsSecurityRobot.kt @@ -18,7 +18,6 @@ package im.vector.app.ui.robot.settings import androidx.test.espresso.Espresso import im.vector.app.R -import im.vector.app.clickOnAndGoBack import im.vector.app.espresso.tools.clickOnPreference class SettingsSecurityRobot { @@ -38,10 +37,7 @@ class SettingsSecurityRobot { clickOnPreference(R.string.settings_opt_in_of_analytics) Espresso.pressBack() - ignoredUsers() - } - - private fun ignoredUsers(block: () -> Unit = {}) { - clickOnAndGoBack(R.string.settings_ignored_users) { block() } + clickOnPreference(R.string.settings_ignored_users) + Espresso.pressBack() } } From 2a8134af896d9272cfa8a5a219c88c70260c2245 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Thu, 28 Apr 2022 16:55:46 +0200 Subject: [PATCH 3/4] Ensure voice call menu item is visible to the user when there is only one room member. The video call menu item is already visible (for other previous reason). --- .../app/features/home/room/detail/RoomDetailViewState.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailViewState.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailViewState.kt index 0c56d7e7eb..e01c5ba3b7 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailViewState.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailViewState.kt @@ -87,7 +87,12 @@ data class RoomDetailViewState( rootThreadEventId = args.threadTimelineArgs?.rootThreadEventId ) - fun isCallOptionAvailable() = asyncRoomSummary.invoke()?.isDirect ?: true + fun isCallOptionAvailable(): Boolean { + return asyncRoomSummary.invoke()?.isDirect ?: true || + // When there is only one member, a warning will be displayed when the user + // clicks on the menu item to start a call + asyncRoomSummary.invoke()?.joinedMembersCount == 1 + } fun isSearchAvailable() = asyncRoomSummary()?.isEncrypted == false From 7fa1af381997bc80506e12c586195f36e35a7fcd Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 29 Apr 2022 10:05:51 +0200 Subject: [PATCH 4/4] Looks like ktlint and Android Studio does not order imports with the same rules :/. Let's please ktlint for the CI :/ --- .../java/im/vector/app/espresso/tools/EspressoPreference.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vector/src/androidTest/java/im/vector/app/espresso/tools/EspressoPreference.kt b/vector/src/androidTest/java/im/vector/app/espresso/tools/EspressoPreference.kt index 80cdeeccf1..19dc1d391c 100644 --- a/vector/src/androidTest/java/im/vector/app/espresso/tools/EspressoPreference.kt +++ b/vector/src/androidTest/java/im/vector/app/espresso/tools/EspressoPreference.kt @@ -31,9 +31,9 @@ import androidx.test.espresso.matcher.ViewMatchers.withClassName import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.espresso.matcher.ViewMatchers.withText import im.vector.app.R -import org.hamcrest.Matchers.`is` import org.hamcrest.Matchers.allOf import org.hamcrest.Matchers.instanceOf +import org.hamcrest.Matchers.`is` fun clickOnPreference(@StringRes textResId: Int) { onView(withId(R.id.recycler_view))