2022-11-06 21:05:36 +05:30
|
|
|
package com.github.libretube.util
|
|
|
|
|
2022-12-26 21:12:47 +05:30
|
|
|
import java.net.URL
|
2023-01-09 20:51:14 +05:30
|
|
|
import java.time.LocalDate
|
|
|
|
import java.time.format.DateTimeFormatter
|
|
|
|
import java.time.format.FormatStyle
|
|
|
|
import java.util.*
|
2022-12-26 21:12:47 +05:30
|
|
|
|
2022-11-06 21:05:36 +05:30
|
|
|
object TextUtils {
|
|
|
|
/**
|
|
|
|
* Separator used for descriptions
|
|
|
|
*/
|
|
|
|
const val SEPARATOR = " • "
|
2022-11-09 22:31:59 +05:30
|
|
|
|
2022-12-01 19:58:41 +05:30
|
|
|
/**
|
|
|
|
* Regex to check for e-mails
|
|
|
|
*/
|
|
|
|
const val EMAIL_REGEX = "^[A-Za-z](.*)([@]{1})(.{1,})(\\.)(.{1,})"
|
|
|
|
|
2022-12-25 13:17:17 +05:30
|
|
|
/**
|
|
|
|
* Reserved characters by unix which can not be used for file name.
|
|
|
|
*/
|
|
|
|
const val RESERVED_CHARS = "?:\"*|/\\<>\u0000"
|
|
|
|
|
2022-12-26 21:12:47 +05:30
|
|
|
/**
|
|
|
|
* Check whether an Url is valid
|
|
|
|
* @param url The url to test
|
|
|
|
* @return Whether the URL is valid
|
|
|
|
*/
|
|
|
|
fun validateUrl(url: String): Boolean {
|
|
|
|
runCatching {
|
|
|
|
URL(url).toURI()
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
return false
|
|
|
|
}
|
2023-01-09 20:51:14 +05:30
|
|
|
|
|
|
|
/**
|
|
|
|
* Localize the date from a time string
|
|
|
|
* @param date The date to parse
|
|
|
|
* @param locale The locale to use, otherwise uses system default
|
|
|
|
* return Localized date string
|
|
|
|
*/
|
2023-01-16 17:09:16 +05:30
|
|
|
fun localizeDate(date: String?, locale: Locale): String? {
|
2023-01-09 20:51:14 +05:30
|
|
|
date ?: return null
|
|
|
|
|
|
|
|
// relative time span
|
|
|
|
if (!date.contains("-")) return date
|
|
|
|
|
|
|
|
val dateObj = LocalDate.parse(date)
|
|
|
|
|
|
|
|
val formatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM).withLocale(locale)
|
|
|
|
return dateObj.format(formatter)
|
|
|
|
}
|
2022-11-06 21:05:36 +05:30
|
|
|
}
|