Обновление значения виджета

Задача: каждый раз через 24 часа изменять значение в виджете. Проблема: не знаю, как поочередно подставлять значения в виджет. Подробнее: в MainActivity я записываю 7 чисел из EditText'ов в память с помощью библиотеки Paper. В сервисе, который отвечает за обновление значения виджета я пытаюсь прописать логику, которая поочередно подставляла бы значения. Мне нужно считывать, какое значение в виджете или что-то по типу того. Пример: я ввел в 3 текстовых поля 3 разных числа. При запуске виджета должно отобразиться первое число. Через 24 часа второе число, еще через 24 часа третье число. Я пытался это реализовать с помощью переменных-флажков, но ведь я присваиваю им значения в коде, а при повторном запуске кода это значение заново присваивается. Есть у кого идеи? Буду очень признателен. Ниже код (немного грязный, извиняюсь :)):

MainActivity.ky

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    initCreate()
    initFuncs()
}

private fun initCreate() {
    APP_ACTIVITY = this
    Paper.init(this)
    checkData()
}

private fun initFuncs() {
    startBtn.setOnClickListener {
        writeData()
        startBroadcast()

    }
    stopBtn.setOnClickListener {
        deleteData()
        stopBroadcast()
    }
}

private fun stopBroadcast() {
    stopService(Intent(this, MyService::class.java))
}

private fun startBroadcast() {
    val intent = Intent(this, MyService::class.java)
    val pendingIntent =
        PendingIntent.getService(applicationContext, 1, intent, PendingIntent.FLAG_IMMUTABLE)
    val alarmManager = getSystemService(ALARM_SERVICE) as AlarmManager
    alarmManager.setInexactRepeating(
        AlarmManager.RTC_WAKEUP,
        System.currentTimeMillis(),
        AlarmManager.INTERVAL_DAY,
        pendingIntent
    )
    Toast.makeText(this, "Alarm will ring after every 15 minutes interval", Toast.LENGTH_LONG)
        .show()
}

private fun updateWidgetData(text: String) {
    val context: Context = this
    val appWidgetManager = AppWidgetManager.getInstance(context)
    val remoteViews = RemoteViews(context.packageName, R.layout.my_widget)
    val thisWidget = ComponentName(context, MyWidget::class.java)
    remoteViews.setTextViewText(R.id.appwidgetText, text)
    appWidgetManager.updateAppWidget(thisWidget, remoteViews)
}

private fun checkData() {
    if (Paper.book().read<String>("one") != "") {
        val one = Paper.book().read<String>("one")
        enterNumberOne.setText(one)
    }
    if (Paper.book().read<String>("two") != "") {
        val two = Paper.book().read<String>("two")
        enterNumberTwo.setText(two)
    }
    if (Paper.book().read<String>("three") != "") {
        val three = Paper.book().read<String>("three")
        enterNumberThree.setText(three)
    }
    if (Paper.book().read<String>("four") != "") {
        val four = Paper.book().read<String>("four")
        enterNumberFour.setText(four)
    }
    if (Paper.book().read<String>("five") != "") {
        val five = Paper.book().read<String>("five")
        enterNumberFive.setText(five)
    }
    if (Paper.book().read<String>("six") != "") {
        val six = Paper.book().read<String>("six")
        enterNumberSix.setText(six)
    }
    if (Paper.book().read<String>("seven") != "") {
        val seven = Paper.book().read<String>("seven")
        enterNumberSeven.setText(seven)
    }
}

private fun deleteData() {
    Paper.book().delete("one")
    enterNumberOne.setText("")
    Paper.book().delete("two")
    enterNumberTwo.setText("")
    Paper.book().delete("three")
    enterNumberThree.setText("")
    Paper.book().delete("four")
    enterNumberFour.setText("")
    Paper.book().delete("five")
    enterNumberFive.setText("")
    Paper.book().delete("six")
    enterNumberSix.setText("")
    Paper.book().delete("seven")
    enterNumberSeven.setText("")
    updateWidgetData("")
}

private fun writeData() {
    Paper.book().write("one", enterNumberOne.text.toString())
    Paper.book().write("two", enterNumberTwo.text.toString())
    Paper.book().write("three", enterNumberThree.text.toString())
    Paper.book().write("four", enterNumberFour.text.toString())
    Paper.book().write("five", enterNumberFive.text.toString())
    Paper.book().write("six", enterNumberSix.text.toString())
    Paper.book().write("seven", enterNumberSeven.text.toString())
    val text = enterNumberOne.text.toString()
    updateWidgetData(text)
}

}

MyService.kt (оставил следы своих тщетных попыток)

lass MyService : Service() {
private var count = 0
private var subCount = 0
private lateinit var one: String
private lateinit var two: String
private lateinit var three: String
private lateinit var four: String
private lateinit var five: String
private lateinit var six: String
private lateinit var seven: String

override fun onCreate() {
    super.onCreate()
    Paper.init(this)
    checkData()

    when(Paper.book("main").read<Int>("sub")) {
        2 -> {
            updateWidgetData("two")
        }
        1 -> {
            updateWidgetData("one")
            Paper.book("main").write("sub", 2)
        }
    }

    pasteData()
}

private fun pasteData() {
    when (count) {
        1 -> {
            updateWidgetData(one)
        }
        2 -> {

        }
        3 -> {
            if (subCount == 1) {
                updateWidgetData(one)
                subCount = 3
            }
            if (subCount == 2) {
                updateWidgetData(two)
                subCount--
            }
            if (subCount == 3) {
                updateWidgetData(one)
                subCount--
            }
        }
    }
}

private fun checkData() {
    if (Paper.book().read<String>("one") != "") {
        one = Paper.book().read<String>("one").toString()
        count++
    }
    if (Paper.book().read<String>("two") != "") {
        two = Paper.book().read<String>("two").toString()
        count++
    }
    if (Paper.book().read<String>("three") != "") {
        three = Paper.book().read<String>("three").toString()
        count++
    }
    if (Paper.book().read<String>("four") != "") {
        four = Paper.book().read<String>("four").toString()
        count++
    }
    if (Paper.book().read<String>("five") != "") {
        five = Paper.book().read<String>("five").toString()
        count++
    }
    if (Paper.book().read<String>("six") != "") {
        six = Paper.book().read<String>("six").toString()
        count++
    }
    if (Paper.book().read<String>("seven") != "") {
        seven = Paper.book().read<String>("seven").toString()
        count++
    }
}

private fun updateWidgetData(text: String) {
    val context: Context = this
    val appWidgetManager = AppWidgetManager.getInstance(context)
    val remoteViews = RemoteViews(context.packageName, R.layout.my_widget)
    val thisWidget = ComponentName(context, MyWidget::class.java)
    remoteViews.setTextViewText(R.id.appwidgetText, text)
    appWidgetManager.updateAppWidget(thisWidget, remoteViews)
}

override fun onBind(intent: Intent?): IBinder? {
    return null
}

}


Ответы (0 шт):