|
@@ -1,6 +1,8 @@
|
|
package com.flacksta.chef.journeygpstracker
|
|
package com.flacksta.chef.journeygpstracker
|
|
|
|
|
|
import android.Manifest
|
|
import android.Manifest
|
|
|
|
+import android.app.ActivityManager
|
|
|
|
+import android.content.Context
|
|
import android.content.Intent
|
|
import android.content.Intent
|
|
import android.content.pm.PackageManager
|
|
import android.content.pm.PackageManager
|
|
import android.os.Bundle
|
|
import android.os.Bundle
|
|
@@ -11,22 +13,20 @@ import androidx.core.content.ContextCompat
|
|
import androidx.fragment.app.Fragment
|
|
import androidx.fragment.app.Fragment
|
|
import com.flacksta.chef.journeygpstracker.databinding.ActivityMainScreenBinding
|
|
import com.flacksta.chef.journeygpstracker.databinding.ActivityMainScreenBinding
|
|
|
|
|
|
|
|
+
|
|
class MainActivity : AppCompatActivity() {
|
|
class MainActivity : AppCompatActivity() {
|
|
|
|
|
|
private lateinit var binding: ActivityMainScreenBinding
|
|
private lateinit var binding: ActivityMainScreenBinding
|
|
private var mPermApproved: Boolean = false
|
|
private var mPermApproved: Boolean = false
|
|
- private lateinit var mTrackingServiceIntent: Intent
|
|
|
|
- private lateinit var mTrackingService: TrackingService
|
|
|
|
|
|
|
|
private val mTag: String = "MainActivity"
|
|
private val mTag: String = "MainActivity"
|
|
|
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
super.onCreate(savedInstanceState)
|
|
super.onCreate(savedInstanceState)
|
|
binding = ActivityMainScreenBinding.inflate(layoutInflater)
|
|
binding = ActivityMainScreenBinding.inflate(layoutInflater)
|
|
-
|
|
|
|
setContentView(binding.root)
|
|
setContentView(binding.root)
|
|
|
|
|
|
- binding.bottomNavigationView.setOnItemSelectedListener {
|
|
|
|
|
|
+ /*binding.bottomNavigationView.setOnItemSelectedListener {
|
|
val fragment = when (it.itemId) {
|
|
val fragment = when (it.itemId) {
|
|
R.id.map -> {
|
|
R.id.map -> {
|
|
MapFragment()
|
|
MapFragment()
|
|
@@ -35,13 +35,13 @@ class MainActivity : AppCompatActivity() {
|
|
SettingsFragment()
|
|
SettingsFragment()
|
|
}
|
|
}
|
|
else -> {
|
|
else -> {
|
|
- HomeFragment()
|
|
|
|
|
|
+ null//HomeFragment()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- loadFragment(fragment)
|
|
|
|
|
|
+ if( fragment == null ) closeFragment() else loadFragment(fragment)
|
|
true
|
|
true
|
|
- }
|
|
|
|
- loadFragment(HomeFragment())
|
|
|
|
|
|
+ }*/
|
|
|
|
+ //loadFragment(HomeFragment())
|
|
|
|
|
|
val locationPermissionRequest = registerForActivityResult(
|
|
val locationPermissionRequest = registerForActivityResult(
|
|
ActivityResultContracts.RequestMultiplePermissions()
|
|
ActivityResultContracts.RequestMultiplePermissions()
|
|
@@ -71,9 +71,31 @@ class MainActivity : AppCompatActivity() {
|
|
mPermApproved = true
|
|
mPermApproved = true
|
|
}
|
|
}
|
|
|
|
|
|
- mTrackingService = TrackingService()
|
|
|
|
- mTrackingServiceIntent = Intent(this, mTrackingService.javaClass)
|
|
|
|
- startForegroundService(mTrackingServiceIntent)
|
|
|
|
|
|
+ val state : Boolean = isServiceRunning(this)
|
|
|
|
+ binding.buttonStart.isEnabled = !state
|
|
|
|
+ binding.buttonStop.isEnabled = state
|
|
|
|
+
|
|
|
|
+ binding.buttonStart.setOnClickListener {
|
|
|
|
+ actionOnService(Actions.START)
|
|
|
|
+ binding.buttonStart.isEnabled = false
|
|
|
|
+ binding.buttonStop.isEnabled = true
|
|
|
|
+ }
|
|
|
|
+ binding.buttonStop.setOnClickListener{
|
|
|
|
+ actionOnService(Actions.STOP)
|
|
|
|
+ binding.buttonStart.isEnabled = true
|
|
|
|
+ binding.buttonStop.isEnabled = false
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private fun actionOnService(action: Actions) {
|
|
|
|
+ Log.i(mTag, "actionOnService() ${action.toString()}")
|
|
|
|
+ val state : ServiceState = getServiceState(this)
|
|
|
|
+ if( state == ServiceState.STOPPED && action == Actions.STOP) return
|
|
|
|
+ if( state == ServiceState.STARTED && action == Actions.START) return
|
|
|
|
+ Intent(this, TrackingService::class.java).also {
|
|
|
|
+ it.action = action.name
|
|
|
|
+ startForegroundService(it)
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
private fun loadFragment(fragment: Fragment) {
|
|
private fun loadFragment(fragment: Fragment) {
|
|
@@ -83,11 +105,27 @@ class MainActivity : AppCompatActivity() {
|
|
.commit()
|
|
.commit()
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private fun closeFragment() {
|
|
|
|
+ val fragment = supportFragmentManager.findFragmentById(R.id.main_frame_layout)
|
|
|
|
+ if( fragment != null ) {
|
|
|
|
+ supportFragmentManager
|
|
|
|
+ .beginTransaction()
|
|
|
|
+ .remove(fragment)
|
|
|
|
+ .commit()
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Suppress("DEPRECATION") // Deprecated for third party Services.
|
|
|
|
+ inline fun <reified T> Context.isServiceRunning2() =
|
|
|
|
+ (getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager)
|
|
|
|
+ .getRunningServices(Integer.MAX_VALUE)
|
|
|
|
+ .any { it.service.className == T::class.java.name }
|
|
|
|
+
|
|
override fun onDestroy() {
|
|
override fun onDestroy() {
|
|
- if (::mTrackingServiceIntent.isInitialized) {
|
|
|
|
|
|
+/* if (::mTrackingServiceIntent.isInitialized) {
|
|
stopService(mTrackingServiceIntent)
|
|
stopService(mTrackingServiceIntent)
|
|
Log.i(mTag,"Stopping service")
|
|
Log.i(mTag,"Stopping service")
|
|
- }
|
|
|
|
|
|
+ }*/
|
|
Log.i(mTag,"onDestroy()")
|
|
Log.i(mTag,"onDestroy()")
|
|
super.onDestroy()
|
|
super.onDestroy()
|
|
}
|
|
}
|