diff --git a/app-common/build.gradle.kts b/app-common/build.gradle.kts index 76932531..81a32cd5 100644 --- a/app-common/build.gradle.kts +++ b/app-common/build.gradle.kts @@ -93,5 +93,8 @@ dependencies { addBaseWorkManager() addNavigation() + addTesting() + implementation("com.bugsnag:bugsnag-android:5.9.2") + } \ No newline at end of file diff --git a/app-common/src/androidTest/java/eu/darken/capod/ExampleInstrumentedTest.kt b/app-common/src/androidTest/java/eu/darken/capod/ExampleInstrumentedTest.kt deleted file mode 100644 index 076bf6df..00000000 --- a/app-common/src/androidTest/java/eu/darken/capod/ExampleInstrumentedTest.kt +++ /dev/null @@ -1,22 +0,0 @@ -package eu.darken.capod - -import androidx.test.ext.junit.runners.AndroidJUnit4 -import androidx.test.platform.app.InstrumentationRegistry -import org.junit.Assert.* -import org.junit.Test -import org.junit.runner.RunWith - -/** - * Instrumented test, which will execute on an Android device. - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -@RunWith(AndroidJUnit4::class) -class ExampleInstrumentedTest { - @Test - fun useAppContext() { - // Context of the app under test. - val appContext = InstrumentationRegistry.getInstrumentation().targetContext - assertEquals("eu.darken.capod.test", appContext.packageName) - } -} \ No newline at end of file diff --git a/app/src/main/java/eu/darken/capod/common/collections/MapExtensions.kt b/app-common/src/main/java/eu/darken/capod/common/collections/MapExtensions.kt similarity index 100% rename from app/src/main/java/eu/darken/capod/common/collections/MapExtensions.kt rename to app-common/src/main/java/eu/darken/capod/common/collections/MapExtensions.kt diff --git a/app/src/main/res/drawable/ic_baseline_settings_24.xml b/app-common/src/main/res/drawable/ic_baseline_settings_24.xml similarity index 100% rename from app/src/main/res/drawable/ic_baseline_settings_24.xml rename to app-common/src/main/res/drawable/ic_baseline_settings_24.xml diff --git a/app-common/src/test/java/eu/darken/capod/ExampleUnitTest.kt b/app-common/src/test/java/eu/darken/capod/ExampleUnitTest.kt deleted file mode 100644 index a05083ee..00000000 --- a/app-common/src/test/java/eu/darken/capod/ExampleUnitTest.kt +++ /dev/null @@ -1,16 +0,0 @@ -package eu.darken.capod - -import org.junit.Assert.assertEquals -import org.junit.Test - -/** - * Example local unit test, which will execute on the development machine (host). - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -class ExampleUnitTest { - @Test - fun addition_isCorrect() { - assertEquals(4, 2 + 2) - } -} \ No newline at end of file diff --git a/app/src/test/java/eu/darken/capod/common/flow/DynamicStateFlowTest.kt b/app-common/src/test/java/eu/darken/capod/common/flow/DynamicStateFlowTest.kt similarity index 90% rename from app/src/test/java/eu/darken/capod/common/flow/DynamicStateFlowTest.kt rename to app-common/src/test/java/eu/darken/capod/common/flow/DynamicStateFlowTest.kt index 2106c74e..6878b974 100644 --- a/app/src/test/java/eu/darken/capod/common/flow/DynamicStateFlowTest.kt +++ b/app-common/src/test/java/eu/darken/capod/common/flow/DynamicStateFlowTest.kt @@ -13,9 +13,9 @@ import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.firstOrNull import kotlinx.coroutines.test.* import org.junit.jupiter.api.Test -import testhelper.BaseTest -import testhelper.coroutine.runTest2 -import testhelper.flow.test +import testhelpers.BaseTest +import testhelpers.coroutine.runTest2 +import testhelpers.flow.test import java.io.IOException import java.lang.Thread.sleep import kotlin.concurrent.thread @@ -28,7 +28,7 @@ class DynamicStateFlowTest : BaseTest() { fun `exceptions on initialization are rethrown`() { val testScope = createTestCoroutineScope(TestCoroutineDispatcher() + TestCoroutineExceptionHandler() + EmptyCoroutineContext) - val hotData = DynamicStateFlow( + val hotData = eu.darken.capod.common.flow.DynamicStateFlow( loggingTag = "tag", parentScope = testScope, coroutineContext = Dispatchers.Unconfined, @@ -53,7 +53,7 @@ class DynamicStateFlowTest : BaseTest() { val valueProvider = mockk String>() coEvery { valueProvider.invoke(any()) } returns "Test" - val hotData = DynamicStateFlow( + val hotData = eu.darken.capod.common.flow.DynamicStateFlow( loggingTag = "tag", parentScope = testScope, coroutineContext = Dispatchers.Unconfined, @@ -76,7 +76,7 @@ class DynamicStateFlowTest : BaseTest() { val valueProvider = mockk Long>() coEvery { valueProvider.invoke(any()) } returns 1 - val hotData = DynamicStateFlow( + val hotData = eu.darken.capod.common.flow.DynamicStateFlow( loggingTag = "tag", parentScope = testScope, startValueProvider = valueProvider, @@ -113,10 +113,11 @@ class DynamicStateFlowTest : BaseTest() { fun `check multi threading value updates with more complex data`() { val testScope = createTestCoroutineScope(TestCoroutineDispatcher() + TestCoroutineExceptionHandler() + EmptyCoroutineContext) - val valueProvider = mockk Map>() - coEvery { valueProvider.invoke(any()) } returns mapOf("data" to TestData()) + val valueProvider = + mockk Map>() + coEvery { valueProvider.invoke(any()) } returns mapOf("data" to eu.darken.capod.common.flow.DynamicStateFlowTest.TestData()) - val hotData = DynamicStateFlow( + val hotData = eu.darken.capod.common.flow.DynamicStateFlow( loggingTag = "tag", parentScope = testScope, startValueProvider = valueProvider, @@ -152,7 +153,7 @@ class DynamicStateFlowTest : BaseTest() { val testScope = createTestCoroutineScope(TestCoroutineDispatcher() + TestCoroutineExceptionHandler() + EmptyCoroutineContext) - val hotData = DynamicStateFlow( + val hotData = eu.darken.capod.common.flow.DynamicStateFlow( loggingTag = "tag", parentScope = testScope, startValueProvider = { "1" }, @@ -177,7 +178,7 @@ class DynamicStateFlowTest : BaseTest() { val valueProvider = mockk String>() coEvery { valueProvider.invoke(any()) } returns "Test" - val hotData = DynamicStateFlow( + val hotData = eu.darken.capod.common.flow.DynamicStateFlow( loggingTag = "tag", parentScope = this, startValueProvider = valueProvider, @@ -209,7 +210,7 @@ class DynamicStateFlowTest : BaseTest() { val valueProvider = mockk Long>() coEvery { valueProvider.invoke(any()) } returns 1 - val hotData = DynamicStateFlow( + val hotData = eu.darken.capod.common.flow.DynamicStateFlow( loggingTag = "tag", parentScope = this, coroutineContext = this.coroutineContext, @@ -248,7 +249,7 @@ class DynamicStateFlowTest : BaseTest() { fun `blocking update is actually blocking`() = runBlocking { val testScope = createTestCoroutineScope(TestCoroutineDispatcher() + TestCoroutineExceptionHandler() + EmptyCoroutineContext) - val hotData = DynamicStateFlow( + val hotData = eu.darken.capod.common.flow.DynamicStateFlow( loggingTag = "tag", parentScope = testScope, coroutineContext = testScope.coroutineContext, @@ -279,7 +280,7 @@ class DynamicStateFlowTest : BaseTest() { fun `blocking update rethrows error`() = runBlocking { val testScope = createTestCoroutineScope(TestCoroutineDispatcher() + TestCoroutineExceptionHandler() + EmptyCoroutineContext) - val hotData = DynamicStateFlow( + val hotData = eu.darken.capod.common.flow.DynamicStateFlow( loggingTag = "tag", parentScope = testScope, coroutineContext = testScope.coroutineContext, @@ -308,7 +309,7 @@ class DynamicStateFlowTest : BaseTest() { @Test fun `async updates error handler`() = runTest2(expectedError = IOException::class) { - val hotData = DynamicStateFlow( + val hotData = eu.darken.capod.common.flow.DynamicStateFlow( loggingTag = "tag", parentScope = this, startValueProvider = { 1 }, @@ -327,7 +328,7 @@ class DynamicStateFlowTest : BaseTest() { val testScope = createTestCoroutineScope(TestCoroutineDispatcher() + TestCoroutineExceptionHandler() + EmptyCoroutineContext) - val hotData = DynamicStateFlow( + val hotData = eu.darken.capod.common.flow.DynamicStateFlow( loggingTag = "tag", parentScope = testScope, startValueProvider = { 1 }, @@ -357,7 +358,7 @@ class DynamicStateFlowTest : BaseTest() { var onReleaseValue: String? = null - val hotData = DynamicStateFlow( + val hotData = eu.darken.capod.common.flow.DynamicStateFlow( loggingTag = "tag", parentScope = testScope, coroutineContext = Dispatchers.Unconfined, diff --git a/app/src/test/java/eu/darken/capod/common/preferences/FlowPreferenceMoshiTest.kt b/app-common/src/test/java/eu/darken/capod/common/preferences/FlowPreferenceMoshiTest.kt similarity index 98% rename from app/src/test/java/eu/darken/capod/common/preferences/FlowPreferenceMoshiTest.kt rename to app-common/src/test/java/eu/darken/capod/common/preferences/FlowPreferenceMoshiTest.kt index a38f0469..6b5d21c9 100644 --- a/app/src/test/java/eu/darken/capod/common/preferences/FlowPreferenceMoshiTest.kt +++ b/app-common/src/test/java/eu/darken/capod/common/preferences/FlowPreferenceMoshiTest.kt @@ -7,8 +7,8 @@ import io.kotest.matchers.shouldBe import kotlinx.coroutines.flow.first import kotlinx.coroutines.test.runBlockingTest import org.junit.jupiter.api.Test -import testhelper.BaseTest -import testhelper.json.toComparableJson +import testhelpers.BaseTest +import testhelpers.json.toComparableJson import testhelpers.preferences.MockSharedPreferences class FlowPreferenceMoshiTest : BaseTest() { diff --git a/app/src/test/java/eu/darken/capod/common/preferences/FlowPreferenceTest.kt b/app-common/src/test/java/eu/darken/capod/common/preferences/FlowPreferenceTest.kt similarity index 99% rename from app/src/test/java/eu/darken/capod/common/preferences/FlowPreferenceTest.kt rename to app-common/src/test/java/eu/darken/capod/common/preferences/FlowPreferenceTest.kt index 1944804f..5d4a0308 100644 --- a/app/src/test/java/eu/darken/capod/common/preferences/FlowPreferenceTest.kt +++ b/app-common/src/test/java/eu/darken/capod/common/preferences/FlowPreferenceTest.kt @@ -4,7 +4,7 @@ import io.kotest.matchers.shouldBe import kotlinx.coroutines.flow.first import kotlinx.coroutines.test.runBlockingTest import org.junit.jupiter.api.Test -import testhelper.BaseTest +import testhelpers.BaseTest import testhelpers.preferences.MockSharedPreferences class FlowPreferenceTest : BaseTest() { diff --git a/app/src/test/java/eu/darken/capod/pods/core/apple/AirPodsFactoryTest.kt b/app-common/src/test/java/eu/darken/capod/pods/core/apple/AirPodsFactoryTest.kt similarity index 100% rename from app/src/test/java/eu/darken/capod/pods/core/apple/AirPodsFactoryTest.kt rename to app-common/src/test/java/eu/darken/capod/pods/core/apple/AirPodsFactoryTest.kt diff --git a/app/src/test/java/eu/darken/capod/pods/core/apple/BaseAirPodsTest.kt b/app-common/src/test/java/eu/darken/capod/pods/core/apple/BaseAirPodsTest.kt similarity index 98% rename from app/src/test/java/eu/darken/capod/pods/core/apple/BaseAirPodsTest.kt rename to app-common/src/test/java/eu/darken/capod/pods/core/apple/BaseAirPodsTest.kt index 4461486a..0a2045a7 100644 --- a/app/src/test/java/eu/darken/capod/pods/core/apple/BaseAirPodsTest.kt +++ b/app-common/src/test/java/eu/darken/capod/pods/core/apple/BaseAirPodsTest.kt @@ -9,7 +9,7 @@ import io.mockk.MockKAnnotations import io.mockk.every import io.mockk.mockkObject import org.junit.jupiter.api.BeforeEach -import testhelper.BaseTest +import testhelpers.BaseTest import javax.inject.Singleton abstract class BaseAirPodsTest : BaseTest() { diff --git a/app/src/test/java/eu/darken/capod/pods/core/apple/BasicSingleApplePodsTest.kt b/app-common/src/test/java/eu/darken/capod/pods/core/apple/BasicSingleApplePodsTest.kt similarity index 100% rename from app/src/test/java/eu/darken/capod/pods/core/apple/BasicSingleApplePodsTest.kt rename to app-common/src/test/java/eu/darken/capod/pods/core/apple/BasicSingleApplePodsTest.kt diff --git a/app/src/test/java/eu/darken/capod/pods/core/apple/DualApplePodsTest.kt b/app-common/src/test/java/eu/darken/capod/pods/core/apple/DualApplePodsTest.kt similarity index 100% rename from app/src/test/java/eu/darken/capod/pods/core/apple/DualApplePodsTest.kt rename to app-common/src/test/java/eu/darken/capod/pods/core/apple/DualApplePodsTest.kt diff --git a/app/src/test/java/eu/darken/capod/pods/core/apple/SingleApplePodsTest.kt b/app-common/src/test/java/eu/darken/capod/pods/core/apple/SingleApplePodsTest.kt similarity index 100% rename from app/src/test/java/eu/darken/capod/pods/core/apple/SingleApplePodsTest.kt rename to app-common/src/test/java/eu/darken/capod/pods/core/apple/SingleApplePodsTest.kt diff --git a/app/src/test/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen1Test.kt b/app-common/src/test/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen1Test.kt similarity index 100% rename from app/src/test/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen1Test.kt rename to app-common/src/test/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen1Test.kt diff --git a/app/src/test/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen2Test.kt b/app-common/src/test/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen2Test.kt similarity index 100% rename from app/src/test/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen2Test.kt rename to app-common/src/test/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen2Test.kt diff --git a/app/src/test/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen3Test.kt b/app-common/src/test/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen3Test.kt similarity index 100% rename from app/src/test/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen3Test.kt rename to app-common/src/test/java/eu/darken/capod/pods/core/apple/airpods/AirPodsGen3Test.kt diff --git a/app/src/test/java/eu/darken/capod/pods/core/apple/airpods/AirPodsMaxTest.kt b/app-common/src/test/java/eu/darken/capod/pods/core/apple/airpods/AirPodsMaxTest.kt similarity index 100% rename from app/src/test/java/eu/darken/capod/pods/core/apple/airpods/AirPodsMaxTest.kt rename to app-common/src/test/java/eu/darken/capod/pods/core/apple/airpods/AirPodsMaxTest.kt diff --git a/app/src/test/java/eu/darken/capod/pods/core/apple/airpods/AirPodsProTest.kt b/app-common/src/test/java/eu/darken/capod/pods/core/apple/airpods/AirPodsProTest.kt similarity index 100% rename from app/src/test/java/eu/darken/capod/pods/core/apple/airpods/AirPodsProTest.kt rename to app-common/src/test/java/eu/darken/capod/pods/core/apple/airpods/AirPodsProTest.kt diff --git a/app/src/test/java/eu/darken/capod/pods/core/apple/beats/BeatsFlexText.kt b/app-common/src/test/java/eu/darken/capod/pods/core/apple/beats/BeatsFlexText.kt similarity index 100% rename from app/src/test/java/eu/darken/capod/pods/core/apple/beats/BeatsFlexText.kt rename to app-common/src/test/java/eu/darken/capod/pods/core/apple/beats/BeatsFlexText.kt diff --git a/app/src/test/java/eu/darken/capod/pods/core/apple/beats/BeatsSolo3Test.kt b/app-common/src/test/java/eu/darken/capod/pods/core/apple/beats/BeatsSolo3Test.kt similarity index 100% rename from app/src/test/java/eu/darken/capod/pods/core/apple/beats/BeatsSolo3Test.kt rename to app-common/src/test/java/eu/darken/capod/pods/core/apple/beats/BeatsSolo3Test.kt diff --git a/app/src/test/java/eu/darken/capod/pods/core/apple/beats/BeatsStudio3Test.kt b/app-common/src/test/java/eu/darken/capod/pods/core/apple/beats/BeatsStudio3Test.kt similarity index 100% rename from app/src/test/java/eu/darken/capod/pods/core/apple/beats/BeatsStudio3Test.kt rename to app-common/src/test/java/eu/darken/capod/pods/core/apple/beats/BeatsStudio3Test.kt diff --git a/app/src/test/java/eu/darken/capod/pods/core/apple/beats/BeatsXTest.kt b/app-common/src/test/java/eu/darken/capod/pods/core/apple/beats/BeatsXTest.kt similarity index 100% rename from app/src/test/java/eu/darken/capod/pods/core/apple/beats/BeatsXTest.kt rename to app-common/src/test/java/eu/darken/capod/pods/core/apple/beats/BeatsXTest.kt diff --git a/app/src/test/java/eu/darken/capod/pods/core/apple/beats/PowerBeats3Test.kt b/app-common/src/test/java/eu/darken/capod/pods/core/apple/beats/PowerBeats3Test.kt similarity index 100% rename from app/src/test/java/eu/darken/capod/pods/core/apple/beats/PowerBeats3Test.kt rename to app-common/src/test/java/eu/darken/capod/pods/core/apple/beats/PowerBeats3Test.kt diff --git a/app/src/test/java/eu/darken/capod/pods/core/apple/beats/PowerBeatsProTest.kt b/app-common/src/test/java/eu/darken/capod/pods/core/apple/beats/PowerBeatsProTest.kt similarity index 100% rename from app/src/test/java/eu/darken/capod/pods/core/apple/beats/PowerBeatsProTest.kt rename to app-common/src/test/java/eu/darken/capod/pods/core/apple/beats/PowerBeatsProTest.kt diff --git a/app/src/test/java/eu/darken/capod/pods/core/apple/misc/Twsi99999Test.kt b/app-common/src/test/java/eu/darken/capod/pods/core/apple/misc/Twsi99999Test.kt similarity index 100% rename from app/src/test/java/eu/darken/capod/pods/core/apple/misc/Twsi99999Test.kt rename to app-common/src/test/java/eu/darken/capod/pods/core/apple/misc/Twsi99999Test.kt diff --git a/app/src/test/java/eu/darken/capod/pods/core/apple/misc/VarunrAirPodsProTest.kt b/app-common/src/test/java/eu/darken/capod/pods/core/apple/misc/VarunrAirPodsProTest.kt similarity index 100% rename from app/src/test/java/eu/darken/capod/pods/core/apple/misc/VarunrAirPodsProTest.kt rename to app-common/src/test/java/eu/darken/capod/pods/core/apple/misc/VarunrAirPodsProTest.kt diff --git a/app/src/test/java/testhelper/BaseTest.kt b/app-common/src/test/java/testhelpers/BaseTest.kt similarity index 97% rename from app/src/test/java/testhelper/BaseTest.kt rename to app-common/src/test/java/testhelpers/BaseTest.kt index 5d845ecc..d19e1710 100644 --- a/app/src/test/java/testhelper/BaseTest.kt +++ b/app-common/src/test/java/testhelpers/BaseTest.kt @@ -1,4 +1,4 @@ -package testhelper +package testhelpers import eu.darken.capod.common.debug.logging.Logging import eu.darken.capod.common.debug.logging.Logging.Priority.VERBOSE diff --git a/app/src/testShared/java/testhelpers/IsAUnitTest.kt b/app-common/src/test/java/testhelpers/IsAUnitTest.kt similarity index 100% rename from app/src/testShared/java/testhelpers/IsAUnitTest.kt rename to app-common/src/test/java/testhelpers/IsAUnitTest.kt diff --git a/app/src/test/java/testhelper/coroutine/CoroutinesTestExtension.kt b/app-common/src/test/java/testhelpers/coroutine/CoroutinesTestExtension.kt similarity index 96% rename from app/src/test/java/testhelper/coroutine/CoroutinesTestExtension.kt rename to app-common/src/test/java/testhelpers/coroutine/CoroutinesTestExtension.kt index 3364bbd9..34bf30a4 100644 --- a/app/src/test/java/testhelper/coroutine/CoroutinesTestExtension.kt +++ b/app-common/src/test/java/testhelpers/coroutine/CoroutinesTestExtension.kt @@ -1,4 +1,4 @@ -package testhelper.coroutine +package testhelpers.coroutine import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.ExperimentalCoroutinesApi diff --git a/app/src/test/java/testhelper/coroutine/TestDispatcherProvider.kt b/app-common/src/test/java/testhelpers/coroutine/TestDispatcherProvider.kt similarity index 96% rename from app/src/test/java/testhelper/coroutine/TestDispatcherProvider.kt rename to app-common/src/test/java/testhelpers/coroutine/TestDispatcherProvider.kt index 18f7cfd8..ef4bd551 100644 --- a/app/src/test/java/testhelper/coroutine/TestDispatcherProvider.kt +++ b/app-common/src/test/java/testhelpers/coroutine/TestDispatcherProvider.kt @@ -1,4 +1,4 @@ -package testhelper.coroutine +package testhelpers.coroutine import eu.darken.capod.common.coroutine.DispatcherProvider import kotlinx.coroutines.CoroutineScope diff --git a/app/src/test/java/testhelper/coroutine/TestExtensions.kt b/app-common/src/test/java/testhelpers/coroutine/TestExtensions.kt similarity index 97% rename from app/src/test/java/testhelper/coroutine/TestExtensions.kt rename to app-common/src/test/java/testhelpers/coroutine/TestExtensions.kt index 0ad92a04..17bfbc52 100644 --- a/app/src/test/java/testhelper/coroutine/TestExtensions.kt +++ b/app-common/src/test/java/testhelpers/coroutine/TestExtensions.kt @@ -1,4 +1,4 @@ -package testhelper.coroutine +package testhelpers.coroutine import eu.darken.capod.common.debug.logging.asLog import kotlinx.coroutines.CancellationException diff --git a/app/src/test/java/testhelper/flow/FlowTest.kt b/app-common/src/test/java/testhelpers/flow/FlowTest.kt similarity index 99% rename from app/src/test/java/testhelper/flow/FlowTest.kt rename to app-common/src/test/java/testhelpers/flow/FlowTest.kt index 39e7cfc7..8a1f899f 100644 --- a/app/src/test/java/testhelper/flow/FlowTest.kt +++ b/app-common/src/test/java/testhelpers/flow/FlowTest.kt @@ -1,4 +1,4 @@ -package testhelper.flow +package testhelpers.flow import eu.darken.capod.common.debug.logging.Logging.Priority.WARN import eu.darken.capod.common.debug.logging.asLog diff --git a/app/src/test/java/testhelper/json/JsonExtensions.kt b/app-common/src/test/java/testhelpers/json/JsonExtensions.kt similarity index 96% rename from app/src/test/java/testhelper/json/JsonExtensions.kt rename to app-common/src/test/java/testhelpers/json/JsonExtensions.kt index 13c56eac..7047d9f9 100644 --- a/app/src/test/java/testhelper/json/JsonExtensions.kt +++ b/app-common/src/test/java/testhelpers/json/JsonExtensions.kt @@ -1,4 +1,4 @@ -package testhelper.json +package testhelpers.json import com.squareup.moshi.JsonReader import com.squareup.moshi.Moshi diff --git a/app/src/test/java/testhelper/livedata/InstantExecutorExtension.kt b/app-common/src/test/java/testhelpers/livedata/InstantExecutorExtension.kt similarity index 96% rename from app/src/test/java/testhelper/livedata/InstantExecutorExtension.kt rename to app-common/src/test/java/testhelpers/livedata/InstantExecutorExtension.kt index debd59d9..9e8c2363 100644 --- a/app/src/test/java/testhelper/livedata/InstantExecutorExtension.kt +++ b/app-common/src/test/java/testhelpers/livedata/InstantExecutorExtension.kt @@ -1,4 +1,4 @@ -package testhelper.livedata +package testhelpers.livedata import androidx.arch.core.executor.ArchTaskExecutor import androidx.arch.core.executor.TaskExecutor diff --git a/app/src/testShared/java/testhelpers/logging/JUnitLogger.kt b/app-common/src/test/java/testhelpers/logging/JUnitLogger.kt similarity index 100% rename from app/src/testShared/java/testhelpers/logging/JUnitLogger.kt rename to app-common/src/test/java/testhelpers/logging/JUnitLogger.kt diff --git a/app/src/testShared/java/testhelpers/preferences/MockFlowPreference.kt b/app-common/src/test/java/testhelpers/preferences/MockFlowPreference.kt similarity index 100% rename from app/src/testShared/java/testhelpers/preferences/MockFlowPreference.kt rename to app-common/src/test/java/testhelpers/preferences/MockFlowPreference.kt diff --git a/app/src/testShared/java/testhelpers/preferences/MockSharedPreferences.kt b/app-common/src/test/java/testhelpers/preferences/MockSharedPreferences.kt similarity index 100% rename from app/src/testShared/java/testhelpers/preferences/MockSharedPreferences.kt rename to app-common/src/test/java/testhelpers/preferences/MockSharedPreferences.kt diff --git a/app/src/test/java/testhelper/preferences/MockSharedPreferencesTest.kt b/app-common/src/test/java/testhelpers/preferences/MockSharedPreferencesTest.kt similarity index 83% rename from app/src/test/java/testhelper/preferences/MockSharedPreferencesTest.kt rename to app-common/src/test/java/testhelpers/preferences/MockSharedPreferencesTest.kt index f69e990e..d6909726 100644 --- a/app/src/test/java/testhelper/preferences/MockSharedPreferencesTest.kt +++ b/app-common/src/test/java/testhelpers/preferences/MockSharedPreferencesTest.kt @@ -1,10 +1,9 @@ -package testhelper.preferences +package testhelpers.preferences import androidx.core.content.edit import io.kotest.matchers.shouldBe import org.junit.jupiter.api.Test -import testhelper.BaseTest -import testhelpers.preferences.MockSharedPreferences +import testhelpers.BaseTest class MockSharedPreferencesTest : BaseTest() { diff --git a/app-wear/build.gradle.kts b/app-wear/build.gradle.kts index 5d6df4d8..b12c84af 100644 --- a/app-wear/build.gradle.kts +++ b/app-wear/build.gradle.kts @@ -118,25 +118,6 @@ android { "-opt-in=kotlin.RequiresOptIn" ) } - - testOptions { - unitTests { - isIncludeAndroidResources = true - } - tasks.withType { - useJUnitPlatform() - } - } - - sourceSets { - getByName("test") { - java.srcDir("$projectDir/src/testShared/java") - } - getByName("androidTest") { - java.srcDir("$projectDir/src/testShared/java") - assets.srcDirs(files("$projectDir/schemas")) - } - } } dependencies { diff --git a/app-wear/src/main/AndroidManifest.xml b/app-wear/src/main/AndroidManifest.xml index 67ecc46f..c07226cf 100644 --- a/app-wear/src/main/AndroidManifest.xml +++ b/app-wear/src/main/AndroidManifest.xml @@ -32,7 +32,7 @@ android:label="@string/app_name" android:supportsRtl="true" android:name=".App" - android:theme="@android:style/Theme.DeviceDefault"> + android:theme="@style/AppTheme"> diff --git a/app-wear/src/main/java/eu/darken/capod/App.kt b/app-wear/src/main/java/eu/darken/capod/App.kt index 38a6680f..cca42e34 100644 --- a/app-wear/src/main/java/eu/darken/capod/App.kt +++ b/app-wear/src/main/java/eu/darken/capod/App.kt @@ -8,6 +8,7 @@ import dagger.hilt.android.HiltAndroidApp import eu.darken.capod.common.coroutine.AppScope import eu.darken.capod.common.debug.autoreport.AutoReporting import eu.darken.capod.common.debug.logging.* +import eu.darken.capod.main.core.GeneralSettings import kotlinx.coroutines.CoroutineScope import javax.inject.Inject @@ -16,6 +17,7 @@ open class App : Application(), Configuration.Provider { @Inject lateinit var workerFactory: HiltWorkerFactory @Inject lateinit var autoReporting: AutoReporting + @Inject lateinit var generalSettings: GeneralSettings @Inject @AppScope lateinit var appScope: CoroutineScope override fun onCreate() { diff --git a/app-wear/src/main/java/eu/darken/capod/wear/ui/MainActivity.kt b/app-wear/src/main/java/eu/darken/capod/wear/ui/MainActivity.kt index 1a0ce1ba..f7148268 100644 --- a/app-wear/src/main/java/eu/darken/capod/wear/ui/MainActivity.kt +++ b/app-wear/src/main/java/eu/darken/capod/wear/ui/MainActivity.kt @@ -2,7 +2,7 @@ package eu.darken.capod.wear.ui import android.os.Bundle import androidx.activity.viewModels -import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen +import androidx.wear.widget.SwipeDismissFrameLayout import dagger.hilt.android.AndroidEntryPoint import eu.darken.capod.R import eu.darken.capod.common.navigation.findNavController @@ -17,11 +17,16 @@ class MainActivity : Activity2() { private val navController by lazy { supportFragmentManager.findNavController(R.id.nav_host) } override fun onCreate(savedInstanceState: Bundle?) { - installSplashScreen() - super.onCreate(savedInstanceState) ui = MainActivityBinding.inflate(layoutInflater) setContentView(ui.root) + + ui.swipeWrapper.addCallback(object : SwipeDismissFrameLayout.Callback() { + override fun onDismissed(layout: SwipeDismissFrameLayout?) { + if (!navController.popBackStack()) finish() + super.onDismissed(layout) + } + }) } } diff --git a/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/OverviewAdapter.kt b/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/OverviewAdapter.kt index 4928f1d3..1515639d 100644 --- a/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/OverviewAdapter.kt +++ b/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/OverviewAdapter.kt @@ -11,9 +11,7 @@ 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.wear.ui.overview.cards.BluetoothDisabledVH -import eu.darken.capod.wear.ui.overview.cards.MissingMainDeviceVH -import eu.darken.capod.wear.ui.overview.cards.PermissionCardVH +import eu.darken.capod.wear.ui.overview.cards.* import eu.darken.capod.wear.ui.overview.cards.pods.DualPodsCardVH import eu.darken.capod.wear.ui.overview.cards.pods.SinglePodsCardVH import eu.darken.capod.wear.ui.overview.cards.pods.UnknownPodDeviceCardVH @@ -27,6 +25,8 @@ class OverviewAdapter @Inject constructor() : init { modules.add(DataBinderMod(data)) + modules.add(TypedVHCreatorMod({ data[it] is AppTitleVH.Item }) { AppTitleVH(it) }) + modules.add(TypedVHCreatorMod({ data[it] is SettingsVH.Item }) { SettingsVH(it) }) modules.add(TypedVHCreatorMod({ data[it] is PermissionCardVH.Item }) { PermissionCardVH(it) }) modules.add(TypedVHCreatorMod({ data[it] is DualPodsCardVH.Item }) { DualPodsCardVH(it) }) modules.add(TypedVHCreatorMod({ data[it] is SinglePodsCardVH.Item }) { SinglePodsCardVH(it) }) diff --git a/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/OverviewFragment.kt b/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/OverviewFragment.kt index f58c7a38..8685807e 100644 --- a/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/OverviewFragment.kt +++ b/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/OverviewFragment.kt @@ -4,21 +4,17 @@ import android.content.Intent import android.net.Uri import android.os.Bundle import android.provider.Settings -import android.text.SpannableStringBuilder import android.view.View import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.contract.ActivityResultContracts import androidx.fragment.app.viewModels import dagger.hilt.android.AndroidEntryPoint -import eu.darken.capod.BuildConfig import eu.darken.capod.R -import eu.darken.capod.common.colorString 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.permissions.Permission import eu.darken.capod.common.uix.Fragment3 -import eu.darken.capod.common.upgrade.UpgradeRepo import eu.darken.capod.common.viewbinding.viewBinding import eu.darken.capod.databinding.MainFragmentBinding import javax.inject.Inject @@ -48,37 +44,10 @@ class OverviewFragment : Fragment3(R.layout.main_fragment) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { ui.apply { - list.setupDefaults(adapter, dividers = false) + list.setupDefaults(adapter) } - ui.toolbar.apply { -// setOnMenuItemClickListener { -// when (it.itemId) { -// R.id.menu_item_settings -> { -// vm.goToSettings() -// true -// } -// R.id.menu_item_donate -> { -// vm.onUpgrade() -// true -// } -// R.id.menu_item_upgrade -> { -// vm.onUpgrade() -// true -// } -// else -> false -// } -// } - } - - vm.listItems.observe2(ui) { - if (BuildConfig.DEBUG) toolbar.subtitle = "${it.size} items" - adapter.update(it) - } - - vm.workerAutolaunch.observe2 { - // While UI is active, subscribe to the autolaunch routine - } + vm.listItems.observe2(ui) { adapter.update(it) } vm.requestPermissionEvent.observe2(ui) { when (it) { @@ -106,47 +75,6 @@ class OverviewFragment : Fragment3(R.layout.main_fragment) { } } - vm.upgradeState.observe2(ui) { info -> -// val gplay = toolbar.menu.findItem(R.id.menu_item_upgrade) -// val donate = toolbar.menu.findItem(R.id.menu_item_donate) -// gplay.isVisible = false -// donate.isVisible = false -// -// val baseTitle = when (info.type) { -// UpgradeRepo.Type.GPLAY -> { -// if (info.isPro) { -// getString(R.string.app_name_pro) -// } else { -// gplay.isVisible = true -// getString(R.string.app_name) -// } -// } -// UpgradeRepo.Type.FOSS -> { -// if (info.isPro) { -// getString(R.string.app_name_foss) -// } else { -// donate.isVisible = true -// getString(R.string.app_name) -// } -// } -// }.split(" ".toRegex()) -// .dropLastWhile { it.isEmpty() } -// .toTypedArray() -// -// toolbar.title = if (baseTitle.size == 2) { -// val builder = SpannableStringBuilder(baseTitle[0] + " ") -// val color = when (info.type) { -// UpgradeRepo.Type.FOSS -> R.color.brand_secondary -// else -> R.color.brand_tertiary -// } -// builder.append(colorString(requireContext(), color, baseTitle[1])) -// } else { -// getString(R.string.app_name) -// } - } - vm.launchUpgradeFlow.observe2 { - it(requireActivity()) - } super.onViewCreated(view, savedInstanceState) } diff --git a/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/OverviewFragmentVM.kt b/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/OverviewFragmentVM.kt index 5918bf1c..02b13c40 100644 --- a/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/OverviewFragmentVM.kt +++ b/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/OverviewFragmentVM.kt @@ -7,23 +7,18 @@ import dagger.hilt.android.lifecycle.HiltViewModel import eu.darken.capod.common.bluetooth.BluetoothManager2 import eu.darken.capod.common.coroutine.DispatcherProvider import eu.darken.capod.common.debug.autoreport.DebugSettings -import eu.darken.capod.common.debug.logging.log import eu.darken.capod.common.flow.combine import eu.darken.capod.common.livedata.SingleLiveEvent import eu.darken.capod.common.navigation.navVia import eu.darken.capod.common.permissions.Permission import eu.darken.capod.common.uix.ViewModel3 -import eu.darken.capod.common.upgrade.UpgradeRepo import eu.darken.capod.main.core.GeneralSettings -import eu.darken.capod.main.core.MonitorMode import eu.darken.capod.main.core.PermissionTool import eu.darken.capod.monitor.core.PodMonitor import eu.darken.capod.pods.core.DualPodDevice import eu.darken.capod.pods.core.PodDevice import eu.darken.capod.pods.core.SinglePodDevice -import eu.darken.capod.wear.ui.overview.cards.BluetoothDisabledVH -import eu.darken.capod.wear.ui.overview.cards.MissingMainDeviceVH -import eu.darken.capod.wear.ui.overview.cards.PermissionCardVH +import eu.darken.capod.wear.ui.overview.cards.* import eu.darken.capod.wear.ui.overview.cards.pods.DualPodsCardVH import eu.darken.capod.wear.ui.overview.cards.pods.SinglePodsCardVH import eu.darken.capod.wear.ui.overview.cards.pods.UnknownPodDeviceCardVH @@ -37,16 +32,13 @@ import javax.inject.Inject class OverviewFragmentVM @Inject constructor( @Suppress("UNUSED_PARAMETER") handle: SavedStateHandle, dispatcherProvider: DispatcherProvider, -// private val monitorControl: MonitorControl, private val podMonitor: PodMonitor, private val permissionTool: PermissionTool, private val generalSettings: GeneralSettings, debugSettings: DebugSettings, - private val upgradeRepo: UpgradeRepo, private val bluetoothManager: BluetoothManager2, ) : ViewModel3(dispatcherProvider = dispatcherProvider) { - val upgradeState = upgradeRepo.upgradeInfo.asLiveData2() val launchUpgradeFlow = SingleLiveEvent<(Activity) -> Unit>() private val updateTicker = channelFlow { @@ -56,26 +48,6 @@ class OverviewFragmentVM @Inject constructor( } } - val workerAutolaunch: LiveData = permissionTool.missingPermissions - .onEach { - if (it.isNotEmpty()) { - log(TAG) { "Missing permissions: $it" } - return@onEach - } - - val shouldStartMonitor = when (generalSettings.monitorMode.value) { - MonitorMode.MANUAL -> false - MonitorMode.AUTOMATIC -> bluetoothManager.connectedDevices().first().isNotEmpty() - MonitorMode.ALWAYS -> true - } - if (shouldStartMonitor) { - log(TAG) { "Starting monitor" } -// monitorControl.startMonitor() - } - } - .map { } - .asLiveData2() - val requestPermissionEvent = SingleLiveEvent() private val pods: Flow> = permissionTool.missingPermissions @@ -150,6 +122,13 @@ class OverviewFragmentVM @Inject constructor( }.run { items.addAll(this) } } + items.add(0, AppTitleVH.Item()) + SettingsVH.Item( + onClick = { + OverviewFragmentDirections.actionOverviewFragmentToSettingsFragment().navVia(this@OverviewFragmentVM) + } + ).run { items.add(this) } + items } .catch { errorEvents.postValue(it) } @@ -158,16 +137,4 @@ class OverviewFragmentVM @Inject constructor( fun onPermissionResult(granted: Boolean) { if (granted) permissionTool.recheck() } - - fun goToSettings() = launch { - OverviewFragmentDirections.actionOverviewFragmentToSettingsFragment().navVia(this@OverviewFragmentVM) - } - - fun onUpgrade() = launch { - val call: (Activity) -> Unit = { - upgradeRepo.launchBillingFlow(it) - } - launchUpgradeFlow.postValue(call) - } - } \ No newline at end of file diff --git a/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/cards/AppTitleVH.kt b/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/cards/AppTitleVH.kt new file mode 100644 index 00000000..f1c06d64 --- /dev/null +++ b/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/cards/AppTitleVH.kt @@ -0,0 +1,36 @@ +package eu.darken.capod.wear.ui.overview.cards + +import android.view.ViewGroup +import eu.darken.capod.R +import eu.darken.capod.common.lists.binding +import eu.darken.capod.common.lists.differ.DifferItem +import eu.darken.capod.common.upgrade.UpgradeRepo +import eu.darken.capod.databinding.OverviewApptitleItemBinding +import eu.darken.capod.wear.ui.overview.OverviewAdapter + +class AppTitleVH(parent: ViewGroup) : + OverviewAdapter.BaseVH( + R.layout.overview_apptitle_item, + parent + ) { + + override val viewBinding = lazy { + OverviewApptitleItemBinding.bind(itemView) + } + + override val onBindData: OverviewApptitleItemBinding.( + item: Item, + payloads: List + ) -> Unit = binding(payload = true) { item -> + + } + + data class Item( + val upgradeInfo: UpgradeRepo.Info? = null + ) : OverviewAdapter.Item { + override val stableId: Long = Item::class.hashCode().toLong() + + override val payloadProvider: ((DifferItem, DifferItem) -> DifferItem?) + get() = { old, new -> if (new::class.isInstance(old)) new else null } + } +} \ No newline at end of file diff --git a/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/cards/SettingsVH.kt b/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/cards/SettingsVH.kt new file mode 100644 index 00000000..572ea638 --- /dev/null +++ b/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/cards/SettingsVH.kt @@ -0,0 +1,36 @@ +package eu.darken.capod.wear.ui.overview.cards + +import android.view.ViewGroup +import eu.darken.capod.R +import eu.darken.capod.common.lists.binding +import eu.darken.capod.common.lists.differ.DifferItem +import eu.darken.capod.databinding.OverviewSettingsItemBinding +import eu.darken.capod.wear.ui.overview.OverviewAdapter + +class SettingsVH(parent: ViewGroup) : + OverviewAdapter.BaseVH( + R.layout.overview_settings_item, + parent + ) { + + override val viewBinding = lazy { + OverviewSettingsItemBinding.bind(itemView) + } + + override val onBindData: OverviewSettingsItemBinding.( + item: Item, + payloads: List + ) -> Unit = binding(payload = true) { item -> + settingsButton.setOnClickListener { item.onClick() } + } + + data class Item( + val isEnabled: Boolean = true, + val onClick: () -> Unit, + ) : OverviewAdapter.Item { + override val stableId: Long = Item::class.hashCode().toLong() + + override val payloadProvider: ((DifferItem, DifferItem) -> DifferItem?) + get() = { old, new -> if (new::class.isInstance(old)) new else null } + } +} \ No newline at end of file diff --git a/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/cards/pods/DualPodsCardVH.kt b/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/cards/pods/DualPodsCardVH.kt index d2ee8ca8..1b910912 100644 --- a/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/cards/pods/DualPodsCardVH.kt +++ b/app-wear/src/main/java/eu/darken/capod/wear/ui/overview/cards/pods/DualPodsCardVH.kt @@ -9,8 +9,6 @@ import eu.darken.capod.common.lists.binding import eu.darken.capod.databinding.OverviewPodsDualItemBinding import eu.darken.capod.pods.core.* import eu.darken.capod.pods.core.apple.DualAirPods -import eu.darken.capod.pods.core.apple.DualAirPods.LidState -import java.time.Duration import java.time.Instant class DualPodsCardVH(parent: ViewGroup) : @@ -41,10 +39,7 @@ class DualPodsCardVH(parent: ViewGroup) : deviceIcon.setImageResource(device.iconRes) lastSeen.text = context.getString(R.string.last_seen_x, device.lastSeenFormatted(item.now)) - firstSeen.text = context.getString(R.string.first_seen_x, device.firstSeenFormatted(item.now)) - firstSeen.isGone = Duration.between(device.seenFirstAt, device.seenLastAt).toMinutes() < 1 - - reception.text = item.getReceptionText() +// reception.text = item.getReceptionText() // Pods battery state device.apply { @@ -59,16 +54,12 @@ class DualPodsCardVH(parent: ViewGroup) : device.apply { if (this is HasChargeDetectionDual) { podLeftChargingIcon.isInvisible = !isLeftPodCharging - podLeftChargingLabel.isInvisible = !isLeftPodCharging podRightChargingIcon.isInvisible = !isRightPodCharging - podRightChargingLabel.isInvisible = !isRightPodCharging } else { podLeftChargingIcon.isGone = true - podLeftChargingLabel.isGone = true podRightChargingIcon.isGone = true - podRightChargingLabel.isGone = true } } @@ -76,16 +67,12 @@ class DualPodsCardVH(parent: ViewGroup) : device.apply { if (this is HasDualMicrophone) { podLeftMicrophoneIcon.isInvisible = !isLeftPodMicrophone - podLeftMicrophoneLabel.isInvisible = !isLeftPodMicrophone podRightMicrophoneIcon.isInvisible = !isRightPodMicrophone - podRightMicrophoneLabel.isInvisible = !isRightPodMicrophone } else { podLeftMicrophoneIcon.isGone = true - podLeftMicrophoneLabel.isGone = true podRightMicrophoneIcon.isGone = true - podRightMicrophoneLabel.isGone = true } } @@ -93,16 +80,12 @@ class DualPodsCardVH(parent: ViewGroup) : device.apply { if (this is HasEarDetectionDual) { podLeftWearIcon.isInvisible = !isLeftPodInEar - podLeftWearLabel.isInvisible = !isLeftPodInEar podRightWearIcon.isInvisible = !isRightPodInEar - podRightWearLabel.isInvisible = !isRightPodInEar } else { podLeftWearIcon.isGone = true - podLeftWearLabel.isGone = true podRightWearIcon.isGone = true - podRightWearLabel.isGone = true } } @@ -114,33 +97,31 @@ class DualPodsCardVH(parent: ViewGroup) : podCaseBatteryLabel.text = getBatteryLevelCase(context) podCaseChargingIcon.isInvisible = !isCaseCharging - podCaseChargingLabel.isInvisible = !isCaseCharging } else { podCaseBatteryIcon.isGone = true podCaseBatteryLabel.isGone = true podCaseChargingIcon.isGone = true - podCaseChargingLabel.isGone = true } } - // Case lid state - device.apply { - if (this is DualAirPods) { - podCaseLidLabel.text = when (caseLidState) { - LidState.OPEN -> context.getString(R.string.pods_case_status_open_label) - LidState.CLOSED -> context.getString(R.string.pods_case_status_closed_label) - else -> context.getString(R.string.pods_case_unknown_state) - } - - val hideInfo = !listOf(LidState.OPEN, LidState.CLOSED).contains(caseLidState) - podCaseLidIcon.isInvisible = hideInfo - podCaseLidLabel.isInvisible = hideInfo - } else { - podCaseLidIcon.isGone = true - podCaseLidLabel.isGone = true - } - } +// // Case lid state +// device.apply { +// if (this is DualAirPods) { +// podCaseLidLabel.text = when (caseLidState) { +// LidState.OPEN -> context.getString(R.string.pods_case_status_open_label) +// LidState.CLOSED -> context.getString(R.string.pods_case_status_closed_label) +// else -> context.getString(R.string.pods_case_unknown_state) +// } +// +// val hideInfo = !listOf(LidState.OPEN, LidState.CLOSED).contains(caseLidState) +// podCaseLidIcon.isInvisible = hideInfo +// podCaseLidLabel.isInvisible = hideInfo +// } else { +// podCaseLidIcon.isGone = true +// podCaseLidLabel.isGone = true +// } +// } // Connection state device.apply { diff --git a/app-wear/src/main/java/eu/darken/capod/wear/ui/settings/SettingsFragment.kt b/app-wear/src/main/java/eu/darken/capod/wear/ui/settings/SettingsFragment.kt new file mode 100644 index 00000000..f675fc4d --- /dev/null +++ b/app-wear/src/main/java/eu/darken/capod/wear/ui/settings/SettingsFragment.kt @@ -0,0 +1,24 @@ +package eu.darken.capod.wear.ui.settings + +import android.os.Bundle +import android.view.View +import androidx.fragment.app.viewModels +import dagger.hilt.android.AndroidEntryPoint +import eu.darken.capod.R +import eu.darken.capod.common.BuildConfigWrap +import eu.darken.capod.common.uix.Fragment3 +import eu.darken.capod.common.viewbinding.viewBinding +import eu.darken.capod.databinding.SettingsFragmentBinding + + +@AndroidEntryPoint +class SettingsFragment : Fragment3(R.layout.settings_fragment) { + + override val vm: SettingsFragmentVM by viewModels() + override val ui: SettingsFragmentBinding by viewBinding() + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + ui.appVersion.text = BuildConfigWrap.VERSION_DESCRIPTION_TINY + super.onViewCreated(view, savedInstanceState) + } +} diff --git a/app-wear/src/main/java/eu/darken/capod/wear/ui/settings/SettingsFragmentVM.kt b/app-wear/src/main/java/eu/darken/capod/wear/ui/settings/SettingsFragmentVM.kt new file mode 100644 index 00000000..7a4ebfd9 --- /dev/null +++ b/app-wear/src/main/java/eu/darken/capod/wear/ui/settings/SettingsFragmentVM.kt @@ -0,0 +1,13 @@ +package eu.darken.capod.wear.ui.settings + +import androidx.lifecycle.SavedStateHandle +import dagger.hilt.android.lifecycle.HiltViewModel +import eu.darken.capod.common.coroutine.DispatcherProvider +import eu.darken.capod.common.uix.ViewModel3 +import javax.inject.Inject + +@HiltViewModel +class SettingsFragmentVM @Inject constructor( + @Suppress("UNUSED_PARAMETER") handle: SavedStateHandle, + dispatcherProvider: DispatcherProvider, +) : ViewModel3(dispatcherProvider = dispatcherProvider) \ No newline at end of file diff --git a/app-wear/src/main/res/layout/main_activity.xml b/app-wear/src/main/res/layout/main_activity.xml index 68418b8c..f700038a 100644 --- a/app-wear/src/main/res/layout/main_activity.xml +++ b/app-wear/src/main/res/layout/main_activity.xml @@ -7,16 +7,23 @@ android:orientation="vertical" tools:context=".wear.ui.MainActivity"> - + app:layout_constraintTop_toTopOf="parent"> + + + + \ No newline at end of file diff --git a/app-wear/src/main/res/layout/main_fragment.xml b/app-wear/src/main/res/layout/main_fragment.xml index ce26dd95..938edb4a 100644 --- a/app-wear/src/main/res/layout/main_fragment.xml +++ b/app-wear/src/main/res/layout/main_fragment.xml @@ -1,19 +1,9 @@ - - + android:layout_height="match_parent"> + app:layout_constraintTop_toTopOf="parent" + tools:listitem="@layout/overview_pods_dual_item" /> \ No newline at end of file diff --git a/app-wear/src/main/res/layout/overview_apptitle_item.xml b/app-wear/src/main/res/layout/overview_apptitle_item.xml new file mode 100644 index 00000000..4d92c840 --- /dev/null +++ b/app-wear/src/main/res/layout/overview_apptitle_item.xml @@ -0,0 +1,23 @@ + + + + + + diff --git a/app-wear/src/main/res/layout/overview_bluetooth_disabled_item.xml b/app-wear/src/main/res/layout/overview_bluetooth_disabled_item.xml index 3c73ea0d..90f01d59 100644 --- a/app-wear/src/main/res/layout/overview_bluetooth_disabled_item.xml +++ b/app-wear/src/main/res/layout/overview_bluetooth_disabled_item.xml @@ -1,8 +1,8 @@ + android:layout_height="wrap_content" + android:layout_marginHorizontal="8dp" + android:layout_marginVertical="8dp"> + android:layout_height="wrap_content" + android:layout_marginHorizontal="8dp"> @@ -63,10 +63,10 @@ android:id="@+id/grant_action" style="@style/Widget.MaterialComponents.Button" android:layout_width="wrap_content" - android:layout_marginHorizontal="16dp" android:layout_height="wrap_content" - android:layout_marginBottom="8dp" + android:layout_marginHorizontal="16dp" android:layout_marginTop="16dp" + android:layout_marginBottom="8dp" android:text="@string/general_grant_permission_action" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" diff --git a/app-wear/src/main/res/layout/overview_pods_dual_item.xml b/app-wear/src/main/res/layout/overview_pods_dual_item.xml index af85cccc..7b76fd44 100644 --- a/app-wear/src/main/res/layout/overview_pods_dual_item.xml +++ b/app-wear/src/main/res/layout/overview_pods_dual_item.xml @@ -1,445 +1,281 @@ - + android:layout_margin="8dp" + tools:context=".wear.ui.MainActivity"> + + + + + + + + + android:layout_marginStart="4dp" + android:layout_marginEnd="4dp" + app:layout_constraintBottom_toTopOf="@id/barrier_bottom" + app:layout_constraintEnd_toStartOf="@id/pod_case_container" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/barrier_top" + app:layout_constraintVertical_bias="0.2"> - - - - - - - - + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintStart_toEndOf="@id/pod_left_icon" + app:layout_constraintTop_toTopOf="@id/pod_left_icon" /> - - - + app:layout_constraintTop_toBottomOf="@id/pod_left_icon" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + app:layout_constraintStart_toEndOf="@id/pod_left_battery_icon" + app:layout_constraintTop_toTopOf="@id/pod_left_battery_icon" /> + + + app:layout_constraintTop_toBottomOf="@id/pod_left_battery_label" /> - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app-wear/src/main/res/layout/overview_pods_single_item.xml b/app-wear/src/main/res/layout/overview_pods_single_item.xml index fef6a047..620114ac 100644 --- a/app-wear/src/main/res/layout/overview_pods_single_item.xml +++ b/app-wear/src/main/res/layout/overview_pods_single_item.xml @@ -2,9 +2,9 @@ diff --git a/app-wear/src/main/res/layout/overview_settings_item.xml b/app-wear/src/main/res/layout/overview_settings_item.xml new file mode 100644 index 00000000..9d258ac3 --- /dev/null +++ b/app-wear/src/main/res/layout/overview_settings_item.xml @@ -0,0 +1,24 @@ + + + + + + diff --git a/app-wear/src/main/res/layout/settings_fragment.xml b/app-wear/src/main/res/layout/settings_fragment.xml new file mode 100644 index 00000000..4af89739 --- /dev/null +++ b/app-wear/src/main/res/layout/settings_fragment.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app-wear/src/main/res/navigation/nav_graph.xml b/app-wear/src/main/res/navigation/nav_graph.xml index 7a3fe0f3..6c238cf5 100644 --- a/app-wear/src/main/res/navigation/nav_graph.xml +++ b/app-wear/src/main/res/navigation/nav_graph.xml @@ -17,7 +17,7 @@ diff --git a/app-wear/src/main/res/values-night/themes.xml b/app-wear/src/main/res/values-night/themes.xml deleted file mode 100644 index d69a4b5b..00000000 --- a/app-wear/src/main/res/values-night/themes.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app-wear/src/main/res/values/colors.xml b/app-wear/src/main/res/values/colors.xml index 77c8e5d2..4fac9aa7 100644 --- a/app-wear/src/main/res/values/colors.xml +++ b/app-wear/src/main/res/values/colors.xml @@ -1,36 +1,9 @@ - #3F7AFF - #FFFFFF - #DAE2FF - #00174B - #715C00 - #FFFFFF - #FFE16C - #231B00 - #006D39 - #FFFFFF - #5CFFA0 - #00210D - #BA1B1B - #FFDAD4 - #FFFFFF - #410001 - #FEFBFF - #1B1B1F - #FEFBFF - #1B1B1F - #E2E2EC - #44464E - #75767F - #F2F0F5 - #303033 - #B1C5FF - #3F7AFF - #002A78 + #FEFBFF #003EA7 - #DAE2FF + #FEFBFF #E9C426 #3B2F00 #564500 @@ -43,15 +16,15 @@ #930006 #680003 #FFDAD4 - #1B1B1F - #E3E1E6 - #1B1B1F - #E3E1E6 + #000000 + #FEFBFF + #000000 + #FEFBFF #44464E #C6C6D0 #8F909A #1B1B1F - #E3E1E6 + #FEFBFF #0054D9 #3F7AFF diff --git a/app-wear/src/main/res/values/strings.xml b/app-wear/src/main/res/values/strings.xml index eab5236b..eab66534 100644 --- a/app-wear/src/main/res/values/strings.xml +++ b/app-wear/src/main/res/values/strings.xml @@ -1,4 +1,4 @@ - + CAPod for WearOS - View details about your AirPood devices on your WearOS device. + Details about AirPods \ No newline at end of file diff --git a/app-wear/src/main/res/values/themes.xml b/app-wear/src/main/res/values/themes.xml index b9adb822..d69a4b5b 100644 --- a/app-wear/src/main/res/values/themes.xml +++ b/app-wear/src/main/res/values/themes.xml @@ -1,48 +1,32 @@ - - - - - \ No newline at end of file diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 0ccd960d..24bb8e2f 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -125,16 +125,6 @@ android { useJUnitPlatform() } } - - sourceSets { - getByName("test") { - java.srcDir("$projectDir/src/testShared/java") - } - getByName("androidTest") { - java.srcDir("$projectDir/src/testShared/java") - assets.srcDirs(files("$projectDir/schemas")) - } - } } dependencies { @@ -153,18 +143,15 @@ dependencies { addBaseAndroid() addBaseAndroidUi() + implementation("androidx.core:core-splashscreen:1.0.0-alpha02") + addNavigation() - - implementation("androidx.navigation:navigation-fragment-ktx:2.5.0") - implementation("androidx.navigation:navigation-ui-ktx:2.5.0") - addBaseWorkManager() - // Debugging - implementation("com.bugsnag:bugsnag-android:5.9.2") - implementation("com.getkeepsafe.relinker:relinker:1.4.3") - addTesting() + implementation("com.bugsnag:bugsnag-android:5.9.2") + implementation("com.getkeepsafe.relinker:relinker:1.4.3") + "gplayImplementation"("com.android.billingclient:billing:4.0.0") } \ No newline at end of file diff --git a/app-common/src/foss/java/eu/darken/capod/common/upgrade/UpgradeModule.kt b/app/src/foss/java/eu/darken/capod/common/upgrade/UpgradeModule.kt similarity index 100% rename from app-common/src/foss/java/eu/darken/capod/common/upgrade/UpgradeModule.kt rename to app/src/foss/java/eu/darken/capod/common/upgrade/UpgradeModule.kt diff --git a/app-common/src/foss/java/eu/darken/capod/common/upgrade/core/FossCache.kt b/app/src/foss/java/eu/darken/capod/common/upgrade/core/FossCache.kt similarity index 100% rename from app-common/src/foss/java/eu/darken/capod/common/upgrade/core/FossCache.kt rename to app/src/foss/java/eu/darken/capod/common/upgrade/core/FossCache.kt diff --git a/app-common/src/foss/java/eu/darken/capod/common/upgrade/core/FossUpgrade.kt b/app/src/foss/java/eu/darken/capod/common/upgrade/core/FossUpgrade.kt similarity index 100% rename from app-common/src/foss/java/eu/darken/capod/common/upgrade/core/FossUpgrade.kt rename to app/src/foss/java/eu/darken/capod/common/upgrade/core/FossUpgrade.kt diff --git a/app-common/src/foss/java/eu/darken/capod/common/upgrade/core/UpgradeControlFoss.kt b/app/src/foss/java/eu/darken/capod/common/upgrade/core/UpgradeControlFoss.kt similarity index 100% rename from app-common/src/foss/java/eu/darken/capod/common/upgrade/core/UpgradeControlFoss.kt rename to app/src/foss/java/eu/darken/capod/common/upgrade/core/UpgradeControlFoss.kt diff --git a/app-common/src/foss/res/values-af-rZA/strings.xml b/app/src/foss/res/values-af-rZA/strings.xml similarity index 100% rename from app-common/src/foss/res/values-af-rZA/strings.xml rename to app/src/foss/res/values-af-rZA/strings.xml diff --git a/app-common/src/foss/res/values-am/strings.xml b/app/src/foss/res/values-am/strings.xml similarity index 100% rename from app-common/src/foss/res/values-am/strings.xml rename to app/src/foss/res/values-am/strings.xml diff --git a/app-common/src/foss/res/values-ar/strings.xml b/app/src/foss/res/values-ar/strings.xml similarity index 100% rename from app-common/src/foss/res/values-ar/strings.xml rename to app/src/foss/res/values-ar/strings.xml diff --git a/app-common/src/foss/res/values-az/strings.xml b/app/src/foss/res/values-az/strings.xml similarity index 100% rename from app-common/src/foss/res/values-az/strings.xml rename to app/src/foss/res/values-az/strings.xml diff --git a/app-common/src/foss/res/values-be/strings.xml b/app/src/foss/res/values-be/strings.xml similarity index 100% rename from app-common/src/foss/res/values-be/strings.xml rename to app/src/foss/res/values-be/strings.xml diff --git a/app-common/src/foss/res/values-bg/strings.xml b/app/src/foss/res/values-bg/strings.xml similarity index 100% rename from app-common/src/foss/res/values-bg/strings.xml rename to app/src/foss/res/values-bg/strings.xml diff --git a/app-common/src/foss/res/values-bn-rBD/strings.xml b/app/src/foss/res/values-bn-rBD/strings.xml similarity index 100% rename from app-common/src/foss/res/values-bn-rBD/strings.xml rename to app/src/foss/res/values-bn-rBD/strings.xml diff --git a/app-common/src/foss/res/values-ca/strings.xml b/app/src/foss/res/values-ca/strings.xml similarity index 100% rename from app-common/src/foss/res/values-ca/strings.xml rename to app/src/foss/res/values-ca/strings.xml diff --git a/app-common/src/foss/res/values-cs/strings.xml b/app/src/foss/res/values-cs/strings.xml similarity index 100% rename from app-common/src/foss/res/values-cs/strings.xml rename to app/src/foss/res/values-cs/strings.xml diff --git a/app-common/src/foss/res/values-da/strings.xml b/app/src/foss/res/values-da/strings.xml similarity index 100% rename from app-common/src/foss/res/values-da/strings.xml rename to app/src/foss/res/values-da/strings.xml diff --git a/app-common/src/foss/res/values-de/strings.xml b/app/src/foss/res/values-de/strings.xml similarity index 100% rename from app-common/src/foss/res/values-de/strings.xml rename to app/src/foss/res/values-de/strings.xml diff --git a/app-common/src/foss/res/values-el/strings.xml b/app/src/foss/res/values-el/strings.xml similarity index 100% rename from app-common/src/foss/res/values-el/strings.xml rename to app/src/foss/res/values-el/strings.xml diff --git a/app-common/src/foss/res/values-es-rAR/strings.xml b/app/src/foss/res/values-es-rAR/strings.xml similarity index 100% rename from app-common/src/foss/res/values-es-rAR/strings.xml rename to app/src/foss/res/values-es-rAR/strings.xml diff --git a/app-common/src/foss/res/values-es-rMX/strings.xml b/app/src/foss/res/values-es-rMX/strings.xml similarity index 100% rename from app-common/src/foss/res/values-es-rMX/strings.xml rename to app/src/foss/res/values-es-rMX/strings.xml diff --git a/app-common/src/foss/res/values-es/strings.xml b/app/src/foss/res/values-es/strings.xml similarity index 100% rename from app-common/src/foss/res/values-es/strings.xml rename to app/src/foss/res/values-es/strings.xml diff --git a/app-common/src/foss/res/values-et-rEE/strings.xml b/app/src/foss/res/values-et-rEE/strings.xml similarity index 100% rename from app-common/src/foss/res/values-et-rEE/strings.xml rename to app/src/foss/res/values-et-rEE/strings.xml diff --git a/app-common/src/foss/res/values-eu-rES/strings.xml b/app/src/foss/res/values-eu-rES/strings.xml similarity index 100% rename from app-common/src/foss/res/values-eu-rES/strings.xml rename to app/src/foss/res/values-eu-rES/strings.xml diff --git a/app-common/src/foss/res/values-fa/strings.xml b/app/src/foss/res/values-fa/strings.xml similarity index 100% rename from app-common/src/foss/res/values-fa/strings.xml rename to app/src/foss/res/values-fa/strings.xml diff --git a/app-common/src/foss/res/values-fi/strings.xml b/app/src/foss/res/values-fi/strings.xml similarity index 100% rename from app-common/src/foss/res/values-fi/strings.xml rename to app/src/foss/res/values-fi/strings.xml diff --git a/app-common/src/foss/res/values-fil/strings.xml b/app/src/foss/res/values-fil/strings.xml similarity index 100% rename from app-common/src/foss/res/values-fil/strings.xml rename to app/src/foss/res/values-fil/strings.xml diff --git a/app-common/src/foss/res/values-fr/strings.xml b/app/src/foss/res/values-fr/strings.xml similarity index 100% rename from app-common/src/foss/res/values-fr/strings.xml rename to app/src/foss/res/values-fr/strings.xml diff --git a/app-common/src/foss/res/values-gl-rES/strings.xml b/app/src/foss/res/values-gl-rES/strings.xml similarity index 100% rename from app-common/src/foss/res/values-gl-rES/strings.xml rename to app/src/foss/res/values-gl-rES/strings.xml diff --git a/app-common/src/foss/res/values-hi-rIN/strings.xml b/app/src/foss/res/values-hi-rIN/strings.xml similarity index 100% rename from app-common/src/foss/res/values-hi-rIN/strings.xml rename to app/src/foss/res/values-hi-rIN/strings.xml diff --git a/app-common/src/foss/res/values-hr/strings.xml b/app/src/foss/res/values-hr/strings.xml similarity index 100% rename from app-common/src/foss/res/values-hr/strings.xml rename to app/src/foss/res/values-hr/strings.xml diff --git a/app-common/src/foss/res/values-hu/strings.xml b/app/src/foss/res/values-hu/strings.xml similarity index 100% rename from app-common/src/foss/res/values-hu/strings.xml rename to app/src/foss/res/values-hu/strings.xml diff --git a/app-common/src/foss/res/values-hy-rAM/strings.xml b/app/src/foss/res/values-hy-rAM/strings.xml similarity index 100% rename from app-common/src/foss/res/values-hy-rAM/strings.xml rename to app/src/foss/res/values-hy-rAM/strings.xml diff --git a/app-common/src/foss/res/values-in/strings.xml b/app/src/foss/res/values-in/strings.xml similarity index 100% rename from app-common/src/foss/res/values-in/strings.xml rename to app/src/foss/res/values-in/strings.xml diff --git a/app-common/src/foss/res/values-is/strings.xml b/app/src/foss/res/values-is/strings.xml similarity index 100% rename from app-common/src/foss/res/values-is/strings.xml rename to app/src/foss/res/values-is/strings.xml diff --git a/app-common/src/foss/res/values-it/strings.xml b/app/src/foss/res/values-it/strings.xml similarity index 100% rename from app-common/src/foss/res/values-it/strings.xml rename to app/src/foss/res/values-it/strings.xml diff --git a/app-common/src/foss/res/values-iw/strings.xml b/app/src/foss/res/values-iw/strings.xml similarity index 100% rename from app-common/src/foss/res/values-iw/strings.xml rename to app/src/foss/res/values-iw/strings.xml diff --git a/app-common/src/foss/res/values-ja/strings.xml b/app/src/foss/res/values-ja/strings.xml similarity index 100% rename from app-common/src/foss/res/values-ja/strings.xml rename to app/src/foss/res/values-ja/strings.xml diff --git a/app-common/src/foss/res/values-ka-rGE/strings.xml b/app/src/foss/res/values-ka-rGE/strings.xml similarity index 100% rename from app-common/src/foss/res/values-ka-rGE/strings.xml rename to app/src/foss/res/values-ka-rGE/strings.xml diff --git a/app-common/src/foss/res/values-km-rKH/strings.xml b/app/src/foss/res/values-km-rKH/strings.xml similarity index 100% rename from app-common/src/foss/res/values-km-rKH/strings.xml rename to app/src/foss/res/values-km-rKH/strings.xml diff --git a/app-common/src/foss/res/values-kmr-rTR/strings.xml b/app/src/foss/res/values-kmr-rTR/strings.xml similarity index 100% rename from app-common/src/foss/res/values-kmr-rTR/strings.xml rename to app/src/foss/res/values-kmr-rTR/strings.xml diff --git a/app-common/src/foss/res/values-kn-rIN/strings.xml b/app/src/foss/res/values-kn-rIN/strings.xml similarity index 100% rename from app-common/src/foss/res/values-kn-rIN/strings.xml rename to app/src/foss/res/values-kn-rIN/strings.xml diff --git a/app-common/src/foss/res/values-ko/strings.xml b/app/src/foss/res/values-ko/strings.xml similarity index 100% rename from app-common/src/foss/res/values-ko/strings.xml rename to app/src/foss/res/values-ko/strings.xml diff --git a/app-common/src/foss/res/values-ky-rKG/strings.xml b/app/src/foss/res/values-ky-rKG/strings.xml similarity index 100% rename from app-common/src/foss/res/values-ky-rKG/strings.xml rename to app/src/foss/res/values-ky-rKG/strings.xml diff --git a/app-common/src/foss/res/values-lo-rLA/strings.xml b/app/src/foss/res/values-lo-rLA/strings.xml similarity index 100% rename from app-common/src/foss/res/values-lo-rLA/strings.xml rename to app/src/foss/res/values-lo-rLA/strings.xml diff --git a/app-common/src/foss/res/values-lt/strings.xml b/app/src/foss/res/values-lt/strings.xml similarity index 100% rename from app-common/src/foss/res/values-lt/strings.xml rename to app/src/foss/res/values-lt/strings.xml diff --git a/app-common/src/foss/res/values-lv/strings.xml b/app/src/foss/res/values-lv/strings.xml similarity index 100% rename from app-common/src/foss/res/values-lv/strings.xml rename to app/src/foss/res/values-lv/strings.xml diff --git a/app-common/src/foss/res/values-mk-rMK/strings.xml b/app/src/foss/res/values-mk-rMK/strings.xml similarity index 100% rename from app-common/src/foss/res/values-mk-rMK/strings.xml rename to app/src/foss/res/values-mk-rMK/strings.xml diff --git a/app-common/src/foss/res/values-ml-rIN/strings.xml b/app/src/foss/res/values-ml-rIN/strings.xml similarity index 100% rename from app-common/src/foss/res/values-ml-rIN/strings.xml rename to app/src/foss/res/values-ml-rIN/strings.xml diff --git a/app-common/src/foss/res/values-mn-rMN/strings.xml b/app/src/foss/res/values-mn-rMN/strings.xml similarity index 100% rename from app-common/src/foss/res/values-mn-rMN/strings.xml rename to app/src/foss/res/values-mn-rMN/strings.xml diff --git a/app-common/src/foss/res/values-mr-rIN/strings.xml b/app/src/foss/res/values-mr-rIN/strings.xml similarity index 100% rename from app-common/src/foss/res/values-mr-rIN/strings.xml rename to app/src/foss/res/values-mr-rIN/strings.xml diff --git a/app-common/src/foss/res/values-ms/strings.xml b/app/src/foss/res/values-ms/strings.xml similarity index 100% rename from app-common/src/foss/res/values-ms/strings.xml rename to app/src/foss/res/values-ms/strings.xml diff --git a/app-common/src/foss/res/values-my-rMM/strings.xml b/app/src/foss/res/values-my-rMM/strings.xml similarity index 100% rename from app-common/src/foss/res/values-my-rMM/strings.xml rename to app/src/foss/res/values-my-rMM/strings.xml diff --git a/app-common/src/foss/res/values-ne-rNP/strings.xml b/app/src/foss/res/values-ne-rNP/strings.xml similarity index 100% rename from app-common/src/foss/res/values-ne-rNP/strings.xml rename to app/src/foss/res/values-ne-rNP/strings.xml diff --git a/app-common/src/foss/res/values-nl/strings.xml b/app/src/foss/res/values-nl/strings.xml similarity index 100% rename from app-common/src/foss/res/values-nl/strings.xml rename to app/src/foss/res/values-nl/strings.xml diff --git a/app-common/src/foss/res/values-no/strings.xml b/app/src/foss/res/values-no/strings.xml similarity index 100% rename from app-common/src/foss/res/values-no/strings.xml rename to app/src/foss/res/values-no/strings.xml diff --git a/app-common/src/foss/res/values-pl/strings.xml b/app/src/foss/res/values-pl/strings.xml similarity index 100% rename from app-common/src/foss/res/values-pl/strings.xml rename to app/src/foss/res/values-pl/strings.xml diff --git a/app-common/src/foss/res/values-pt-rBR/strings.xml b/app/src/foss/res/values-pt-rBR/strings.xml similarity index 100% rename from app-common/src/foss/res/values-pt-rBR/strings.xml rename to app/src/foss/res/values-pt-rBR/strings.xml diff --git a/app-common/src/foss/res/values-pt/strings.xml b/app/src/foss/res/values-pt/strings.xml similarity index 100% rename from app-common/src/foss/res/values-pt/strings.xml rename to app/src/foss/res/values-pt/strings.xml diff --git a/app-common/src/foss/res/values-rm/strings.xml b/app/src/foss/res/values-rm/strings.xml similarity index 100% rename from app-common/src/foss/res/values-rm/strings.xml rename to app/src/foss/res/values-rm/strings.xml diff --git a/app-common/src/foss/res/values-ro/strings.xml b/app/src/foss/res/values-ro/strings.xml similarity index 100% rename from app-common/src/foss/res/values-ro/strings.xml rename to app/src/foss/res/values-ro/strings.xml diff --git a/app-common/src/foss/res/values-ru/strings.xml b/app/src/foss/res/values-ru/strings.xml similarity index 100% rename from app-common/src/foss/res/values-ru/strings.xml rename to app/src/foss/res/values-ru/strings.xml diff --git a/app-common/src/foss/res/values-sc-rIT/strings.xml b/app/src/foss/res/values-sc-rIT/strings.xml similarity index 100% rename from app-common/src/foss/res/values-sc-rIT/strings.xml rename to app/src/foss/res/values-sc-rIT/strings.xml diff --git a/app-common/src/foss/res/values-si-rLK/strings.xml b/app/src/foss/res/values-si-rLK/strings.xml similarity index 100% rename from app-common/src/foss/res/values-si-rLK/strings.xml rename to app/src/foss/res/values-si-rLK/strings.xml diff --git a/app-common/src/foss/res/values-sk/strings.xml b/app/src/foss/res/values-sk/strings.xml similarity index 100% rename from app-common/src/foss/res/values-sk/strings.xml rename to app/src/foss/res/values-sk/strings.xml diff --git a/app-common/src/foss/res/values-sl/strings.xml b/app/src/foss/res/values-sl/strings.xml similarity index 100% rename from app-common/src/foss/res/values-sl/strings.xml rename to app/src/foss/res/values-sl/strings.xml diff --git a/app-common/src/foss/res/values-sq-rAL/strings.xml b/app/src/foss/res/values-sq-rAL/strings.xml similarity index 100% rename from app-common/src/foss/res/values-sq-rAL/strings.xml rename to app/src/foss/res/values-sq-rAL/strings.xml diff --git a/app-common/src/foss/res/values-sr/strings.xml b/app/src/foss/res/values-sr/strings.xml similarity index 100% rename from app-common/src/foss/res/values-sr/strings.xml rename to app/src/foss/res/values-sr/strings.xml diff --git a/app-common/src/foss/res/values-sv/strings.xml b/app/src/foss/res/values-sv/strings.xml similarity index 100% rename from app-common/src/foss/res/values-sv/strings.xml rename to app/src/foss/res/values-sv/strings.xml diff --git a/app-common/src/foss/res/values-sw/strings.xml b/app/src/foss/res/values-sw/strings.xml similarity index 100% rename from app-common/src/foss/res/values-sw/strings.xml rename to app/src/foss/res/values-sw/strings.xml diff --git a/app-common/src/foss/res/values-ta-rIN/strings.xml b/app/src/foss/res/values-ta-rIN/strings.xml similarity index 100% rename from app-common/src/foss/res/values-ta-rIN/strings.xml rename to app/src/foss/res/values-ta-rIN/strings.xml diff --git a/app-common/src/foss/res/values-te-rIN/strings.xml b/app/src/foss/res/values-te-rIN/strings.xml similarity index 100% rename from app-common/src/foss/res/values-te-rIN/strings.xml rename to app/src/foss/res/values-te-rIN/strings.xml diff --git a/app-common/src/foss/res/values-th/strings.xml b/app/src/foss/res/values-th/strings.xml similarity index 100% rename from app-common/src/foss/res/values-th/strings.xml rename to app/src/foss/res/values-th/strings.xml diff --git a/app-common/src/foss/res/values-tr/strings.xml b/app/src/foss/res/values-tr/strings.xml similarity index 100% rename from app-common/src/foss/res/values-tr/strings.xml rename to app/src/foss/res/values-tr/strings.xml diff --git a/app-common/src/foss/res/values-uk/strings.xml b/app/src/foss/res/values-uk/strings.xml similarity index 100% rename from app-common/src/foss/res/values-uk/strings.xml rename to app/src/foss/res/values-uk/strings.xml diff --git a/app-common/src/foss/res/values-ur-rIN/strings.xml b/app/src/foss/res/values-ur-rIN/strings.xml similarity index 100% rename from app-common/src/foss/res/values-ur-rIN/strings.xml rename to app/src/foss/res/values-ur-rIN/strings.xml diff --git a/app-common/src/foss/res/values-uz/strings.xml b/app/src/foss/res/values-uz/strings.xml similarity index 100% rename from app-common/src/foss/res/values-uz/strings.xml rename to app/src/foss/res/values-uz/strings.xml diff --git a/app-common/src/foss/res/values-vi/strings.xml b/app/src/foss/res/values-vi/strings.xml similarity index 100% rename from app-common/src/foss/res/values-vi/strings.xml rename to app/src/foss/res/values-vi/strings.xml diff --git a/app-common/src/foss/res/values-zh-rCN/strings.xml b/app/src/foss/res/values-zh-rCN/strings.xml similarity index 100% rename from app-common/src/foss/res/values-zh-rCN/strings.xml rename to app/src/foss/res/values-zh-rCN/strings.xml diff --git a/app-common/src/foss/res/values-zh-rHK/strings.xml b/app/src/foss/res/values-zh-rHK/strings.xml similarity index 100% rename from app-common/src/foss/res/values-zh-rHK/strings.xml rename to app/src/foss/res/values-zh-rHK/strings.xml diff --git a/app-common/src/foss/res/values-zh-rTW/strings.xml b/app/src/foss/res/values-zh-rTW/strings.xml similarity index 100% rename from app-common/src/foss/res/values-zh-rTW/strings.xml rename to app/src/foss/res/values-zh-rTW/strings.xml diff --git a/app-common/src/foss/res/values-zu/strings.xml b/app/src/foss/res/values-zu/strings.xml similarity index 100% rename from app-common/src/foss/res/values-zu/strings.xml rename to app/src/foss/res/values-zu/strings.xml diff --git a/app-common/src/foss/res/values/strings.xml b/app/src/foss/res/values/strings.xml similarity index 100% rename from app-common/src/foss/res/values/strings.xml rename to app/src/foss/res/values/strings.xml diff --git a/app-common/src/gplay/res/values-af-rZA/strings.xml b/app/src/gplay/res/values-af-rZA/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-af-rZA/strings.xml rename to app/src/gplay/res/values-af-rZA/strings.xml diff --git a/app-common/src/gplay/res/values-am/strings.xml b/app/src/gplay/res/values-am/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-am/strings.xml rename to app/src/gplay/res/values-am/strings.xml diff --git a/app-common/src/gplay/res/values-ar/strings.xml b/app/src/gplay/res/values-ar/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-ar/strings.xml rename to app/src/gplay/res/values-ar/strings.xml diff --git a/app-common/src/gplay/res/values-az/strings.xml b/app/src/gplay/res/values-az/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-az/strings.xml rename to app/src/gplay/res/values-az/strings.xml diff --git a/app-common/src/gplay/res/values-be/strings.xml b/app/src/gplay/res/values-be/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-be/strings.xml rename to app/src/gplay/res/values-be/strings.xml diff --git a/app-common/src/gplay/res/values-bg/strings.xml b/app/src/gplay/res/values-bg/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-bg/strings.xml rename to app/src/gplay/res/values-bg/strings.xml diff --git a/app-common/src/gplay/res/values-bn-rBD/strings.xml b/app/src/gplay/res/values-bn-rBD/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-bn-rBD/strings.xml rename to app/src/gplay/res/values-bn-rBD/strings.xml diff --git a/app-common/src/gplay/res/values-ca/strings.xml b/app/src/gplay/res/values-ca/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-ca/strings.xml rename to app/src/gplay/res/values-ca/strings.xml diff --git a/app-common/src/gplay/res/values-cs/strings.xml b/app/src/gplay/res/values-cs/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-cs/strings.xml rename to app/src/gplay/res/values-cs/strings.xml diff --git a/app-common/src/gplay/res/values-da/strings.xml b/app/src/gplay/res/values-da/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-da/strings.xml rename to app/src/gplay/res/values-da/strings.xml diff --git a/app-common/src/gplay/res/values-de/strings.xml b/app/src/gplay/res/values-de/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-de/strings.xml rename to app/src/gplay/res/values-de/strings.xml diff --git a/app-common/src/gplay/res/values-el/strings.xml b/app/src/gplay/res/values-el/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-el/strings.xml rename to app/src/gplay/res/values-el/strings.xml diff --git a/app-common/src/gplay/res/values-es-rAR/strings.xml b/app/src/gplay/res/values-es-rAR/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-es-rAR/strings.xml rename to app/src/gplay/res/values-es-rAR/strings.xml diff --git a/app-common/src/gplay/res/values-es-rMX/strings.xml b/app/src/gplay/res/values-es-rMX/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-es-rMX/strings.xml rename to app/src/gplay/res/values-es-rMX/strings.xml diff --git a/app-common/src/gplay/res/values-es/strings.xml b/app/src/gplay/res/values-es/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-es/strings.xml rename to app/src/gplay/res/values-es/strings.xml diff --git a/app-common/src/gplay/res/values-et-rEE/strings.xml b/app/src/gplay/res/values-et-rEE/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-et-rEE/strings.xml rename to app/src/gplay/res/values-et-rEE/strings.xml diff --git a/app-common/src/gplay/res/values-eu-rES/strings.xml b/app/src/gplay/res/values-eu-rES/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-eu-rES/strings.xml rename to app/src/gplay/res/values-eu-rES/strings.xml diff --git a/app-common/src/gplay/res/values-fa/strings.xml b/app/src/gplay/res/values-fa/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-fa/strings.xml rename to app/src/gplay/res/values-fa/strings.xml diff --git a/app-common/src/gplay/res/values-fi/strings.xml b/app/src/gplay/res/values-fi/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-fi/strings.xml rename to app/src/gplay/res/values-fi/strings.xml diff --git a/app-common/src/gplay/res/values-fil/strings.xml b/app/src/gplay/res/values-fil/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-fil/strings.xml rename to app/src/gplay/res/values-fil/strings.xml diff --git a/app-common/src/gplay/res/values-fr/strings.xml b/app/src/gplay/res/values-fr/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-fr/strings.xml rename to app/src/gplay/res/values-fr/strings.xml diff --git a/app-common/src/gplay/res/values-gl-rES/strings.xml b/app/src/gplay/res/values-gl-rES/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-gl-rES/strings.xml rename to app/src/gplay/res/values-gl-rES/strings.xml diff --git a/app-common/src/gplay/res/values-hi-rIN/strings.xml b/app/src/gplay/res/values-hi-rIN/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-hi-rIN/strings.xml rename to app/src/gplay/res/values-hi-rIN/strings.xml diff --git a/app-common/src/gplay/res/values-hr/strings.xml b/app/src/gplay/res/values-hr/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-hr/strings.xml rename to app/src/gplay/res/values-hr/strings.xml diff --git a/app-common/src/gplay/res/values-hu/strings.xml b/app/src/gplay/res/values-hu/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-hu/strings.xml rename to app/src/gplay/res/values-hu/strings.xml diff --git a/app-common/src/gplay/res/values-hy-rAM/strings.xml b/app/src/gplay/res/values-hy-rAM/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-hy-rAM/strings.xml rename to app/src/gplay/res/values-hy-rAM/strings.xml diff --git a/app-common/src/gplay/res/values-in/strings.xml b/app/src/gplay/res/values-in/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-in/strings.xml rename to app/src/gplay/res/values-in/strings.xml diff --git a/app-common/src/gplay/res/values-is/strings.xml b/app/src/gplay/res/values-is/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-is/strings.xml rename to app/src/gplay/res/values-is/strings.xml diff --git a/app-common/src/gplay/res/values-it/strings.xml b/app/src/gplay/res/values-it/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-it/strings.xml rename to app/src/gplay/res/values-it/strings.xml diff --git a/app-common/src/gplay/res/values-iw/strings.xml b/app/src/gplay/res/values-iw/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-iw/strings.xml rename to app/src/gplay/res/values-iw/strings.xml diff --git a/app-common/src/gplay/res/values-ja/strings.xml b/app/src/gplay/res/values-ja/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-ja/strings.xml rename to app/src/gplay/res/values-ja/strings.xml diff --git a/app-common/src/gplay/res/values-ka-rGE/strings.xml b/app/src/gplay/res/values-ka-rGE/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-ka-rGE/strings.xml rename to app/src/gplay/res/values-ka-rGE/strings.xml diff --git a/app-common/src/gplay/res/values-km-rKH/strings.xml b/app/src/gplay/res/values-km-rKH/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-km-rKH/strings.xml rename to app/src/gplay/res/values-km-rKH/strings.xml diff --git a/app-common/src/gplay/res/values-kmr-rTR/strings.xml b/app/src/gplay/res/values-kmr-rTR/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-kmr-rTR/strings.xml rename to app/src/gplay/res/values-kmr-rTR/strings.xml diff --git a/app-common/src/gplay/res/values-kn-rIN/strings.xml b/app/src/gplay/res/values-kn-rIN/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-kn-rIN/strings.xml rename to app/src/gplay/res/values-kn-rIN/strings.xml diff --git a/app-common/src/gplay/res/values-ko/strings.xml b/app/src/gplay/res/values-ko/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-ko/strings.xml rename to app/src/gplay/res/values-ko/strings.xml diff --git a/app-common/src/gplay/res/values-ky-rKG/strings.xml b/app/src/gplay/res/values-ky-rKG/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-ky-rKG/strings.xml rename to app/src/gplay/res/values-ky-rKG/strings.xml diff --git a/app-common/src/gplay/res/values-lo-rLA/strings.xml b/app/src/gplay/res/values-lo-rLA/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-lo-rLA/strings.xml rename to app/src/gplay/res/values-lo-rLA/strings.xml diff --git a/app-common/src/gplay/res/values-lt/strings.xml b/app/src/gplay/res/values-lt/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-lt/strings.xml rename to app/src/gplay/res/values-lt/strings.xml diff --git a/app-common/src/gplay/res/values-lv/strings.xml b/app/src/gplay/res/values-lv/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-lv/strings.xml rename to app/src/gplay/res/values-lv/strings.xml diff --git a/app-common/src/gplay/res/values-mk-rMK/strings.xml b/app/src/gplay/res/values-mk-rMK/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-mk-rMK/strings.xml rename to app/src/gplay/res/values-mk-rMK/strings.xml diff --git a/app-common/src/gplay/res/values-ml-rIN/strings.xml b/app/src/gplay/res/values-ml-rIN/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-ml-rIN/strings.xml rename to app/src/gplay/res/values-ml-rIN/strings.xml diff --git a/app-common/src/gplay/res/values-mn-rMN/strings.xml b/app/src/gplay/res/values-mn-rMN/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-mn-rMN/strings.xml rename to app/src/gplay/res/values-mn-rMN/strings.xml diff --git a/app-common/src/gplay/res/values-mr-rIN/strings.xml b/app/src/gplay/res/values-mr-rIN/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-mr-rIN/strings.xml rename to app/src/gplay/res/values-mr-rIN/strings.xml diff --git a/app-common/src/gplay/res/values-ms/strings.xml b/app/src/gplay/res/values-ms/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-ms/strings.xml rename to app/src/gplay/res/values-ms/strings.xml diff --git a/app-common/src/gplay/res/values-my-rMM/strings.xml b/app/src/gplay/res/values-my-rMM/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-my-rMM/strings.xml rename to app/src/gplay/res/values-my-rMM/strings.xml diff --git a/app-common/src/gplay/res/values-ne-rNP/strings.xml b/app/src/gplay/res/values-ne-rNP/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-ne-rNP/strings.xml rename to app/src/gplay/res/values-ne-rNP/strings.xml diff --git a/app-common/src/gplay/res/values-nl/strings.xml b/app/src/gplay/res/values-nl/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-nl/strings.xml rename to app/src/gplay/res/values-nl/strings.xml diff --git a/app-common/src/gplay/res/values-no/strings.xml b/app/src/gplay/res/values-no/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-no/strings.xml rename to app/src/gplay/res/values-no/strings.xml diff --git a/app-common/src/gplay/res/values-pl/strings.xml b/app/src/gplay/res/values-pl/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-pl/strings.xml rename to app/src/gplay/res/values-pl/strings.xml diff --git a/app-common/src/gplay/res/values-pt-rBR/strings.xml b/app/src/gplay/res/values-pt-rBR/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-pt-rBR/strings.xml rename to app/src/gplay/res/values-pt-rBR/strings.xml diff --git a/app-common/src/gplay/res/values-pt/strings.xml b/app/src/gplay/res/values-pt/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-pt/strings.xml rename to app/src/gplay/res/values-pt/strings.xml diff --git a/app-common/src/gplay/res/values-rm/strings.xml b/app/src/gplay/res/values-rm/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-rm/strings.xml rename to app/src/gplay/res/values-rm/strings.xml diff --git a/app-common/src/gplay/res/values-ro/strings.xml b/app/src/gplay/res/values-ro/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-ro/strings.xml rename to app/src/gplay/res/values-ro/strings.xml diff --git a/app-common/src/gplay/res/values-ru/strings.xml b/app/src/gplay/res/values-ru/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-ru/strings.xml rename to app/src/gplay/res/values-ru/strings.xml diff --git a/app-common/src/gplay/res/values-sc-rIT/strings.xml b/app/src/gplay/res/values-sc-rIT/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-sc-rIT/strings.xml rename to app/src/gplay/res/values-sc-rIT/strings.xml diff --git a/app-common/src/gplay/res/values-si-rLK/strings.xml b/app/src/gplay/res/values-si-rLK/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-si-rLK/strings.xml rename to app/src/gplay/res/values-si-rLK/strings.xml diff --git a/app-common/src/gplay/res/values-sk/strings.xml b/app/src/gplay/res/values-sk/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-sk/strings.xml rename to app/src/gplay/res/values-sk/strings.xml diff --git a/app-common/src/gplay/res/values-sl/strings.xml b/app/src/gplay/res/values-sl/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-sl/strings.xml rename to app/src/gplay/res/values-sl/strings.xml diff --git a/app-common/src/gplay/res/values-sq-rAL/strings.xml b/app/src/gplay/res/values-sq-rAL/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-sq-rAL/strings.xml rename to app/src/gplay/res/values-sq-rAL/strings.xml diff --git a/app-common/src/gplay/res/values-sr/strings.xml b/app/src/gplay/res/values-sr/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-sr/strings.xml rename to app/src/gplay/res/values-sr/strings.xml diff --git a/app-common/src/gplay/res/values-sv/strings.xml b/app/src/gplay/res/values-sv/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-sv/strings.xml rename to app/src/gplay/res/values-sv/strings.xml diff --git a/app-common/src/gplay/res/values-sw/strings.xml b/app/src/gplay/res/values-sw/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-sw/strings.xml rename to app/src/gplay/res/values-sw/strings.xml diff --git a/app-common/src/gplay/res/values-ta-rIN/strings.xml b/app/src/gplay/res/values-ta-rIN/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-ta-rIN/strings.xml rename to app/src/gplay/res/values-ta-rIN/strings.xml diff --git a/app-common/src/gplay/res/values-te-rIN/strings.xml b/app/src/gplay/res/values-te-rIN/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-te-rIN/strings.xml rename to app/src/gplay/res/values-te-rIN/strings.xml diff --git a/app-common/src/gplay/res/values-th/strings.xml b/app/src/gplay/res/values-th/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-th/strings.xml rename to app/src/gplay/res/values-th/strings.xml diff --git a/app-common/src/gplay/res/values-tr/strings.xml b/app/src/gplay/res/values-tr/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-tr/strings.xml rename to app/src/gplay/res/values-tr/strings.xml diff --git a/app-common/src/gplay/res/values-uk/strings.xml b/app/src/gplay/res/values-uk/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-uk/strings.xml rename to app/src/gplay/res/values-uk/strings.xml diff --git a/app-common/src/gplay/res/values-ur-rIN/strings.xml b/app/src/gplay/res/values-ur-rIN/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-ur-rIN/strings.xml rename to app/src/gplay/res/values-ur-rIN/strings.xml diff --git a/app-common/src/gplay/res/values-uz/strings.xml b/app/src/gplay/res/values-uz/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-uz/strings.xml rename to app/src/gplay/res/values-uz/strings.xml diff --git a/app-common/src/gplay/res/values-vi/strings.xml b/app/src/gplay/res/values-vi/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-vi/strings.xml rename to app/src/gplay/res/values-vi/strings.xml diff --git a/app-common/src/gplay/res/values-zh-rCN/strings.xml b/app/src/gplay/res/values-zh-rCN/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-zh-rCN/strings.xml rename to app/src/gplay/res/values-zh-rCN/strings.xml diff --git a/app-common/src/gplay/res/values-zh-rHK/strings.xml b/app/src/gplay/res/values-zh-rHK/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-zh-rHK/strings.xml rename to app/src/gplay/res/values-zh-rHK/strings.xml diff --git a/app-common/src/gplay/res/values-zh-rTW/strings.xml b/app/src/gplay/res/values-zh-rTW/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-zh-rTW/strings.xml rename to app/src/gplay/res/values-zh-rTW/strings.xml diff --git a/app-common/src/gplay/res/values-zu/strings.xml b/app/src/gplay/res/values-zu/strings.xml similarity index 100% rename from app-common/src/gplay/res/values-zu/strings.xml rename to app/src/gplay/res/values-zu/strings.xml diff --git a/app-common/src/gplay/res/values/strings.xml b/app/src/gplay/res/values/strings.xml similarity index 100% rename from app-common/src/gplay/res/values/strings.xml rename to app/src/gplay/res/values/strings.xml diff --git a/app/src/testShared/java/testhelpers/BaseTestInstrumentation.kt b/app/src/testShared/java/testhelpers/BaseTestInstrumentation.kt deleted file mode 100644 index 82dd848a..00000000 --- a/app/src/testShared/java/testhelpers/BaseTestInstrumentation.kt +++ /dev/null @@ -1,29 +0,0 @@ -package testhelpers - -import eu.darken.capod.common.debug.logging.Logging -import eu.darken.capod.common.debug.logging.Logging.Priority.VERBOSE -import eu.darken.capod.common.debug.logging.log -import io.mockk.unmockkAll -import org.junit.AfterClass -import testhelpers.logging.JUnitLogger - -abstract class BaseTestInstrumentation { - - init { - Logging.clearAll() - Logging.install(JUnitLogger()) - testClassName = this.javaClass.simpleName - } - - companion object { - private var testClassName: String? = null - - @JvmStatic - @AfterClass - fun onTestClassFinished() { - unmockkAll() - log(testClassName!!, VERBOSE) { "onTestClassFinished()" } - Logging.clearAll() - } - } -} diff --git a/buildSrc/src/main/java/Dependencies.kt b/buildSrc/src/main/java/Dependencies.kt index 4ce55509..d6be1d74 100644 --- a/buildSrc/src/main/java/Dependencies.kt +++ b/buildSrc/src/main/java/Dependencies.kt @@ -107,8 +107,6 @@ fun DependencyHandlerScope.addBaseAndroidUi() { implementation("androidx.lifecycle:lifecycle-common-java8:$lifecycleVers") implementation("androidx.lifecycle:lifecycle-process:$lifecycleVers") implementation("androidx.lifecycle:lifecycle-livedata-ktx:$lifecycleVers") - - implementation("androidx.core:core-splashscreen:1.0.0-alpha02") } fun DependencyHandlerScope.addTesting(junit: Boolean = true, instrumentation: Boolean = true) {