Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ package app.morphe.manager.ui.viewmodel
import android.content.Context
import android.util.Log
import app.morphe.manager.R
import app.morphe.manager.ui.viewmodel.HomeAndPatcherMessages.getHomeMessage
import app.morphe.manager.util.tag
import java.util.Calendar
import kotlin.random.Random

/**
Expand Down Expand Up @@ -37,7 +39,7 @@ object HomeAndPatcherMessages {

var currentMessageIndex = messageIndex.get(context)
if (currentMessageIndex > messages.lastIndex) {
// All messages are exhausted. Reset the shuffle so the next batch is in random order.
// All messages are exhausted. Reset the shuffle so the next batch is in random order
currentMessageIndex = 0
updateSeed = true
}
Expand Down Expand Up @@ -65,43 +67,63 @@ object HomeAndPatcherMessages {
}

/**
* Witty greeting message.
* Witty greeting message. Picks from a time-of-day bucket so the tone matches
* when the user opens the app.
*/
fun getHomeMessage(context: Context): Int {
// First message is always shown as the first message for installations,
// and all other strings are randomly shown.
// Use different seed on each install, but keep the same seed across sessions
var message = homeGreetingMessage

if (message == null) {
message = updateValues(
context,
homeGreetingMessageIndex,
homeGreetingMessageSeed,
listOf(
R.string.home_greeting_1,
R.string.home_greeting_2,
R.string.home_greeting_3,
return homeGreetingMessage ?: run {
// home_greeting_1 is always shown first on a new installation.
// All other strings in the active time bucket are randomly shown
val hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY)
val messages = listOf(R.string.home_greeting_1) + when (hour) {
in 5..11 -> listOf(
R.string.home_greeting_4,
R.string.home_greeting_5,
R.string.home_greeting_6,
R.string.home_greeting_7,
R.string.home_greeting_10,
R.string.home_greeting_morning_1,
R.string.home_greeting_morning_2,
)
in 12..16 -> listOf(
R.string.home_greeting_2,
R.string.home_greeting_8,
R.string.home_greeting_afternoon_1,
R.string.home_greeting_afternoon_2,
R.string.home_greeting_afternoon_3,
)
in 17..21 -> listOf(
R.string.home_greeting_3,
R.string.home_greeting_6,
R.string.home_greeting_evening_1,
R.string.home_greeting_evening_2,
R.string.home_greeting_evening_3,
)
in 22..23 -> listOf(
R.string.home_greeting_5,
R.string.home_greeting_9,
R.string.home_greeting_10,
R.string.home_greeting_late_night_1,
R.string.home_greeting_late_night_2,
R.string.home_greeting_late_night_3,
)
)
homeGreetingMessage = message
else -> listOf( // 0..4
R.string.home_greeting_super_late_1,
R.string.home_greeting_super_late_2,
R.string.home_greeting_super_late_3,
R.string.home_greeting_super_late_4,
R.string.home_greeting_super_late_5,
)
}
// Use different seed on each install, but keep the same seed across sessions
updateValues(context, homeGreetingMessageIndex, homeGreetingMessageSeed, messages).also {
homeGreetingMessage = it
}
}

return message
}

/**
* Witty patcher message.
*/
fun getPatcherMessage(context: Context): Int {
// Message changes each time called.
// Message changes each time called
return updateValues(
context,
patcherMessageIndex,
Expand Down
21 changes: 21 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,27 @@
<string name="home_greeting_9">Saving apps from themselves since today</string>
<!-- Light sarcasm, casual and tech-savvy humor -->
<string name="home_greeting_10">Powered by caffeine and good patches</string>
<!-- Morning greetings (5:00–11:59) -->
<string name="home_greeting_morning_1">Rise and patch</string>
<string name="home_greeting_morning_2">Good morning! Apps won\'t patch themselves</string>
<!-- Afternoon greetings (12:00–16:59) -->
<string name="home_greeting_afternoon_1">Afternoon slump? Patch something</string>
<string name="home_greeting_afternoon_2">Post-lunch patching hits different</string>
<string name="home_greeting_afternoon_3">The afternoon shift: patch edition</string>
<!-- Evening greetings (17:00–21:59) -->
<string name="home_greeting_evening_1">Good evening! Evening patches hit different</string>
<string name="home_greeting_evening_2">Winding down? Patch an app first</string>
<string name="home_greeting_evening_3">Clocking out? Patch something first</string>
<!-- Late night greetings (22:00–23:59) -->
<string name="home_greeting_late_night_1">Still up? So are the apps that need patching</string>
<string name="home_greeting_late_night_2">Late night patch session? Respect</string>
<string name="home_greeting_late_night_3">Night owl mode: activated</string>
<!-- Super late night greetings (0:00–4:59) -->
<string name="home_greeting_super_late_1">Peak patching hours… allegedly</string>
<string name="home_greeting_super_late_2">Can\'t sleep? Patch something</string>
<string name="home_greeting_super_late_3">At this point, just stay up and patch</string>
<string name="home_greeting_super_late_4">You and the servers, both awake</string>
<string name="home_greeting_super_late_5">Nocturnal and productive</string>

<!-- Home Screen - Sources Management -->
<string name="sources_management_title">Patch sources</string>
Expand Down
Loading