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() }