mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-08-03 18:56:44 -04:00
Merge pull request #3450 from kiwix/Issue#3395
Fixes of Refactor the Toolbar functionality
This commit is contained in:
commit
1806495674
@ -38,7 +38,7 @@ import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Toast
|
||||
import androidx.annotation.RequiresApi
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.appcompat.widget.Toolbar
|
||||
import androidx.core.app.ActivityCompat
|
||||
import androidx.core.content.ContextCompat
|
||||
import org.kiwix.kiwixmobile.R
|
||||
@ -89,6 +89,12 @@ class ZimHostFragment : BaseFragment(), ZimHostCallbacks, ZimHostContract.View {
|
||||
private lateinit var serviceConnection: ServiceConnection
|
||||
private var dialog: Dialog? = null
|
||||
private var activityZimHostBinding: ActivityZimHostBinding? = null
|
||||
override val fragmentTitle: String? by lazy {
|
||||
getString(R.string.menu_wifi_hotspot)
|
||||
}
|
||||
override val fragmentToolbar: Toolbar? by lazy {
|
||||
activityZimHostBinding?.root?.findViewById(R.id.toolbar)
|
||||
}
|
||||
private val selectedBooksPath: ArrayList<String>
|
||||
get() {
|
||||
return booksAdapter.items
|
||||
@ -122,7 +128,6 @@ class ZimHostFragment : BaseFragment(), ZimHostCallbacks, ZimHostContract.View {
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
setUpToolbar(view)
|
||||
|
||||
bookDelegate =
|
||||
BookOnDiskDelegate.BookDelegate(sharedPreferenceUtil, multiSelectAction = ::select)
|
||||
@ -389,16 +394,6 @@ class ZimHostFragment : BaseFragment(), ZimHostCallbacks, ZimHostContract.View {
|
||||
activityZimHostBinding = null
|
||||
}
|
||||
|
||||
private fun setUpToolbar(view: View) {
|
||||
val activity = requireActivity() as AppCompatActivity
|
||||
activity.setSupportActionBar(view.findViewById(R.id.toolbar))
|
||||
activity.supportActionBar?.apply {
|
||||
title = getString(R.string.menu_wifi_hotspot)
|
||||
setHomeButtonEnabled(true)
|
||||
setDisplayHomeAsUpEnabled(true)
|
||||
}
|
||||
}
|
||||
|
||||
// Advice user to turn on hotspot manually for API<26
|
||||
private fun startHotspotManuallyDialog() {
|
||||
|
||||
|
@ -19,6 +19,10 @@
|
||||
package org.kiwix.kiwixmobile.core.base
|
||||
|
||||
import android.content.Context
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.appcompat.widget.Toolbar
|
||||
import androidx.fragment.app.Fragment
|
||||
|
||||
/**
|
||||
@ -27,10 +31,35 @@ import androidx.fragment.app.Fragment
|
||||
|
||||
abstract class BaseFragment : Fragment() {
|
||||
|
||||
open val fragmentToolbar: Toolbar? = null
|
||||
open val fragmentTitle: String? = null
|
||||
|
||||
override fun onAttach(context: Context) {
|
||||
super.onAttach(context)
|
||||
inject(activity as BaseActivity)
|
||||
}
|
||||
|
||||
abstract fun inject(baseActivity: BaseActivity)
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
setupToolbar()
|
||||
}
|
||||
|
||||
// Setup toolbar to handle common back pressed event
|
||||
private fun setupToolbar() {
|
||||
val activity = activity as AppCompatActivity?
|
||||
fragmentToolbar?.apply {
|
||||
activity?.let {
|
||||
it.setSupportActionBar(this)
|
||||
it.supportActionBar?.let { actionBar ->
|
||||
actionBar.setDisplayHomeAsUpEnabled(true)
|
||||
title = fragmentTitle
|
||||
}
|
||||
}
|
||||
setNavigationOnClickListener {
|
||||
activity?.onBackPressedDispatcher?.onBackPressed()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -43,6 +43,10 @@ import org.kiwix.kiwixmobile.core.utils.LanguageUtils.Companion.getCurrentLocale
|
||||
abstract class HelpFragment : BaseFragment() {
|
||||
private var fragmentHelpBinding: FragmentHelpBinding? = null
|
||||
protected open fun rawTitleDescriptionMap(): List<Pair<Int, Int>> = emptyList()
|
||||
override val fragmentToolbar: Toolbar? by lazy {
|
||||
fragmentHelpBinding?.root?.findViewById(R.id.toolbar)
|
||||
}
|
||||
override val fragmentTitle: String? by lazy { getString(R.string.menu_help) }
|
||||
|
||||
private val titleDescriptionMap by lazy {
|
||||
rawTitleDescriptionMap().associate { (title, description) ->
|
||||
@ -61,15 +65,6 @@ abstract class HelpFragment : BaseFragment() {
|
||||
fragmentHelpBinding?.activityHelpFeedbackTextView?.setOnClickListener { sendFeedback() }
|
||||
fragmentHelpBinding?.activityHelpFeedbackImageView?.setOnClickListener { sendFeedback() }
|
||||
fragmentHelpBinding?.diagnosticClickableArea?.setOnClickListener { sendDiagnosticReport() }
|
||||
val toolbar: Toolbar? = fragmentHelpBinding?.root?.findViewById(R.id.toolbar)
|
||||
toolbar?.apply {
|
||||
activity.setSupportActionBar(this)
|
||||
setNavigationOnClickListener { requireActivity().onBackPressedDispatcher.onBackPressed() }
|
||||
}
|
||||
activity.supportActionBar?.let {
|
||||
it.setDisplayHomeAsUpEnabled(true)
|
||||
it.setTitle(R.string.menu_help)
|
||||
}
|
||||
fragmentHelpBinding?.activityHelpRecyclerView?.addItemDecoration(
|
||||
DividerItemDecoration(activity, DividerItemDecoration.VERTICAL)
|
||||
)
|
||||
|
@ -69,6 +69,10 @@ abstract class PageFragment : OnItemClickListener, BaseFragment(), FragmentActiv
|
||||
abstract val pageAdapter: PageAdapter
|
||||
abstract val switchIsChecked: Boolean
|
||||
private var fragmentPageBinding: FragmentPageBinding? = null
|
||||
override val fragmentToolbar: Toolbar? by lazy {
|
||||
fragmentPageBinding?.root?.findViewById(R.id.toolbar)
|
||||
}
|
||||
override val fragmentTitle: String? by lazy { screenTitle }
|
||||
|
||||
private val actionModeCallback: ActionMode.Callback =
|
||||
object : ActionMode.Callback {
|
||||
@ -135,15 +139,6 @@ abstract class PageFragment : OnItemClickListener, BaseFragment(), FragmentActiv
|
||||
fragmentPageBinding?.recyclerView?.layoutManager =
|
||||
LinearLayoutManager(activity, RecyclerView.VERTICAL, false)
|
||||
fragmentPageBinding?.recyclerView?.adapter = pageAdapter
|
||||
val toolbar = fragmentPageBinding?.root?.findViewById<Toolbar>(R.id.toolbar)
|
||||
toolbar?.apply {
|
||||
activity.setSupportActionBar(this)
|
||||
setNavigationOnClickListener { requireActivity().onBackPressedDispatcher.onBackPressed() }
|
||||
}
|
||||
activity.supportActionBar?.apply {
|
||||
setDisplayHomeAsUpEnabled(true)
|
||||
title = screenTitle
|
||||
}
|
||||
fragmentPageBinding?.noPage?.text = noItemsString
|
||||
|
||||
fragmentPageBinding?.pageSwitch?.text = switchString
|
||||
|
@ -21,7 +21,6 @@ import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.appcompat.widget.Toolbar
|
||||
import androidx.fragment.app.Fragment
|
||||
import org.kiwix.kiwixmobile.core.R
|
||||
@ -31,12 +30,18 @@ import org.kiwix.kiwixmobile.core.databinding.SettingsBinding
|
||||
abstract class CoreSettingsFragment : BaseFragment() {
|
||||
private lateinit var prefsFragment: Fragment
|
||||
private var settingsBinding: SettingsBinding? = null
|
||||
override val fragmentToolbar: Toolbar? by lazy {
|
||||
settingsBinding?.root?.findViewById(R.id.toolbar)
|
||||
}
|
||||
override val fragmentTitle: String? by lazy {
|
||||
getString(R.string.menu_settings)
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
prefsFragment = createPreferenceFragment()
|
||||
requireActivity().supportFragmentManager.beginTransaction()
|
||||
.replace(R.id.content_frame, prefsFragment).commit()
|
||||
setUpToolbar()
|
||||
}
|
||||
|
||||
override fun onCreateView(
|
||||
@ -50,21 +55,6 @@ abstract class CoreSettingsFragment : BaseFragment() {
|
||||
|
||||
protected abstract fun createPreferenceFragment(): Fragment
|
||||
|
||||
private fun setUpToolbar() {
|
||||
val activity = requireActivity() as AppCompatActivity
|
||||
settingsBinding?.root?.findViewById<Toolbar>(R.id.toolbar)?.apply {
|
||||
activity.setSupportActionBar(this)
|
||||
setNavigationOnClickListener {
|
||||
requireActivity().onBackPressedDispatcher.onBackPressed()
|
||||
}
|
||||
}
|
||||
activity.supportActionBar?.apply {
|
||||
title = getString(R.string.menu_settings)
|
||||
setHomeButtonEnabled(true)
|
||||
setDisplayHomeAsUpEnabled(true)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
requireActivity().supportFragmentManager.beginTransaction().remove(prefsFragment)
|
||||
.commitNowAllowingStateLoss()
|
||||
|
Loading…
x
Reference in New Issue
Block a user