Skip to content

Commit

Permalink
Fixes oppia#3130: Merged Switch click with TextViews in Administrator…
Browse files Browse the repository at this point in the history
…ControlsActivity (oppia#3412)

* Merged switch and textview clicks

* Nit fix

* Test fixes

Co-authored-by: Rajat Talesra <[email protected]>
  • Loading branch information
rt4914 and Rajat Talesra committed Jul 5, 2021
1 parent fb84577 commit 31851ca
Show file tree
Hide file tree
Showing 5 changed files with 145 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,11 @@ class AdministratorControlsDownloadPermissionsViewModel(
val isTopicAutoUpdatePermission =
ObservableField<Boolean>(deviceSettings.automaticallyUpdateTopics)

fun onTopicWifiUpdatePermissionChanged(checked: Boolean) {
profileManagementController.updateWifiPermissionDeviceSettings(userProfileId, checked)
.toLiveData()
fun onTopicWifiUpdatePermissionChanged() {
profileManagementController.updateWifiPermissionDeviceSettings(
userProfileId,
!isTopicWifiUpdatePermission.get()!!
).toLiveData()
.observe(
fragment,
Observer {
Expand All @@ -40,10 +42,10 @@ class AdministratorControlsDownloadPermissionsViewModel(
)
}

fun onTopicAutoUpdatePermissionChanged(checked: Boolean) {
fun onTopicAutoUpdatePermissionChanged() {
profileManagementController.updateTopicAutomaticallyPermissionDeviceSettings(
userProfileId,
checked
!isTopicAutoUpdatePermission.get()!!
).toLiveData().observe(
fragment,
Observer {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:clickable="true"
android:focusable="true"
android:importantForAccessibility="yes"
android:onClick="@{(view) -> viewModel.onTopicWifiUpdatePermissionChanged()}"
android:paddingStart="36dp"
android:paddingTop="20dp"
android:paddingEnd="36dp"
Expand Down Expand Up @@ -69,10 +73,11 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="40dp"
android:checked="@{viewModel.isTopicWifiUpdatePermission}"
android:clickable="false"
android:focusable="false"
android:minWidth="48dp"
android:minHeight="48dp"
android:checked="@{viewModel.isTopicWifiUpdatePermission}"
android:onCheckedChanged="@{(switch, checked) -> viewModel.onTopicWifiUpdatePermissionChanged(checked)}"
android:theme="@style/SwitchCompatTheme"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
Expand All @@ -95,6 +100,10 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:clickable="true"
android:focusable="true"
android:importantForAccessibility="yes"
android:onClick="@{(view) -> viewModel.onTopicAutoUpdatePermissionChanged()}"
android:paddingStart="36dp"
android:paddingTop="20dp"
android:paddingEnd="36dp"
Expand Down Expand Up @@ -131,10 +140,11 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="40dp"
android:checked="@{viewModel.isTopicAutoUpdatePermission}"
android:clickable="false"
android:focusable="false"
android:minWidth="48dp"
android:minHeight="48dp"
android:checked="@{viewModel.isTopicAutoUpdatePermission}"
android:onCheckedChanged="@{(switch, checked) -> viewModel.onTopicAutoUpdatePermissionChanged(checked)}"
android:theme="@style/SwitchCompatTheme"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:clickable="true"
android:focusable="true"
android:importantForAccessibility="yes"
android:onClick="@{(view) -> viewModel.onTopicWifiUpdatePermissionChanged()}"
android:paddingStart="16dp"
android:paddingTop="20dp"
android:paddingEnd="16dp"
Expand Down Expand Up @@ -70,10 +74,11 @@
android:layout_height="wrap_content"
android:layout_marginStart="40dp"
android:layout_marginEnd="4dp"
android:checked="@{viewModel.isTopicWifiUpdatePermission}"
android:clickable="false"
android:focusable="false"
android:minWidth="48dp"
android:minHeight="48dp"
android:checked="@{viewModel.isTopicWifiUpdatePermission}"
android:onCheckedChanged="@{(switch, checked) -> viewModel.onTopicWifiUpdatePermissionChanged(checked)}"
android:theme="@style/SwitchCompatTheme"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
Expand All @@ -96,6 +101,10 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:clickable="true"
android:focusable="true"
android:importantForAccessibility="yes"
android:onClick="@{(view) -> viewModel.onTopicAutoUpdatePermissionChanged()}"
android:paddingStart="16dp"
android:paddingTop="20dp"
android:paddingEnd="16dp"
Expand Down Expand Up @@ -133,10 +142,11 @@
android:layout_height="wrap_content"
android:layout_marginStart="40dp"
android:layout_marginEnd="4dp"
android:checked="@{viewModel.isTopicAutoUpdatePermission}"
android:clickable="false"
android:focusable="false"
android:minWidth="48dp"
android:minHeight="48dp"
android:checked="@{viewModel.isTopicAutoUpdatePermission}"
android:onCheckedChanged="@{(switch, checked) -> viewModel.onTopicAutoUpdatePermissionChanged(checked)}"
android:theme="@style/SwitchCompatTheme"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:clickable="true"
android:focusable="true"
android:importantForAccessibility="yes"
android:onClick="@{(view) -> viewModel.onTopicWifiUpdatePermissionChanged()}"
android:paddingStart="16dp"
android:paddingTop="20dp"
android:paddingEnd="16dp"
Expand Down Expand Up @@ -70,10 +74,11 @@
android:layout_height="wrap_content"
android:layout_marginStart="40dp"
android:layout_marginEnd="4dp"
android:checked="@{viewModel.isTopicWifiUpdatePermission}"
android:clickable="false"
android:focusable="false"
android:minWidth="48dp"
android:minHeight="48dp"
android:checked="@{viewModel.isTopicWifiUpdatePermission}"
android:onCheckedChanged="@{(switch, checked) -> viewModel.onTopicWifiUpdatePermissionChanged(checked)}"
android:theme="@style/SwitchCompatTheme"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
Expand All @@ -96,6 +101,10 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:clickable="true"
android:focusable="true"
android:importantForAccessibility="yes"
android:onClick="@{(view) -> viewModel.onTopicAutoUpdatePermissionChanged()}"
android:paddingStart="16dp"
android:paddingTop="20dp"
android:paddingEnd="16dp"
Expand Down Expand Up @@ -133,10 +142,11 @@
android:layout_height="wrap_content"
android:layout_marginStart="40dp"
android:layout_marginEnd="4dp"
android:checked="@{viewModel.isTopicAutoUpdatePermission}"
android:clickable="false"
android:focusable="false"
android:minWidth="48dp"
android:minHeight="48dp"
android:checked="@{viewModel.isTopicAutoUpdatePermission}"
android:onCheckedChanged="@{(switch, checked) -> viewModel.onTopicAutoUpdatePermissionChanged(checked)}"
android:theme="@style/SwitchCompatTheme"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import androidx.test.espresso.intent.matcher.IntentMatchers.hasComponent
import androidx.test.espresso.matcher.RootMatchers.isDialog
import androidx.test.espresso.matcher.ViewMatchers
import androidx.test.espresso.matcher.ViewMatchers.isChecked
import androidx.test.espresso.matcher.ViewMatchers.isClickable
import androidx.test.espresso.matcher.ViewMatchers.isCompletelyDisplayed
import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
import androidx.test.espresso.matcher.ViewMatchers.isRoot
Expand Down Expand Up @@ -269,7 +270,7 @@ class AdministratorControlsActivityTest {
}

@Test
fun testAdministratorControlsFragment_clickWifiSwitch_configChange_wifiSwitchIsChecked() {
fun testAdministratorControlsFragment_clickWifiContainer_configChange_wifiSwitchIsChecked() {
launch<AdministratorControlsActivity>(
createAdministratorControlsActivityIntent(
profileId = internalProfileId
Expand All @@ -295,9 +296,10 @@ class AdministratorControlsActivityTest {
atPositionOnView(
recyclerViewId = R.id.administrator_controls_list,
position = 2,
targetViewId = R.id.topic_update_on_wifi_switch
targetViewId = R.id.topic_update_on_wifi_constraint_layout
)
).perform(click())
testCoroutineDispatchers.runCurrent()
onView(isRoot()).perform(orientationLandscape())
scrollToPosition(position = 2)
onView(
Expand Down Expand Up @@ -333,6 +335,98 @@ class AdministratorControlsActivityTest {
}
}

@Test
fun testAdministratorControlsFragment_clickWifiContainer_wifiSwitchIsChecked() {
launch<AdministratorControlsActivity>(
createAdministratorControlsActivityIntent(
profileId = internalProfileId
)
).use {
testCoroutineDispatchers.runCurrent()
scrollToPosition(position = 2)
onView(
atPositionOnView(
recyclerViewId = R.id.administrator_controls_list,
position = 2,
targetViewId = R.id.topic_update_on_wifi_constraint_layout
)
).perform(click())
testCoroutineDispatchers.runCurrent()
onView(
atPositionOnView(
recyclerViewId = R.id.administrator_controls_list,
position = 2,
targetViewId = R.id.topic_update_on_wifi_switch
)
).check(matches(isChecked()))
}
}

@Test
fun testAdministratorControlsFragment_clickAutoUpdateContainer_autoUpdateSwitchIsChecked() {
launch<AdministratorControlsActivity>(
createAdministratorControlsActivityIntent(
profileId = internalProfileId
)
).use {
testCoroutineDispatchers.runCurrent()
scrollToPosition(position = 2)
onView(
atPositionOnView(
recyclerViewId = R.id.administrator_controls_list,
position = 2,
targetViewId = R.id.auto_update_topic_constraint_layout
)
).perform(click())
testCoroutineDispatchers.runCurrent()
onView(
atPositionOnView(
recyclerViewId = R.id.administrator_controls_list,
position = 2,
targetViewId = R.id.auto_update_topic_switch
)
).check(matches(isChecked()))
}
}

@Test
fun testAdministratorControlsFragment_wifiSwitchIsNonClickable() {
launch<AdministratorControlsActivity>(
createAdministratorControlsActivityIntent(
profileId = internalProfileId
)
).use {
testCoroutineDispatchers.runCurrent()
scrollToPosition(position = 2)
onView(
atPositionOnView(
recyclerViewId = R.id.administrator_controls_list,
position = 2,
targetViewId = R.id.topic_update_on_wifi_switch
)
).check(matches(not(isClickable())))
}
}

@Test
fun testAdministratorControlsFragment_autoUpdateSwitchIsNonClickable() {
launch<AdministratorControlsActivity>(
createAdministratorControlsActivityIntent(
profileId = internalProfileId
)
).use {
testCoroutineDispatchers.runCurrent()
scrollToPosition(position = 2)
onView(
atPositionOnView(
recyclerViewId = R.id.administrator_controls_list,
position = 2,
targetViewId = R.id.auto_update_topic_switch
)
).check(matches(not(isClickable())))
}
}

@Test
fun testAdministratorControlsFragment_clickEditProfile_opensProfileListActivity() {
launch<AdministratorControlsActivity>(
Expand Down

0 comments on commit 31851ca

Please sign in to comment.