refactor: Add UiComponentFactory to manual DI
All checks were successful
/ build-debug (push) Successful in 4m3s
All checks were successful
/ build-debug (push) Successful in 4m3s
This commit is contained in:
parent
6356601467
commit
4dd14d23f2
|
@ -10,4 +10,5 @@ interface AppContainer {
|
|||
val euiccChannelManager: IEuiccChannelManager
|
||||
val subscriptionManager: SubscriptionManager
|
||||
val preferenceRepository: PreferenceRepository
|
||||
val uiComponentFactory: UiComponentFactory
|
||||
}
|
|
@ -23,4 +23,8 @@ open class DefaultAppContainer(context: Context) : AppContainer {
|
|||
override val preferenceRepository by lazy {
|
||||
PreferenceRepository(context)
|
||||
}
|
||||
|
||||
override val uiComponentFactory by lazy {
|
||||
DefaultUiComponentFactory()
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
package im.angry.openeuicc.di
|
||||
|
||||
import im.angry.openeuicc.core.EuiccChannel
|
||||
import im.angry.openeuicc.ui.EuiccManagementFragment
|
||||
|
||||
open class DefaultUiComponentFactory : UiComponentFactory {
|
||||
override fun createEuiccManagementFragment(channel: EuiccChannel): EuiccManagementFragment =
|
||||
EuiccManagementFragment.newInstance(channel.slotId, channel.portId)
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
package im.angry.openeuicc.di
|
||||
|
||||
import im.angry.openeuicc.core.EuiccChannel
|
||||
import im.angry.openeuicc.ui.EuiccManagementFragment
|
||||
|
||||
interface UiComponentFactory {
|
||||
fun createEuiccManagementFragment(channel: EuiccChannel): EuiccManagementFragment
|
||||
}
|
|
@ -88,10 +88,6 @@ open class MainActivity : AppCompatActivity(), OpenEuiccContextMarker {
|
|||
else -> super.onOptionsItemSelected(item)
|
||||
}
|
||||
|
||||
|
||||
protected open fun createEuiccManagementFragment(channel: EuiccChannel): EuiccManagementFragment =
|
||||
EuiccManagementFragment.newInstance(channel.slotId, channel.portId)
|
||||
|
||||
private suspend fun init() {
|
||||
withContext(Dispatchers.IO) {
|
||||
euiccChannelManager.enumerateEuiccChannels()
|
||||
|
@ -108,7 +104,7 @@ open class MainActivity : AppCompatActivity(), OpenEuiccContextMarker {
|
|||
withContext(Dispatchers.Main) {
|
||||
euiccChannelManager.knownChannels.sortedBy { it.logicalSlotId }.forEach { channel ->
|
||||
spinnerAdapter.add(getString(R.string.channel_name_format, channel.logicalSlotId))
|
||||
fragments.add(createEuiccManagementFragment(channel))
|
||||
fragments.add(appContainer.uiComponentFactory.createEuiccManagementFragment(channel))
|
||||
}
|
||||
|
||||
if (fragments.isNotEmpty()) {
|
||||
|
|
|
@ -8,4 +8,8 @@ class PrivilegedAppContainer(context: Context) : DefaultAppContainer(context) {
|
|||
override val euiccChannelManager: IEuiccChannelManager by lazy {
|
||||
PrivilegedEuiccChannelManager(context)
|
||||
}
|
||||
|
||||
override val uiComponentFactory by lazy {
|
||||
PrivilegedUiComponentFactory()
|
||||
}
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
package im.angry.openeuicc.di
|
||||
|
||||
import im.angry.openeuicc.core.EuiccChannel
|
||||
import im.angry.openeuicc.ui.EuiccManagementFragment
|
||||
import im.angry.openeuicc.ui.PrivilegedEuiccManagementFragment
|
||||
|
||||
class PrivilegedUiComponentFactory : DefaultUiComponentFactory() {
|
||||
override fun createEuiccManagementFragment(channel: EuiccChannel): EuiccManagementFragment =
|
||||
PrivilegedEuiccManagementFragment.newInstance(channel.slotId, channel.portId)
|
||||
}
|
|
@ -4,7 +4,6 @@ import android.view.Menu
|
|||
import android.view.MenuItem
|
||||
import android.widget.Toast
|
||||
import im.angry.openeuicc.R
|
||||
import im.angry.openeuicc.core.EuiccChannel
|
||||
import im.angry.openeuicc.util.*
|
||||
|
||||
class PrivilegedMainActivity : MainActivity() {
|
||||
|
@ -37,7 +36,4 @@ class PrivilegedMainActivity : MainActivity() {
|
|||
}
|
||||
else -> super.onOptionsItemSelected(item)
|
||||
}
|
||||
|
||||
override fun createEuiccManagementFragment(channel: EuiccChannel): EuiccManagementFragment =
|
||||
PrivilegedEuiccManagementFragment.newInstance(channel.slotId, channel.portId)
|
||||
}
|
Loading…
Reference in a new issue