From 7a271a3414aad563fb13865049a5efabf7dde750 Mon Sep 17 00:00:00 2001 From: Yurii Poudanien Date: Tue, 11 Apr 2023 00:25:00 +0300 Subject: [PATCH 01/13] * added additional methods for hide/show toolbar --- .../java/com/sdex/activityrunner/commons/BaseActivity.kt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/src/main/java/com/sdex/activityrunner/commons/BaseActivity.kt b/app/src/main/java/com/sdex/activityrunner/commons/BaseActivity.kt index 9d3c9b5f..342e5bd6 100644 --- a/app/src/main/java/com/sdex/activityrunner/commons/BaseActivity.kt +++ b/app/src/main/java/com/sdex/activityrunner/commons/BaseActivity.kt @@ -1,6 +1,7 @@ package com.sdex.activityrunner.commons import android.view.MenuItem +import android.view.View import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.widget.Toolbar import com.sdex.activityrunner.R @@ -32,4 +33,12 @@ open class BaseActivity : AppCompatActivity() { protected fun setSubtitle(subtitle: CharSequence) { supportActionBar?.subtitle = subtitle } + + protected fun hideToolbar() { + findViewById(R.id.toolbar).visibility = View.GONE + } + + protected fun showToolbar() { + findViewById(R.id.toolbar).visibility = View.VISIBLE + } } From 593dfa435b0d91b73987a6cf80295938767f2f20 Mon Sep 17 00:00:00 2001 From: Yurii Poudanien Date: Tue, 11 Apr 2023 00:25:26 +0300 Subject: [PATCH 02/13] * added FindInPage library --- app/build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/app/build.gradle b/app/build.gradle index b5479933..1c9afa9d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -108,6 +108,7 @@ dependencies { implementation "com.tomergoldst.android:tooltips:1.1.1" implementation "net.dongliu:apk-parser:2.6.10" implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4" + implementation "com.github.Y-E-P:BrowserFiP:1.0.2" testImplementation "junit:junit:4.13.2" From c50d3f40e91453cdbf99fc92e838cbc3c176625a Mon Sep 17 00:00:00 2001 From: Yurii Poudanien Date: Tue, 11 Apr 2023 00:25:39 +0300 Subject: [PATCH 03/13] * implemented simple Find in Page --- .../manifest/ManifestViewerActivity.kt | 79 +++++++++---------- .../res/layout/activity_manifest_viewer.xml | 30 ++++++- app/src/main/res/menu/manifest_viewer.xml | 3 +- 3 files changed, 67 insertions(+), 45 deletions(-) diff --git a/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt b/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt index e4639e8b..8365a5ac 100644 --- a/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt +++ b/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt @@ -7,11 +7,12 @@ import android.graphics.Color import android.os.Bundle import android.view.Menu import android.view.MenuItem +import android.view.View import android.widget.Toast +import androidx.activity.OnBackPressedCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.viewModels import androidx.appcompat.app.AppCompatDelegate -import androidx.appcompat.widget.SearchView import com.sdex.activityrunner.BuildConfig import com.sdex.activityrunner.R import com.sdex.activityrunner.commons.BaseActivity @@ -19,9 +20,9 @@ import com.sdex.activityrunner.databinding.ActivityManifestViewerBinding import com.sdex.activityrunner.db.cache.ApplicationModel import com.sdex.activityrunner.preferences.AppPreferences import com.sdex.activityrunner.util.IntentUtils -import com.sdex.activityrunner.util.UIUtils import com.sdex.highlightjs.models.Language import com.sdex.highlightjs.models.Theme +import com.yupo.browserfiplib.FiPSearchView import dagger.hilt.android.AndroidEntryPoint import javax.inject.Inject @@ -96,11 +97,37 @@ class ManifestViewerActivity : BaseActivity() { } viewModel.loadManifest(appPackageName) + setupFindInPage() + onBackPressedDispatcher.addCallback(object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + isEnabled = false + if (binding.fipContainer.visibility == View.VISIBLE) { + hideFindInPage() + } else { + onBackPressedDispatcher.onBackPressed() + } + } + }) + } + + private fun setupFindInPage() { + binding.fip.setupSearchComponent(binding.highlightView) + binding.fip.onNavigationClicked = { + if (it == FiPSearchView.ClickEvent.CLOSE) { + hideFindInPage() + } + } + } + + private fun hideFindInPage() { + showToolbar() + binding.highlightView.clearMatches() + binding.fip.onActionViewCollapsed() + binding.fipContainer.visibility = View.GONE } override fun onCreateOptionsMenu(menu: Menu): Boolean { menuInflater.inflate(R.menu.manifest_viewer, menu) - configureSearchView(menu) menu.findItem(R.id.action_line_numbers).isChecked = appPreferences.showLineNumbers return super.onCreateOptionsMenu(menu) } @@ -117,6 +144,12 @@ class ManifestViewerActivity : BaseActivity() { IntentUtils.openBrowser(this, url) true } + R.id.action_search -> { + hideToolbar() + binding.fipContainer.visibility = View.VISIBLE + binding.fip.onActionViewExpanded() + false + } R.id.action_line_numbers -> { item.isChecked = !item.isChecked @@ -138,48 +171,10 @@ class ManifestViewerActivity : BaseActivity() { override fun onDestroy() { super.onDestroy() + binding.fip.release() binding.highlightView.setOnContentChangedListener(null) } - private fun configureSearchView(menu: Menu) { - val searchItem = menu.findItem(R.id.action_search) - val searchView = searchItem.actionView as SearchView - // expand the view to the full width: https://stackoverflow.com/a/34050959/2894324 - searchView.maxWidth = Int.MAX_VALUE - searchView.queryHint = getString(R.string.manifest_viewer_search_hint) - searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener { - override fun onQueryTextSubmit(query: String?): Boolean { - if (query.isNullOrEmpty()) { - binding.highlightView.clearMatches() - } else { - binding.highlightView.findAllAsync(query) - } - searchView.clearFocus() - return true - } - - override fun onQueryTextChange(newText: String?): Boolean { - if (newText.isNullOrEmpty()) { - binding.highlightView.clearMatches() - } - return false - } - }) - searchItem.setOnActionExpandListener(object : MenuItem.OnActionExpandListener { - override fun onMenuItemActionExpand(item: MenuItem): Boolean { - UIUtils.setMenuItemsVisibility(menu, item, false) - return true - } - - override fun onMenuItemActionCollapse(item: MenuItem): Boolean { - binding.highlightView.clearMatches() - UIUtils.setMenuItemsVisibility(menu, true) - invalidateOptionsMenu() - return true - } - }) - } - companion object { private const val ARG_PACKAGE_NAME = "arg_package_name" diff --git a/app/src/main/res/layout/activity_manifest_viewer.xml b/app/src/main/res/layout/activity_manifest_viewer.xml index df9f7fa8..e39c0161 100644 --- a/app/src/main/res/layout/activity_manifest_viewer.xml +++ b/app/src/main/res/layout/activity_manifest_viewer.xml @@ -1,5 +1,6 @@ - + + + + + + + + + + + + + + + app:showAsAction="always" /> Date: Tue, 11 Apr 2023 14:18:13 +0300 Subject: [PATCH 04/13] * moved hide/show toolbar into ManifestViewerActivity --- .../com/sdex/activityrunner/commons/BaseActivity.kt | 9 --------- .../manifest/ManifestViewerActivity.kt | 12 +++++++++++- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/sdex/activityrunner/commons/BaseActivity.kt b/app/src/main/java/com/sdex/activityrunner/commons/BaseActivity.kt index 342e5bd6..9d3c9b5f 100644 --- a/app/src/main/java/com/sdex/activityrunner/commons/BaseActivity.kt +++ b/app/src/main/java/com/sdex/activityrunner/commons/BaseActivity.kt @@ -1,7 +1,6 @@ package com.sdex.activityrunner.commons import android.view.MenuItem -import android.view.View import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.widget.Toolbar import com.sdex.activityrunner.R @@ -33,12 +32,4 @@ open class BaseActivity : AppCompatActivity() { protected fun setSubtitle(subtitle: CharSequence) { supportActionBar?.subtitle = subtitle } - - protected fun hideToolbar() { - findViewById(R.id.toolbar).visibility = View.GONE - } - - protected fun showToolbar() { - findViewById(R.id.toolbar).visibility = View.VISIBLE - } } diff --git a/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt b/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt index a7266c78..5302e9a4 100644 --- a/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt +++ b/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt @@ -13,6 +13,8 @@ import androidx.activity.OnBackPressedCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.viewModels import androidx.appcompat.app.AppCompatDelegate +import androidx.appcompat.widget.Toolbar +import androidx.core.view.isVisible import com.sdex.activityrunner.BuildConfig import com.sdex.activityrunner.R import com.sdex.activityrunner.commons.BaseActivity @@ -27,7 +29,7 @@ import dagger.hilt.android.AndroidEntryPoint import javax.inject.Inject @AndroidEntryPoint -class ManifestViewerActivity : BaseActivity() { +open class ManifestViewerActivity : BaseActivity() { @Inject lateinit var appPreferences: AppPreferences @@ -175,6 +177,14 @@ class ManifestViewerActivity : BaseActivity() { binding.highlightView.setOnContentChangedListener(null) } + private fun hideToolbar() { + findViewById(R.id.toolbar).isVisible = false + } + + private fun showToolbar() { + findViewById(R.id.toolbar).isVisible = true + } + companion object { private const val ARG_PACKAGE_NAME = "arg_package_name" From a7c51b7b5c9db4d5cf1b36129f6da9f752245722 Mon Sep 17 00:00:00 2001 From: Yurii Poudanien Date: Tue, 11 Apr 2023 14:19:22 +0300 Subject: [PATCH 05/13] * changed VISIBLE checking to isVisible --- .../com/sdex/activityrunner/manifest/ManifestViewerActivity.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt b/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt index 5302e9a4..66211160 100644 --- a/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt +++ b/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt @@ -103,7 +103,7 @@ open class ManifestViewerActivity : BaseActivity() { onBackPressedDispatcher.addCallback(object : OnBackPressedCallback(true) { override fun handleOnBackPressed() { isEnabled = false - if (binding.fipContainer.visibility == View.VISIBLE) { + if (binding.fipContainer.isVisible) { hideFindInPage() } else { onBackPressedDispatcher.onBackPressed() From 4176d5a2ca6fa4b1126f28b647e9c12214dd2467 Mon Sep 17 00:00:00 2001 From: Yurii Poudanien Date: Tue, 11 Apr 2023 14:20:00 +0300 Subject: [PATCH 06/13] * changed VISIBLE checking to isVisible for hideFindInPage --- .../com/sdex/activityrunner/manifest/ManifestViewerActivity.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt b/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt index 66211160..9128d81d 100644 --- a/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt +++ b/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt @@ -125,7 +125,7 @@ open class ManifestViewerActivity : BaseActivity() { showToolbar() binding.highlightView.clearMatches() binding.fip.onActionViewCollapsed() - binding.fipContainer.visibility = View.GONE + binding.fipContainer.isVisible = false } override fun onCreateOptionsMenu(menu: Menu): Boolean { From 1b28d9d817892a8fdf971c40e6c1def25c188e5e Mon Sep 17 00:00:00 2001 From: Yurii Poudanien Date: Tue, 11 Apr 2023 14:20:48 +0300 Subject: [PATCH 07/13] * changed VISIBLE checking to isVisible for clicking on action search --- .../com/sdex/activityrunner/manifest/ManifestViewerActivity.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt b/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt index 9128d81d..0bcfa219 100644 --- a/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt +++ b/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt @@ -148,7 +148,7 @@ open class ManifestViewerActivity : BaseActivity() { } R.id.action_search -> { hideToolbar() - binding.fipContainer.visibility = View.VISIBLE + binding.fipContainer.isVisible = true binding.fip.onActionViewExpanded() false } From 7d8e7895f4cb13813066e912999871018b53bdaf Mon Sep 17 00:00:00 2001 From: Yurii Poudanien Date: Tue, 11 Apr 2023 20:39:04 +0300 Subject: [PATCH 08/13] * removed unused import --- .../com/sdex/activityrunner/manifest/ManifestViewerActivity.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt b/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt index 0bcfa219..5acbf1d9 100644 --- a/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt +++ b/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt @@ -7,7 +7,6 @@ import android.graphics.Color import android.os.Bundle import android.view.Menu import android.view.MenuItem -import android.view.View import android.widget.Toast import androidx.activity.OnBackPressedCallback import androidx.activity.result.contract.ActivityResultContracts From e6b3e3aa8ab68132bcab55f239aacf80ca10ff3d Mon Sep 17 00:00:00 2001 From: Yurii Poudanien Date: Tue, 11 Apr 2023 20:40:32 +0300 Subject: [PATCH 09/13] * removed mistakenly added "open" modifier --- .../com/sdex/activityrunner/manifest/ManifestViewerActivity.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt b/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt index 5acbf1d9..3e440d6d 100644 --- a/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt +++ b/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt @@ -28,7 +28,7 @@ import dagger.hilt.android.AndroidEntryPoint import javax.inject.Inject @AndroidEntryPoint -open class ManifestViewerActivity : BaseActivity() { +class ManifestViewerActivity : BaseActivity() { @Inject lateinit var appPreferences: AppPreferences From aded6f50b8c96213a555b1de1ea3362c4c12a6c7 Mon Sep 17 00:00:00 2001 From: Yurii Poudanien Date: Wed, 12 Apr 2023 14:01:08 +0300 Subject: [PATCH 10/13] * updated library * added new background and removed view with 1dp as divider --- app/build.gradle | 2 +- .../manifest/ManifestViewerActivity.kt | 6 ++--- app/src/main/res/drawable/background_fip.xml | 14 +++++++++++ .../res/layout/activity_manifest_viewer.xml | 24 ++++--------------- 4 files changed, 23 insertions(+), 23 deletions(-) create mode 100644 app/src/main/res/drawable/background_fip.xml diff --git a/app/build.gradle b/app/build.gradle index f9422244..4863bb87 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -108,7 +108,7 @@ dependencies { implementation "com.tomergoldst.android:tooltips:1.1.1" implementation "net.dongliu:apk-parser:2.6.10" implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4" - implementation "com.github.Y-E-P:BrowserFiP:1.0.2" + implementation "com.github.Y-E-P:BrowserFiP:1.0.4" testImplementation "junit:junit:4.13.2" diff --git a/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt b/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt index 3e440d6d..d0c42a51 100644 --- a/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt +++ b/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt @@ -102,7 +102,7 @@ class ManifestViewerActivity : BaseActivity() { onBackPressedDispatcher.addCallback(object : OnBackPressedCallback(true) { override fun handleOnBackPressed() { isEnabled = false - if (binding.fipContainer.isVisible) { + if (binding.fip.isVisible) { hideFindInPage() } else { onBackPressedDispatcher.onBackPressed() @@ -124,7 +124,7 @@ class ManifestViewerActivity : BaseActivity() { showToolbar() binding.highlightView.clearMatches() binding.fip.onActionViewCollapsed() - binding.fipContainer.isVisible = false + binding.fip.isVisible = false } override fun onCreateOptionsMenu(menu: Menu): Boolean { @@ -147,7 +147,7 @@ class ManifestViewerActivity : BaseActivity() { } R.id.action_search -> { hideToolbar() - binding.fipContainer.isVisible = true + binding.fip.isVisible = true binding.fip.onActionViewExpanded() false } diff --git a/app/src/main/res/drawable/background_fip.xml b/app/src/main/res/drawable/background_fip.xml new file mode 100644 index 00000000..7afafa99 --- /dev/null +++ b/app/src/main/res/drawable/background_fip.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_manifest_viewer.xml b/app/src/main/res/layout/activity_manifest_viewer.xml index c92859c3..3160adb5 100644 --- a/app/src/main/res/layout/activity_manifest_viewer.xml +++ b/app/src/main/res/layout/activity_manifest_viewer.xml @@ -14,26 +14,12 @@ - - - - - - - - + android:layout_height="?attr/actionBarSize" + android:background="@drawable/background_fip" + app:fip_hint="@string/manifest_viewer_search_hint" /> From 4939a9325180f621c8e71a42a694ca92da05a164 Mon Sep 17 00:00:00 2001 From: Yurii Poudanien Date: Wed, 12 Apr 2023 21:42:51 +0300 Subject: [PATCH 11/13] * updated library * added new background and removed view with 1dp as divider --- app/build.gradle | 2 +- app/src/main/res/drawable/background_fip.xml | 6 +++--- app/src/main/res/layout/activity_manifest_viewer.xml | 5 ++++- app/src/main/res/values-night/colors.xml | 4 ++++ app/src/main/res/values/colors.xml | 4 ++++ 5 files changed, 16 insertions(+), 5 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 4863bb87..11abdc0e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -108,7 +108,7 @@ dependencies { implementation "com.tomergoldst.android:tooltips:1.1.1" implementation "net.dongliu:apk-parser:2.6.10" implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4" - implementation "com.github.Y-E-P:BrowserFiP:1.0.4" + implementation "com.github.Y-E-P:BrowserFiP:1.0.5" testImplementation "junit:junit:4.13.2" diff --git a/app/src/main/res/drawable/background_fip.xml b/app/src/main/res/drawable/background_fip.xml index 7afafa99..33be80ce 100644 --- a/app/src/main/res/drawable/background_fip.xml +++ b/app/src/main/res/drawable/background_fip.xml @@ -2,13 +2,13 @@ - + - - + + diff --git a/app/src/main/res/layout/activity_manifest_viewer.xml b/app/src/main/res/layout/activity_manifest_viewer.xml index 3160adb5..69a6a0d2 100644 --- a/app/src/main/res/layout/activity_manifest_viewer.xml +++ b/app/src/main/res/layout/activity_manifest_viewer.xml @@ -19,7 +19,10 @@ android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@drawable/background_fip" - app:fip_hint="@string/manifest_viewer_search_hint" /> + app:fip_counter_matched_color="@color/md_theme_onSurface" + app:fip_divider_color="@color/list_divider" + app:fip_hint="@string/manifest_viewer_search_hint" + app:fip_text_color="@color/md_theme_onSurface" /> diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml index b33eb5ae..43fff6e8 100644 --- a/app/src/main/res/values-night/colors.xml +++ b/app/src/main/res/values-night/colors.xml @@ -8,6 +8,10 @@ #2baaaaaa #9caaaaaa + #BDBDBD + #FFFFFF + #FFFFFF + #00629D #003354 #004A77 diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index fd3d8790..18900e74 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -21,6 +21,10 @@ #28000000 #79000000 + #BDBDBD + #000000 + #000000 + #00629D #FFFFFF #CFE5FF From 58b5550b5d082cc0fee2a3ac91a78959132c8871 Mon Sep 17 00:00:00 2001 From: Yurii Poudanien Date: Wed, 12 Apr 2023 21:58:05 +0300 Subject: [PATCH 12/13] * fixed incorrect back button handling --- .../com/sdex/activityrunner/manifest/ManifestViewerActivity.kt | 1 + app/src/main/res/layout/activity_manifest_viewer.xml | 1 + 2 files changed, 2 insertions(+) diff --git a/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt b/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt index d0c42a51..38f9ca41 100644 --- a/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt +++ b/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt @@ -104,6 +104,7 @@ class ManifestViewerActivity : BaseActivity() { isEnabled = false if (binding.fip.isVisible) { hideFindInPage() + isEnabled = true } else { onBackPressedDispatcher.onBackPressed() } diff --git a/app/src/main/res/layout/activity_manifest_viewer.xml b/app/src/main/res/layout/activity_manifest_viewer.xml index 69a6a0d2..9752e19f 100644 --- a/app/src/main/res/layout/activity_manifest_viewer.xml +++ b/app/src/main/res/layout/activity_manifest_viewer.xml @@ -19,6 +19,7 @@ android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@drawable/background_fip" + android:visibility="gone" app:fip_counter_matched_color="@color/md_theme_onSurface" app:fip_divider_color="@color/list_divider" app:fip_hint="@string/manifest_viewer_search_hint" From 205735cb7841eb707df0793123bacee52c265bdc Mon Sep 17 00:00:00 2001 From: Yurii Poudanien Date: Sun, 16 Apr 2023 16:00:10 +0300 Subject: [PATCH 13/13] * fixed saving state on rotation --- .../manifest/ManifestViewerActivity.kt | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt b/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt index 38f9ca41..68648701 100644 --- a/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt +++ b/app/src/main/java/com/sdex/activityrunner/manifest/ManifestViewerActivity.kt @@ -99,6 +99,10 @@ class ManifestViewerActivity : BaseActivity() { viewModel.loadManifest(appPackageName) setupFindInPage() + savedInstanceState?.let { + val isVisible = it.getBoolean(ARG_SHOULD_SHOW_FIP, false) + if(isVisible) showFindInPage() else hideFindInPage() + } onBackPressedDispatcher.addCallback(object : OnBackPressedCallback(true) { override fun handleOnBackPressed() { isEnabled = false @@ -128,6 +132,12 @@ class ManifestViewerActivity : BaseActivity() { binding.fip.isVisible = false } + private fun showFindInPage() { + hideToolbar() + binding.fip.onActionViewExpanded() + binding.fip.isVisible = true + } + override fun onCreateOptionsMenu(menu: Menu): Boolean { menuInflater.inflate(R.menu.manifest_viewer, menu) menu.findItem(R.id.action_line_numbers).isChecked = appPreferences.showLineNumbers @@ -147,9 +157,7 @@ class ManifestViewerActivity : BaseActivity() { true } R.id.action_search -> { - hideToolbar() - binding.fip.isVisible = true - binding.fip.onActionViewExpanded() + showFindInPage() false } @@ -185,10 +193,17 @@ class ManifestViewerActivity : BaseActivity() { findViewById(R.id.toolbar).isVisible = true } + override fun onSaveInstanceState(outState: Bundle) { + outState.putBoolean(ARG_SHOULD_SHOW_FIP, binding.fip.isVisible) + super.onSaveInstanceState(outState) + } + companion object { private const val ARG_PACKAGE_NAME = "arg_package_name" private const val ARG_NAME = "arg_name" + private const val ARG_SHOULD_SHOW_FIP = "arg_should_show_fip" + fun start(context: Context, model: ApplicationModel) { context.startActivity(Intent(context, ManifestViewerActivity::class.java).apply {