Skip to content

Commit b7a36eb

Browse files
committed
feat: pull kik code scanner impl into own vendor module
Signed-off-by: Brandon McAnsh <[email protected]>
1 parent 89ad881 commit b7a36eb

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+101
-20
lines changed

apps/codeApp/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,6 @@ android {
111111
}
112112

113113
dependencies {
114-
implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar"))))
115-
116114
// libs (not included with services)
117115
implementation(project(":libs:locale"))
118116
implementation(project(":libs:vibrator"))
@@ -132,6 +130,8 @@ dependencies {
132130
implementation(project(":ui:resources"))
133131
implementation(project(":ui:theme"))
134132

133+
// kik code scanner
134+
implementation(project(":vendor:kik:scanner"))
135135
// tipkit
136136
implementation(project(":vendor:tipkit:tipkit-m2"))
137137

apps/codeApp/src/main/java/com/getcode/inject/AppModule.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ import android.os.VibratorManager
1010
import android.telephony.TelephonyManager
1111
import androidx.biometric.BiometricManager
1212
import androidx.core.app.NotificationManagerCompat
13+
import com.getcode.analytics.CodeAnalyticsService
14+
import com.getcode.media.StaticImageAnalyzer
15+
import com.getcode.media.StaticImageHelper
1316
import com.getcode.util.AndroidLocale
1417
import com.getcode.util.AndroidPermissions
1518
import com.getcode.util.vibration.Api25Vibrator
@@ -125,4 +128,11 @@ object AppModule {
125128
@Provides
126129
@Singleton
127130
fun providesCodeScanner(): KikCodeScanner = KikCodeScannerImpl()
131+
132+
@Provides
133+
fun providesStaticImageAnalysis(
134+
@ApplicationContext context: Context,
135+
scanner: KikCodeScanner,
136+
analyticsService: CodeAnalyticsService
137+
): StaticImageAnalyzer = StaticImageHelper(context, scanner, analyticsService)
128138
}

apps/codeApp/src/main/java/com/kik/kikx/kikcodes/implementation/StaticImageHelper.kt renamed to apps/codeApp/src/main/java/com/getcode/media/StaticImageHelper.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.kik.kikx.kikcodes.implementation
1+
package com.getcode.media
22

33
import android.content.Context
44
import android.graphics.Bitmap
@@ -24,14 +24,15 @@ import java.io.File
2424
import java.util.Date
2525
import java.util.Locale
2626
import javax.inject.Inject
27+
import androidx.core.graphics.scale
2728

2829
class StaticImageHelper @Inject constructor(
2930
@ApplicationContext
3031
private val context: Context,
3132
private val scanner: KikCodeScanner,
3233
private val analytics: CodeAnalyticsService,
33-
) {
34-
suspend fun analyze(uri: Uri): Result<ScannableKikCode> {
34+
): StaticImageAnalyzer {
35+
override suspend fun analyze(uri: Uri): Result<ScannableKikCode> {
3536
val bitmap = context.uriToBitmap(uri)
3637
return if (bitmap != null) {
3738
detectCodeInImage(bitmap) { image, quality ->
@@ -221,8 +222,7 @@ class StaticImageHelper @Inject constructor(
221222
val yOffset = (bitmap.height - cropHeight) / 2
222223

223224
val croppedBitmap = Bitmap.createBitmap(bitmap, xOffset, yOffset, cropWidth, cropHeight)
224-
val scaledBitmap =
225-
Bitmap.createScaledBitmap(croppedBitmap, bitmap.width, bitmap.height, true)
225+
val scaledBitmap = croppedBitmap.scale(bitmap.width, bitmap.height)
226226

227227
croppedBitmap.recycle()
228228
return scaledBitmap

apps/codeApp/src/main/java/com/getcode/view/main/scanner/camera/CodeScanner.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import com.getcode.libs.biometrics.Biometrics
3434
import com.getcode.theme.CodeTheme
3535
import com.getcode.ui.components.OnLifecycleEvent
3636
import com.getcode.ui.utils.AnimationUtils
37+
import com.getcode.utils.ErrorUtils
3738
import com.getcode.utils.trace
3839
import com.kik.kikx.kikcodes.implementation.KikCodeScannerImpl
3940
import com.kik.kikx.kikcodes.implementation.rememberKikCodeAnalyzer
@@ -89,7 +90,11 @@ fun CodeScanner(
8990
var autoFocusPoint by remember { mutableStateOf(Offset.Unspecified) }
9091
var gestureController by remember { mutableStateOf<CameraGestureController?>(null) }
9192

92-
val kikCodeAnalyzer = rememberKikCodeAnalyzer(scanner, onCodeScanned)
93+
val kikCodeAnalyzer = rememberKikCodeAnalyzer(
94+
scanner = scanner,
95+
onCodeScanned = onCodeScanned,
96+
onError = { ErrorUtils.handleError(it) }
97+
)
9398

9499
val biometricsState = LocalBiometricsState.current
95100

settings.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ include(
6161
":ui:theme",
6262

6363
// 3rd party imported dependencies
64+
":vendor:kik:scanner",
6465
":vendor:tipkit:tipkit",
6566
":vendor:tipkit:tipkit-m2",
6667
)

vendor/kik/scanner/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
build/
2+
.gradle/
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
plugins {
2+
id(Plugins.android_library)
3+
id(Plugins.kotlin_android)
4+
}
5+
6+
android {
7+
namespace = "com.kik.kikx"
8+
compileSdk = Android.compileSdkVersion
9+
defaultConfig {
10+
minSdk = Android.minSdkVersion
11+
targetSdk = Android.targetSdkVersion
12+
buildToolsVersion = Android.buildToolsVersion
13+
testInstrumentationRunner = Android.testInstrumentationRunner
14+
}
15+
16+
kotlinOptions {
17+
jvmTarget = Versions.java
18+
freeCompilerArgs += listOf(
19+
"-opt-in=kotlin.ExperimentalUnsignedTypes",
20+
"-opt-in=kotlin.RequiresOptIn"
21+
)
22+
}
23+
24+
java {
25+
toolchain {
26+
languageVersion.set(JavaLanguageVersion.of(Versions.java))
27+
}
28+
}
29+
30+
compileOptions {
31+
sourceCompatibility = JavaVersion.VERSION_17
32+
targetCompatibility = JavaVersion.VERSION_17
33+
}
34+
35+
kotlin {
36+
jvmToolchain(17)
37+
}
38+
39+
buildFeatures {
40+
compose = true
41+
}
42+
43+
composeOptions {
44+
kotlinCompilerExtensionVersion = Versions.compose_compiler
45+
}
46+
}
47+
48+
dependencies {
49+
api(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar"))))
50+
implementation(platform(Libs.compose_bom))
51+
implementation(Libs.compose_ui)
52+
implementation(Libs.androidx_camerax_core)
53+
implementation(Libs.inject)
54+
implementation(Libs.hilt)
55+
}
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)