From ec3703f8da4c05278d7d2b95da158b24b49e40d4 Mon Sep 17 00:00:00 2001 From: Yash Garg Date: Tue, 13 Dec 2022 19:54:40 +0530 Subject: [PATCH] fix: check current destination before navigating on MainActivity (#218) --- .github/workflows/pr_ci.yml | 7 +++++++ app/src/main/AndroidManifest.xml | 1 - app/src/main/kotlin/dev/yashgarg/qbit/MainActivity.kt | 10 ++++++++-- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pr_ci.yml b/.github/workflows/pr_ci.yml index 9c3f950d..fb88dc0e 100644 --- a/.github/workflows/pr_ci.yml +++ b/.github/workflows/pr_ci.yml @@ -17,6 +17,7 @@ jobs: with: submodules: 'recursive' fetch-depth: 0 + - name: Get changed files id: changed-files uses: tj-actions/changed-files@v34.5.4 @@ -28,6 +29,12 @@ jobs: **/*.kts **/*.xml + - name: List all changed files + run: | + for file in ${{ steps.changed-files.outputs.all_changed_files }}; do + echo "$file was changed" + done + check-codestyle: needs: [ file-changes ] runs-on: ubuntu-latest diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 123a2d1f..75911dc9 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -27,7 +27,6 @@ diff --git a/app/src/main/kotlin/dev/yashgarg/qbit/MainActivity.kt b/app/src/main/kotlin/dev/yashgarg/qbit/MainActivity.kt index 85b3f4dd..a8c6768b 100644 --- a/app/src/main/kotlin/dev/yashgarg/qbit/MainActivity.kt +++ b/app/src/main/kotlin/dev/yashgarg/qbit/MainActivity.kt @@ -56,14 +56,20 @@ class MainActivity : AppCompatActivity() { when (status) { ConfigStatus.EXISTS -> { val bundle = bundleOf(TORRENT_INTENT_KEY to intent?.data.toString()) + val navController = + findNavController(this@MainActivity, R.id.nav_host_fragment) serverPrefsStore.data .map { it.showNotification } .onEach(::launchWorkManager) .launchIn(lifecycleScope) - findNavController(this@MainActivity, R.id.nav_host_fragment) - .navigate(R.id.action_homeFragment_to_serverFragment, bundle) + if (navController.currentDestination?.id == R.id.homeFragment) { + navController.navigate( + R.id.action_homeFragment_to_serverFragment, + bundle + ) + } } ConfigStatus.DOES_NOT_EXIST -> Log.i(ClientManager.tag, "No config found!") }