Loading app-common/src/main/java/im/angry/openeuicc/di/DefaultUiComponentFactory.kt +4 −0 Original line number Diff line number Diff line package im.angry.openeuicc.di import androidx.fragment.app.Fragment import androidx.preference.PreferenceFragmentCompat import im.angry.openeuicc.ui.EuiccManagementFragment import im.angry.openeuicc.ui.NoEuiccPlaceholderFragment import im.angry.openeuicc.ui.SettingsFragment open class DefaultUiComponentFactory : UiComponentFactory { override fun createEuiccManagementFragment(slotId: Int, portId: Int): EuiccManagementFragment = EuiccManagementFragment.newInstance(slotId, portId) override fun createNoEuiccPlaceholderFragment(): Fragment = NoEuiccPlaceholderFragment() override fun createSettingsFragment(): Fragment = SettingsFragment() } No newline at end of file app-common/src/main/java/im/angry/openeuicc/di/UiComponentFactory.kt +2 −0 Original line number Diff line number Diff line package im.angry.openeuicc.di import androidx.fragment.app.Fragment import androidx.preference.PreferenceFragmentCompat import im.angry.openeuicc.ui.EuiccManagementFragment interface UiComponentFactory { fun createEuiccManagementFragment(slotId: Int, portId: Int): EuiccManagementFragment fun createNoEuiccPlaceholderFragment(): Fragment fun createSettingsFragment(): Fragment } No newline at end of file app-common/src/main/java/im/angry/openeuicc/ui/SettingsActivity.kt +6 −1 Original line number Diff line number Diff line Loading @@ -4,10 +4,14 @@ import android.os.Bundle import android.view.MenuItem import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity import im.angry.openeuicc.OpenEuiccApplication import im.angry.openeuicc.common.R import im.angry.openeuicc.util.* class SettingsActivity: AppCompatActivity() { private val appContainer get() = (application as OpenEuiccApplication).appContainer override fun onCreate(savedInstanceState: Bundle?) { enableEdgeToEdge() super.onCreate(savedInstanceState) Loading @@ -15,8 +19,9 @@ class SettingsActivity: AppCompatActivity() { setSupportActionBar(requireViewById(R.id.toolbar)) setupToolbarInsets() supportActionBar!!.setDisplayHomeAsUpEnabled(true) val settingsFragment = appContainer.uiComponentFactory.createSettingsFragment() supportFragmentManager.beginTransaction() .replace(R.id.settings_container, SettingsFragment()) .replace(R.id.settings_container, settingsFragment) .commit() } Loading app-common/src/main/java/im/angry/openeuicc/ui/SettingsFragment.kt +5 −4 Original line number Diff line number Diff line package im.angry.openeuicc.ui import android.content.Context import android.content.Intent import android.net.Uri import android.os.Build Loading @@ -20,7 +21,7 @@ import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking class SettingsFragment: PreferenceFragmentCompat() { open class SettingsFragment: PreferenceFragmentCompat() { private lateinit var developerPref: PreferenceCategory // Hidden developer options switch Loading @@ -35,9 +36,9 @@ class SettingsFragment: PreferenceFragmentCompat() { // Show / hide developer preference based on whether it is enabled lifecycleScope.launch { preferenceRepository.developerOptionsEnabledFlow.onEach { developerPref.isVisible = it }.collect() preferenceRepository.developerOptionsEnabledFlow .onEach { developerPref.isVisible = it } .collect() } findPreference<Preference>("pref_info_app_version")?.apply { Loading app-unpriv/src/main/java/im/angry/openeuicc/di/UnprivilegedUiComponentFactory.kt +5 −0 Original line number Diff line number Diff line Loading @@ -2,8 +2,10 @@ package im.angry.openeuicc.di import androidx.fragment.app.Fragment import im.angry.openeuicc.ui.EuiccManagementFragment import im.angry.openeuicc.ui.SettingsFragment import im.angry.openeuicc.ui.UnprivilegedEuiccManagementFragment import im.angry.openeuicc.ui.UnprivilegedNoEuiccPlaceholderFragment import im.angry.openeuicc.ui.UnprivilegedSettingsFragment class UnprivilegedUiComponentFactory : DefaultUiComponentFactory() { override fun createEuiccManagementFragment(slotId: Int, portId: Int): EuiccManagementFragment = Loading @@ -11,4 +13,7 @@ class UnprivilegedUiComponentFactory : DefaultUiComponentFactory() { override fun createNoEuiccPlaceholderFragment(): Fragment = UnprivilegedNoEuiccPlaceholderFragment() override fun createSettingsFragment(): Fragment = UnprivilegedSettingsFragment() } No newline at end of file Loading
app-common/src/main/java/im/angry/openeuicc/di/DefaultUiComponentFactory.kt +4 −0 Original line number Diff line number Diff line package im.angry.openeuicc.di import androidx.fragment.app.Fragment import androidx.preference.PreferenceFragmentCompat import im.angry.openeuicc.ui.EuiccManagementFragment import im.angry.openeuicc.ui.NoEuiccPlaceholderFragment import im.angry.openeuicc.ui.SettingsFragment open class DefaultUiComponentFactory : UiComponentFactory { override fun createEuiccManagementFragment(slotId: Int, portId: Int): EuiccManagementFragment = EuiccManagementFragment.newInstance(slotId, portId) override fun createNoEuiccPlaceholderFragment(): Fragment = NoEuiccPlaceholderFragment() override fun createSettingsFragment(): Fragment = SettingsFragment() } No newline at end of file
app-common/src/main/java/im/angry/openeuicc/di/UiComponentFactory.kt +2 −0 Original line number Diff line number Diff line package im.angry.openeuicc.di import androidx.fragment.app.Fragment import androidx.preference.PreferenceFragmentCompat import im.angry.openeuicc.ui.EuiccManagementFragment interface UiComponentFactory { fun createEuiccManagementFragment(slotId: Int, portId: Int): EuiccManagementFragment fun createNoEuiccPlaceholderFragment(): Fragment fun createSettingsFragment(): Fragment } No newline at end of file
app-common/src/main/java/im/angry/openeuicc/ui/SettingsActivity.kt +6 −1 Original line number Diff line number Diff line Loading @@ -4,10 +4,14 @@ import android.os.Bundle import android.view.MenuItem import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity import im.angry.openeuicc.OpenEuiccApplication import im.angry.openeuicc.common.R import im.angry.openeuicc.util.* class SettingsActivity: AppCompatActivity() { private val appContainer get() = (application as OpenEuiccApplication).appContainer override fun onCreate(savedInstanceState: Bundle?) { enableEdgeToEdge() super.onCreate(savedInstanceState) Loading @@ -15,8 +19,9 @@ class SettingsActivity: AppCompatActivity() { setSupportActionBar(requireViewById(R.id.toolbar)) setupToolbarInsets() supportActionBar!!.setDisplayHomeAsUpEnabled(true) val settingsFragment = appContainer.uiComponentFactory.createSettingsFragment() supportFragmentManager.beginTransaction() .replace(R.id.settings_container, SettingsFragment()) .replace(R.id.settings_container, settingsFragment) .commit() } Loading
app-common/src/main/java/im/angry/openeuicc/ui/SettingsFragment.kt +5 −4 Original line number Diff line number Diff line package im.angry.openeuicc.ui import android.content.Context import android.content.Intent import android.net.Uri import android.os.Build Loading @@ -20,7 +21,7 @@ import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking class SettingsFragment: PreferenceFragmentCompat() { open class SettingsFragment: PreferenceFragmentCompat() { private lateinit var developerPref: PreferenceCategory // Hidden developer options switch Loading @@ -35,9 +36,9 @@ class SettingsFragment: PreferenceFragmentCompat() { // Show / hide developer preference based on whether it is enabled lifecycleScope.launch { preferenceRepository.developerOptionsEnabledFlow.onEach { developerPref.isVisible = it }.collect() preferenceRepository.developerOptionsEnabledFlow .onEach { developerPref.isVisible = it } .collect() } findPreference<Preference>("pref_info_app_version")?.apply { Loading
app-unpriv/src/main/java/im/angry/openeuicc/di/UnprivilegedUiComponentFactory.kt +5 −0 Original line number Diff line number Diff line Loading @@ -2,8 +2,10 @@ package im.angry.openeuicc.di import androidx.fragment.app.Fragment import im.angry.openeuicc.ui.EuiccManagementFragment import im.angry.openeuicc.ui.SettingsFragment import im.angry.openeuicc.ui.UnprivilegedEuiccManagementFragment import im.angry.openeuicc.ui.UnprivilegedNoEuiccPlaceholderFragment import im.angry.openeuicc.ui.UnprivilegedSettingsFragment class UnprivilegedUiComponentFactory : DefaultUiComponentFactory() { override fun createEuiccManagementFragment(slotId: Int, portId: Int): EuiccManagementFragment = Loading @@ -11,4 +13,7 @@ class UnprivilegedUiComponentFactory : DefaultUiComponentFactory() { override fun createNoEuiccPlaceholderFragment(): Fragment = UnprivilegedNoEuiccPlaceholderFragment() override fun createSettingsFragment(): Fragment = UnprivilegedSettingsFragment() } No newline at end of file