mirror of
https://github.com/yairm210/Unciv.git
synced 2025-02-10 19:09:06 +07:00
Removed pebble symbol from Unciv icon when showing persistent notification (#2003)
Optimized Notification service texts https://github.com/yairm210/Unciv/issues/1680
This commit is contained in:
parent
6009c1b5d3
commit
31d9bb0c5d
@ -1747,8 +1747,9 @@ An error has occured = Ein Fehler ist aufgetreten
|
||||
Multiplayer turn notifier service terminated = Multiplayer Zug Benachrichtigungsdienst wurde beendet
|
||||
Your friends are waiting on your turn. = Deine Freunde warten auf deinen Zug.
|
||||
Unciv - It's your turn! = Unciv - Du bist am Zug!
|
||||
Unciv will inform you when it's your turn. = Unciv wird dich benachrichtigen wenn du am Zug bist.
|
||||
Last checked: [lastTimeChecked]. Checks ca. every [checkPeriod] minute(s) when Internet available. = Zuletzt geprüft: [lastTimeChecked]. Prüft etwa alle [checkPeriod] Minute(n) wenn Internet vorhanden.
|
||||
Unciv will inform you when it's your turn in multiplayer. = Unciv wird dich benachrichtigen, wenn du im Multiplayer am Zug bist.
|
||||
Last online turn check: [lastTimeChecked] = Letzter online Zug Check: [lastTimeChecked]
|
||||
Checks ca. every [checkPeriod] minute(s) when Internet available. = Prüft etwa alle [checkPeriod] Minute(n) wenn Internet vorhanden.
|
||||
Configurable in Unciv options menu. = Konfigurierbar im Unciv Optionsmenü.
|
||||
Unciv multiplayer turn notifier running = Unciv Multiplayer Zug Benachrichtiger läuft.
|
||||
Multiplayer options = Multiplayer Einstellungen
|
||||
|
@ -1746,8 +1746,9 @@ An error has occured =
|
||||
Multiplayer turn notifier service terminated =
|
||||
Your friends are waiting on your turn. =
|
||||
Unciv - It's your turn! =
|
||||
Unciv will inform you when it's your turn. =
|
||||
Last checked: [lastTimeChecked]. Checks ca. every [checkPeriod] minute(s) when Internet available. =
|
||||
Unciv will inform you when it's your turn in multiplayer. =
|
||||
Last online turn check: [lastTimeChecked] =
|
||||
Checks ca. every [checkPeriod] minute(s) when Internet available. =
|
||||
Configurable in Unciv options menu. =
|
||||
Unciv multiplayer turn notifier running =
|
||||
Multiplayer options =
|
||||
|
@ -12,7 +12,7 @@ import java.io.File
|
||||
class AndroidLauncher : AndroidApplication() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
createNotificationChannels()
|
||||
MultiplayerTurnCheckWorker.createNotificationChannels(applicationContext)
|
||||
|
||||
// Only allow mods on KK+, to avoid READ_EXTERNAL_STORAGE permission earlier versions need
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||
@ -26,14 +26,6 @@ class AndroidLauncher : AndroidApplication() {
|
||||
initialize(game, config)
|
||||
}
|
||||
|
||||
/**
|
||||
* Necessary for Multiplayer Turner Checker, starting with Android Oreo
|
||||
*/
|
||||
private fun createNotificationChannels() {
|
||||
MultiplayerTurnCheckWorker.createNotificationChannelInfo(context)
|
||||
MultiplayerTurnCheckWorker.createNotificationChannelService(context)
|
||||
}
|
||||
|
||||
/**
|
||||
* Copies mods from external data directory (where users can access) to the private one (where
|
||||
* libGDX reads from). Note: deletes all files currently in the private mod directory and
|
||||
|
@ -10,6 +10,7 @@ import android.os.Build
|
||||
import androidx.core.app.NotificationCompat
|
||||
import androidx.core.app.NotificationCompat.DEFAULT_VIBRATE
|
||||
import androidx.core.app.NotificationManagerCompat
|
||||
import androidx.core.content.ContextCompat.getSystemService
|
||||
import androidx.work.*
|
||||
import com.badlogic.gdx.backends.android.AndroidApplication
|
||||
import com.unciv.logic.GameInfo
|
||||
@ -27,13 +28,18 @@ class MultiplayerTurnCheckWorker(appContext: Context, workerParams: WorkerParame
|
||||
const val WORK_TAG = "UNCIV_MULTIPLAYER_TURN_CHECKER_WORKER"
|
||||
const val NOTIFICATION_ID_SERVICE = 1
|
||||
const val NOTIFICATION_ID_INFO = 2
|
||||
|
||||
// Notification Channels can't be modified after creation.
|
||||
// Therefore Unciv needs to create new ones and delete previously used ones.
|
||||
// Add old channel names here when replacing them with new ones below.
|
||||
private val HISTORIC_NOTIFICATION_CHANNELS = arrayOf("UNCIV_NOTIFICATION_CHANNEL_SERVICE")
|
||||
|
||||
private const val NOTIFICATION_CHANNEL_ID_INFO = "UNCIV_NOTIFICATION_CHANNEL_INFO"
|
||||
private const val NOTIFICATION_CHANNEL_ID_SERVICE = "UNCIV_NOTIFICATION_CHANNEL_SERVICE"
|
||||
private const val NOTIFICATION_CHANNEL_ID_SERVICE = "UNCIV_NOTIFICATION_CHANNEL_SERVICE_02"
|
||||
|
||||
|
||||
// These fields need to be volatile because they are set by main thread but later accessed by worker thread.
|
||||
// Classes used here need to be primitive or internally synchronized to avoid visibility issues.
|
||||
// Long and double must not be used here because they have visibility issues: https://stackoverflow.com/a/9278798
|
||||
@Volatile private var failCount = 0
|
||||
@Volatile private var gameId = ""
|
||||
@Volatile private var userId = ""
|
||||
@ -90,6 +96,8 @@ class MultiplayerTurnCheckWorker(appContext: Context, workerParams: WorkerParame
|
||||
val descriptionText = "Shown constantly to inform you about background checking."
|
||||
val importance = NotificationManager.IMPORTANCE_MIN
|
||||
val mChannel = NotificationChannel(NOTIFICATION_CHANNEL_ID_SERVICE, name, importance)
|
||||
mChannel.setShowBadge(false)
|
||||
mChannel.setLockscreenVisibility(NotificationCompat.VISIBILITY_PUBLIC)
|
||||
mChannel.description = descriptionText
|
||||
|
||||
val notificationManager = appContext.getSystemService(AndroidApplication.NOTIFICATION_SERVICE) as NotificationManager
|
||||
@ -110,16 +118,17 @@ class MultiplayerTurnCheckWorker(appContext: Context, workerParams: WorkerParame
|
||||
|
||||
val notification: NotificationCompat.Builder = NotificationCompat.Builder(appContext, NOTIFICATION_CHANNEL_ID_SERVICE)
|
||||
.setPriority(NotificationManagerCompat.IMPORTANCE_MIN) // it's only a status
|
||||
.setContentTitle("Unciv multiplayer turn notifier running".tr())
|
||||
.setContentTitle(("Last online turn check: [$lastTimeChecked]").tr())
|
||||
.setStyle(NotificationCompat.BigTextStyle()
|
||||
.bigText("Unciv will inform you when it's your turn.".tr() + "\n" +
|
||||
"Last checked: [$lastTimeChecked]. Checks ca. every [$checkPeriod] minute(s) when Internet available.".tr()
|
||||
.bigText("Unciv will inform you when it's your turn in multiplayer.".tr() + " " +
|
||||
"Checks ca. every [$checkPeriod] minute(s) when Internet available.".tr()
|
||||
+ " " + "Configurable in Unciv options menu.".tr()))
|
||||
.setSmallIcon(R.drawable.uncivicon2)
|
||||
.setContentIntent(pendingIntent)
|
||||
.setCategory(NotificationCompat.CATEGORY_SERVICE)
|
||||
.setOnlyAlertOnce(true)
|
||||
.setOngoing(true)
|
||||
.setShowWhen(false)
|
||||
|
||||
with(NotificationManagerCompat.from(appContext)) {
|
||||
notify(NOTIFICATION_ID_INFO, notification.build())
|
||||
@ -168,6 +177,30 @@ class MultiplayerTurnCheckWorker(appContext: Context, workerParams: WorkerParame
|
||||
enqueue(applicationContext, 1)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Necessary for Multiplayer Turner Checker, starting with Android Oreo
|
||||
*/
|
||||
fun createNotificationChannels(appContext: Context) {
|
||||
createNotificationChannelInfo(appContext)
|
||||
createNotificationChannelService(appContext)
|
||||
destroyOldChannels(appContext)
|
||||
}
|
||||
|
||||
/**
|
||||
* Notification Channels can't be modified after creation.
|
||||
* Therefore Unciv needs to create new ones and delete legacy ones.
|
||||
*/
|
||||
private fun destroyOldChannels(appContext: Context) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
val notificationManager = appContext.getSystemService(AndroidApplication.NOTIFICATION_SERVICE) as NotificationManager
|
||||
HISTORIC_NOTIFICATION_CHANNELS.forEach {
|
||||
if (null != notificationManager.getNotificationChannel(it)) {
|
||||
notificationManager.deleteNotificationChannel(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun doWork(): Result {
|
||||
|
Loading…
Reference in New Issue
Block a user