mirror of
https://github.com/SimpleMobileTools/Simple-Clock.git
synced 2025-06-05 22:19:17 +02:00
show an extra timezone date too if it is different than the local one
This commit is contained in:
@ -5,8 +5,11 @@ import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import com.simplemobiletools.clock.R
|
||||
import com.simplemobiletools.clock.activities.SimpleActivity
|
||||
import com.simplemobiletools.clock.extensions.getFormattedDate
|
||||
import com.simplemobiletools.clock.models.MyTimeZone
|
||||
import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter
|
||||
import com.simplemobiletools.commons.extensions.beGone
|
||||
import com.simplemobiletools.commons.extensions.beVisible
|
||||
import com.simplemobiletools.commons.views.MyRecyclerView
|
||||
import kotlinx.android.synthetic.main.item_time_zone.view.*
|
||||
import java.util.*
|
||||
@ -14,6 +17,8 @@ import java.util.*
|
||||
class TimeZonesAdapter(activity: SimpleActivity, var timeZones: ArrayList<MyTimeZone>, recyclerView: MyRecyclerView, itemClick: (Any) -> Unit) :
|
||||
MyRecyclerViewAdapter(activity, recyclerView, null, itemClick) {
|
||||
|
||||
var todayDateString = activity.getFormattedDate(Calendar.getInstance())
|
||||
|
||||
override fun getActionMenuId() = R.menu.cab_timezones
|
||||
|
||||
override fun prepareActionMode(menu: Menu) {}
|
||||
@ -58,6 +63,7 @@ class TimeZonesAdapter(activity: SimpleActivity, var timeZones: ArrayList<MyTime
|
||||
val minutes = (passedSeconds / 60) % 60
|
||||
val format = "%02d:%02d"
|
||||
val formattedTime = String.format(format, hours, minutes)
|
||||
val formattedDate = activity.getFormattedDate(calendar)
|
||||
|
||||
view.apply {
|
||||
time_zone_title.text = timeZone.title.substring(timeZone.title.indexOf(' '))
|
||||
@ -65,6 +71,14 @@ class TimeZonesAdapter(activity: SimpleActivity, var timeZones: ArrayList<MyTime
|
||||
|
||||
time_zone_time.text = formattedTime
|
||||
time_zone_time.setTextColor(textColor)
|
||||
|
||||
if (formattedDate != todayDateString) {
|
||||
time_zone_date.beVisible()
|
||||
time_zone_date.text = formattedDate
|
||||
time_zone_date.setTextColor(textColor)
|
||||
} else {
|
||||
time_zone_date.beGone()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,19 @@
|
||||
package com.simplemobiletools.clock.extensions
|
||||
|
||||
import android.content.Context
|
||||
import com.simplemobiletools.clock.R
|
||||
import com.simplemobiletools.clock.helpers.Config
|
||||
import java.util.*
|
||||
|
||||
val Context.config: Config get() = Config.newInstance(applicationContext)
|
||||
|
||||
fun Context.getFormattedDate(calendar: Calendar): String {
|
||||
val dayOfWeek = (calendar.get(Calendar.DAY_OF_WEEK) + 5) % 7 // make sure index 0 means monday
|
||||
val dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH)
|
||||
val month = calendar.get(Calendar.MONTH)
|
||||
|
||||
val dayString = resources.getStringArray(R.array.week_days)[dayOfWeek]
|
||||
val shortDayString = dayString.substring(0, Math.min(3, dayString.length))
|
||||
val monthString = resources.getStringArray(R.array.months)[month]
|
||||
return "$shortDayString, $dayOfMonth $monthString"
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ import com.simplemobiletools.clock.activities.SimpleActivity
|
||||
import com.simplemobiletools.clock.adapters.TimeZonesAdapter
|
||||
import com.simplemobiletools.clock.dialogs.AddTimeZonesDialog
|
||||
import com.simplemobiletools.clock.extensions.config
|
||||
import com.simplemobiletools.clock.extensions.getFormattedDate
|
||||
import com.simplemobiletools.clock.helpers.getAllTimeZones
|
||||
import com.simplemobiletools.clock.models.MyTimeZone
|
||||
import com.simplemobiletools.commons.extensions.beVisibleIf
|
||||
@ -87,13 +88,13 @@ class ClockFragment : Fragment() {
|
||||
view.clock_time.text = formattedText
|
||||
|
||||
if (seconds == 0) {
|
||||
if (displayOtherTimeZones) {
|
||||
(view.time_zones_list.adapter as? TimeZonesAdapter)?.updateTimes()
|
||||
}
|
||||
|
||||
if (hours == 0 && minutes == 0) {
|
||||
updateDate()
|
||||
}
|
||||
|
||||
if (displayOtherTimeZones) {
|
||||
(view.time_zones_list.adapter as? TimeZonesAdapter)?.updateTimes()
|
||||
}
|
||||
}
|
||||
|
||||
updateHandler.postDelayed({
|
||||
@ -104,16 +105,12 @@ class ClockFragment : Fragment() {
|
||||
|
||||
private fun updateDate() {
|
||||
calendar = Calendar.getInstance()
|
||||
val dayOfWeek = (calendar.get(Calendar.DAY_OF_WEEK) + 5) % 7 // make sure index 0 means monday
|
||||
val dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH)
|
||||
val month = calendar.get(Calendar.MONTH)
|
||||
val formattedDate = context!!.getFormattedDate(calendar)
|
||||
view.clock_date.text = formattedDate
|
||||
|
||||
val dayString = context!!.resources.getStringArray(R.array.week_days)[dayOfWeek]
|
||||
val shortDayString = dayString.substring(0, Math.min(3, dayString.length))
|
||||
val monthString = context!!.resources.getStringArray(R.array.months)[month]
|
||||
|
||||
val dateString = "$shortDayString, $dayOfMonth $monthString"
|
||||
view.clock_date.text = dateString
|
||||
if (displayOtherTimeZones) {
|
||||
(view.time_zones_list.adapter as? TimeZonesAdapter)?.todayDateString = formattedDate
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateTimeZones() {
|
||||
|
Reference in New Issue
Block a user