VancedMicroG/play-services-core/src/main/kotlin/org/microg/gms/ui/DeviceRegistrationPreferenc...

58 lines
1.9 KiB
Kotlin
Raw Normal View History

2020-07-26 09:59:27 +00:00
/*
* SPDX-FileCopyrightText: 2020, microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package org.microg.gms.ui
import android.os.Bundle
import android.os.Handler
import android.text.format.DateUtils
import androidx.preference.Preference
import androidx.preference.PreferenceCategory
import androidx.preference.PreferenceFragmentCompat
import com.google.android.gms.R
import org.microg.gms.checkin.CheckinPrefs
import org.microg.gms.checkin.LastCheckinInfo
class DeviceRegistrationPreferencesFragment : PreferenceFragmentCompat() {
private lateinit var statusCategory: PreferenceCategory
private lateinit var status: Preference
private val handler = Handler()
private val updateRunnable = Runnable { updateStatus() }
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
addPreferencesFromResource(R.xml.preferences_device_registration)
}
override fun onBindPreferences() {
statusCategory = preferenceScreen.findPreference("prefcat_device_registration_status") ?: statusCategory
status = preferenceScreen.findPreference("pref_device_registration_status") ?: status
}
override fun onResume() {
super.onResume()
updateStatus()
}
override fun onPause() {
super.onPause()
handler.removeCallbacks(updateRunnable)
}
private fun updateStatus() {
handler.postDelayed(updateRunnable, UPDATE_INTERVAL)
statusCategory.isVisible = CheckinPrefs.get(context).isEnabled
val checkinInfo = LastCheckinInfo.read(requireContext())
status.summary = if (checkinInfo.lastCheckin > 0) {
2020-07-26 19:24:37 +00:00
getString(R.string.checkin_last_registration, DateUtils.getRelativeTimeSpanString(checkinInfo.lastCheckin, System.currentTimeMillis(), 0))
2020-07-26 09:59:27 +00:00
} else {
2020-07-26 19:24:37 +00:00
getString(R.string.checkin_not_registered)
2020-07-26 09:59:27 +00:00
}
}
companion object {
private const val UPDATE_INTERVAL = 1000L
}
}