This repository has been archived on 2026-05-26. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
weserplaner/app/src/main/java/com/denizk0461/studip/activity/MainActivity.kt
T

63 lines
2.1 KiB
Kotlin
Raw Normal View History

2023-04-08 11:41:02 +02:00
package com.denizk0461.studip.activity
import android.os.Bundle
import androidx.core.view.WindowCompat
import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.fragment.findNavController
import androidx.navigation.ui.setupWithNavController
import com.denizk0461.studip.R
2023-04-08 11:41:02 +02:00
import com.denizk0461.studip.databinding.ActivityMainBinding
import com.denizk0461.studip.viewmodel.MainViewModel
2023-04-08 11:41:02 +02:00
/**
* Main activity that handles all common fragments. This is opened on app launch.
*/
class MainActivity : FragmentActivity() {
2023-04-08 11:41:02 +02:00
// View binding
2023-04-08 11:41:02 +02:00
private lateinit var binding: ActivityMainBinding
// View model
private lateinit var viewModel: MainViewModel
2023-04-08 11:41:02 +02:00
override fun onCreate(savedInstanceState: Bundle?) {
WindowCompat.setDecorFitsSystemWindows(window, false)
super.onCreate(savedInstanceState)
// Instantiate view model
viewModel = ViewModelProvider.AndroidViewModelFactory(application)
.create(MainViewModel::class.java)
// Inflate view binding and bind to this activity
2023-04-08 11:41:02 +02:00
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
// Set up bottom navigation view to navigate between fragments
binding.navView.setupWithNavController(
binding.navHostFragmentContentMain.getFragment<NavHostFragment>().findNavController()
)
// Set up navigation component
setNavigationGraph()
}
/**
* Sets the navigation graph for the fragments. Also sets the start destination.
*/
private fun setNavigationGraph() {
val navHostFragment = supportFragmentManager
.findFragmentById(R.id.nav_host_fragment_content_main) as NavHostFragment
val navController = navHostFragment.navController
val navGraph = navController.navInflater.inflate(R.navigation.main_nav_graph)
navGraph.setStartDestination(if (viewModel.preferenceLaunchCanteen) {
R.id.canteen
} else {
R.id.schedule
})
navController.graph = navGraph
}
2023-04-08 11:41:02 +02:00
}