mirror of
https://github.com/d4rken-org/capod.git
synced 2026-09-15 10:46: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.logTag
|
||||
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 kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.SupervisorJob
|
||||
@@ -26,7 +26,7 @@ import javax.inject.Inject
|
||||
|
||||
|
||||
@AndroidEntryPoint
|
||||
class RecorderService : SmartService() {
|
||||
class RecorderService : Service2() {
|
||||
private lateinit var builder: NotificationCompat.Builder
|
||||
|
||||
@Inject lateinit var recorderModule: RecorderModule
|
||||
|
||||
@@ -9,11 +9,11 @@ import androidx.core.view.isInvisible
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import eu.darken.capod.common.debug.logging.logTag
|
||||
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
|
||||
|
||||
@AndroidEntryPoint
|
||||
class RecorderActivity : SmartActivity() {
|
||||
class RecorderActivity : Activity2() {
|
||||
|
||||
private lateinit var ui: DebugRecordingActivityBinding
|
||||
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.replayingShare
|
||||
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.first
|
||||
import kotlinx.coroutines.flow.map
|
||||
@@ -30,7 +30,7 @@ class RecorderActivityVM @Inject constructor(
|
||||
handle: SavedStateHandle,
|
||||
dispatcherProvider: DispatcherProvider,
|
||||
@ApplicationContext private val context: Context,
|
||||
) : Smart2VM(dispatcherProvider) {
|
||||
) : ViewModel3(dispatcherProvider) {
|
||||
|
||||
private val recordedPath = handle.get<String>(RecorderActivity.RECORD_PATH)!!
|
||||
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.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.logTag
|
||||
|
||||
abstract class SmartActivity : AppCompatActivity() {
|
||||
abstract class Activity2 : AppCompatActivity() {
|
||||
internal val tag: String =
|
||||
logTag("Activity", this.javaClass.simpleName + "(" + Integer.toHexString(hashCode()) + ")")
|
||||
|
||||
@@ -38,7 +38,7 @@ abstract class SmartActivity : AppCompatActivity() {
|
||||
}
|
||||
|
||||
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.Intent
|
||||
@@ -18,10 +18,10 @@ import eu.darken.capod.common.navigation.popBackStack
|
||||
import eu.darken.capod.common.observe2
|
||||
|
||||
|
||||
abstract class Smart2BottomSheetDialogFragment : BottomSheetDialogFragment() {
|
||||
abstract class BottomSheetDialogFragment2 : BottomSheetDialogFragment() {
|
||||
|
||||
abstract val ui: ViewBinding
|
||||
abstract val vdc: Smart2VM
|
||||
abstract val vdc: ViewModel3
|
||||
|
||||
internal val tag: String =
|
||||
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.Intent
|
||||
@@ -13,7 +13,7 @@ import eu.darken.capod.common.debug.logging.log
|
||||
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)
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
package eu.darken.capod.common.smart
|
||||
package eu.darken.capod.common.uix
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
@@ -11,12 +11,12 @@ import eu.darken.capod.common.navigation.doNavigate
|
||||
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)
|
||||
|
||||
abstract val ui: ViewBinding?
|
||||
abstract val vm: Smart2VM
|
||||
abstract val vm: ViewModel3
|
||||
|
||||
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.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.logTag
|
||||
|
||||
abstract class SmartService : Service() {
|
||||
abstract class Service2 : Service() {
|
||||
private val tag: String =
|
||||
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.lifecycle.ViewModel
|
||||
import eu.darken.capod.common.debug.logging.log
|
||||
import eu.darken.capod.common.debug.logging.logTag
|
||||
|
||||
abstract class VM : ViewModel() {
|
||||
abstract class ViewModel1 : ViewModel() {
|
||||
val TAG: String = logTag("VM", javaClass.simpleName)
|
||||
|
||||
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.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.error.ErrorEventSource
|
||||
import eu.darken.capod.common.flow.DynamicStateFlow
|
||||
import eu.darken.capod.common.viewmodel.VM
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.launchIn
|
||||
import kotlin.coroutines.CoroutineContext
|
||||
|
||||
|
||||
abstract class SmartVM(
|
||||
abstract class ViewModel2(
|
||||
private val dispatcherProvider: DispatcherProvider = DefaultDispatcherProvider(),
|
||||
) : VM() {
|
||||
) : ViewModel1() {
|
||||
|
||||
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 eu.darken.capod.common.coroutine.DispatcherProvider
|
||||
@@ -13,9 +13,9 @@ import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.launchIn
|
||||
|
||||
|
||||
abstract class Smart2VM(
|
||||
abstract class ViewModel3(
|
||||
dispatcherProvider: DispatcherProvider,
|
||||
) : SmartVM(dispatcherProvider), NavEventSource, ErrorEventSource {
|
||||
) : ViewModel2(dispatcherProvider), NavEventSource, ErrorEventSource {
|
||||
|
||||
override val navEvents = SingleLiveEvent<NavDirections?>()
|
||||
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
|
||||
@@ -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 eu.darken.capod.R
|
||||
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
|
||||
|
||||
@AndroidEntryPoint
|
||||
class MainActivity : SmartActivity() {
|
||||
class MainActivity : Activity2() {
|
||||
|
||||
private val vm: MainActivityVM by viewModels()
|
||||
private lateinit var ui: MainActivityBinding
|
||||
|
||||
@@ -3,7 +3,7 @@ package eu.darken.capod.main.ui
|
||||
import androidx.lifecycle.SavedStateHandle
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
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
|
||||
|
||||
|
||||
@@ -11,4 +11,4 @@ import javax.inject.Inject
|
||||
class MainActivityVM @Inject constructor(
|
||||
handle: SavedStateHandle,
|
||||
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.lists.differ.update
|
||||
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.databinding.MainFragmentBinding
|
||||
import javax.inject.Inject
|
||||
|
||||
@AndroidEntryPoint
|
||||
class MainFragment : Smart2Fragment(R.layout.main_fragment) {
|
||||
class MainFragment : Fragment3(R.layout.main_fragment) {
|
||||
|
||||
override val vm: MainFragmentVM by viewModels()
|
||||
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.permissions.Permission
|
||||
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.ToggleCardVH
|
||||
import kotlinx.coroutines.flow.*
|
||||
@@ -24,7 +24,7 @@ class MainFragmentVM @Inject constructor(
|
||||
@ApplicationContext private val context: Context,
|
||||
dispatcherProvider: DispatcherProvider,
|
||||
private val recorderModule: RecorderModule,
|
||||
) : Smart2VM(dispatcherProvider = dispatcherProvider) {
|
||||
) : ViewModel3(dispatcherProvider = dispatcherProvider) {
|
||||
|
||||
|
||||
private val enabledState: Flow<Boolean> = flow {
|
||||
|
||||
Reference in New Issue
Block a user