|
|
@@ -66,8 +66,9 @@ open class MainActivity : BaseEuiccAccessActivity(), OpenEuiccContextMarker {
|
|
|
|
|
|
private val usbReceiver = object : BroadcastReceiver() {
|
|
|
override fun onReceive(context: Context?, intent: Intent?) {
|
|
|
- if (intent?.action == UsbManager.ACTION_USB_DEVICE_ATTACHED || intent?.action == UsbManager.ACTION_USB_DEVICE_DETACHED) {
|
|
|
- refresh(true)
|
|
|
+ when (intent?.action) {
|
|
|
+ UsbManager.ACTION_USB_DEVICE_ATTACHED -> refresh(fromUsbEvent = true)
|
|
|
+ UsbManager.ACTION_USB_DEVICE_DETACHED -> refresh(fromUsbEvent = true)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -126,10 +127,10 @@ open class MainActivity : BaseEuiccAccessActivity(), OpenEuiccContextMarker {
|
|
|
}
|
|
|
|
|
|
private fun ensureNotificationPermissions() {
|
|
|
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU && checkSelfPermission(android.Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED) {
|
|
|
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
|
|
requestPermissions(
|
|
|
- arrayOf(android.Manifest.permission.POST_NOTIFICATIONS),
|
|
|
- PERMISSION_REQUEST_CODE
|
|
|
+ PERMISSION_REQUEST_CODE,
|
|
|
+ android.Manifest.permission.POST_NOTIFICATIONS
|
|
|
)
|
|
|
}
|
|
|
}
|
|
|
@@ -160,38 +161,29 @@ open class MainActivity : BaseEuiccAccessActivity(), OpenEuiccContextMarker {
|
|
|
// but it could change in the future
|
|
|
euiccChannelManager.notifyEuiccProfilesChanged(channel.logicalSlotId)
|
|
|
|
|
|
- newPages.add(
|
|
|
- Page(
|
|
|
- channel.logicalSlotId,
|
|
|
- getString(R.string.channel_name_format, channel.logicalSlotId)
|
|
|
- ) {
|
|
|
- appContainer.uiComponentFactory.createEuiccManagementFragment(
|
|
|
- slotId,
|
|
|
- portId
|
|
|
- )
|
|
|
- })
|
|
|
+ val channelName = getString(R.string.channel_name_format, channel.logicalSlotId)
|
|
|
+ newPages.add(Page(channel.logicalSlotId, channelName) {
|
|
|
+ appContainer.uiComponentFactory.createEuiccManagementFragment(slotId, portId)
|
|
|
+ })
|
|
|
}
|
|
|
}.collect()
|
|
|
|
|
|
// If USB readers exist, add them at the very last
|
|
|
// We use a wrapper fragment to handle logic specific to USB readers
|
|
|
usbDevice?.let {
|
|
|
- newPages.add(
|
|
|
- Page(
|
|
|
- EuiccChannelManager.USB_CHANNEL_ID,
|
|
|
- it.productName ?: getString(R.string.usb)
|
|
|
- ) { UsbCcidReaderFragment() })
|
|
|
+ val productName = it.productName ?: getString(R.string.usb)
|
|
|
+ newPages.add(Page(EuiccChannelManager.USB_CHANNEL_ID, productName) {
|
|
|
+ UsbCcidReaderFragment()
|
|
|
+ })
|
|
|
}
|
|
|
viewPager.visibility = View.VISIBLE
|
|
|
|
|
|
if (newPages.size > 1) {
|
|
|
tabs.visibility = View.VISIBLE
|
|
|
} else if (newPages.isEmpty()) {
|
|
|
- newPages.add(
|
|
|
- Page(
|
|
|
- -1,
|
|
|
- ""
|
|
|
- ) { appContainer.uiComponentFactory.createNoEuiccPlaceholderFragment() })
|
|
|
+ newPages.add(Page(-1, "") {
|
|
|
+ appContainer.uiComponentFactory.createNoEuiccPlaceholderFragment()
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
newPages.sortBy { it.logicalSlotId }
|