chore: change applicationId/package to solutions.tretter.mindmachine

This commit is contained in:
Tretzi
2026-04-10 16:14:31 -05:00
parent b291c378f6
commit 931077c7aa
45 changed files with 122 additions and 122 deletions

View File

@@ -4,11 +4,11 @@ plugins {
} }
android { android {
namespace = "com.mindmachine.mvp" namespace = "solutions.tretter.mindmachine"
compileSdk = 35 compileSdk = 35
defaultConfig { defaultConfig {
applicationId = "com.mindmachine.mvp" applicationId = "solutions.tretter.mindmachine"
minSdk = 26 minSdk = 26
targetSdk = 35 targetSdk = 35
versionCode = 5 versionCode = 5

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp.session package solutions.tretter.mindmachine.session
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.mutableStateOf

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp package solutions.tretter.mindmachine
import android.app.Activity import android.app.Activity
import android.content.pm.ActivityInfo import android.content.pm.ActivityInfo
@@ -9,8 +9,8 @@ import androidx.activity.compose.BackHandler
import androidx.activity.compose.setContent import androidx.activity.compose.setContent
import androidx.activity.viewModels import androidx.activity.viewModels
import androidx.compose.foundation.background import androidx.compose.foundation.background
import com.mindmachine.mvp.session.DurationSliderCard import solutions.tretter.mindmachine.session.DurationSliderCard
import com.mindmachine.mvp.session.SetupTimelineEditor import solutions.tretter.mindmachine.session.SetupTimelineEditor
import androidx.compose.foundation.clickable import androidx.compose.foundation.clickable
import androidx.compose.foundation.gestures.detectTapGestures import androidx.compose.foundation.gestures.detectTapGestures
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
@@ -98,24 +98,24 @@ import androidx.navigation.compose.composable
import androidx.navigation.compose.rememberNavController import androidx.navigation.compose.rememberNavController
import androidx.navigation.navArgument import androidx.navigation.navArgument
import com.google.android.gms.ads.MobileAds import com.google.android.gms.ads.MobileAds
import com.mindmachine.mvp.audio.BinauralAudioEngine import solutions.tretter.mindmachine.audio.BinauralAudioEngine
import com.mindmachine.mvp.audio.HeadsetMonitor import solutions.tretter.mindmachine.audio.HeadsetMonitor
import com.mindmachine.mvp.ads.AdBanner import solutions.tretter.mindmachine.ads.AdBanner
import com.mindmachine.mvp.ads.rememberInterstitialController import solutions.tretter.mindmachine.ads.rememberInterstitialController
import com.mindmachine.mvp.data.SettingsRepository import solutions.tretter.mindmachine.data.SettingsRepository
import com.mindmachine.mvp.data.UserProgramRepository import solutions.tretter.mindmachine.data.UserProgramRepository
import com.mindmachine.mvp.domain.RuntimeState import solutions.tretter.mindmachine.domain.RuntimeState
import com.mindmachine.mvp.session.FlashColor import solutions.tretter.mindmachine.session.FlashColor
import com.mindmachine.mvp.session.MainViewModel import solutions.tretter.mindmachine.session.MainViewModel
import com.mindmachine.mvp.session.SplitFlashFrame import solutions.tretter.mindmachine.session.SplitFlashFrame
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import com.mindmachine.mvp.session.SplitFlashSequencer import solutions.tretter.mindmachine.session.SplitFlashSequencer
import com.mindmachine.mvp.session.flashIntervalMsToSeconds import solutions.tretter.mindmachine.session.flashIntervalMsToSeconds
import com.mindmachine.mvp.session.flashIntervalSecondsToMs import solutions.tretter.mindmachine.session.flashIntervalSecondsToMs
import com.mindmachine.mvp.session.formatDuration import solutions.tretter.mindmachine.session.formatDuration
import com.mindmachine.mvp.session.sessionProgressFraction import solutions.tretter.mindmachine.session.sessionProgressFraction
import com.mindmachine.mvp.session.shouldShowActiveControlsByDefault import solutions.tretter.mindmachine.session.shouldShowActiveControlsByDefault
import com.mindmachine.mvp.session.shouldUseImmersiveFullscreen import solutions.tretter.mindmachine.session.shouldUseImmersiveFullscreen
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import kotlin.math.roundToInt import kotlin.math.roundToInt
import java.util.Locale import java.util.Locale
@@ -142,7 +142,7 @@ private val MindMachineColors = darkColorScheme(
class MainActivity : ComponentActivity() { class MainActivity : ComponentActivity() {
private val settingsRepo by lazy { SettingsRepository(applicationContext) } private val settingsRepo by lazy { SettingsRepository(applicationContext) }
private val billingManager by lazy { private val billingManager by lazy {
com.mindmachine.mvp.billing.BillingManager( solutions.tretter.mindmachine.billing.BillingManager(
applicationContext, applicationContext,
onNoAdsEntitlementChanged = { hasNoAds -> onNoAdsEntitlementChanged = { hasNoAds ->
lifecycleScope.launch { settingsRepo.updateNoAds(hasNoAds) } lifecycleScope.launch { settingsRepo.updateNoAds(hasNoAds) }
@@ -173,7 +173,7 @@ class MainActivity : ComponentActivity() {
@OptIn(ExperimentalMaterial3Api::class) @OptIn(ExperimentalMaterial3Api::class)
@Composable @Composable
fun App(vm: MainViewModel = viewModel(), billingManager: com.mindmachine.mvp.billing.BillingManager) { fun App(vm: MainViewModel = viewModel(), billingManager: solutions.tretter.mindmachine.billing.BillingManager) {
val nav = rememberNavController() val nav = rememberNavController()
val ui by vm.ui.collectAsStateWithLifecycle() val ui by vm.ui.collectAsStateWithLifecycle()
val lifecycle = LocalLifecycleOwner.current.lifecycle val lifecycle = LocalLifecycleOwner.current.lifecycle
@@ -876,7 +876,7 @@ fun SettingsScreen(vm: MainViewModel, onRemoveAds: () -> Unit) {
} }
@Composable @Composable
fun RemoveAdsScreen(billingManager: com.mindmachine.mvp.billing.BillingManager, vm: MainViewModel) { fun RemoveAdsScreen(billingManager: solutions.tretter.mindmachine.billing.BillingManager, vm: MainViewModel) {
val ui by vm.ui.collectAsStateWithLifecycle() val ui by vm.ui.collectAsStateWithLifecycle()
val activity = LocalContext.current as? Activity val activity = LocalContext.current as? Activity
val details by billingManager.productDetails.collectAsStateWithLifecycle() val details by billingManager.productDetails.collectAsStateWithLifecycle()
@@ -898,19 +898,19 @@ fun RemoveAdsScreen(billingManager: com.mindmachine.mvp.billing.BillingManager,
Button( Button(
enabled = activity != null && !ui.settings.noAds, enabled = activity != null && !ui.settings.noAds,
onClick = { onClick = {
activity?.let { billingManager.launchPurchase(it, com.mindmachine.mvp.billing.BillingProducts.SUB_REMOVE_ADS_MONTHLY) } activity?.let { billingManager.launchPurchase(it, solutions.tretter.mindmachine.billing.BillingProducts.SUB_REMOVE_ADS_MONTHLY) }
} }
) { ) {
Text(details[com.mindmachine.mvp.billing.BillingProducts.SUB_REMOVE_ADS_MONTHLY]?.name ?: "Subscribe: $1/month") Text(details[solutions.tretter.mindmachine.billing.BillingProducts.SUB_REMOVE_ADS_MONTHLY]?.name ?: "Subscribe: $1/month")
} }
Button( Button(
enabled = activity != null && !ui.settings.noAds, enabled = activity != null && !ui.settings.noAds,
onClick = { onClick = {
activity?.let { billingManager.launchPurchase(it, com.mindmachine.mvp.billing.BillingProducts.INAPP_REMOVE_ADS_FOREVER) } activity?.let { billingManager.launchPurchase(it, solutions.tretter.mindmachine.billing.BillingProducts.INAPP_REMOVE_ADS_FOREVER) }
} }
) { ) {
Text(details[com.mindmachine.mvp.billing.BillingProducts.INAPP_REMOVE_ADS_FOREVER]?.name ?: "Buy: $20 one-time") Text(details[solutions.tretter.mindmachine.billing.BillingProducts.INAPP_REMOVE_ADS_FOREVER]?.name ?: "Buy: $20 one-time")
} }
TextButton(onClick = { billingManager.refresh() }) { Text("Restore / Refresh purchases") } TextButton(onClick = { billingManager.refresh() }) { Text("Restore / Refresh purchases") }

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp.ads package solutions.tretter.mindmachine.ads
object AdUnits { object AdUnits {
// Google test ad unit ids. Replace with your real unit ids before release. // Google test ad unit ids. Replace with your real unit ids before release.

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp.ads package solutions.tretter.mindmachine.ads
import android.app.Activity import android.app.Activity
import android.view.ViewGroup import android.view.ViewGroup

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp.audio package solutions.tretter.mindmachine.audio
import android.media.AudioAttributes import android.media.AudioAttributes
import android.media.AudioFormat import android.media.AudioFormat

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp.audio package solutions.tretter.mindmachine.audio
import android.content.Context import android.content.Context
import android.media.AudioDeviceInfo import android.media.AudioDeviceInfo

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp.billing package solutions.tretter.mindmachine.billing
import android.app.Activity import android.app.Activity
import android.content.Context import android.content.Context

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp.billing package solutions.tretter.mindmachine.billing
object BillingProducts { object BillingProducts {
// Configure these in Google Play Console // Configure these in Google Play Console

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp.data package solutions.tretter.mindmachine.data
import android.content.Context import android.content.Context
import androidx.datastore.preferences.core.booleanPreferencesKey import androidx.datastore.preferences.core.booleanPreferencesKey
@@ -6,7 +6,7 @@ import androidx.datastore.preferences.core.edit
import androidx.datastore.preferences.core.intPreferencesKey import androidx.datastore.preferences.core.intPreferencesKey
import androidx.datastore.preferences.core.stringPreferencesKey import androidx.datastore.preferences.core.stringPreferencesKey
import androidx.datastore.preferences.preferencesDataStore import androidx.datastore.preferences.preferencesDataStore
import com.mindmachine.mvp.domain.AppSettings import solutions.tretter.mindmachine.domain.AppSettings
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.map

View File

@@ -1,15 +1,15 @@
package com.mindmachine.mvp.data package solutions.tretter.mindmachine.data
import android.content.Context import android.content.Context
import androidx.datastore.preferences.core.edit import androidx.datastore.preferences.core.edit
import androidx.datastore.preferences.core.stringPreferencesKey import androidx.datastore.preferences.core.stringPreferencesKey
import androidx.datastore.preferences.preferencesDataStore import androidx.datastore.preferences.preferencesDataStore
import com.mindmachine.mvp.session.TimelineCurve import solutions.tretter.mindmachine.session.TimelineCurve
import com.mindmachine.mvp.session.TimelineEditorState import solutions.tretter.mindmachine.session.TimelineEditorState
import com.mindmachine.mvp.session.TimelinePoint import solutions.tretter.mindmachine.session.TimelinePoint
import com.mindmachine.mvp.session.TIMELINE_DEFAULT_GRANULARITY_SEC import solutions.tretter.mindmachine.session.TIMELINE_DEFAULT_GRANULARITY_SEC
import com.mindmachine.mvp.session.TimelineSelection import solutions.tretter.mindmachine.session.TimelineSelection
import com.mindmachine.mvp.session.TimelineViewport import solutions.tretter.mindmachine.session.TimelineViewport
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.map
import org.json.JSONArray import org.json.JSONArray

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp.domain package solutions.tretter.mindmachine.domain
enum class VisualPattern { FLASH, PULSE } enum class VisualPattern { FLASH, PULSE }
enum class SessionMode { AUDIO_VISUAL, AUDIO_ONLY, VISUAL_ONLY } enum class SessionMode { AUDIO_VISUAL, AUDIO_ONLY, VISUAL_ONLY }

View File

@@ -1,6 +1,6 @@
package com.mindmachine.mvp.session package solutions.tretter.mindmachine.session
import com.mindmachine.mvp.domain.RuntimeState import solutions.tretter.mindmachine.domain.RuntimeState
fun shouldShowActiveControlsByDefault(runtimeState: RuntimeState): Boolean { fun shouldShowActiveControlsByDefault(runtimeState: RuntimeState): Boolean {
return runtimeState != RuntimeState.RUNNING && runtimeState != RuntimeState.COUNTDOWN return runtimeState != RuntimeState.RUNNING && runtimeState != RuntimeState.COUNTDOWN

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp.session package solutions.tretter.mindmachine.session
import java.util.Locale import java.util.Locale

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp.session package solutions.tretter.mindmachine.session
import androidx.compose.foundation.background import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp.session package solutions.tretter.mindmachine.session
import kotlin.math.roundToInt import kotlin.math.roundToInt

View File

@@ -1,6 +1,6 @@
package com.mindmachine.mvp.session package solutions.tretter.mindmachine.session
import com.mindmachine.mvp.domain.RuntimeState import solutions.tretter.mindmachine.domain.RuntimeState
fun shouldUseImmersiveFullscreen(isVisualMode: Boolean, runtimeState: RuntimeState): Boolean { fun shouldUseImmersiveFullscreen(isVisualMode: Boolean, runtimeState: RuntimeState): Boolean {
return isVisualMode && (runtimeState == RuntimeState.COUNTDOWN || runtimeState == RuntimeState.RUNNING) return isVisualMode && (runtimeState == RuntimeState.COUNTDOWN || runtimeState == RuntimeState.RUNNING)

View File

@@ -1,20 +1,20 @@
package com.mindmachine.mvp.session package solutions.tretter.mindmachine.session
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import com.mindmachine.mvp.audio.BinauralAudioEngine import solutions.tretter.mindmachine.audio.BinauralAudioEngine
import com.mindmachine.mvp.audio.HeadsetMonitor import solutions.tretter.mindmachine.audio.HeadsetMonitor
import com.mindmachine.mvp.data.SettingsRepository import solutions.tretter.mindmachine.data.SettingsRepository
import com.mindmachine.mvp.data.UserProgramEntity import solutions.tretter.mindmachine.data.UserProgramEntity
import com.mindmachine.mvp.data.UserProgramRepository import solutions.tretter.mindmachine.data.UserProgramRepository
import com.mindmachine.mvp.domain.AppSettings import solutions.tretter.mindmachine.domain.AppSettings
import com.mindmachine.mvp.domain.Presets import solutions.tretter.mindmachine.domain.Presets
import com.mindmachine.mvp.domain.RuntimeState import solutions.tretter.mindmachine.domain.RuntimeState
import com.mindmachine.mvp.domain.SessionConfig import solutions.tretter.mindmachine.domain.SessionConfig
import com.mindmachine.mvp.domain.SessionMode import solutions.tretter.mindmachine.domain.SessionMode
import com.mindmachine.mvp.domain.SessionPreset import solutions.tretter.mindmachine.domain.SessionPreset
import com.mindmachine.mvp.domain.toConfig import solutions.tretter.mindmachine.domain.toConfig
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.MutableStateFlow
@@ -80,7 +80,7 @@ class MainViewModel(
private val userProgramRepository: UserProgramRepository, private val userProgramRepository: UserProgramRepository,
private val headsetMonitor: HeadsetMonitor, private val headsetMonitor: HeadsetMonitor,
private val audioEngine: BinauralAudioEngine, private val audioEngine: BinauralAudioEngine,
private val billingManager: com.mindmachine.mvp.billing.BillingManager, private val billingManager: solutions.tretter.mindmachine.billing.BillingManager,
) : ViewModel() { ) : ViewModel() {
private val _ui = MutableStateFlow(UiState()) private val _ui = MutableStateFlow(UiState())
val ui: StateFlow<UiState> = _ui.asStateFlow() val ui: StateFlow<UiState> = _ui.asStateFlow()
@@ -488,7 +488,7 @@ class MainViewModel(
private val userProgramRepository: UserProgramRepository, private val userProgramRepository: UserProgramRepository,
private val headsetMonitor: HeadsetMonitor, private val headsetMonitor: HeadsetMonitor,
private val audioEngine: BinauralAudioEngine, private val audioEngine: BinauralAudioEngine,
private val billingManager: com.mindmachine.mvp.billing.BillingManager, private val billingManager: solutions.tretter.mindmachine.billing.BillingManager,
) : ViewModelProvider.Factory { ) : ViewModelProvider.Factory {
override fun <T : ViewModel> create(modelClass: Class<T>): T = override fun <T : ViewModel> create(modelClass: Class<T>): T =
MainViewModel(settingsRepository, userProgramRepository, headsetMonitor, audioEngine, billingManager) as T MainViewModel(settingsRepository, userProgramRepository, headsetMonitor, audioEngine, billingManager) as T

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp.session package solutions.tretter.mindmachine.session
import kotlin.math.ln import kotlin.math.ln
import kotlin.math.pow import kotlin.math.pow

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp.session package solutions.tretter.mindmachine.session
object ParameterRanges { object ParameterRanges {
const val FLASH_INTERVAL_MS_MIN = 50f const val FLASH_INTERVAL_MS_MIN = 50f

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp.session package solutions.tretter.mindmachine.session
/** /**
* Concrete runtime parameters evaluated from the timeline curves at a specific time. * Concrete runtime parameters evaluated from the timeline curves at a specific time.

View File

@@ -1,6 +1,6 @@
package com.mindmachine.mvp.session package solutions.tretter.mindmachine.session
import com.mindmachine.mvp.domain.SessionConfig import solutions.tretter.mindmachine.domain.SessionConfig
object SessionValidator { object SessionValidator {
fun validate(config: SessionConfig): String? { fun validate(config: SessionConfig): String? {
if (config.durationSec !in 60..(8 * 60 * 60)) return "Duration must be 1 minute to 8 hours." if (config.durationSec !in 60..(8 * 60 * 60)) return "Duration must be 1 minute to 8 hours."

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp.session package solutions.tretter.mindmachine.session
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp.session package solutions.tretter.mindmachine.session
import android.view.HapticFeedbackConstants import android.view.HapticFeedbackConstants
import androidx.activity.compose.BackHandler import androidx.activity.compose.BackHandler
@@ -45,7 +45,7 @@ import androidx.compose.ui.unit.dp
import androidx.core.view.WindowCompat import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsCompat
import androidx.core.view.WindowInsetsControllerCompat import androidx.core.view.WindowInsetsControllerCompat
import com.mindmachine.mvp.session.TimelineEditorState.ActiveCurve import solutions.tretter.mindmachine.session.TimelineEditorState.ActiveCurve
import kotlin.math.abs import kotlin.math.abs
import kotlin.math.max import kotlin.math.max
import kotlin.math.min import kotlin.math.min

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp.session package solutions.tretter.mindmachine.session
import kotlin.math.max import kotlin.math.max
import kotlin.math.min import kotlin.math.min

View File

@@ -1,8 +1,8 @@
package com.mindmachine.mvp.session package solutions.tretter.mindmachine.session
import com.mindmachine.mvp.domain.SessionConfig import solutions.tretter.mindmachine.domain.SessionConfig
import com.mindmachine.mvp.domain.SessionMode import solutions.tretter.mindmachine.domain.SessionMode
import com.mindmachine.mvp.domain.SessionPreset import solutions.tretter.mindmachine.domain.SessionPreset
import kotlin.math.roundToInt import kotlin.math.roundToInt
/** /**

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp.session package solutions.tretter.mindmachine.session
import androidx.compose.foundation.layout.* import androidx.compose.foundation.layout.*
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp.session package solutions.tretter.mindmachine.session
import kotlin.math.ln import kotlin.math.ln
import kotlin.math.pow import kotlin.math.pow

View File

@@ -1,7 +1,7 @@
package com.mindmachine.mvp.session package solutions.tretter.mindmachine.session
import com.mindmachine.mvp.domain.SessionPreset import solutions.tretter.mindmachine.domain.SessionPreset
import com.mindmachine.mvp.domain.VisualPattern import solutions.tretter.mindmachine.domain.VisualPattern
object TimelineProgramFactory { object TimelineProgramFactory {
fun fromPreset(preset: SessionPreset): TimelineEditorState { fun fromPreset(preset: SessionPreset): TimelineEditorState {

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp.session package solutions.tretter.mindmachine.session
object TimelineRuntimeEvaluator { object TimelineRuntimeEvaluator {
fun evaluate(state: TimelineEditorState, tSec: Float): RuntimeParams { fun evaluate(state: TimelineEditorState, tSec: Float): RuntimeParams {

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp.session package solutions.tretter.mindmachine.session
enum class FlashColor { enum class FlashColor {
RED, RED,

View File

@@ -1,10 +1,10 @@
package com.mindmachine.mvp package solutions.tretter.mindmachine
import com.mindmachine.mvp.domain.RuntimeState import solutions.tretter.mindmachine.domain.RuntimeState
import com.mindmachine.mvp.session.sessionProgressFraction import solutions.tretter.mindmachine.session.sessionProgressFraction
import com.mindmachine.mvp.session.shouldRevealSystemBarsOnTap import solutions.tretter.mindmachine.session.shouldRevealSystemBarsOnTap
import com.mindmachine.mvp.session.shouldShowActiveControlsByDefault import solutions.tretter.mindmachine.session.shouldShowActiveControlsByDefault
import com.mindmachine.mvp.session.shouldUseImmersiveFullscreen import solutions.tretter.mindmachine.session.shouldUseImmersiveFullscreen
import org.junit.Assert.assertFalse import org.junit.Assert.assertFalse
import org.junit.Assert.assertTrue import org.junit.Assert.assertTrue
import org.junit.Test import org.junit.Test

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp.session package solutions.tretter.mindmachine.session
import androidx.compose.ui.geometry.Offset import androidx.compose.ui.geometry.Offset
import org.junit.Assert.* import org.junit.Assert.*

View File

@@ -1,6 +1,6 @@
package com.mindmachine.mvp package solutions.tretter.mindmachine
import com.mindmachine.mvp.session.TimelineEditorState import solutions.tretter.mindmachine.session.TimelineEditorState
import org.junit.Assert.assertEquals import org.junit.Assert.assertEquals
import org.junit.Test import org.junit.Test

View File

@@ -1,7 +1,7 @@
package com.mindmachine.mvp package solutions.tretter.mindmachine
import com.mindmachine.mvp.session.flashIntervalMsToSeconds import solutions.tretter.mindmachine.session.flashIntervalMsToSeconds
import com.mindmachine.mvp.session.flashIntervalSecondsToMs import solutions.tretter.mindmachine.session.flashIntervalSecondsToMs
import org.junit.Assert.assertEquals import org.junit.Assert.assertEquals
import org.junit.Test import org.junit.Test

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp.session package solutions.tretter.mindmachine.session
import org.junit.Assert.* import org.junit.Assert.*
import org.junit.Test import org.junit.Test

View File

@@ -1,7 +1,7 @@
package com.mindmachine.mvp package solutions.tretter.mindmachine
import com.mindmachine.mvp.domain.Presets import solutions.tretter.mindmachine.domain.Presets
import com.mindmachine.mvp.domain.VisualPattern import solutions.tretter.mindmachine.domain.VisualPattern
import org.junit.Assert.assertEquals import org.junit.Assert.assertEquals
import org.junit.Test import org.junit.Test

View File

@@ -1,9 +1,9 @@
package com.mindmachine.mvp package solutions.tretter.mindmachine
import com.mindmachine.mvp.domain.SessionConfig import solutions.tretter.mindmachine.domain.SessionConfig
import com.mindmachine.mvp.domain.SessionMode import solutions.tretter.mindmachine.domain.SessionMode
import com.mindmachine.mvp.domain.VisualPattern import solutions.tretter.mindmachine.domain.VisualPattern
import com.mindmachine.mvp.session.SessionValidator import solutions.tretter.mindmachine.session.SessionValidator
import org.junit.Assert.assertEquals import org.junit.Assert.assertEquals
import org.junit.Assert.assertNull import org.junit.Assert.assertNull
import org.junit.Test import org.junit.Test

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp package solutions.tretter.mindmachine
import org.junit.Assert.assertEquals import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse import org.junit.Assert.assertFalse

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp.session package solutions.tretter.mindmachine.session
import androidx.compose.ui.geometry.Offset import androidx.compose.ui.geometry.Offset
import org.junit.Assert.* import org.junit.Assert.*

View File

@@ -1,7 +1,7 @@
package com.mindmachine.mvp package solutions.tretter.mindmachine
import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.graphics.toArgb
import com.mindmachine.mvp.session.TimelineCurveColors import solutions.tretter.mindmachine.session.TimelineCurveColors
import org.junit.Assert.assertEquals import org.junit.Assert.assertEquals
import org.junit.Test import org.junit.Test

View File

@@ -1,7 +1,7 @@
package com.mindmachine.mvp package solutions.tretter.mindmachine
import com.mindmachine.mvp.session.TimelineEditorState import solutions.tretter.mindmachine.session.TimelineEditorState
import com.mindmachine.mvp.session.TimelineParameters import solutions.tretter.mindmachine.session.TimelineParameters
import org.junit.Assert.assertEquals import org.junit.Assert.assertEquals
import org.junit.Assert.assertTrue import org.junit.Assert.assertTrue
import org.junit.Test import org.junit.Test

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp.session package solutions.tretter.mindmachine.session
import org.junit.Assert.assertEquals import org.junit.Assert.assertEquals
import org.junit.Assert.assertTrue import org.junit.Assert.assertTrue

View File

@@ -1,8 +1,8 @@
package com.mindmachine.mvp package solutions.tretter.mindmachine
import com.mindmachine.mvp.session.FlashColor import solutions.tretter.mindmachine.session.FlashColor
import com.mindmachine.mvp.session.SplitFlashSequencer import solutions.tretter.mindmachine.session.SplitFlashSequencer
import com.mindmachine.mvp.session.computeSplitFlashFrame import solutions.tretter.mindmachine.session.computeSplitFlashFrame
import org.junit.Assert.assertEquals import org.junit.Assert.assertEquals
import org.junit.Test import org.junit.Test

View File

@@ -1,4 +1,4 @@
package com.mindmachine.mvp.session package solutions.tretter.mindmachine.session
import org.junit.Assert.assertEquals import org.junit.Assert.assertEquals
import org.junit.Test import org.junit.Test