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"