ModemConfig: Show a grouped notification per slot
Otherwise the notifcation for slot 1 would hide the one for slot 0, if both are available. Signed-off-by: Marijn Suijten <marijns95@gmail.com>
This commit is contained in:
parent
0d8dc0c542
commit
16b7b8391e
6 changed files with 54 additions and 20 deletions
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
<application
|
||||
android:directBootAware="true"
|
||||
android:icon="@drawable/ic_sim_card"
|
||||
android:label="@string/app_name"
|
||||
android:persistent="true">
|
||||
<receiver
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
<string name="notification_channel_configuration_info">Konfigurationsinfo</string>
|
||||
|
||||
<string name="notification_title_modem_configuration">Modem-Konfiguration</string>
|
||||
<string name="notification_text_modem_configuration_resolved_modem_config">Benutze Modem-Konfiguration: %1$s\nFirmware-Datei: %2$s</string>
|
||||
<string name="notification_title_slot_index">Steckplatz %1$s</string>
|
||||
<string name="notification_text_modem_configuration_resolved_modem_config">Modem-Konfiguration: %1$s\nFirmware-Datei: %2$s</string>
|
||||
<string name="notification_text_modem_configuration_no_match">Keine passende Modem-Konfiguration gefunden</string>
|
||||
</resources>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
<string name="notification_channel_configuration_info">Informations de configuration</string>
|
||||
|
||||
<string name="notification_title_modem_configuration">Configuration du modem</string>
|
||||
<string name="notification_text_modem_configuration_resolved_modem_config">Configuration du modem utilisée : %1$s\nFirmware utilisé: %2$s</string>
|
||||
<string name="notification_text_modem_configuration_no_match">Aucune configuration de modem trouvée </string>
|
||||
</resources>
|
||||
<string name="notification_title_slot_index">Port SIM %1$s</string>
|
||||
<string name="notification_text_modem_configuration_resolved_modem_config">Configuration du modem utilisée : %1$s\n Chemin d\'accès du firmware : %2$s</string>
|
||||
<string name="notification_text_modem_configuration_no_match">Aucune configuration modem Trouvée</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
<string name="notification_channel_configuration_info">Informazioni configurazione</string>
|
||||
|
||||
<string name="notification_title_modem_configuration">Configurazione Modem</string>
|
||||
<string name="notification_text_modem_configuration_resolved_modem_config">Uso configurazione modem %1$s\nFile firmware: %2$s</string>
|
||||
<string name="notification_title_slot_index">Slot %1$s</string>
|
||||
<string name="notification_text_modem_configuration_resolved_modem_config">Configurazione modem: %1$s\nFile firmware: %2$s</string>
|
||||
<string name="notification_text_modem_configuration_no_match">Nessuna configurazione modem trovata</string>
|
||||
</resources>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name" translatable="false">ModemConfig</string>
|
||||
<string name="app_name" translatable="false">Open Devices ModemConfig</string>
|
||||
|
||||
<string name="modem_config_path" translatable="false">/oem/modem-config</string>
|
||||
<string name="modem_config_name" translatable="false">modem.conf</string>
|
||||
|
|
@ -8,6 +8,7 @@
|
|||
<string name="notification_channel_configuration_info">Configuration info</string>
|
||||
|
||||
<string name="notification_title_modem_configuration">Modem configuration</string>
|
||||
<string name="notification_text_modem_configuration_resolved_modem_config">Using modem configuration: %1$s\nFirmware file: %2$s</string>
|
||||
<string name="notification_text_modem_configuration_no_match">Found no modem configuration</string>
|
||||
</resources>
|
||||
<string name="notification_title_slot_index">Slot %1$s</string>
|
||||
<string name="notification_text_modem_configuration_resolved_modem_config">Modem configuration: %1$s\nFirmware file: %2$s</string>
|
||||
<string name="notification_text_modem_configuration_no_match">No modem configuration found</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -36,7 +36,9 @@ import java.nio.file.Paths
|
|||
private const val TAG = "ModemConfigReceiver"
|
||||
private const val VERBOSE = false
|
||||
private const val NOTIFICATION_CHANNEL_ID = "Configuration"
|
||||
private const val NOTIFICATION_GROUP_KEY_SLOTS = "com.sony.opentelephony.modemconfig.slot_result"
|
||||
private const val NOTIFICATION_ID = 1
|
||||
private const val NOTIFICATION_ID_SLOT_BASE = 1000
|
||||
|
||||
private val newlineMatch = Regex("[\n\r]")
|
||||
|
||||
|
|
@ -209,15 +211,22 @@ context.resources.getXml(R.xml.service_provider_sim_configs).use {
|
|||
resources.getString(R.string.notification_text_modem_configuration_no_match)
|
||||
}
|
||||
|
||||
val notification = Notification.Builder(this, NOTIFICATION_CHANNEL_ID).run {
|
||||
setSmallIcon(R.drawable.ic_sim_card)
|
||||
setContentTitle(resources.getString(R.string.notification_title_modem_configuration))
|
||||
setContentText(notificationText.substringBefore('\n'))
|
||||
style = Notification.BigTextStyle().bigText(notificationText)
|
||||
build()
|
||||
}
|
||||
val notification = Notification.Builder(this@ModemConfigService,
|
||||
NOTIFICATION_CHANNEL_ID)
|
||||
.run {
|
||||
setSmallIcon(R.drawable.ic_sim_card)
|
||||
setContentTitle(resources.getString(
|
||||
R.string.notification_title_slot_index,
|
||||
sub.simSlotIndex))
|
||||
setContentText(notificationText.substringBefore('\n'))
|
||||
setGroup(NOTIFICATION_GROUP_KEY_SLOTS)
|
||||
setSortKey(sub.simSlotIndex.toString())
|
||||
style = Notification.BigTextStyle()
|
||||
.bigText(notificationText)
|
||||
build()
|
||||
}
|
||||
|
||||
notificationManager.notify(NOTIFICATION_ID, notification)
|
||||
notificationManager.notify(NOTIFICATION_ID_SLOT_BASE + sub.simSlotIndex, notification)
|
||||
}
|
||||
|
||||
override fun onCreate() {
|
||||
|
|
@ -238,7 +247,27 @@ context.resources.getXml(R.xml.service_provider_sim_configs).use {
|
|||
// caching at all. The modem-switcher itself makes sure to not needlessly flash
|
||||
// firmware - let it handle the validation.
|
||||
override fun onSubscriptionsChanged() {
|
||||
sm.activeSubscriptionInfoList?.forEach(::handleSubscription)
|
||||
sm.activeSubscriptionInfoList?.run {
|
||||
if (any()) {
|
||||
val summaryNotification = Notification.Builder(
|
||||
this@ModemConfigService,
|
||||
NOTIFICATION_CHANNEL_ID)
|
||||
.run {
|
||||
setSmallIcon(R.drawable.ic_sim_card)
|
||||
setContentTitle(resources.getString(
|
||||
R.string.notification_title_modem_configuration
|
||||
))
|
||||
setGroup(NOTIFICATION_GROUP_KEY_SLOTS)
|
||||
setGroupSummary(true)
|
||||
build()
|
||||
}
|
||||
|
||||
notificationManager.notify(NOTIFICATION_ID, summaryNotification)
|
||||
}
|
||||
|
||||
forEach(::handleSubscription)
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue