You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
2.5 KiB
85 lines
2.5 KiB
package net.pokeranalytics.android.util
|
|
|
|
import android.content.Context
|
|
import android.content.res.Resources
|
|
import android.widget.Toast
|
|
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
|
|
import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment
|
|
import java.text.DateFormat
|
|
import java.text.DecimalFormat
|
|
import java.text.SimpleDateFormat
|
|
import java.util.*
|
|
|
|
|
|
|
|
// Sizes
|
|
val Int.dp: Int
|
|
get() = (this / Resources.getSystem().displayMetrics.density).toInt()
|
|
val Int.px: Int
|
|
get() = (this * Resources.getSystem().displayMetrics.density).toInt()
|
|
val Float.dp: Float
|
|
get() = (this / Resources.getSystem().displayMetrics.density)
|
|
val Float.px: Float
|
|
get() = (this * Resources.getSystem().displayMetrics.density)
|
|
|
|
|
|
// Double
|
|
|
|
fun Double.round(): String {
|
|
val formatter = DecimalFormat("##.##")
|
|
return formatter.format(this)
|
|
}
|
|
|
|
fun Double.toCurrency(): String {
|
|
val formatter = DecimalFormat("##.##")
|
|
return "$ ${formatter.format(this)}"
|
|
}
|
|
|
|
|
|
// Date
|
|
|
|
// Return a short string of the date
|
|
fun Date.short(): String {
|
|
return DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT).format(this)
|
|
}
|
|
// Return a medium string of the date
|
|
fun Date.medium(): String {
|
|
return DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM).format(this)
|
|
}
|
|
// Return the full string of the date
|
|
fun Date.full(): String {
|
|
return DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL).format(this)
|
|
}
|
|
// Return the day number of the date
|
|
fun Date.getDayNumber() : String {
|
|
return SimpleDateFormat("dd", Locale.getDefault()).format(this)
|
|
}
|
|
// Return the 3 first letters of the date's day
|
|
fun Date.getShortDayName() : String {
|
|
return SimpleDateFormat("EE", Locale.getDefault()).format(this)
|
|
}
|
|
// Return the duration between two dates
|
|
fun Date.getDuration(context: Context, toDate: Date) : String {
|
|
val difference = (toDate.time - this.time).toInt()
|
|
val numOfDays = (difference / (1000 * 60 * 60 * 24))
|
|
val hours = (difference / (1000 * 60 * 60))
|
|
val minutes = (difference / (1000 * 60)) % 60
|
|
val seconds = (difference / 1000) % 60
|
|
|
|
val hoursStr = if (hours < 10) "0$hours" else "$hours"
|
|
val minutesStr = if (minutes < 10) "0$minutes" else "$minutes"
|
|
val secondsStr = if (seconds < 10) "0$seconds" else "$seconds"
|
|
|
|
return "$hoursStr:$minutesStr:$secondsStr"
|
|
}
|
|
|
|
|
|
// Toast
|
|
|
|
fun PokerAnalyticsActivity.toast(message: String) {
|
|
Toast.makeText(this, message, Toast.LENGTH_SHORT).show()
|
|
}
|
|
|
|
fun PokerAnalyticsFragment.toast(message: String) {
|
|
Toast.makeText(requireContext(), message, Toast.LENGTH_SHORT).show()
|
|
} |