Fixes and drone build should work.

This commit is contained in:
aminecmi 2022-08-17 10:43:56 +02:00
parent 77917dd940
commit 6260c3fc06
13 changed files with 66 additions and 98 deletions

View File

@ -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

View File

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

View File

@ -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)
// }
//}

View File

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

View File

@ -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

View File

@ -86,4 +86,8 @@ android {
minSdk = 21 minSdk = 21
targetSdk = 31 targetSdk = 31
} }
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
} }

View File

@ -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}"
}

View File

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

View File

@ -1,7 +0,0 @@
package bou.amine.apps.readerforselfossv2
class Greeting {
fun greeting(): String {
return "Hello, ${Platform().platform}!"
}
}

View File

@ -1,5 +0,0 @@
package bou.amine.apps.readerforselfossv2
expect class Platform() {
val platform: String
}

View File

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

View File

@ -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
}
} }

View File

@ -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
}