From e92b54d16d4cffe7d59700dc593e921fcf3c34b8 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Thu, 22 Jun 2023 11:09:37 +0530 Subject: [PATCH] Migrate AboutActivity to fragment Signed-off-by: Aayush Gupta --- app/src/main/AndroidManifest.xml | 1 - .../java/com/aurora/store/MainActivity.kt | 4 +- .../{AboutActivity.kt => AboutFragment.kt} | 78 ++++++++----------- ...{activity_about.xml => fragment_about.xml} | 3 +- ...{activity_about.xml => fragment_about.xml} | 3 +- .../main/res/navigation/mobile_navigation.xml | 5 ++ 6 files changed, 42 insertions(+), 52 deletions(-) rename app/src/main/java/com/aurora/store/view/ui/about/{AboutActivity.kt => AboutFragment.kt} (64%) rename app/src/main/res/layout-land/{activity_about.xml => fragment_about.xml} (97%) rename app/src/main/res/layout/{activity_about.xml => fragment_about.xml} (98%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 088687e26..202466414 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -161,7 +161,6 @@ - diff --git a/app/src/main/java/com/aurora/store/MainActivity.kt b/app/src/main/java/com/aurora/store/MainActivity.kt index b1877b8c3..67b89bbe5 100644 --- a/app/src/main/java/com/aurora/store/MainActivity.kt +++ b/app/src/main/java/com/aurora/store/MainActivity.kt @@ -53,7 +53,6 @@ import com.aurora.store.databinding.ActivityMainBinding import com.aurora.store.util.CertUtil.isFDroidApp import com.aurora.store.util.Log import com.aurora.store.util.Preferences -import com.aurora.store.view.ui.about.AboutActivity import com.aurora.store.view.ui.account.AccountActivity import com.aurora.store.view.ui.all.AppsGamesActivity import com.aurora.store.view.ui.commons.BaseActivity @@ -266,7 +265,8 @@ class MainActivity : BaseActivity() { open(SettingsActivity::class.java) } R.id.menu_about -> { - open(AboutActivity::class.java) + navController.navigate(R.id.aboutFragment) + B.drawerLayout.close() } } false diff --git a/app/src/main/java/com/aurora/store/view/ui/about/AboutActivity.kt b/app/src/main/java/com/aurora/store/view/ui/about/AboutFragment.kt similarity index 64% rename from app/src/main/java/com/aurora/store/view/ui/about/AboutActivity.kt rename to app/src/main/java/com/aurora/store/view/ui/about/AboutFragment.kt index a2f14164d..e25ceebc0 100644 --- a/app/src/main/java/com/aurora/store/view/ui/about/AboutActivity.kt +++ b/app/src/main/java/com/aurora/store/view/ui/about/AboutFragment.kt @@ -20,65 +20,49 @@ package com.aurora.store.view.ui.about import android.os.Bundle +import android.view.View +import androidx.fragment.app.Fragment +import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.aurora.store.BuildConfig -import com.aurora.store.R -import com.aurora.store.data.model.Link -import com.aurora.store.databinding.ActivityAboutBinding import com.aurora.extensions.browse import com.aurora.extensions.copyToClipBoard import com.aurora.extensions.load +import com.aurora.store.BuildConfig +import com.aurora.store.R +import com.aurora.store.data.model.Link +import com.aurora.store.databinding.FragmentAboutBinding import com.aurora.store.view.epoxy.views.preference.LinkViewModel_ -import com.aurora.store.view.ui.commons.BaseActivity -class AboutActivity : BaseActivity() { +class AboutFragment : Fragment(R.layout.fragment_about) { - private lateinit var B: ActivityAboutBinding + private var _binding: FragmentAboutBinding? = null + private val binding: FragmentAboutBinding + get() = _binding!! - override fun onConnected() { + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + _binding = FragmentAboutBinding.bind(view) - } + // Toolbar + binding.layoutToolbarAction.txtTitle.text = getString(R.string.title_about) + binding.layoutToolbarAction.imgActionPrimary.setOnClickListener { + findNavController().navigateUp() + } - override fun onDisconnected() { + // About Details + binding.imgIcon.load(R.drawable.ic_logo) + binding.line2.text = ("v${BuildConfig.VERSION_NAME}(${BuildConfig.VERSION_CODE})") - } - - override fun onReconnected() { - } - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - B = ActivityAboutBinding.inflate(layoutInflater) - setContentView(B.root) - - attachToolbar() - attachAppDetails() - attachRecycler() + binding.epoxyRecycler.layoutManager = + LinearLayoutManager(view.context, RecyclerView.VERTICAL, false) updateController() } - private fun attachToolbar() { - B.layoutToolbarAction.txtTitle.text = getString(R.string.title_about) - B.layoutToolbarAction.imgActionPrimary.setOnClickListener { - finishAfterTransition() - } - } - - private fun attachAppDetails() { - B.imgIcon.load(R.drawable.ic_logo) - B.line2.text = ("v${BuildConfig.VERSION_NAME}(${BuildConfig.VERSION_CODE})") - } - - private fun attachRecycler() { - with(B.epoxyRecycler) { - layoutManager = LinearLayoutManager( - this@AboutActivity, - RecyclerView.VERTICAL, - false - ) - } + override fun onDestroyView() { + super.onDestroyView() + _binding = null } private fun updateController() { @@ -99,7 +83,7 @@ class AboutActivity : BaseActivity() { R.drawable.ic_fdroid ) - B.epoxyRecycler.withModels { + binding.epoxyRecycler.withModels { for (i in linkURLS.indices) { val link = Link( id = i, @@ -120,9 +104,9 @@ class AboutActivity : BaseActivity() { private fun processUrl(url: String) { when { - url.startsWith("http") -> browse(url) - url.startsWith("upi") -> browse(url) - else -> copyToClipBoard(url) + url.startsWith("http") -> context?.browse(url) + url.startsWith("upi") -> context?.browse(url) + else -> context?.copyToClipBoard(url) } } } diff --git a/app/src/main/res/layout-land/activity_about.xml b/app/src/main/res/layout-land/fragment_about.xml similarity index 97% rename from app/src/main/res/layout-land/activity_about.xml rename to app/src/main/res/layout-land/fragment_about.xml index ec1178fda..a8f84bdae 100644 --- a/app/src/main/res/layout-land/activity_about.xml +++ b/app/src/main/res/layout-land/fragment_about.xml @@ -24,7 +24,8 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:orientation="vertical"> + android:orientation="vertical" + tools:context=".view.ui.about.AboutFragment"> + android:weightSum="3" + tools:context=".view.ui.about.AboutFragment"> + \ No newline at end of file