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