navigation: use global action for home/settings
This really does not feel right...
This commit is contained in:
parent
6c556c3035
commit
9358c0abca
|
@ -4,20 +4,37 @@ import android.os.Bundle
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.navigation.fragment.NavHostFragment
|
import androidx.navigation.fragment.NavHostFragment
|
||||||
import androidx.navigation.ui.setupWithNavController
|
import androidx.navigation.ui.setupWithNavController
|
||||||
import com.google.android.material.navigation.NavigationView
|
import dev.lowrespalmtree.comet.databinding.ActivityMainBinding
|
||||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
|
|
||||||
@ExperimentalCoroutinesApi
|
@ExperimentalCoroutinesApi
|
||||||
class MainActivity : AppCompatActivity() {
|
class MainActivity : AppCompatActivity() {
|
||||||
|
private lateinit var binding: ActivityMainBinding
|
||||||
|
private var navHost: NavHostFragment? = null
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
setContentView(R.layout.activity_main)
|
binding = ActivityMainBinding.inflate(layoutInflater)
|
||||||
|
setContentView(binding.root)
|
||||||
|
|
||||||
Database.init(applicationContext) // TODO move to App Startup?
|
Database.init(applicationContext) // TODO move to App Startup?
|
||||||
|
|
||||||
supportFragmentManager.findFragmentById(R.id.nav_host_fragment)?.also { navHost ->
|
navHost = supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment?
|
||||||
findViewById<NavigationView>(R.id.drawer_navigation)?.apply {
|
navHost?.also { binding.drawerNavigation.setupWithNavController(it.navController) }
|
||||||
setupWithNavController((navHost as NavHostFragment).navController)
|
}
|
||||||
}
|
|
||||||
}
|
fun goHome() {
|
||||||
|
navHost?.navController?.navigate(R.id.action_global_pageViewFragment)
|
||||||
|
binding.drawerLayout.closeDrawers()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun openHistory() {
|
||||||
|
binding.drawerLayout.closeDrawers()
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
fun openSettings() {
|
||||||
|
navHost?.navController?.navigate(R.id.action_global_settingsFragment)
|
||||||
|
binding.drawerLayout.closeDrawers()
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -77,7 +77,7 @@ class PageViewFragment : Fragment(), ContentAdapter.ContentAdapterListener {
|
||||||
private fun onBackPressed() {
|
private fun onBackPressed() {
|
||||||
if (visitedUrls.size >= 2) {
|
if (visitedUrls.size >= 2) {
|
||||||
visitedUrls.removeLastOrNull() // Always remove current page first.
|
visitedUrls.removeLastOrNull() // Always remove current page first.
|
||||||
openUrl(visitedUrls.removeLastOrNull()!!)
|
visitedUrls.removeLastOrNull()?.also { openUrl(it) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<androidx.drawerlayout.widget.DrawerLayout
|
<androidx.drawerlayout.widget.DrawerLayout
|
||||||
|
android:id="@+id/drawer_layout"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
|
|
@ -1,11 +1,17 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item
|
||||||
|
android:id="@+id/home"
|
||||||
|
android:icon="@android:drawable/ic_menu_myplaces"
|
||||||
|
android:title="@string/home"
|
||||||
|
android:onClick="goHome" />
|
||||||
<item
|
<item
|
||||||
android:id="@+id/history"
|
android:id="@+id/history"
|
||||||
android:icon="@android:drawable/ic_menu_recent_history"
|
android:icon="@android:drawable/ic_menu_recent_history"
|
||||||
android:title="@string/history" />
|
android:title="@string/history" />
|
||||||
<item
|
<item
|
||||||
android:id="@+id/settingsFragment"
|
android:id="@+id/settings"
|
||||||
android:icon="@android:drawable/ic_menu_preferences"
|
android:icon="@android:drawable/ic_menu_preferences"
|
||||||
android:title="@string/settings" />
|
android:title="@string/settings"
|
||||||
|
android:onClick="openSettings" />
|
||||||
</menu>
|
</menu>
|
|
@ -8,8 +8,22 @@
|
||||||
android:id="@+id/pageViewFragment"
|
android:id="@+id/pageViewFragment"
|
||||||
android:name="dev.lowrespalmtree.comet.PageViewFragment"
|
android:name="dev.lowrespalmtree.comet.PageViewFragment"
|
||||||
android:label="PageViewFragment" />
|
android:label="PageViewFragment" />
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_global_pageViewFragment"
|
||||||
|
app:destination="@id/pageViewFragment"
|
||||||
|
app:enterAnim="@anim/nav_default_enter_anim"
|
||||||
|
app:exitAnim="@anim/nav_default_exit_anim"
|
||||||
|
app:popEnterAnim="@anim/nav_default_pop_enter_anim"
|
||||||
|
app:popExitAnim="@anim/nav_default_pop_exit_anim" />
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/settingsFragment"
|
android:id="@+id/settingsFragment"
|
||||||
android:name="dev.lowrespalmtree.comet.SettingsFragment"
|
android:name="dev.lowrespalmtree.comet.SettingsFragment"
|
||||||
android:label="SettingsFragment" />
|
android:label="SettingsFragment" />
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_global_settingsFragment"
|
||||||
|
app:destination="@id/settingsFragment"
|
||||||
|
app:enterAnim="@anim/nav_default_enter_anim"
|
||||||
|
app:exitAnim="@anim/nav_default_exit_anim"
|
||||||
|
app:popEnterAnim="@anim/nav_default_pop_enter_anim"
|
||||||
|
app:popExitAnim="@anim/nav_default_pop_exit_anim" />
|
||||||
</navigation>
|
</navigation>
|
|
@ -27,6 +27,7 @@
|
||||||
<string name="attachment_summary_on">Automatically download attachments for incoming emails
|
<string name="attachment_summary_on">Automatically download attachments for incoming emails
|
||||||
</string>
|
</string>
|
||||||
<string name="attachment_summary_off">Only download attachments when manually requested</string>
|
<string name="attachment_summary_off">Only download attachments when manually requested</string>
|
||||||
|
<string name="home">Home</string>
|
||||||
|
|
||||||
|
|
||||||
</resources>
|
</resources>
|
Reference in a new issue