From 8fb56ff80c9b2ecbd4e2afa83f7f811ad54603cd Mon Sep 17 00:00:00 2001 From: Kevin Gorham Date: Fri, 7 May 2021 03:54:18 -0400 Subject: [PATCH] Improvement: Simplify Initializer to get rid of unnecessary inheritance. --- .../java/cash/z/ecc/android/sdk/Initializer.kt | 16 ++++++++-------- .../cash/z/ecc/android/sdk/SdkSynchronizer.kt | 12 +----------- 2 files changed, 9 insertions(+), 19 deletions(-) diff --git a/src/main/java/cash/z/ecc/android/sdk/Initializer.kt b/src/main/java/cash/z/ecc/android/sdk/Initializer.kt index 74a3eb41..e673c512 100644 --- a/src/main/java/cash/z/ecc/android/sdk/Initializer.kt +++ b/src/main/java/cash/z/ecc/android/sdk/Initializer.kt @@ -16,13 +16,13 @@ import java.io.File /** * Simplified Initializer focused on starting from a ViewingKey. */ -class Initializer constructor(appContext: Context, onCriticalErrorHandler: ((Throwable?) -> Boolean)? = null, config: Config) : SdkSynchronizer.SdkInitializer { - override val context = appContext.applicationContext - override val rustBackend: RustBackend - override val network: ZcashNetwork - override val alias: String - override val host: String - override val port: Int +class Initializer constructor(appContext: Context, onCriticalErrorHandler: ((Throwable?) -> Boolean)? = null, config: Config) { + val context = appContext.applicationContext + val rustBackend: RustBackend + val network: ZcashNetwork + val alias: String + val host: String + val port: Int val viewingKeys: List val birthday: WalletBirthday @@ -32,7 +32,7 @@ class Initializer constructor(appContext: Context, onCriticalErrorHandler: ((Thr * function has a return value is so that all error handlers work with the same signature which * allows one function to handle all errors in simple apps. */ - override var onCriticalErrorHandler: ((Throwable?) -> Boolean)? = onCriticalErrorHandler + var onCriticalErrorHandler: ((Throwable?) -> Boolean)? = onCriticalErrorHandler /** * True when accounts have been created by this initializer. diff --git a/src/main/java/cash/z/ecc/android/sdk/SdkSynchronizer.kt b/src/main/java/cash/z/ecc/android/sdk/SdkSynchronizer.kt index 301e1911..d9241a35 100644 --- a/src/main/java/cash/z/ecc/android/sdk/SdkSynchronizer.kt +++ b/src/main/java/cash/z/ecc/android/sdk/SdkSynchronizer.kt @@ -691,16 +691,6 @@ class SdkSynchronizer internal constructor( ) } - interface SdkInitializer { - val context: Context - val rustBackend: RustBackend - val network: ZcashNetwork - val host: String - val port: Int - val alias: String - val onCriticalErrorHandler: ((Throwable?) -> Boolean)? - } - interface Erasable { /** * Erase content related to this SDK. @@ -760,7 +750,7 @@ class SdkSynchronizer internal constructor( */ @Suppress("FunctionName") fun Synchronizer( - initializer: SdkSynchronizer.SdkInitializer, + initializer: Initializer, repository: TransactionRepository = PagedTransactionRepository(initializer.context, 1000, initializer.rustBackend.pathDataDb), // TODO: fix this pagesize bug, small pages should not crash the app. It crashes with: Uncaught Exception: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. and is probably related to FlowPagedList blockStore: CompactBlockStore = CompactBlockDbStore(initializer.context, initializer.rustBackend.pathCacheDb),