Fixes and drone build should work.
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
This commit is contained in:
parent
77917dd940
commit
6260c3fc06
@ -1,18 +1,19 @@
|
|||||||
kind: pipeline
|
kind: pipeline
|
||||||
type: docker
|
type: docker
|
||||||
|
name: android
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: build
|
- name: build
|
||||||
image: mingc/android-build-box:latest
|
image: mingc/android-build-box:latest
|
||||||
commands:
|
commands:
|
||||||
- ./gradlew build
|
- ./gradlew :androidApp:build -PignoreGitVersion=true
|
||||||
|
|
||||||
- name: code-analysis
|
- name: code-analysis
|
||||||
image: mingc/android-build-box:latest
|
image: mingc/android-build-box:latest
|
||||||
failure: ignore
|
failure: ignore
|
||||||
commands:
|
commands:
|
||||||
- ls -la
|
- ls -la
|
||||||
- ./gradlew sonarqube -Dsonar.projectKey=RFS2 -Dsonar.sources=. -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$SONAR_LOGIN
|
- ./gradlew sonarqube -Dsonar.projectKey=RFS2 -Dsonar.sources=. -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$SONAR_LOGIN -PignoreGitVersion=true
|
||||||
environment:
|
environment:
|
||||||
SONAR_HOST_URL:
|
SONAR_HOST_URL:
|
||||||
from_secret: sonarScannerHostUrl
|
from_secret: sonarScannerHostUrl
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
import java.io.ByteArrayOutputStream
|
import java.io.ByteArrayOutputStream
|
||||||
|
|
||||||
|
val ignoreGitVersion: String by project
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("com.android.application")
|
id("com.android.application")
|
||||||
kotlin("android")
|
kotlin("android")
|
||||||
@ -32,11 +34,19 @@ fun gitVersion(): String {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun versionCodeFromGit(): Int {
|
fun versionCodeFromGit(): Int {
|
||||||
|
if (ignoreGitVersion == "true") {
|
||||||
|
// don't care
|
||||||
|
return 1
|
||||||
|
}
|
||||||
println("version code " + gitVersion())
|
println("version code " + gitVersion())
|
||||||
return gitVersion().toInt()
|
return gitVersion().toInt()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun versionNameFromGit(): String {
|
fun versionNameFromGit(): String {
|
||||||
|
if (ignoreGitVersion == "true") {
|
||||||
|
// don't care
|
||||||
|
return "1"
|
||||||
|
}
|
||||||
println("version name " + gitVersion())
|
println("version name " + gitVersion())
|
||||||
return gitVersion()
|
return gitVersion()
|
||||||
}
|
}
|
||||||
|
@ -1,32 +0,0 @@
|
|||||||
// TODO
|
|
||||||
//package bou.amine.apps.readerforselfossv2.android.utils
|
|
||||||
//
|
|
||||||
//import bou.amine.apps.readerforselfossv2.android.utils.Config
|
|
||||||
//import bou.amine.apps.readerforselfossv2.android.utils.parseDate
|
|
||||||
//import org.junit.Test
|
|
||||||
//
|
|
||||||
//class DateUtilsTest {
|
|
||||||
//
|
|
||||||
// @Test
|
|
||||||
// fun parseDateV4() {
|
|
||||||
//
|
|
||||||
// Config.apiVersion = 4
|
|
||||||
// val dateString = "2013-04-07T13:43:00+01:00"
|
|
||||||
//
|
|
||||||
// val milliseconds = parseDate(dateString).toEpochMilli()
|
|
||||||
// val correctMilliseconds : Long = 1365338580000
|
|
||||||
//
|
|
||||||
// assert(milliseconds == correctMilliseconds)
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Test
|
|
||||||
// fun parseDateV1() {
|
|
||||||
// Config.apiVersion = 0
|
|
||||||
// val dateString = "2013-04-07 13:43:00"
|
|
||||||
//
|
|
||||||
// val milliseconds = parseDate(dateString).toEpochMilli()
|
|
||||||
// val correctMilliseconds = 1365342180000
|
|
||||||
//
|
|
||||||
// assert(milliseconds == correctMilliseconds)
|
|
||||||
// }
|
|
||||||
//}
|
|
@ -46,16 +46,16 @@ class AppColors(a: Activity) {
|
|||||||
|
|
||||||
colorBackground = if (isDarkTheme) {
|
colorBackground = if (isDarkTheme) {
|
||||||
a.setTheme(R.style.NoBarDark)
|
a.setTheme(R.style.NoBarDark)
|
||||||
R.color.darkBackground
|
a.resources.getColor(R.color.darkBackground)
|
||||||
} else {
|
} else {
|
||||||
a.setTheme(R.style.NoBar)
|
a.setTheme(R.style.NoBar)
|
||||||
R.color.grey_50
|
a.resources.getColor(R.color.grey_50)
|
||||||
}
|
}
|
||||||
|
|
||||||
textColor = if (isDarkTheme) {
|
textColor = if (isDarkTheme) {
|
||||||
R.color.white
|
a.resources.getColor(R.color.white)
|
||||||
} else {
|
} else {
|
||||||
R.color.grey_900
|
a.resources.getColor(R.color.grey_900)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,3 +18,5 @@ kotlin.native.enableDependencyPropagation=false
|
|||||||
android.useAndroidX=true
|
android.useAndroidX=true
|
||||||
android.enableJetifier=true
|
android.enableJetifier=true
|
||||||
kotlin.mpp.enableGranularSourceSetsMetadata=true
|
kotlin.mpp.enableGranularSourceSetsMetadata=true
|
||||||
|
org.gradle.parallel=true
|
||||||
|
ignoreGitVersion=false
|
||||||
|
@ -86,4 +86,8 @@ android {
|
|||||||
minSdk = 21
|
minSdk = 21
|
||||||
targetSdk = 31
|
targetSdk = 31
|
||||||
}
|
}
|
||||||
|
compileOptions {
|
||||||
|
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||||
|
targetCompatibility = JavaVersion.VERSION_1_8
|
||||||
|
}
|
||||||
}
|
}
|
@ -1,5 +0,0 @@
|
|||||||
package bou.amine.apps.readerforselfossv2
|
|
||||||
|
|
||||||
actual class Platform actual constructor() {
|
|
||||||
actual val platform: String = "Android ${android.os.Build.VERSION.SDK_INT}"
|
|
||||||
}
|
|
@ -0,0 +1,35 @@
|
|||||||
|
package bou.amine.apps.readerforselfossv2.utils
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint
|
||||||
|
import android.text.format.DateUtils
|
||||||
|
import java.time.Instant
|
||||||
|
import java.time.LocalDateTime
|
||||||
|
import java.time.OffsetDateTime
|
||||||
|
import java.time.ZoneOffset
|
||||||
|
import java.time.format.DateTimeFormatter
|
||||||
|
|
||||||
|
actual class DateUtils actual constructor(private val apiMajorVersion: Int) {
|
||||||
|
actual fun parseDate(dateString: String): Long {
|
||||||
|
|
||||||
|
val FORMATTERV1 = "yyyy-MM-dd HH:mm:ss"
|
||||||
|
|
||||||
|
return if (apiMajorVersion >= 4) {
|
||||||
|
OffsetDateTime.parse(dateString).toInstant().toEpochMilli()
|
||||||
|
} else {
|
||||||
|
LocalDateTime.parse(dateString, DateTimeFormatter.ofPattern(FORMATTERV1)).toInstant(
|
||||||
|
ZoneOffset.UTC).toEpochMilli()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
actual fun parseRelativeDate(dateString: String): String {
|
||||||
|
|
||||||
|
val date = parseDate(dateString)
|
||||||
|
|
||||||
|
return " " + DateUtils.getRelativeTimeSpanString(
|
||||||
|
date,
|
||||||
|
Instant.now().toEpochMilli(),
|
||||||
|
DateUtils.MINUTE_IN_MILLIS,
|
||||||
|
DateUtils.FORMAT_ABBREV_RELATIVE
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
@ -1,7 +0,0 @@
|
|||||||
package bou.amine.apps.readerforselfossv2
|
|
||||||
|
|
||||||
class Greeting {
|
|
||||||
fun greeting(): String {
|
|
||||||
return "Hello, ${Platform().platform}!"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,5 +0,0 @@
|
|||||||
package bou.amine.apps.readerforselfossv2
|
|
||||||
|
|
||||||
expect class Platform() {
|
|
||||||
val platform: String
|
|
||||||
}
|
|
@ -1,7 +1,5 @@
|
|||||||
package bou.amine.apps.readerforselfossv2.rest
|
package bou.amine.apps.readerforselfossv2.rest
|
||||||
|
|
||||||
import android.os.Parcelable
|
|
||||||
import android.text.Html
|
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
|
|
||||||
class SelfossModel {
|
class SelfossModel {
|
||||||
@ -13,7 +11,7 @@ class SelfossModel {
|
|||||||
val unread: Int
|
val unread: Int
|
||||||
) {
|
) {
|
||||||
fun getTitleDecoded(): String {
|
fun getTitleDecoded(): String {
|
||||||
return Html.fromHtml(tag).toString()
|
return tag // TODO Html.fromHtml(tag).toString()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,42 +1,16 @@
|
|||||||
package bou.amine.apps.readerforselfossv2.utils
|
package bou.amine.apps.readerforselfossv2.utils
|
||||||
|
|
||||||
//import android.text.format.DateUtils
|
|
||||||
import bou.amine.apps.readerforselfossv2.rest.SelfossModel
|
import bou.amine.apps.readerforselfossv2.rest.SelfossModel
|
||||||
import java.time.Instant
|
|
||||||
import java.time.LocalDateTime
|
|
||||||
import java.time.OffsetDateTime
|
|
||||||
import java.time.ZoneOffset
|
|
||||||
import java.time.format.DateTimeFormatter
|
|
||||||
|
|
||||||
fun SelfossModel.Item.parseDate(dateUtils: bou.amine.apps.readerforselfossv2.utils.DateUtils): Instant =
|
|
||||||
|
fun SelfossModel.Item.parseDate(dateUtils: DateUtils): Long =
|
||||||
dateUtils.parseDate(this.datetime)
|
dateUtils.parseDate(this.datetime)
|
||||||
|
|
||||||
fun SelfossModel.Item.parseRelativeDate(dateUtils: bou.amine.apps.readerforselfossv2.utils.DateUtils): String =
|
fun SelfossModel.Item.parseRelativeDate(dateUtils: DateUtils): String =
|
||||||
dateUtils.parseRelativeDate(this.datetime)
|
dateUtils.parseRelativeDate(this.datetime)
|
||||||
|
|
||||||
class DateUtils(private val apiMajorVersion: Int) {
|
expect class DateUtils(apiMajorVersion: Int) {
|
||||||
fun parseDate(dateString: String): Instant {
|
fun parseDate(dateString: String): Long
|
||||||
|
|
||||||
val FORMATTERV1 = "yyyy-MM-dd HH:mm:ss"
|
fun parseRelativeDate(dateString: String): String
|
||||||
|
|
||||||
return if (apiMajorVersion >= 4) {
|
|
||||||
OffsetDateTime.parse(dateString).toInstant()
|
|
||||||
} else {
|
|
||||||
LocalDateTime.parse(dateString, DateTimeFormatter.ofPattern(FORMATTERV1)).toInstant(ZoneOffset.UTC)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun parseRelativeDate(dateString: String): String {
|
|
||||||
|
|
||||||
val date = parseDate(dateString)
|
|
||||||
|
|
||||||
// TODO:
|
|
||||||
// return " " + DateUtils.getRelativeTimeSpanString(
|
|
||||||
// date.toEpochMilli(),
|
|
||||||
// Instant.now().toEpochMilli(),
|
|
||||||
// 60000L, // DateUtils.MINUTE_IN_MILLIS,
|
|
||||||
// 262144 // DateUtils.FORMAT_ABBREV_RELATIVE
|
|
||||||
// )
|
|
||||||
return dateString
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -1,7 +0,0 @@
|
|||||||
package bou.amine.apps.readerforselfossv2
|
|
||||||
|
|
||||||
import platform.UIKit.UIDevice
|
|
||||||
|
|
||||||
actual class Platform actual constructor() {
|
|
||||||
actual val platform: String = UIDevice.currentDevice.systemName() + " " + UIDevice.currentDevice.systemVersion
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user