From 797e0ee7066787dc31ec8253aed0cae4a177c8aa Mon Sep 17 00:00:00 2001
From: Adam Brown <adampsbrown@gmail.com>
Date: Thu, 12 May 2022 12:33:23 +0100
Subject: [PATCH] creating a build meta abstraction for allowing testing
 classes with build version checks

---
 .../im/vector/app/core/di/SingletonModule.kt  |  6 +++++
 .../im/vector/app/core/resources/BuildMeta.kt | 23 +++++++++++++++++++
 .../app/test/fixtures/BuildMetaFixture.kt     | 22 ++++++++++++++++++
 3 files changed, 51 insertions(+)
 create mode 100644 vector/src/main/java/im/vector/app/core/resources/BuildMeta.kt
 create mode 100644 vector/src/test/java/im/vector/app/test/fixtures/BuildMetaFixture.kt

diff --git a/vector/src/main/java/im/vector/app/core/di/SingletonModule.kt b/vector/src/main/java/im/vector/app/core/di/SingletonModule.kt
index 2945ae7d87..22ce4ee0ce 100644
--- a/vector/src/main/java/im/vector/app/core/di/SingletonModule.kt
+++ b/vector/src/main/java/im/vector/app/core/di/SingletonModule.kt
@@ -33,6 +33,7 @@ import im.vector.app.config.analyticsConfig
 import im.vector.app.core.dispatchers.CoroutineDispatchers
 import im.vector.app.core.error.DefaultErrorFormatter
 import im.vector.app.core.error.ErrorFormatter
+import im.vector.app.core.resources.BuildMeta
 import im.vector.app.core.time.Clock
 import im.vector.app.core.time.DefaultClock
 import im.vector.app.features.analytics.AnalyticsConfig
@@ -185,4 +186,9 @@ object VectorStaticModule {
     fun providesAnalyticsConfig(): AnalyticsConfig {
         return analyticsConfig
     }
+
+
+    @Provides
+    @Singleton
+    fun providesBuildMeta() = BuildMeta()
 }
diff --git a/vector/src/main/java/im/vector/app/core/resources/BuildMeta.kt b/vector/src/main/java/im/vector/app/core/resources/BuildMeta.kt
new file mode 100644
index 0000000000..14d97e4c8f
--- /dev/null
+++ b/vector/src/main/java/im/vector/app/core/resources/BuildMeta.kt
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2022 New Vector Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package im.vector.app.core.resources
+
+import android.os.Build
+
+data class BuildMeta(
+        val sdkInt: Int = Build.VERSION.SDK_INT
+)
diff --git a/vector/src/test/java/im/vector/app/test/fixtures/BuildMetaFixture.kt b/vector/src/test/java/im/vector/app/test/fixtures/BuildMetaFixture.kt
new file mode 100644
index 0000000000..b0e6b1dd51
--- /dev/null
+++ b/vector/src/test/java/im/vector/app/test/fixtures/BuildMetaFixture.kt
@@ -0,0 +1,22 @@
+/*
+ * Copyright (c) 2022 New Vector Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package im.vector.app.test.fixtures
+
+import android.os.Build
+import im.vector.app.core.resources.BuildMeta
+
+fun aBuildMeta() = BuildMeta(Build.VERSION_CODES.O)