Added configuration to support QR scanning.

This commit is contained in:
Kevin Gorham 2020-01-08 03:42:49 -05:00
parent 8ef4edd88b
commit 4922d690e9
No known key found for this signature in database
GPG Key ID: CCA55602DF49FC38
9 changed files with 36 additions and 7 deletions

View File

@ -4,6 +4,7 @@ apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'com.google.gms.google-services'
//apply plugin: 'com.github.ben-manes.versions'
archivesBaseName = 'zcash-android-wallet'
@ -135,6 +136,14 @@ dependencies {
implementation 'com.mixpanel.android:mixpanel-android:5.6.3'
// QR Scanning
implementation 'com.google.firebase:firebase-ml-vision:24.0.1'
implementation 'androidx.camera:camera-core:1.0.0-alpha08'
implementation 'androidx.camera:camera-camera2:1.0.0-alpha08'
implementation "androidx.camera:camera-view:1.0.0-alpha05"
implementation "androidx.camera:camera-extensions:1.0.0-alpha05"
implementation "androidx.camera:camera-lifecycle:1.0.0-alpha02"
// Tests
implementation 'androidx.legacy:legacy-support-v4:1.0.0'

View File

@ -3,6 +3,7 @@
package="cash.z.ecc.android">
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.CAMERA" />
<application
android:name="cash.z.ecc.android.ZcashWalletApp"
@ -19,6 +20,9 @@
</intent-filter>
</activity>
<!-- Firebase options -->
<meta-data android:name="com.google.firebase.ml.vision.DEPENDENCIES" android:value="barcode" />
<!-- Mixpanel options -->
<meta-data android:name="com.mixpanel.android.MPConfig.AutoShowMixpanelUpdates" android:value="false" />
<meta-data android:name="com.mixpanel.android.MPConfig.EnableDebugLogging" android:value="false" />

View File

@ -3,6 +3,8 @@ package cash.z.ecc.android
import android.app.Application
import android.content.Context
import android.os.Build
import androidx.camera.camera2.Camera2Config
import androidx.camera.core.CameraXConfig
import cash.z.ecc.android.di.component.AppComponent
import cash.z.ecc.android.di.component.DaggerAppComponent
import cash.z.wallet.sdk.ext.TroubleshootingTwig
@ -10,7 +12,7 @@ import cash.z.wallet.sdk.ext.Twig
import cash.z.wallet.sdk.ext.twig
class ZcashWalletApp : Application() {
class ZcashWalletApp : Application(), CameraXConfig.Provider {
var creationTime: Long = 0
private set
@ -33,6 +35,10 @@ class ZcashWalletApp : Application() {
// MultiDex.install(this)
}
override fun getCameraXConfig(): CameraXConfig {
return Camera2Config.defaultConfig()
}
companion object {
lateinit var instance: ZcashWalletApp
lateinit var component: AppComponent

View File

@ -9,6 +9,7 @@ import cash.z.ecc.android.di.viewmodel.ViewModelFactory
import cash.z.ecc.android.ui.detail.WalletDetailViewModel
import cash.z.ecc.android.ui.home.HomeViewModel
import cash.z.ecc.android.ui.receive.ReceiveViewModel
import cash.z.ecc.android.ui.scan.ScanViewModel
import cash.z.ecc.android.ui.send.SendViewModel
import dagger.Binds
import dagger.Module
@ -44,6 +45,11 @@ abstract class ViewModelsSynchronizerModule {
@ViewModelKey(ReceiveViewModel::class)
abstract fun bindReceiveViewModel(implementation: ReceiveViewModel): ViewModel
@SynchronizerScope
@Binds
@IntoMap
@ViewModelKey(ScanViewModel::class)
abstract fun bindScanViewModel(implementation: ScanViewModel): ViewModel
/**
* Factory for view models that are not created until the Synchronizer exists. Only VMs that

View File

@ -6,6 +6,7 @@ import android.view.View
import androidx.lifecycle.lifecycleScope
import cash.z.ecc.android.R
import cash.z.ecc.android.databinding.FragmentSendConfirmBinding
import cash.z.ecc.android.di.viewmodel.activityViewModel
import cash.z.ecc.android.di.viewmodel.viewModel
import cash.z.ecc.android.ext.goneIf
import cash.z.ecc.android.ext.onClickNavBack
@ -16,7 +17,7 @@ import kotlinx.coroutines.launch
class SendConfirmFragment : BaseFragment<FragmentSendConfirmBinding>() {
val sendViewModel: SendViewModel by viewModel()
val sendViewModel: SendViewModel by activityViewModel()
override fun inflate(inflater: LayoutInflater): FragmentSendConfirmBinding =
FragmentSendConfirmBinding.inflate(inflater)

View File

@ -7,6 +7,7 @@ import android.view.View
import androidx.lifecycle.lifecycleScope
import cash.z.ecc.android.R
import cash.z.ecc.android.databinding.FragmentSendFinalBinding
import cash.z.ecc.android.di.viewmodel.activityViewModel
import cash.z.ecc.android.di.viewmodel.viewModel
import cash.z.ecc.android.ext.goneIf
import cash.z.ecc.android.ui.base.BaseFragment
@ -22,7 +23,7 @@ import kotlin.random.Random
class SendFinalFragment : BaseFragment<FragmentSendFinalBinding>() {
val sendViewModel: SendViewModel by viewModel()
val sendViewModel: SendViewModel by activityViewModel()
override fun inflate(inflater: LayoutInflater): FragmentSendFinalBinding =
FragmentSendFinalBinding.inflate(inflater)

View File

@ -6,13 +6,14 @@ import android.view.View
import android.view.inputmethod.EditorInfo
import cash.z.ecc.android.R
import cash.z.ecc.android.databinding.FragmentSendMemoBinding
import cash.z.ecc.android.di.viewmodel.activityViewModel
import cash.z.ecc.android.di.viewmodel.viewModel
import cash.z.ecc.android.ext.onClickNavBack
import cash.z.ecc.android.ui.base.BaseFragment
class SendMemoFragment : BaseFragment<FragmentSendMemoBinding>() {
val sendViewModel: SendViewModel by viewModel()
val sendViewModel: SendViewModel by activityViewModel()
override fun inflate(inflater: LayoutInflater): FragmentSendMemoBinding =
FragmentSendMemoBinding.inflate(inflater)

View File

@ -6,7 +6,8 @@ buildscript {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.0-beta04'
classpath 'com.android.tools.build:gradle:3.6.0-rc01'
classpath 'com.google.gms:google-services:4.3.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${Deps.kotlinVersion}"
}
}

View File

@ -1,6 +1,6 @@
#Sun Nov 24 16:57:24 EST 2019
#Tue Jan 07 12:00:21 EST 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.1-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip