mirror of
https://github.com/d4rken-org/capod.git
synced 2026-09-16 11:16:12 -04:00
Refactoring
This commit is contained in:
@@ -14,7 +14,7 @@ import eu.darken.capod.common.coroutine.DispatcherProvider
|
|||||||
import eu.darken.capod.common.debug.logging.log
|
import eu.darken.capod.common.debug.logging.log
|
||||||
import eu.darken.capod.common.debug.logging.logTag
|
import eu.darken.capod.common.debug.logging.logTag
|
||||||
import eu.darken.capod.common.notifications.PendingIntentCompat
|
import eu.darken.capod.common.notifications.PendingIntentCompat
|
||||||
import eu.darken.capod.common.smart.SmartService
|
import eu.darken.capod.common.uix.Service2
|
||||||
import eu.darken.capod.main.ui.MainActivity
|
import eu.darken.capod.main.ui.MainActivity
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.SupervisorJob
|
import kotlinx.coroutines.SupervisorJob
|
||||||
@@ -26,7 +26,7 @@ import javax.inject.Inject
|
|||||||
|
|
||||||
|
|
||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
class RecorderService : SmartService() {
|
class RecorderService : Service2() {
|
||||||
private lateinit var builder: NotificationCompat.Builder
|
private lateinit var builder: NotificationCompat.Builder
|
||||||
|
|
||||||
@Inject lateinit var recorderModule: RecorderModule
|
@Inject lateinit var recorderModule: RecorderModule
|
||||||
|
|||||||
@@ -9,11 +9,11 @@ import androidx.core.view.isInvisible
|
|||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import eu.darken.capod.common.debug.logging.logTag
|
import eu.darken.capod.common.debug.logging.logTag
|
||||||
import eu.darken.capod.common.error.asErrorDialogBuilder
|
import eu.darken.capod.common.error.asErrorDialogBuilder
|
||||||
import eu.darken.capod.common.smart.SmartActivity
|
import eu.darken.capod.common.uix.Activity2
|
||||||
import eu.darken.capod.databinding.DebugRecordingActivityBinding
|
import eu.darken.capod.databinding.DebugRecordingActivityBinding
|
||||||
|
|
||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
class RecorderActivity : SmartActivity() {
|
class RecorderActivity : Activity2() {
|
||||||
|
|
||||||
private lateinit var ui: DebugRecordingActivityBinding
|
private lateinit var ui: DebugRecordingActivityBinding
|
||||||
private val vm: RecorderActivityVM by viewModels()
|
private val vm: RecorderActivityVM by viewModels()
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import eu.darken.capod.common.flow.DynamicStateFlow
|
|||||||
import eu.darken.capod.common.flow.onError
|
import eu.darken.capod.common.flow.onError
|
||||||
import eu.darken.capod.common.flow.replayingShare
|
import eu.darken.capod.common.flow.replayingShare
|
||||||
import eu.darken.capod.common.livedata.SingleLiveEvent
|
import eu.darken.capod.common.livedata.SingleLiveEvent
|
||||||
import eu.darken.capod.common.smart.Smart2VM
|
import eu.darken.capod.common.uix.ViewModel3
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.first
|
import kotlinx.coroutines.flow.first
|
||||||
import kotlinx.coroutines.flow.map
|
import kotlinx.coroutines.flow.map
|
||||||
@@ -30,7 +30,7 @@ class RecorderActivityVM @Inject constructor(
|
|||||||
handle: SavedStateHandle,
|
handle: SavedStateHandle,
|
||||||
dispatcherProvider: DispatcherProvider,
|
dispatcherProvider: DispatcherProvider,
|
||||||
@ApplicationContext private val context: Context,
|
@ApplicationContext private val context: Context,
|
||||||
) : Smart2VM(dispatcherProvider) {
|
) : ViewModel3(dispatcherProvider) {
|
||||||
|
|
||||||
private val recordedPath = handle.get<String>(RecorderActivity.RECORD_PATH)!!
|
private val recordedPath = handle.get<String>(RecorderActivity.RECORD_PATH)!!
|
||||||
private val pathCache = MutableStateFlow(recordedPath)
|
private val pathCache = MutableStateFlow(recordedPath)
|
||||||
|
|||||||
+3
-3
@@ -1,4 +1,4 @@
|
|||||||
package eu.darken.capod.common.smart
|
package eu.darken.capod.common.uix
|
||||||
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
@@ -8,7 +8,7 @@ import eu.darken.capod.common.debug.logging.Logging.Priority.VERBOSE
|
|||||||
import eu.darken.capod.common.debug.logging.log
|
import eu.darken.capod.common.debug.logging.log
|
||||||
import eu.darken.capod.common.debug.logging.logTag
|
import eu.darken.capod.common.debug.logging.logTag
|
||||||
|
|
||||||
abstract class SmartActivity : AppCompatActivity() {
|
abstract class Activity2 : AppCompatActivity() {
|
||||||
internal val tag: String =
|
internal val tag: String =
|
||||||
logTag("Activity", this.javaClass.simpleName + "(" + Integer.toHexString(hashCode()) + ")")
|
logTag("Activity", this.javaClass.simpleName + "(" + Integer.toHexString(hashCode()) + ")")
|
||||||
|
|
||||||
@@ -38,7 +38,7 @@ abstract class SmartActivity : AppCompatActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun <T> LiveData<T>.observe2(callback: (T) -> Unit) {
|
fun <T> LiveData<T>.observe2(callback: (T) -> Unit) {
|
||||||
observe(this@SmartActivity) { callback.invoke(it) }
|
observe(this@Activity2) { callback.invoke(it) }
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+3
-3
@@ -1,4 +1,4 @@
|
|||||||
package eu.darken.capod.common.smart
|
package eu.darken.capod.common.uix
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
@@ -18,10 +18,10 @@ import eu.darken.capod.common.navigation.popBackStack
|
|||||||
import eu.darken.capod.common.observe2
|
import eu.darken.capod.common.observe2
|
||||||
|
|
||||||
|
|
||||||
abstract class Smart2BottomSheetDialogFragment : BottomSheetDialogFragment() {
|
abstract class BottomSheetDialogFragment2 : BottomSheetDialogFragment() {
|
||||||
|
|
||||||
abstract val ui: ViewBinding
|
abstract val ui: ViewBinding
|
||||||
abstract val vdc: Smart2VM
|
abstract val vdc: ViewModel3
|
||||||
|
|
||||||
internal val tag: String =
|
internal val tag: String =
|
||||||
logTag("Fragment", "${this.javaClass.simpleName}(${Integer.toHexString(hashCode())})")
|
logTag("Fragment", "${this.javaClass.simpleName}(${Integer.toHexString(hashCode())})")
|
||||||
+2
-2
@@ -1,4 +1,4 @@
|
|||||||
package eu.darken.capod.common.smart
|
package eu.darken.capod.common.uix
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
@@ -13,7 +13,7 @@ import eu.darken.capod.common.debug.logging.log
|
|||||||
import eu.darken.capod.common.debug.logging.logTag
|
import eu.darken.capod.common.debug.logging.logTag
|
||||||
|
|
||||||
|
|
||||||
abstract class SmartFragment(@LayoutRes val layoutRes: Int?) : Fragment(layoutRes ?: 0) {
|
abstract class Fragment2(@LayoutRes val layoutRes: Int?) : Fragment(layoutRes ?: 0) {
|
||||||
|
|
||||||
constructor() : this(null)
|
constructor() : this(null)
|
||||||
|
|
||||||
+3
-3
@@ -1,4 +1,4 @@
|
|||||||
package eu.darken.capod.common.smart
|
package eu.darken.capod.common.uix
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.View
|
import android.view.View
|
||||||
@@ -11,12 +11,12 @@ import eu.darken.capod.common.navigation.doNavigate
|
|||||||
import eu.darken.capod.common.navigation.popBackStack
|
import eu.darken.capod.common.navigation.popBackStack
|
||||||
|
|
||||||
|
|
||||||
abstract class Smart2Fragment(@LayoutRes layoutRes: Int?) : SmartFragment(layoutRes) {
|
abstract class Fragment3(@LayoutRes layoutRes: Int?) : Fragment2(layoutRes) {
|
||||||
|
|
||||||
constructor() : this(null)
|
constructor() : this(null)
|
||||||
|
|
||||||
abstract val ui: ViewBinding?
|
abstract val ui: ViewBinding?
|
||||||
abstract val vm: Smart2VM
|
abstract val vm: ViewModel3
|
||||||
|
|
||||||
var onErrorEvent: ((Throwable) -> Boolean)? = null
|
var onErrorEvent: ((Throwable) -> Boolean)? = null
|
||||||
|
|
||||||
+2
-2
@@ -1,4 +1,4 @@
|
|||||||
package eu.darken.capod.common.smart
|
package eu.darken.capod.common.uix
|
||||||
|
|
||||||
import android.app.Service
|
import android.app.Service
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
@@ -6,7 +6,7 @@ import android.content.res.Configuration
|
|||||||
import eu.darken.capod.common.debug.logging.log
|
import eu.darken.capod.common.debug.logging.log
|
||||||
import eu.darken.capod.common.debug.logging.logTag
|
import eu.darken.capod.common.debug.logging.logTag
|
||||||
|
|
||||||
abstract class SmartService : Service() {
|
abstract class Service2 : Service() {
|
||||||
private val tag: String =
|
private val tag: String =
|
||||||
logTag("Service", this.javaClass.simpleName + "(" + Integer.toHexString(this.hashCode()) + ")")
|
logTag("Service", this.javaClass.simpleName + "(" + Integer.toHexString(this.hashCode()) + ")")
|
||||||
|
|
||||||
+2
-2
@@ -1,11 +1,11 @@
|
|||||||
package eu.darken.capod.common.viewmodel
|
package eu.darken.capod.common.uix
|
||||||
|
|
||||||
import androidx.annotation.CallSuper
|
import androidx.annotation.CallSuper
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import eu.darken.capod.common.debug.logging.log
|
import eu.darken.capod.common.debug.logging.log
|
||||||
import eu.darken.capod.common.debug.logging.logTag
|
import eu.darken.capod.common.debug.logging.logTag
|
||||||
|
|
||||||
abstract class VM : ViewModel() {
|
abstract class ViewModel1 : ViewModel() {
|
||||||
val TAG: String = logTag("VM", javaClass.simpleName)
|
val TAG: String = logTag("VM", javaClass.simpleName)
|
||||||
|
|
||||||
init {
|
init {
|
||||||
+3
-4
@@ -1,4 +1,4 @@
|
|||||||
package eu.darken.capod.common.smart
|
package eu.darken.capod.common.uix
|
||||||
|
|
||||||
import androidx.lifecycle.asLiveData
|
import androidx.lifecycle.asLiveData
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
@@ -9,16 +9,15 @@ import eu.darken.capod.common.debug.logging.asLog
|
|||||||
import eu.darken.capod.common.debug.logging.log
|
import eu.darken.capod.common.debug.logging.log
|
||||||
import eu.darken.capod.common.error.ErrorEventSource
|
import eu.darken.capod.common.error.ErrorEventSource
|
||||||
import eu.darken.capod.common.flow.DynamicStateFlow
|
import eu.darken.capod.common.flow.DynamicStateFlow
|
||||||
import eu.darken.capod.common.viewmodel.VM
|
|
||||||
import kotlinx.coroutines.*
|
import kotlinx.coroutines.*
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.launchIn
|
import kotlinx.coroutines.flow.launchIn
|
||||||
import kotlin.coroutines.CoroutineContext
|
import kotlin.coroutines.CoroutineContext
|
||||||
|
|
||||||
|
|
||||||
abstract class SmartVM(
|
abstract class ViewModel2(
|
||||||
private val dispatcherProvider: DispatcherProvider = DefaultDispatcherProvider(),
|
private val dispatcherProvider: DispatcherProvider = DefaultDispatcherProvider(),
|
||||||
) : VM() {
|
) : ViewModel1() {
|
||||||
|
|
||||||
val vmScope = viewModelScope + dispatcherProvider.Default
|
val vmScope = viewModelScope + dispatcherProvider.Default
|
||||||
|
|
||||||
+3
-3
@@ -1,4 +1,4 @@
|
|||||||
package eu.darken.capod.common.smart
|
package eu.darken.capod.common.uix
|
||||||
|
|
||||||
import androidx.navigation.NavDirections
|
import androidx.navigation.NavDirections
|
||||||
import eu.darken.capod.common.coroutine.DispatcherProvider
|
import eu.darken.capod.common.coroutine.DispatcherProvider
|
||||||
@@ -13,9 +13,9 @@ import kotlinx.coroutines.flow.Flow
|
|||||||
import kotlinx.coroutines.flow.launchIn
|
import kotlinx.coroutines.flow.launchIn
|
||||||
|
|
||||||
|
|
||||||
abstract class Smart2VM(
|
abstract class ViewModel3(
|
||||||
dispatcherProvider: DispatcherProvider,
|
dispatcherProvider: DispatcherProvider,
|
||||||
) : SmartVM(dispatcherProvider), NavEventSource, ErrorEventSource {
|
) : ViewModel2(dispatcherProvider), NavEventSource, ErrorEventSource {
|
||||||
|
|
||||||
override val navEvents = SingleLiveEvent<NavDirections?>()
|
override val navEvents = SingleLiveEvent<NavDirections?>()
|
||||||
override val errorEvents = SingleLiveEvent<Throwable>()
|
override val errorEvents = SingleLiveEvent<Throwable>()
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package eu.darken.capod.common.viewmodel
|
package eu.darken.capod.common.uix
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright 2018 The Android Open Source Project
|
* Copyright 2018 The Android Open Source Project
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
package eu.darken.capod.common.viewmodel
|
|
||||||
|
|
||||||
import androidx.lifecycle.asLiveData
|
|
||||||
import eu.darken.capod.common.coroutine.DefaultDispatcherProvider
|
|
||||||
import eu.darken.capod.common.coroutine.DispatcherProvider
|
|
||||||
import kotlinx.coroutines.flow.Flow
|
|
||||||
|
|
||||||
|
|
||||||
abstract class SmartVM(
|
|
||||||
private val dispatcherProvider: DispatcherProvider = DefaultDispatcherProvider(),
|
|
||||||
) : VM() {
|
|
||||||
|
|
||||||
fun <T> Flow<T>.asLiveData2() = this.asLiveData(context = dispatcherProvider.Default)
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -5,11 +5,11 @@ import androidx.activity.viewModels
|
|||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import eu.darken.capod.R
|
import eu.darken.capod.R
|
||||||
import eu.darken.capod.common.navigation.findNavController
|
import eu.darken.capod.common.navigation.findNavController
|
||||||
import eu.darken.capod.common.smart.SmartActivity
|
import eu.darken.capod.common.uix.Activity2
|
||||||
import eu.darken.capod.databinding.MainActivityBinding
|
import eu.darken.capod.databinding.MainActivityBinding
|
||||||
|
|
||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
class MainActivity : SmartActivity() {
|
class MainActivity : Activity2() {
|
||||||
|
|
||||||
private val vm: MainActivityVM by viewModels()
|
private val vm: MainActivityVM by viewModels()
|
||||||
private lateinit var ui: MainActivityBinding
|
private lateinit var ui: MainActivityBinding
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package eu.darken.capod.main.ui
|
|||||||
import androidx.lifecycle.SavedStateHandle
|
import androidx.lifecycle.SavedStateHandle
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
import eu.darken.capod.common.coroutine.DispatcherProvider
|
import eu.darken.capod.common.coroutine.DispatcherProvider
|
||||||
import eu.darken.capod.common.viewmodel.SmartVM
|
import eu.darken.capod.common.uix.ViewModel2
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
|
||||||
@@ -11,4 +11,4 @@ import javax.inject.Inject
|
|||||||
class MainActivityVM @Inject constructor(
|
class MainActivityVM @Inject constructor(
|
||||||
handle: SavedStateHandle,
|
handle: SavedStateHandle,
|
||||||
dispatcherProvider: DispatcherProvider,
|
dispatcherProvider: DispatcherProvider,
|
||||||
) : SmartVM(dispatcherProvider = dispatcherProvider)
|
) : ViewModel2(dispatcherProvider = dispatcherProvider)
|
||||||
@@ -11,13 +11,13 @@ import eu.darken.capod.common.BuildConfigWrap
|
|||||||
import eu.darken.capod.common.debug.logging.log
|
import eu.darken.capod.common.debug.logging.log
|
||||||
import eu.darken.capod.common.lists.differ.update
|
import eu.darken.capod.common.lists.differ.update
|
||||||
import eu.darken.capod.common.lists.setupDefaults
|
import eu.darken.capod.common.lists.setupDefaults
|
||||||
import eu.darken.capod.common.smart.Smart2Fragment
|
import eu.darken.capod.common.uix.Fragment3
|
||||||
import eu.darken.capod.common.viewbinding.viewBinding
|
import eu.darken.capod.common.viewbinding.viewBinding
|
||||||
import eu.darken.capod.databinding.MainFragmentBinding
|
import eu.darken.capod.databinding.MainFragmentBinding
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
class MainFragment : Smart2Fragment(R.layout.main_fragment) {
|
class MainFragment : Fragment3(R.layout.main_fragment) {
|
||||||
|
|
||||||
override val vm: MainFragmentVM by viewModels()
|
override val vm: MainFragmentVM by viewModels()
|
||||||
override val ui: MainFragmentBinding by viewBinding()
|
override val ui: MainFragmentBinding by viewBinding()
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import eu.darken.capod.common.hasApiLevel
|
|||||||
import eu.darken.capod.common.livedata.SingleLiveEvent
|
import eu.darken.capod.common.livedata.SingleLiveEvent
|
||||||
import eu.darken.capod.common.permissions.Permission
|
import eu.darken.capod.common.permissions.Permission
|
||||||
import eu.darken.capod.common.permissions.isGranted
|
import eu.darken.capod.common.permissions.isGranted
|
||||||
import eu.darken.capod.common.smart.Smart2VM
|
import eu.darken.capod.common.uix.ViewModel3
|
||||||
import eu.darken.capod.main.ui.cards.PermissionCardVH
|
import eu.darken.capod.main.ui.cards.PermissionCardVH
|
||||||
import eu.darken.capod.main.ui.cards.ToggleCardVH
|
import eu.darken.capod.main.ui.cards.ToggleCardVH
|
||||||
import kotlinx.coroutines.flow.*
|
import kotlinx.coroutines.flow.*
|
||||||
@@ -24,7 +24,7 @@ class MainFragmentVM @Inject constructor(
|
|||||||
@ApplicationContext private val context: Context,
|
@ApplicationContext private val context: Context,
|
||||||
dispatcherProvider: DispatcherProvider,
|
dispatcherProvider: DispatcherProvider,
|
||||||
private val recorderModule: RecorderModule,
|
private val recorderModule: RecorderModule,
|
||||||
) : Smart2VM(dispatcherProvider = dispatcherProvider) {
|
) : ViewModel3(dispatcherProvider = dispatcherProvider) {
|
||||||
|
|
||||||
|
|
||||||
private val enabledState: Flow<Boolean> = flow {
|
private val enabledState: Flow<Boolean> = flow {
|
||||||
|
|||||||
Reference in New Issue
Block a user