NewBaseController: Inject kotlin fields without @JvmField and nullable type

These do not need to be nullable as they will be injected immediately.
This will make child controllers code much cleaner.

Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
This commit is contained in:
Álvaro Brey 2022-06-28 17:00:01 +02:00
parent 8f2a19917e
commit e176b38d8b
No known key found for this signature in database
GPG Key ID: 2585783189A62105

View File

@ -68,12 +68,10 @@ abstract class NewBaseController(@LayoutRes var layoutRes: Int, args: Bundle? =
} }
@Inject @Inject
@JvmField lateinit var appPreferences: AppPreferences
var appPreferences: AppPreferences? = null
@Inject @Inject
@JvmField lateinit var context: Context
var context: Context? = null
protected open val title: String? protected open val title: String?
get() = null get() = null
@ -93,6 +91,8 @@ abstract class NewBaseController(@LayoutRes var layoutRes: Int, args: Bundle? =
} }
init { init {
@Suppress("LeakingThis")
sharedApplication!!.componentApplication.inject(this)
addLifecycleListener(object : LifecycleListener() { addLifecycleListener(object : LifecycleListener() {
override fun postCreateView(controller: Controller, view: View) { override fun postCreateView(controller: Controller, view: View) {
onViewBound(view) onViewBound(view)
@ -271,7 +271,6 @@ abstract class NewBaseController(@LayoutRes var layoutRes: Int, args: Bundle? =
} }
private fun cleanTempCertPreference() { private fun cleanTempCertPreference() {
sharedApplication!!.componentApplication.inject(this)
val temporaryClassNames: MutableList<String> = ArrayList() val temporaryClassNames: MutableList<String> = ArrayList()
temporaryClassNames.add(ServerSelectionController::class.java.name) temporaryClassNames.add(ServerSelectionController::class.java.name)
temporaryClassNames.add(AccountVerificationController::class.java.name) temporaryClassNames.add(AccountVerificationController::class.java.name)