diff --git a/app-common/src/main/AndroidManifest.xml b/app-common/src/main/AndroidManifest.xml
index bf80c5e..debf765 100644
--- a/app-common/src/main/AndroidManifest.xml
+++ b/app-common/src/main/AndroidManifest.xml
@@ -16,11 +16,6 @@
android:name="im.angry.openeuicc.ui.NotificationsActivity"
android:label="@string/profile_notifications" />
-
-
newInstanceEuicc(clazz: Class, slotId: Int, portId: Int, addArguments: Bundle.() -> Unit = {}): T where T: Fragment, T: EuiccFragmentMarker {
+fun newInstanceEuicc(clazz: Class, slotId: Int, portId: Int): T where T: Fragment, T: EuiccFragmentMarker {
val instance = clazz.newInstance()
instance.arguments = Bundle().apply {
putInt("slotId", slotId)
putInt("portId", portId)
- addArguments()
}
return instance
}
diff --git a/app-common/src/main/java/im/angry/openeuicc/ui/ProfileDownloadFragment.kt b/app-common/src/main/java/im/angry/openeuicc/ui/ProfileDownloadFragment.kt
index 81caa11..737d322 100644
--- a/app-common/src/main/java/im/angry/openeuicc/ui/ProfileDownloadFragment.kt
+++ b/app-common/src/main/java/im/angry/openeuicc/ui/ProfileDownloadFragment.kt
@@ -2,7 +2,6 @@ package im.angry.openeuicc.ui
import android.annotation.SuppressLint
import android.app.Dialog
-import android.content.DialogInterface
import android.os.Bundle
import android.text.Editable
import android.text.format.Formatter
@@ -31,10 +30,8 @@ class ProfileDownloadFragment : BaseMaterialDialogFragment(), EuiccFragmentMarke
companion object {
const val TAG = "ProfileDownloadFragment"
- fun newInstance(slotId: Int, portId: Int, finishWhenDone: Boolean = false): ProfileDownloadFragment =
- newInstanceEuicc(ProfileDownloadFragment::class.java, slotId, portId) {
- putBoolean("finishWhenDone", finishWhenDone)
- }
+ fun newInstance(slotId: Int, portId: Int): ProfileDownloadFragment =
+ newInstanceEuicc(ProfileDownloadFragment::class.java, slotId, portId)
}
private lateinit var toolbar: Toolbar
@@ -49,10 +46,6 @@ class ProfileDownloadFragment : BaseMaterialDialogFragment(), EuiccFragmentMarke
private var downloading = false
- private val finishWhenDone by lazy {
- requireArguments().getBoolean("finishWhenDone", false)
- }
-
private val barcodeScannerLauncher = registerForActivityResult(ScanContract()) { result ->
result.contents?.let { content ->
Log.d(TAG, content)
@@ -88,9 +81,7 @@ class ProfileDownloadFragment : BaseMaterialDialogFragment(), EuiccFragmentMarke
toolbar.apply {
setTitle(R.string.profile_download)
setNavigationOnClickListener {
- if (!downloading) {
- dismiss()
- }
+ if (!downloading) dismiss()
}
setOnMenuItemClickListener(this@ProfileDownloadFragment)
}
@@ -204,18 +195,4 @@ class ProfileDownloadFragment : BaseMaterialDialogFragment(), EuiccFragmentMarke
// Only send notifications if the user allowed us to
preferenceRepository.notificationDownloadFlow.first()
}
-
- override fun onDismiss(dialog: DialogInterface) {
- super.onDismiss(dialog)
- if (finishWhenDone) {
- activity?.finish()
- }
- }
-
- override fun onCancel(dialog: DialogInterface) {
- super.onCancel(dialog)
- if (finishWhenDone) {
- activity?.finish()
- }
- }
}
\ No newline at end of file
diff --git a/app-common/src/main/java/im/angry/openeuicc/ui/SlotSelectFragment.kt b/app-common/src/main/java/im/angry/openeuicc/ui/SlotSelectFragment.kt
deleted file mode 100644
index 7ad27e2..0000000
--- a/app-common/src/main/java/im/angry/openeuicc/ui/SlotSelectFragment.kt
+++ /dev/null
@@ -1,78 +0,0 @@
-package im.angry.openeuicc.ui
-
-import android.content.DialogInterface
-import android.os.Bundle
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import android.widget.ArrayAdapter
-import android.widget.Spinner
-import androidx.appcompat.widget.Toolbar
-import im.angry.openeuicc.common.R
-import im.angry.openeuicc.core.EuiccChannel
-import im.angry.openeuicc.util.openEuiccApplication
-import im.angry.openeuicc.util.setWidthPercent
-
-class SlotSelectFragment : BaseMaterialDialogFragment() {
- companion object {
- const val TAG = "SlotSelectFragment"
-
- fun newInstance(): SlotSelectFragment {
- return SlotSelectFragment()
- }
- }
-
- interface SlotSelectedListener {
- fun onSlotSelected(slotId: Int, portId: Int)
- fun onSlotSelectCancelled()
- }
-
- private lateinit var toolbar: Toolbar
- private lateinit var spinner: Spinner
- private val channels: List by lazy {
- openEuiccApplication.euiccChannelManager.knownChannels.sortedBy { it.logicalSlotId }
- }
-
- override fun onCreateView(
- inflater: LayoutInflater,
- container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
- val view = inflater.inflate(R.layout.fragment_slot_select, container, false)
-
- toolbar = view.findViewById(R.id.toolbar)
- toolbar.setTitle(R.string.slot_select)
- toolbar.inflateMenu(R.menu.fragment_slot_select)
-
- val adapter = ArrayAdapter(inflater.context, R.layout.spinner_item)
-
- spinner = view.findViewById(R.id.spinner)
- spinner.adapter = adapter
-
- channels.forEach { channel ->
- adapter.add(getString(R.string.channel_name_format, channel.logicalSlotId))
- }
-
- toolbar.setNavigationOnClickListener {
- (requireActivity() as SlotSelectedListener).onSlotSelectCancelled()
- }
- toolbar.setOnMenuItemClickListener {
- val channel = channels[spinner.selectedItemPosition]
- (requireActivity() as SlotSelectedListener).onSlotSelected(channel.slotId, channel.portId)
- dismiss()
- true
- }
-
- return view
- }
-
- override fun onResume() {
- super.onResume()
- setWidthPercent(75)
- }
-
- override fun onCancel(dialog: DialogInterface) {
- super.onCancel(dialog)
- (requireActivity() as SlotSelectedListener).onSlotSelectCancelled()
- }
-}
\ No newline at end of file
diff --git a/app-common/src/main/res/layout/fragment_profile_download.xml b/app-common/src/main/res/layout/fragment_profile_download.xml
index 78274dc..acd47e4 100644
--- a/app-common/src/main/res/layout/fragment_profile_download.xml
+++ b/app-common/src/main/res/layout/fragment_profile_download.xml
@@ -2,8 +2,7 @@
+ android:layout_height="match_parent">
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app-common/src/main/res/menu/fragment_slot_select.xml b/app-common/src/main/res/menu/fragment_slot_select.xml
deleted file mode 100644
index e129008..0000000
--- a/app-common/src/main/res/menu/fragment_slot_select.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
\ No newline at end of file
diff --git a/app-common/src/main/res/values/strings.xml b/app-common/src/main/res/values/strings.xml
index 71440c0..4916084 100644
--- a/app-common/src/main/res/values/strings.xml
+++ b/app-common/src/main/res/values/strings.xml
@@ -19,9 +19,6 @@
Cannot switch to new eSIM profile.
Nickname cannot be longer than 64 characters
- Select Slot
- Select
-
New eSIM
Server (RSP / SM-DP+)
Activation Code
diff --git a/app-common/src/main/res/values/themes.xml b/app-common/src/main/res/values/themes.xml
index cc7104d..3fd5916 100644
--- a/app-common/src/main/res/values/themes.xml
+++ b/app-common/src/main/res/values/themes.xml
@@ -28,14 +28,4 @@
-
-
-
\ No newline at end of file
diff --git a/app/src/main/java/im/angry/openeuicc/ui/LuiActivity.kt b/app/src/main/java/im/angry/openeuicc/ui/LuiActivity.kt
index e60dfa7..89baf93 100644
--- a/app/src/main/java/im/angry/openeuicc/ui/LuiActivity.kt
+++ b/app/src/main/java/im/angry/openeuicc/ui/LuiActivity.kt
@@ -11,10 +11,11 @@ class LuiActivity : AppCompatActivity() {
setContentView(R.layout.activity_lui)
findViewById(R.id.lui_skip).setOnClickListener { finish() }
+ // TODO: Allow users to select slots, and then hand over directly to ProfileDownloadFragment
// TODO: Deactivate LuiActivity if there is no eSIM found.
// TODO: Support pre-filled download info (from carrier apps); UX
findViewById(R.id.lui_download).setOnClickListener {
- startActivity(Intent(this, DirectProfileDownloadActivity::class.java))
+ startActivity(Intent(this, PrivilegedMainActivity::class.java))
}
}
}
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_slot_mapping.xml b/app/src/main/res/layout/fragment_slot_mapping.xml
index 52a341c..0fc9faf 100644
--- a/app/src/main/res/layout/fragment_slot_mapping.xml
+++ b/app/src/main/res/layout/fragment_slot_mapping.xml
@@ -8,6 +8,7 @@
android:id="@+id/toolbar"
android:layout_width="0dp"
android:layout_height="wrap_content"
+ android:theme="@style/Theme.OpenEUICC"
android:elevation="4dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"