Rename CAP -> CAPod

This commit is contained in:
darken
2021-12-29 22:30:49 +01:00
parent 817c65ee3b
commit 88278625f1
131 changed files with 444 additions and 444 deletions
+9 -9
View File
@@ -1,4 +1,4 @@
# Companion App for AirPods (CAP)
# Companion App for AirPods (CAPod)
A companion app that adds support for AirPod specific features to Android.
@@ -10,16 +10,16 @@ Supported models:
## Support the project
* Buy the CAP Pro In-App purchase on [Google Play](https://play.google.com/store/apps/details?id=eu.darken.cap)
* Buy the CAPod Pro In-App purchase on [Google Play](https://play.google.com/store/apps/details?id=eu.darken.capod)
* [Buy me a coffee](https://www.buymeacoffee.com/tydarken)
* Help translate CAP [on Crowdin](https://crowdin.com/project/airpod-companion)
* Help translate CAPod [on Crowdin](https://crowdin.com/project/airpod-companion)
## Download
* [Google Play](https://play.google.com/store/apps/details?id=eu.darken.cap)
* [Google Play](https://play.google.com/store/apps/details?id=eu.darken.capod)
* [GitHub](https://github.com/d4rken/android-airpods-companion/releases/latest)
## Use CAP as a library
## Use CAPod as a library
AirPods use Apple's Continuity Protocol to communicate, specifically the Proximity Pairing Message type. If you want to
build your own app based on this, you can include it like this:
@@ -37,10 +37,10 @@ build your own app based on this, you can include it like this:
## License
CAP's code is available under a GPL v3 license, this excludes:
CAPod's code is available under a GPL v3 license, this excludes:
* CAP icons, logos, mascots and marketing materials.
* CAP animations and videos.
* CAP documentation.
* CAPod icons, logos, mascots and marketing materials.
* CAPod animations and videos.
* CAPod documentation.
* Google Play store screenshots.
* Google Play store texts & descriptions.
+1 -1
View File
@@ -25,7 +25,7 @@ android {
versionCode buildConfig.version.code
versionName buildConfig.version.name
testInstrumentationRunner "eu.darken.cap.HiltTestRunner"
testInstrumentationRunner "eu.darken.capod.HiltTestRunner"
buildConfigField "String", "GITSHA", "\"${gitSha}\""
buildConfigField "String", "BUILDTIME", "\"${buildTime}\""
+6 -6
View File
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="eu.darken.cap">
package="eu.darken.capod">
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
@@ -11,7 +11,7 @@
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:name="eu.darken.cap.App"
android:name="eu.darken.capod.App"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
@@ -20,7 +20,7 @@
android:theme="@style/AppTheme">
<activity
android:name="eu.darken.cap.main.ui.MainActivity"
android:name="eu.darken.capod.main.ui.MainActivity"
android:exported="true"
android:label="@string/app_name">
<intent-filter>
@@ -31,7 +31,7 @@
</activity>
<receiver
android:name="eu.darken.cap.monitor.core.receiver.BluetoothEventReceiver"
android:name="eu.darken.capod.monitor.core.receiver.BluetoothEventReceiver"
android:enabled="true"
android:exported="true"
android:label="Service trigger">
@@ -55,10 +55,10 @@
<!-- Debug stuff-->
<activity
android:name=".common.debug.recording.ui.RecorderActivity"
android:name="eu.darken.capod.common.debug.recording.ui.RecorderActivity"
android:theme="@style/AppThemeFloating" />
<service android:name=".common.debug.recording.core.RecorderService" />
<service android:name="eu.darken.capod.common.debug.recording.core.RecorderService" />
<!-- Worker stuff-->
<service
@@ -1,7 +0,0 @@
package eu.darken.cap.common.error
import eu.darken.cap.common.livedata.SingleLiveEvent
interface ErrorEventSource {
val errorEvents: SingleLiveEvent<Throwable>
}
@@ -1,3 +0,0 @@
package eu.darken.cap.common.flow
@@ -1,3 +0,0 @@
package eu.darken.cap.common.lists
interface ListItem
@@ -1,14 +1,14 @@
package eu.darken.cap
package eu.darken.capod
import android.app.Application
import androidx.hilt.work.HiltWorkerFactory
import androidx.work.Configuration
import com.getkeepsafe.relinker.ReLinker
import dagger.hilt.android.HiltAndroidApp
import eu.darken.cap.common.coroutine.AppScope
import eu.darken.cap.common.debug.bugreporting.BugReporter
import eu.darken.cap.common.debug.logging.*
import eu.darken.cap.monitor.core.worker.MonitorControl
import eu.darken.capod.common.coroutine.AppScope
import eu.darken.capod.common.debug.bugreporting.BugReporter
import eu.darken.capod.common.debug.logging.*
import eu.darken.capod.monitor.core.worker.MonitorControl
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
import javax.inject.Inject
@@ -1,6 +1,6 @@
package eu.darken.cap.common
package eu.darken.capod.common
import eu.darken.cap.BuildConfig
import eu.darken.capod.BuildConfig
// Can't be const because that prevents them from being mocked in tests
@@ -1,4 +1,4 @@
package eu.darken.cap.common
package eu.darken.capod.common
import android.os.Build
@@ -1,4 +1,4 @@
package eu.darken.cap.common
package eu.darken.capod.common
import java.util.*
@@ -1,4 +1,4 @@
package eu.darken.cap.common
package eu.darken.capod.common
import android.annotation.SuppressLint
import android.content.ComponentName
@@ -1,9 +1,9 @@
package eu.darken.cap.common
package eu.darken.capod.common
import android.content.Context
import dagger.hilt.android.qualifiers.ApplicationContext
import eu.darken.cap.common.debug.logging.log
import eu.darken.cap.common.debug.logging.logTag
import eu.darken.capod.common.debug.logging.log
import eu.darken.capod.common.debug.logging.logTag
import java.io.File
import java.util.*
import java.util.regex.Pattern
@@ -1,4 +1,4 @@
package eu.darken.cap.common
package eu.darken.capod.common
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment
@@ -1,4 +1,4 @@
package eu.darken.cap.common.bluetooth
package eu.darken.capod.common.bluetooth
import android.bluetooth.BluetoothManager
import android.bluetooth.le.ScanCallback
@@ -7,10 +7,10 @@ import android.bluetooth.le.ScanResult
import android.bluetooth.le.ScanSettings
import android.content.Context
import dagger.hilt.android.qualifiers.ApplicationContext
import eu.darken.cap.common.debug.logging.Logging.Priority.*
import eu.darken.cap.common.debug.logging.log
import eu.darken.cap.common.debug.logging.logTag
import eu.darken.cap.pods.core.airpods.ProximityPairing
import eu.darken.capod.common.debug.logging.Logging.Priority.*
import eu.darken.capod.common.debug.logging.log
import eu.darken.capod.common.debug.logging.logTag
import eu.darken.capod.pods.core.airpods.ProximityPairing
import kotlinx.coroutines.channels.awaitClose
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.callbackFlow
@@ -1,4 +1,4 @@
package eu.darken.cap.common.bluetooth
package eu.darken.capod.common.bluetooth
import android.bluetooth.BluetoothDevice
import android.os.ParcelUuid
@@ -1,4 +1,4 @@
package eu.darken.cap.common.bluetooth
package eu.darken.capod.common.bluetooth
import android.bluetooth.BluetoothDevice
import android.os.ParcelUuid
@@ -1,4 +1,4 @@
package eu.darken.cap.common.bluetooth
package eu.darken.capod.common.bluetooth
import android.bluetooth.BluetoothAdapter
import android.bluetooth.BluetoothDevice
@@ -11,10 +11,10 @@ import android.content.IntentFilter
import android.os.Handler
import android.os.HandlerThread
import dagger.hilt.android.qualifiers.ApplicationContext
import eu.darken.cap.common.coroutine.DispatcherProvider
import eu.darken.cap.common.debug.logging.Logging.Priority.*
import eu.darken.cap.common.debug.logging.log
import eu.darken.cap.common.debug.logging.logTag
import eu.darken.capod.common.coroutine.DispatcherProvider
import eu.darken.capod.common.debug.logging.Logging.Priority.*
import eu.darken.capod.common.debug.logging.log
import eu.darken.capod.common.debug.logging.logTag
import kotlinx.coroutines.channels.awaitClose
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.callbackFlow
@@ -1,4 +1,4 @@
package eu.darken.cap.common.bluetooth
package eu.darken.capod.common.bluetooth
import android.bluetooth.BluetoothProfile
import java.util.concurrent.atomic.AtomicBoolean
@@ -1,4 +1,4 @@
package eu.darken.cap.common.collections
package eu.darken.capod.common.collections
inline fun <K, V> Map<K, V>.mutate(block: MutableMap<K, V>.() -> Unit): Map<K, V> {
return toMutableMap().apply(block).toMap()
@@ -1,8 +1,8 @@
package eu.darken.cap.common.compression
package eu.darken.capod.common.compression
import eu.darken.cap.common.debug.logging.Logging.Priority.VERBOSE
import eu.darken.cap.common.debug.logging.log
import eu.darken.cap.common.debug.logging.logTag
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
import java.io.BufferedInputStream
import java.io.BufferedOutputStream
import java.io.FileInputStream
@@ -1,4 +1,4 @@
package eu.darken.cap.common.coroutine
package eu.darken.capod.common.coroutine
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
@@ -1,4 +1,4 @@
package eu.darken.cap.common.coroutine
package eu.darken.capod.common.coroutine
import dagger.Binds
import dagger.Module
@@ -1,4 +1,4 @@
package eu.darken.cap.common.coroutine
package eu.darken.capod.common.coroutine
import javax.inject.Inject
import javax.inject.Singleton
@@ -1,4 +1,4 @@
package eu.darken.cap.common.coroutine
package eu.darken.capod.common.coroutine
import kotlinx.coroutines.Dispatchers
import kotlin.coroutines.CoroutineContext
@@ -1,4 +1,4 @@
package eu.darken.cap.common.dagger
package eu.darken.capod.common.dagger
import android.app.Application
import android.app.NotificationManager
@@ -1,8 +1,8 @@
package eu.darken.cap.common.debug.bugreporting
package eu.darken.capod.common.debug.bugreporting
import android.content.Context
import dagger.hilt.android.qualifiers.ApplicationContext
import eu.darken.cap.common.preferences.createFlowPreference
import eu.darken.capod.common.preferences.createFlowPreference
import javax.inject.Inject
import javax.inject.Singleton
@@ -1,16 +1,16 @@
package eu.darken.cap.common.debug.bugreporting
package eu.darken.capod.common.debug.bugreporting
import android.content.Context
import com.bugsnag.android.Bugsnag
import com.bugsnag.android.Configuration
import dagger.hilt.android.qualifiers.ApplicationContext
import eu.darken.cap.common.InstallId
import eu.darken.cap.common.debug.bugsnag.BugsnagErrorHandler
import eu.darken.cap.common.debug.bugsnag.BugsnagLogger
import eu.darken.cap.common.debug.bugsnag.NOPBugsnagErrorHandler
import eu.darken.cap.common.debug.logging.Logging
import eu.darken.cap.common.debug.logging.log
import eu.darken.cap.common.debug.logging.logTag
import eu.darken.capod.common.InstallId
import eu.darken.capod.common.debug.bugsnag.BugsnagErrorHandler
import eu.darken.capod.common.debug.bugsnag.BugsnagLogger
import eu.darken.capod.common.debug.bugsnag.NOPBugsnagErrorHandler
import eu.darken.capod.common.debug.logging.Logging
import eu.darken.capod.common.debug.logging.log
import eu.darken.capod.common.debug.logging.logTag
import javax.inject.Inject
import javax.inject.Provider
import javax.inject.Singleton
@@ -1,10 +1,10 @@
package eu.darken.cap.common.debug.bugreporting
package eu.darken.capod.common.debug.bugreporting
import com.bugsnag.android.Bugsnag
import eu.darken.cap.common.debug.logging.Logging.Priority.VERBOSE
import eu.darken.cap.common.debug.logging.Logging.Priority.WARN
import eu.darken.cap.common.debug.logging.log
import eu.darken.cap.common.debug.logging.logTag
import eu.darken.capod.common.debug.logging.Logging.Priority.VERBOSE
import eu.darken.capod.common.debug.logging.Logging.Priority.WARN
import eu.darken.capod.common.debug.logging.log
import eu.darken.capod.common.debug.logging.logTag
object Bugs {
var ready = false
@@ -1,4 +1,4 @@
package eu.darken.cap.common.debug.bugsnag
package eu.darken.capod.common.debug.bugsnag
import android.annotation.SuppressLint
import android.content.Context
@@ -6,10 +6,10 @@ import android.content.pm.PackageManager
import com.bugsnag.android.Event
import com.bugsnag.android.OnErrorCallback
import dagger.hilt.android.qualifiers.ApplicationContext
import eu.darken.cap.BuildConfig
import eu.darken.cap.common.debug.logging.Logging.Priority.WARN
import eu.darken.cap.common.debug.logging.asLog
import eu.darken.cap.common.debug.logging.log
import eu.darken.capod.BuildConfig
import eu.darken.capod.common.debug.logging.Logging.Priority.WARN
import eu.darken.capod.common.debug.logging.asLog
import eu.darken.capod.common.debug.logging.log
import javax.inject.Inject
import javax.inject.Singleton
@@ -1,8 +1,8 @@
package eu.darken.cap.common.debug.bugsnag
package eu.darken.capod.common.debug.bugsnag
import com.bugsnag.android.Event
import eu.darken.cap.common.debug.logging.Logging
import eu.darken.cap.common.debug.logging.asLog
import eu.darken.capod.common.debug.logging.Logging
import eu.darken.capod.common.debug.logging.asLog
import java.lang.String.format
import java.util.*
import javax.inject.Inject
@@ -1,10 +1,10 @@
package eu.darken.cap.common.debug.bugsnag
package eu.darken.capod.common.debug.bugsnag
import com.bugsnag.android.Event
import com.bugsnag.android.OnErrorCallback
import eu.darken.cap.common.debug.logging.Logging.Priority.WARN
import eu.darken.cap.common.debug.logging.asLog
import eu.darken.cap.common.debug.logging.log
import eu.darken.capod.common.debug.logging.Logging.Priority.WARN
import eu.darken.capod.common.debug.logging.asLog
import eu.darken.capod.common.debug.logging.log
import javax.inject.Inject
import javax.inject.Singleton
@@ -1,4 +1,4 @@
package eu.darken.cap.common.debug.logging
package eu.darken.capod.common.debug.logging
import android.annotation.SuppressLint
import android.util.Log
@@ -1,4 +1,4 @@
package eu.darken.cap.common.debug.logging
package eu.darken.capod.common.debug.logging
import android.os.Build
import android.util.Log
@@ -1,4 +1,4 @@
package eu.darken.cap.common.debug.logging
package eu.darken.capod.common.debug.logging
fun logTag(vararg tags: String): String {
val sb = StringBuilder("CAP:")
@@ -1,4 +1,4 @@
package eu.darken.cap.common.debug.logging
package eu.darken.capod.common.debug.logging
import java.io.PrintWriter
import java.io.StringWriter
@@ -1,10 +1,10 @@
package eu.darken.cap.common.debug.recording.core
package eu.darken.capod.common.debug.recording.core
import eu.darken.cap.common.debug.logging.FileLogger
import eu.darken.cap.common.debug.logging.Logging
import eu.darken.cap.common.debug.logging.Logging.Priority.INFO
import eu.darken.cap.common.debug.logging.log
import eu.darken.cap.common.debug.logging.logTag
import eu.darken.capod.common.debug.logging.FileLogger
import eu.darken.capod.common.debug.logging.Logging
import eu.darken.capod.common.debug.logging.Logging.Priority.INFO
import eu.darken.capod.common.debug.logging.log
import eu.darken.capod.common.debug.logging.logTag
import kotlinx.coroutines.sync.Mutex
import kotlinx.coroutines.sync.withLock
import java.io.File
@@ -1,18 +1,18 @@
package eu.darken.cap.common.debug.recording.core
package eu.darken.capod.common.debug.recording.core
import android.content.Context
import android.content.Intent
import android.os.Environment
import dagger.hilt.android.qualifiers.ApplicationContext
import eu.darken.cap.common.BuildConfigWrap
import eu.darken.cap.common.coroutine.AppScope
import eu.darken.cap.common.coroutine.DispatcherProvider
import eu.darken.cap.common.debug.logging.Logging.Priority.ERROR
import eu.darken.cap.common.debug.logging.log
import eu.darken.cap.common.debug.logging.logTag
import eu.darken.cap.common.debug.recording.ui.RecorderActivity
import eu.darken.cap.common.flow.DynamicStateFlow
import eu.darken.cap.common.startServiceCompat
import eu.darken.capod.common.BuildConfigWrap
import eu.darken.capod.common.coroutine.AppScope
import eu.darken.capod.common.coroutine.DispatcherProvider
import eu.darken.capod.common.debug.logging.Logging.Priority.ERROR
import eu.darken.capod.common.debug.logging.log
import eu.darken.capod.common.debug.logging.logTag
import eu.darken.capod.common.debug.recording.ui.RecorderActivity
import eu.darken.capod.common.flow.DynamicStateFlow
import eu.darken.capod.common.startServiceCompat
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.*
import kotlinx.coroutines.plus
@@ -1,4 +1,4 @@
package eu.darken.cap.common.debug.recording.core
package eu.darken.capod.common.debug.recording.core
import android.app.NotificationChannel
import android.app.NotificationManager
@@ -8,14 +8,14 @@ import android.os.Build
import android.os.IBinder
import androidx.core.app.NotificationCompat
import dagger.hilt.android.AndroidEntryPoint
import eu.darken.cap.R
import eu.darken.cap.common.BuildConfigWrap
import eu.darken.cap.common.coroutine.DispatcherProvider
import eu.darken.cap.common.debug.logging.log
import eu.darken.cap.common.debug.logging.logTag
import eu.darken.cap.common.notifications.PendingIntentCompat
import eu.darken.cap.common.smart.SmartService
import eu.darken.cap.main.ui.MainActivity
import eu.darken.capod.R
import eu.darken.capod.common.BuildConfigWrap
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.main.ui.MainActivity
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.SupervisorJob
import kotlinx.coroutines.cancel
@@ -1,26 +1,27 @@
package eu.darken.cap.common.debug.recording.ui
package eu.darken.capod.common.debug.recording.ui
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.text.format.Formatter
import androidx.activity.viewModels
import androidx.core.view.isInvisible
import dagger.hilt.android.AndroidEntryPoint
import eu.darken.cap.common.debug.logging.logTag
import eu.darken.cap.common.error.asErrorDialogBuilder
import eu.darken.cap.common.smart.SmartActivity
import eu.darken.cap.databinding.CoreDebugRecordingActivityBinding
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.databinding.DebugRecordingActivityBinding
@AndroidEntryPoint
class RecorderActivity : SmartActivity() {
private lateinit var ui: CoreDebugRecordingActivityBinding
private lateinit var ui: DebugRecordingActivityBinding
private val vm: RecorderActivityVM by viewModels()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
ui = CoreDebugRecordingActivityBinding.inflate(layoutInflater)
ui = DebugRecordingActivityBinding.inflate(layoutInflater)
setContentView(ui.root)
vm.state.observe2 { state ->
@@ -1,4 +1,4 @@
package eu.darken.cap.common.debug.recording.ui
package eu.darken.capod.common.debug.recording.ui
import android.content.Context
@@ -7,16 +7,16 @@ import androidx.core.content.FileProvider
import androidx.lifecycle.SavedStateHandle
import dagger.hilt.android.lifecycle.HiltViewModel
import dagger.hilt.android.qualifiers.ApplicationContext
import eu.darken.cap.R
import eu.darken.cap.common.BuildConfigWrap
import eu.darken.cap.common.compression.Zipper
import eu.darken.cap.common.coroutine.DispatcherProvider
import eu.darken.cap.common.debug.logging.logTag
import eu.darken.cap.common.flow.DynamicStateFlow
import eu.darken.cap.common.flow.onError
import eu.darken.cap.common.flow.replayingShare
import eu.darken.cap.common.livedata.SingleLiveEvent
import eu.darken.cap.common.smart.Smart2VM
import eu.darken.capod.R
import eu.darken.capod.common.BuildConfigWrap
import eu.darken.capod.common.compression.Zipper
import eu.darken.capod.common.coroutine.DispatcherProvider
import eu.darken.capod.common.debug.logging.logTag
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 kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.map
@@ -95,7 +95,7 @@ class RecorderActivityVM @Inject constructor(
}
val chooserIntent = Intent.createChooser(intent, context.getString(R.string.debug_log_file_label))
val chooserIntent = Intent.createChooser(intent, context.getString(R.string.debug_debuglog_file_label))
shareEvent.postValue(chooserIntent)
}
@@ -1,4 +1,4 @@
package eu.darken.cap.common.error
package eu.darken.capod.common.error
import android.content.Context
import com.google.android.material.dialog.MaterialAlertDialogBuilder
@@ -0,0 +1,7 @@
package eu.darken.capod.common.error
import eu.darken.capod.common.livedata.SingleLiveEvent
interface ErrorEventSource {
val errorEvents: SingleLiveEvent<Throwable>
}
@@ -1,7 +1,7 @@
package eu.darken.cap.common.error
package eu.darken.capod.common.error
import android.content.Context
import eu.darken.cap.R
import eu.darken.capod.R
interface HasLocalizedError {
fun getLocalizedError(context: Context): LocalizedError
@@ -1,4 +1,4 @@
package eu.darken.cap.common.error
package eu.darken.capod.common.error
import java.io.PrintWriter
import java.io.StringWriter
@@ -1,8 +1,8 @@
package eu.darken.cap.common.flow
package eu.darken.capod.common.flow
import eu.darken.cap.common.debug.logging.Logging.Priority.VERBOSE
import eu.darken.cap.common.debug.logging.asLog
import eu.darken.cap.common.debug.logging.log
import eu.darken.capod.common.debug.logging.Logging.Priority.VERBOSE
import eu.darken.capod.common.debug.logging.asLog
import eu.darken.capod.common.debug.logging.log
import kotlinx.coroutines.CancellationException
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.channels.BufferOverflow
@@ -0,0 +1,3 @@
package eu.darken.capod.common.flow
@@ -1,4 +1,4 @@
package eu.darken.cap.common.flow
package eu.darken.capod.common.flow
import kotlinx.coroutines.flow.Flow
@@ -1,10 +1,10 @@
package eu.darken.cap.common.flow
package eu.darken.capod.common.flow
import eu.darken.cap.common.debug.logging.Logging.Priority.ERROR
import eu.darken.cap.common.debug.logging.Logging.Priority.VERBOSE
import eu.darken.cap.common.debug.logging.asLog
import eu.darken.cap.common.debug.logging.log
import eu.darken.cap.common.error.hasCause
import eu.darken.capod.common.debug.logging.Logging.Priority.ERROR
import eu.darken.capod.common.debug.logging.Logging.Priority.VERBOSE
import eu.darken.capod.common.debug.logging.asLog
import eu.darken.capod.common.debug.logging.log
import eu.darken.capod.common.error.hasCause
import kotlinx.coroutines.CancellationException
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.*
@@ -1,4 +1,4 @@
package eu.darken.cap.common.lists
package eu.darken.capod.common.lists
import android.content.Context
import android.content.res.Resources
@@ -7,7 +7,7 @@ import android.view.ViewGroup
import androidx.annotation.*
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import eu.darken.cap.common.getColorForAttr
import eu.darken.capod.common.getColorForAttr
abstract class BaseAdapter<T : BaseAdapter.VH> : RecyclerView.Adapter<T>() {
@@ -1,4 +1,4 @@
package eu.darken.cap.common.lists
package eu.darken.capod.common.lists
import androidx.viewbinding.ViewBinding
@@ -1,4 +1,4 @@
package eu.darken.cap.common.lists
package eu.darken.capod.common.lists
import androidx.recyclerview.widget.RecyclerView
@@ -0,0 +1,3 @@
package eu.darken.capod.common.lists
interface ListItem
@@ -1,4 +1,4 @@
package eu.darken.cap.common.lists
package eu.darken.capod.common.lists
import androidx.recyclerview.widget.DefaultItemAnimator
import androidx.recyclerview.widget.DividerItemDecoration
@@ -1,9 +1,9 @@
package eu.darken.cap.common.lists.differ
package eu.darken.capod.common.lists.differ
import androidx.recyclerview.widget.AsyncListDiffer
import androidx.recyclerview.widget.DiffUtil
import eu.darken.cap.common.lists.modular.ModularAdapter
import eu.darken.cap.common.lists.modular.mods.StableIdMod
import eu.darken.capod.common.lists.modular.ModularAdapter
import eu.darken.capod.common.lists.modular.mods.StableIdMod
class AsyncDiffer<A, T : DifferItem> internal constructor(
adapter: A,
@@ -1,7 +1,7 @@
package eu.darken.cap.common.lists.differ
package eu.darken.capod.common.lists.differ
import androidx.recyclerview.widget.RecyclerView
import eu.darken.cap.common.lists.modular.ModularAdapter
import eu.darken.capod.common.lists.modular.ModularAdapter
fun <X, T> X.update(newData: List<T>?)
@@ -1,6 +1,6 @@
package eu.darken.cap.common.lists.differ
package eu.darken.capod.common.lists.differ
import eu.darken.cap.common.lists.ListItem
import eu.darken.capod.common.lists.ListItem
interface DifferItem : ListItem {
val stableId: Long
@@ -1,4 +1,4 @@
package eu.darken.cap.common.lists.differ
package eu.darken.capod.common.lists.differ
interface HasAsyncDiffer<T : DifferItem> {
@@ -1,10 +1,10 @@
package eu.darken.cap.common.lists.modular
package eu.darken.capod.common.lists.modular
import android.view.ViewGroup
import androidx.annotation.CallSuper
import androidx.annotation.LayoutRes
import androidx.recyclerview.widget.RecyclerView
import eu.darken.cap.common.lists.BaseAdapter
import eu.darken.capod.common.lists.BaseAdapter
abstract class ModularAdapter<VH : ModularAdapter.VH> : BaseAdapter<VH>() {
val modules = mutableListOf<Module>()
@@ -1,6 +1,6 @@
package eu.darken.cap.common.lists.modular.mods
package eu.darken.capod.common.lists.modular.mods
import eu.darken.cap.common.lists.modular.ModularAdapter
import eu.darken.capod.common.lists.modular.ModularAdapter
class ClickMod<VHT : ModularAdapter.VH> constructor(
private val listener: (VHT, Int) -> Unit
@@ -1,8 +1,8 @@
package eu.darken.cap.common.lists.modular.mods
package eu.darken.capod.common.lists.modular.mods
import androidx.viewbinding.ViewBinding
import eu.darken.cap.common.lists.BindableVH
import eu.darken.cap.common.lists.modular.ModularAdapter
import eu.darken.capod.common.lists.BindableVH
import eu.darken.capod.common.lists.modular.ModularAdapter
class DataBinderMod<ItemT, HolderT> constructor(
private val data: List<ItemT>,
@@ -1,7 +1,7 @@
package eu.darken.cap.common.lists.modular.mods
package eu.darken.capod.common.lists.modular.mods
import android.view.ViewGroup
import eu.darken.cap.common.lists.modular.ModularAdapter
import eu.darken.capod.common.lists.modular.ModularAdapter
class SimpleVHCreatorMod<HolderT> constructor(
private val viewType: Int = 0,
@@ -1,8 +1,8 @@
package eu.darken.cap.common.lists.modular.mods
package eu.darken.capod.common.lists.modular.mods
import androidx.recyclerview.widget.RecyclerView
import eu.darken.cap.common.lists.differ.DifferItem
import eu.darken.cap.common.lists.modular.ModularAdapter
import eu.darken.capod.common.lists.differ.DifferItem
import eu.darken.capod.common.lists.modular.ModularAdapter
class StableIdMod<ItemT : DifferItem> constructor(
private val data: List<ItemT>,
@@ -1,7 +1,7 @@
package eu.darken.cap.common.lists.modular.mods
package eu.darken.capod.common.lists.modular.mods
import android.view.ViewGroup
import eu.darken.cap.common.lists.modular.ModularAdapter
import eu.darken.capod.common.lists.modular.ModularAdapter
class TypedVHCreatorMod<HolderT> constructor(
private val typeResolver: (Int) -> Boolean,
@@ -1,4 +1,4 @@
package eu.darken.cap.common.livedata
package eu.darken.capod.common.livedata
/*
* Copyright 2017 Google Inc.
@@ -22,8 +22,8 @@ import androidx.annotation.Nullable
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.Observer
import eu.darken.cap.common.debug.logging.Logging.Priority.WARN
import eu.darken.cap.common.debug.logging.log
import eu.darken.capod.common.debug.logging.Logging.Priority.WARN
import eu.darken.capod.common.debug.logging.log
import java.util.concurrent.atomic.AtomicBoolean
/**
@@ -1,4 +1,4 @@
package eu.darken.cap.common.navigation
package eu.darken.capod.common.navigation
import android.app.Activity
import androidx.annotation.IdRes
@@ -9,9 +9,9 @@ import androidx.navigation.NavController
import androidx.navigation.NavDirections
import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.fragment.findNavController
import eu.darken.cap.common.debug.logging.Logging.Priority.WARN
import eu.darken.cap.common.debug.logging.asLog
import eu.darken.cap.common.debug.logging.log
import eu.darken.capod.common.debug.logging.Logging.Priority.WARN
import eu.darken.capod.common.debug.logging.asLog
import eu.darken.capod.common.debug.logging.log
fun Fragment.doNavigate(direction: NavDirections) = findNavController().doNavigate(direction)
@@ -1,4 +1,4 @@
package eu.darken.cap.common.navigation
package eu.darken.capod.common.navigation
import android.os.Bundle
import android.os.Parcelable
@@ -1,4 +1,4 @@
package eu.darken.cap.common.navigation
package eu.darken.capod.common.navigation
import android.os.Bundle
import androidx.annotation.IdRes
@@ -1,4 +1,4 @@
package eu.darken.cap.common.navigation
package eu.darken.capod.common.navigation
import androidx.annotation.IdRes
import androidx.navigation.NavDestination
@@ -1,8 +1,8 @@
package eu.darken.cap.common.navigation
package eu.darken.capod.common.navigation
import androidx.lifecycle.MutableLiveData
import androidx.navigation.NavDirections
import eu.darken.cap.common.livedata.SingleLiveEvent
import eu.darken.capod.common.livedata.SingleLiveEvent
fun NavDirections.navVia(pub: MutableLiveData<in NavDirections>) = pub.postValue(this)
@@ -1,7 +1,7 @@
package eu.darken.cap.common.notifications
package eu.darken.capod.common.notifications
import android.app.PendingIntent
import eu.darken.cap.common.hasApiLevel
import eu.darken.capod.common.hasApiLevel
object PendingIntentCompat {
val FLAG_IMMUTABLE: Int = if (hasApiLevel(31)) {
@@ -1,11 +1,11 @@
package eu.darken.cap.common.permissions
package eu.darken.capod.common.permissions
import android.content.Context
import android.content.pm.PackageManager
import android.os.Build
import androidx.annotation.StringRes
import androidx.core.content.ContextCompat
import eu.darken.cap.R
import eu.darken.capod.R
enum class Permission(
val minApiLevel: Int,
@@ -1,9 +1,9 @@
package eu.darken.cap.common.preferences
package eu.darken.capod.common.preferences
import android.content.SharedPreferences
import androidx.core.content.edit
import eu.darken.cap.common.debug.logging.Logging.Priority.*
import eu.darken.cap.common.debug.logging.log
import eu.darken.capod.common.debug.logging.Logging.Priority.*
import eu.darken.capod.common.debug.logging.log
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow
@@ -1,9 +1,9 @@
package eu.darken.cap.common.preferences
package eu.darken.capod.common.preferences
import android.content.SharedPreferences
import androidx.core.content.edit
import eu.darken.cap.common.debug.logging.Logging.Priority.VERBOSE
import eu.darken.cap.common.debug.logging.log
import eu.darken.capod.common.debug.logging.Logging.Priority.VERBOSE
import eu.darken.capod.common.debug.logging.log
fun SharedPreferences.clearAndNotify() {
val currentKeys = this.all.keys.toSet()
@@ -1,4 +1,4 @@
package eu.darken.cap.common.smart
package eu.darken.capod.common.smart
import android.content.Context
import android.content.Intent
@@ -9,13 +9,13 @@ import android.view.ViewGroup
import androidx.lifecycle.LiveData
import androidx.viewbinding.ViewBinding
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import eu.darken.cap.common.debug.logging.Logging.Priority.VERBOSE
import eu.darken.cap.common.debug.logging.log
import eu.darken.cap.common.debug.logging.logTag
import eu.darken.cap.common.error.asErrorDialogBuilder
import eu.darken.cap.common.navigation.doNavigate
import eu.darken.cap.common.navigation.popBackStack
import eu.darken.cap.common.observe2
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
import eu.darken.capod.common.error.asErrorDialogBuilder
import eu.darken.capod.common.navigation.doNavigate
import eu.darken.capod.common.navigation.popBackStack
import eu.darken.capod.common.observe2
abstract class Smart2BottomSheetDialogFragment : BottomSheetDialogFragment() {
@@ -1,14 +1,14 @@
package eu.darken.cap.common.smart
package eu.darken.capod.common.smart
import android.os.Bundle
import android.view.View
import androidx.annotation.LayoutRes
import androidx.lifecycle.LiveData
import androidx.viewbinding.ViewBinding
import eu.darken.cap.common.debug.logging.log
import eu.darken.cap.common.error.asErrorDialogBuilder
import eu.darken.cap.common.navigation.doNavigate
import eu.darken.cap.common.navigation.popBackStack
import eu.darken.capod.common.debug.logging.log
import eu.darken.capod.common.error.asErrorDialogBuilder
import eu.darken.capod.common.navigation.doNavigate
import eu.darken.capod.common.navigation.popBackStack
abstract class Smart2Fragment(@LayoutRes layoutRes: Int?) : SmartFragment(layoutRes) {
@@ -1,13 +1,13 @@
package eu.darken.cap.common.smart
package eu.darken.capod.common.smart
import androidx.navigation.NavDirections
import eu.darken.cap.common.coroutine.DispatcherProvider
import eu.darken.cap.common.debug.logging.asLog
import eu.darken.cap.common.debug.logging.log
import eu.darken.cap.common.error.ErrorEventSource
import eu.darken.cap.common.flow.setupCommonEventHandlers
import eu.darken.cap.common.livedata.SingleLiveEvent
import eu.darken.cap.common.navigation.NavEventSource
import eu.darken.capod.common.coroutine.DispatcherProvider
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.setupCommonEventHandlers
import eu.darken.capod.common.livedata.SingleLiveEvent
import eu.darken.capod.common.navigation.NavEventSource
import kotlinx.coroutines.CoroutineExceptionHandler
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.launchIn
@@ -1,12 +1,12 @@
package eu.darken.cap.common.smart
package eu.darken.capod.common.smart
import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.LiveData
import eu.darken.cap.common.debug.logging.Logging.Priority.VERBOSE
import eu.darken.cap.common.debug.logging.log
import eu.darken.cap.common.debug.logging.logTag
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() {
internal val tag: String =
@@ -1,4 +1,4 @@
package eu.darken.cap.common.smart
package eu.darken.capod.common.smart
import android.content.Context
import android.content.Intent
@@ -8,9 +8,9 @@ import android.view.View
import android.view.ViewGroup
import androidx.annotation.LayoutRes
import androidx.fragment.app.Fragment
import eu.darken.cap.common.debug.logging.Logging.Priority.VERBOSE
import eu.darken.cap.common.debug.logging.log
import eu.darken.cap.common.debug.logging.logTag
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 SmartFragment(@LayoutRes val layoutRes: Int?) : Fragment(layoutRes ?: 0) {
@@ -1,10 +1,10 @@
package eu.darken.cap.common.smart
package eu.darken.capod.common.smart
import android.app.Service
import android.content.Intent
import android.content.res.Configuration
import eu.darken.cap.common.debug.logging.log
import eu.darken.cap.common.debug.logging.logTag
import eu.darken.capod.common.debug.logging.log
import eu.darken.capod.common.debug.logging.logTag
abstract class SmartService : Service() {
private val tag: String =
@@ -1,15 +1,15 @@
package eu.darken.cap.common.smart
package eu.darken.capod.common.smart
import androidx.lifecycle.asLiveData
import androidx.lifecycle.viewModelScope
import eu.darken.cap.common.coroutine.DefaultDispatcherProvider
import eu.darken.cap.common.coroutine.DispatcherProvider
import eu.darken.cap.common.debug.logging.Logging.Priority.WARN
import eu.darken.cap.common.debug.logging.asLog
import eu.darken.cap.common.debug.logging.log
import eu.darken.cap.common.error.ErrorEventSource
import eu.darken.cap.common.flow.DynamicStateFlow
import eu.darken.cap.common.viewmodel.VM
import eu.darken.capod.common.coroutine.DefaultDispatcherProvider
import eu.darken.capod.common.coroutine.DispatcherProvider
import eu.darken.capod.common.debug.logging.Logging.Priority.WARN
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
@@ -1,4 +1,4 @@
package eu.darken.cap.common.viewbinding
package eu.darken.capod.common.viewbinding
import android.os.Handler
import android.os.Looper
@@ -8,8 +8,8 @@ import androidx.fragment.app.Fragment
import androidx.lifecycle.DefaultLifecycleObserver
import androidx.lifecycle.LifecycleOwner
import androidx.viewbinding.ViewBinding
import eu.darken.cap.common.debug.logging.Logging.Priority.*
import eu.darken.cap.common.debug.logging.log
import eu.darken.capod.common.debug.logging.Logging.Priority.*
import eu.darken.capod.common.debug.logging.log
import kotlin.properties.ReadOnlyProperty
import kotlin.reflect.KProperty
@@ -1,8 +1,8 @@
package eu.darken.cap.common.viewmodel
package eu.darken.capod.common.viewmodel
import androidx.lifecycle.asLiveData
import eu.darken.cap.common.coroutine.DefaultDispatcherProvider
import eu.darken.cap.common.coroutine.DispatcherProvider
import eu.darken.capod.common.coroutine.DefaultDispatcherProvider
import eu.darken.capod.common.coroutine.DispatcherProvider
import kotlinx.coroutines.flow.Flow
@@ -1,9 +1,9 @@
package eu.darken.cap.common.viewmodel
package eu.darken.capod.common.viewmodel
import androidx.annotation.CallSuper
import androidx.lifecycle.ViewModel
import eu.darken.cap.common.debug.logging.log
import eu.darken.cap.common.debug.logging.logTag
import eu.darken.capod.common.debug.logging.log
import eu.darken.capod.common.debug.logging.logTag
abstract class VM : ViewModel() {
val TAG: String = logTag("VM", javaClass.simpleName)
@@ -1,4 +1,4 @@
package eu.darken.cap.common.viewmodel
package eu.darken.capod.common.viewmodel
/*
* Copyright 2018 The Android Open Source Project
@@ -1,4 +1,4 @@
package eu.darken.cap.common.worker
package eu.darken.capod.common.worker
import android.os.Parcel
import android.os.Parcelable
@@ -1,12 +1,12 @@
package eu.darken.cap.main.ui
package eu.darken.capod.main.ui
import android.os.Bundle
import androidx.activity.viewModels
import dagger.hilt.android.AndroidEntryPoint
import eu.darken.cap.R
import eu.darken.cap.common.navigation.findNavController
import eu.darken.cap.common.smart.SmartActivity
import eu.darken.cap.databinding.MainActivityBinding
import eu.darken.capod.R
import eu.darken.capod.common.navigation.findNavController
import eu.darken.capod.common.smart.SmartActivity
import eu.darken.capod.databinding.MainActivityBinding
@AndroidEntryPoint
class MainActivity : SmartActivity() {
@@ -1,9 +1,9 @@
package eu.darken.cap.main.ui
package eu.darken.capod.main.ui
import androidx.lifecycle.SavedStateHandle
import dagger.hilt.android.lifecycle.HiltViewModel
import eu.darken.cap.common.coroutine.DispatcherProvider
import eu.darken.cap.common.viewmodel.SmartVM
import eu.darken.capod.common.coroutine.DispatcherProvider
import eu.darken.capod.common.viewmodel.SmartVM
import javax.inject.Inject
@@ -11,6 +11,4 @@ import javax.inject.Inject
class MainActivityVM @Inject constructor(
handle: SavedStateHandle,
dispatcherProvider: DispatcherProvider,
) : SmartVM(dispatcherProvider = dispatcherProvider) {
}
) : SmartVM(dispatcherProvider = dispatcherProvider)
@@ -1,18 +1,18 @@
package eu.darken.cap.main.ui
package eu.darken.capod.main.ui
import android.view.ViewGroup
import androidx.annotation.LayoutRes
import androidx.viewbinding.ViewBinding
import eu.darken.cap.common.lists.BindableVH
import eu.darken.cap.common.lists.differ.AsyncDiffer
import eu.darken.cap.common.lists.differ.DifferItem
import eu.darken.cap.common.lists.differ.HasAsyncDiffer
import eu.darken.cap.common.lists.differ.setupDiffer
import eu.darken.cap.common.lists.modular.ModularAdapter
import eu.darken.cap.common.lists.modular.mods.DataBinderMod
import eu.darken.cap.common.lists.modular.mods.TypedVHCreatorMod
import eu.darken.cap.main.ui.cards.PermissionCardVH
import eu.darken.cap.main.ui.cards.ToggleCardVH
import eu.darken.capod.common.lists.BindableVH
import eu.darken.capod.common.lists.differ.AsyncDiffer
import eu.darken.capod.common.lists.differ.DifferItem
import eu.darken.capod.common.lists.differ.HasAsyncDiffer
import eu.darken.capod.common.lists.differ.setupDiffer
import eu.darken.capod.common.lists.modular.ModularAdapter
import eu.darken.capod.common.lists.modular.mods.DataBinderMod
import eu.darken.capod.common.lists.modular.mods.TypedVHCreatorMod
import eu.darken.capod.main.ui.cards.PermissionCardVH
import eu.darken.capod.main.ui.cards.ToggleCardVH
import javax.inject.Inject
class MainAdapter @Inject constructor() :
@@ -1,4 +1,4 @@
package eu.darken.cap.main.ui
package eu.darken.capod.main.ui
import android.os.Bundle
import android.view.View
@@ -6,14 +6,14 @@ import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import androidx.fragment.app.viewModels
import dagger.hilt.android.AndroidEntryPoint
import eu.darken.cap.R
import eu.darken.cap.common.BuildConfigWrap
import eu.darken.cap.common.debug.logging.log
import eu.darken.cap.common.lists.differ.update
import eu.darken.cap.common.lists.setupDefaults
import eu.darken.cap.common.smart.Smart2Fragment
import eu.darken.cap.common.viewbinding.viewBinding
import eu.darken.cap.databinding.MainFragmentBinding
import eu.darken.capod.R
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.viewbinding.viewBinding
import eu.darken.capod.databinding.MainFragmentBinding
import javax.inject.Inject
@AndroidEntryPoint
@@ -1,19 +1,19 @@
package eu.darken.cap.main.ui
package eu.darken.capod.main.ui
import android.content.Context
import androidx.lifecycle.LiveData
import androidx.lifecycle.SavedStateHandle
import dagger.hilt.android.lifecycle.HiltViewModel
import dagger.hilt.android.qualifiers.ApplicationContext
import eu.darken.cap.common.coroutine.DispatcherProvider
import eu.darken.cap.common.debug.recording.core.RecorderModule
import eu.darken.cap.common.hasApiLevel
import eu.darken.cap.common.livedata.SingleLiveEvent
import eu.darken.cap.common.permissions.Permission
import eu.darken.cap.common.permissions.isGranted
import eu.darken.cap.common.smart.Smart2VM
import eu.darken.cap.main.ui.cards.PermissionCardVH
import eu.darken.cap.main.ui.cards.ToggleCardVH
import eu.darken.capod.common.coroutine.DispatcherProvider
import eu.darken.capod.common.debug.recording.core.RecorderModule
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.main.ui.cards.PermissionCardVH
import eu.darken.capod.main.ui.cards.ToggleCardVH
import kotlinx.coroutines.flow.*
import java.util.*
import javax.inject.Inject
@@ -1,10 +1,10 @@
package eu.darken.cap.main.ui.cards
package eu.darken.capod.main.ui.cards
import android.view.ViewGroup
import eu.darken.cap.R
import eu.darken.cap.common.permissions.Permission
import eu.darken.cap.databinding.MainPermissionItemBinding
import eu.darken.cap.main.ui.MainAdapter
import eu.darken.capod.R
import eu.darken.capod.common.permissions.Permission
import eu.darken.capod.databinding.MainPermissionItemBinding
import eu.darken.capod.main.ui.MainAdapter
class PermissionCardVH(parent: ViewGroup) :
MainAdapter.BaseVH<PermissionCardVH.Item, MainPermissionItemBinding>(
@@ -1,9 +1,9 @@
package eu.darken.cap.main.ui.cards
package eu.darken.capod.main.ui.cards
import android.view.ViewGroup
import eu.darken.cap.R
import eu.darken.cap.databinding.MainToggleItemBinding
import eu.darken.cap.main.ui.MainAdapter
import eu.darken.capod.R
import eu.darken.capod.databinding.MainToggleItemBinding
import eu.darken.capod.main.ui.MainAdapter
class ToggleCardVH(parent: ViewGroup) :
MainAdapter.BaseVH<ToggleCardVH.Item, MainToggleItemBinding>(
@@ -1,4 +1,4 @@
package eu.darken.cap.monitor.core
package eu.darken.capod.monitor.core
import dagger.BindsInstance
import dagger.hilt.DefineComponent
@@ -1,4 +1,4 @@
package eu.darken.cap.monitor.core
package eu.darken.capod.monitor.core
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
@@ -1,4 +1,4 @@
package eu.darken.cap.monitor.core
package eu.darken.capod.monitor.core
import dagger.Binds
import dagger.Module
@@ -1,4 +1,4 @@
package eu.darken.cap.monitor.core
package eu.darken.capod.monitor.core
import javax.inject.Qualifier
@@ -1,9 +1,9 @@
package eu.darken.cap.monitor.core
package eu.darken.capod.monitor.core
import eu.darken.cap.common.bluetooth.BleScanner
import eu.darken.cap.common.debug.logging.logTag
import eu.darken.cap.pods.core.PodDevice
import eu.darken.cap.pods.core.PodFactory
import eu.darken.capod.common.bluetooth.BleScanner
import eu.darken.capod.common.debug.logging.logTag
import eu.darken.capod.pods.core.PodDevice
import eu.darken.capod.pods.core.PodFactory
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.onStart
@@ -1,4 +1,4 @@
package eu.darken.cap.monitor.core.receiver
package eu.darken.capod.monitor.core.receiver
import android.bluetooth.BluetoothA2dp
import android.bluetooth.BluetoothDevice
@@ -7,13 +7,13 @@ import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import dagger.hilt.android.AndroidEntryPoint
import eu.darken.cap.common.bluetooth.hasFeature
import eu.darken.cap.common.coroutine.AppScope
import eu.darken.cap.common.debug.logging.Logging.Priority.WARN
import eu.darken.cap.common.debug.logging.log
import eu.darken.cap.common.debug.logging.logTag
import eu.darken.cap.monitor.core.worker.MonitorControl
import eu.darken.cap.pods.core.airpods.ContinuityProtocol
import eu.darken.capod.common.bluetooth.hasFeature
import eu.darken.capod.common.coroutine.AppScope
import eu.darken.capod.common.debug.logging.Logging.Priority.WARN
import eu.darken.capod.common.debug.logging.log
import eu.darken.capod.common.debug.logging.logTag
import eu.darken.capod.monitor.core.worker.MonitorControl
import eu.darken.capod.pods.core.airpods.ContinuityProtocol
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
import javax.inject.Inject
@@ -1,15 +1,15 @@
package eu.darken.cap.monitor.core.worker
package eu.darken.capod.monitor.core.worker
import android.bluetooth.BluetoothDevice
import androidx.work.Data
import androidx.work.ExistingWorkPolicy
import androidx.work.OneTimeWorkRequestBuilder
import androidx.work.WorkManager
import eu.darken.cap.common.BuildConfigWrap
import eu.darken.cap.common.coroutine.DispatcherProvider
import eu.darken.cap.common.debug.logging.Logging.Priority.VERBOSE
import eu.darken.cap.common.debug.logging.log
import eu.darken.cap.common.debug.logging.logTag
import eu.darken.capod.common.BuildConfigWrap
import eu.darken.capod.common.coroutine.DispatcherProvider
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
import kotlinx.coroutines.withContext
import javax.inject.Inject
import javax.inject.Singleton
@@ -1,4 +1,4 @@
package eu.darken.cap.monitor.core.worker
package eu.darken.capod.monitor.core.worker
import android.app.NotificationManager
import android.content.Context
@@ -8,16 +8,16 @@ import androidx.work.WorkerParameters
import dagger.assisted.Assisted
import dagger.assisted.AssistedInject
import dagger.hilt.EntryPoints
import eu.darken.cap.common.debug.logging.Logging.Priority.ERROR
import eu.darken.cap.common.debug.logging.Logging.Priority.VERBOSE
import eu.darken.cap.common.debug.logging.asLog
import eu.darken.cap.common.debug.logging.log
import eu.darken.cap.common.debug.logging.logTag
import eu.darken.cap.common.flow.setupCommonEventHandlers
import eu.darken.cap.monitor.core.MonitorComponent
import eu.darken.cap.monitor.core.MonitorCoroutineScope
import eu.darken.cap.monitor.ui.MonitorNotifications
import eu.darken.cap.pods.core.airpods.ContinuityProtocol
import eu.darken.capod.common.debug.logging.Logging.Priority.ERROR
import eu.darken.capod.common.debug.logging.Logging.Priority.VERBOSE
import eu.darken.capod.common.debug.logging.asLog
import eu.darken.capod.common.debug.logging.log
import eu.darken.capod.common.debug.logging.logTag
import eu.darken.capod.common.flow.setupCommonEventHandlers
import eu.darken.capod.monitor.core.MonitorComponent
import eu.darken.capod.monitor.core.MonitorCoroutineScope
import eu.darken.capod.monitor.ui.MonitorNotifications
import eu.darken.capod.pods.core.airpods.ContinuityProtocol
import kotlinx.coroutines.cancel
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.*

Some files were not shown because too many files have changed in this diff Show More