123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- package com.flacksta.chef.journeygpstracker
- import android.Manifest
- import android.content.Intent
- import android.content.pm.PackageManager
- import android.os.Bundle
- import android.util.Log
- import androidx.activity.result.contract.ActivityResultContracts
- import androidx.appcompat.app.AppCompatActivity
- import androidx.core.content.ContextCompat
- import androidx.fragment.app.Fragment
- import com.flacksta.chef.journeygpstracker.databinding.ActivityMainScreenBinding
- import com.google.android.gms.location.*
- class MainScreenActivity : AppCompatActivity() {
- private lateinit var binding: ActivityMainScreenBinding
- private var mPermApproved: Boolean = false
- private lateinit var mTrackingServiceIntent: Intent
- private lateinit var mTrackingService: TrackingService
- private val mTag: String = "MainScreenActivity"
- private lateinit var mFusedLocationClient: FusedLocationProviderClient
- //private val noteDatabase by lazy { GpsPosRoomDatabase.getDatabase(this) }
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- binding = ActivityMainScreenBinding.inflate(layoutInflater)
- setContentView(binding.root)
- binding.bottomNavigationView.setOnItemSelectedListener {
- val fragment = when (it.itemId) {
- R.id.map -> {
- MapFragment()
- }
- R.id.settings -> {
- SettingsFragment()
- }
- else -> {
- HomeFragment()
- }
- }
- loadFragment(fragment)
- true
- }
- loadFragment(HomeFragment())
- val locationPermissionRequest = registerForActivityResult(
- ActivityResultContracts.RequestMultiplePermissions()
- ) { permissions ->
- when {
- permissions.getOrDefault(Manifest.permission.ACCESS_FINE_LOCATION, false) -> {
- Log.i(mTag,"Fine permission granted")
- mPermApproved = true
- }
- permissions.getOrDefault(Manifest.permission.ACCESS_COARSE_LOCATION, false) -> {
- Log.i(mTag,"Only Coarse permission granted")
- } else -> {
- Log.i(mTag,"No Permission granted")
- }
- }
- }
- if( ContextCompat.checkSelfPermission(
- this,
- Manifest.permission.ACCESS_FINE_LOCATION
- ) != PackageManager.PERMISSION_GRANTED ) {
- locationPermissionRequest.launch(arrayOf(
- Manifest.permission.ACCESS_FINE_LOCATION,
- Manifest.permission.ACCESS_COARSE_LOCATION))
- }
- else {
- mPermApproved = true
- }
- mTrackingService = TrackingService()
- mTrackingServiceIntent = Intent(this, mTrackingService.javaClass)
- startForegroundService(mTrackingServiceIntent)
- }
- private fun loadFragment(fragment: Fragment) {
- supportFragmentManager
- .beginTransaction()
- .replace(R.id.main_frame_layout, fragment)
- .commit()
- }
- override fun onDestroy() {
- if (::mTrackingServiceIntent.isInitialized) {
- stopService(mTrackingServiceIntent)
- Log.i(mTag,"Stopping service")
- }
- Log.i(mTag,"onDestroy()")
- super.onDestroy()
- }
- }
|