Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixes #3641 Use finish() instead of intent for smoother navigation #5557

Merged
merged 8 commits into from
Nov 15, 2024
Original file line number Diff line number Diff line change
@@ -70,7 +70,6 @@ class ExitProfileDialogFragment : InjectableDialogFragment() {
dialog.dismiss()
}
.setPositiveButton(R.string.home_activity_back_dialog_exit) { _, _ ->
// TODO(#3641): Investigate on using finish instead of intent.
val intent = ProfileChooserActivity.createProfileChooserActivity(activity!!)
if (!restoreLastCheckedItem) {
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
Original file line number Diff line number Diff line change
@@ -44,10 +44,7 @@ class AddProfileActivity : InjectableAutoLocalizedAppCompatActivity() {
}

override fun onSupportNavigateUp(): Boolean {
// TODO(#3641): Investigate on using finish instead of intent.
val intent = Intent(this, ProfileChooserActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
startActivity(intent)
finish()
return false
}

Original file line number Diff line number Diff line change
@@ -13,6 +13,7 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.test.core.app.ActivityScenario.launch
import androidx.test.core.app.ApplicationProvider
import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.action.ViewActions
import androidx.test.espresso.action.ViewActions.click
import androidx.test.espresso.action.ViewActions.closeSoftKeyboard
import androidx.test.espresso.action.ViewActions.pressImeActionButton
@@ -1748,6 +1749,15 @@ class AddProfileActivityTest {
assertThat(currentScreenName).isEqualTo(ScreenName.ADD_PROFILE_ACTIVITY)
}

@Test
fun testAddProfileActivity_onBackPressed_finishActivity() {
val scenario = launch(AddProfileActivity::class.java)
onView(isRoot()).perform(ViewActions.pressBack())
testCoroutineDispatchers.runCurrent()
scenario.onActivity { activity ->
assertThat(activity.isFinishing).isTrue()
}
}
private fun createAddProfileActivityIntent(): Intent {
return AddProfileActivity.createAddProfileActivityIntent(
ApplicationProvider.getApplicationContext(),