Merge pull request #304 from cyb3rko/update-build
Update build components
This commit is contained in:
2
.editorconfig
Normal file
2
.editorconfig
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
[*.{kt,kts}]
|
||||||
|
ktlint_code_style = android
|
||||||
2
.github/workflows/main.yml
vendored
2
.github/workflows/main.yml
vendored
@@ -10,7 +10,7 @@ jobs:
|
|||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/setup-java@v1
|
- uses: actions/setup-java@v1
|
||||||
with:
|
with:
|
||||||
java-version: 11
|
java-version: 17
|
||||||
- if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
|
- if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
|
||||||
run: ./gradlew build --stacktrace
|
run: ./gradlew build --stacktrace
|
||||||
- if: ${{ startsWith(github.ref, 'refs/tags/v') }}
|
- if: ${{ startsWith(github.ref, 'refs/tags/v') }}
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ The foreground notification showing the connection status can be manually minimi
|
|||||||
|
|
||||||
## Building
|
## Building
|
||||||
|
|
||||||
Use Java 11 and execute the following command to build the apk.
|
Use Java 17 and execute the following command to build the apk.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ ./gradlew build
|
$ ./gradlew build
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id 'com.android.application'
|
id 'com.android.application'
|
||||||
id 'kotlin-android'
|
id 'kotlin-android'
|
||||||
id 'org.jmailen.kotlinter' version '3.13.0'
|
id 'org.jmailen.kotlinter' version '3.15.0'
|
||||||
}
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
@@ -33,18 +33,20 @@ android {
|
|||||||
viewBinding true
|
viewBinding true
|
||||||
}
|
}
|
||||||
compileOptions {
|
compileOptions {
|
||||||
sourceCompatibility JavaVersion.VERSION_11
|
sourceCompatibility JavaVersion.VERSION_17
|
||||||
targetCompatibility JavaVersion.VERSION_11
|
targetCompatibility JavaVersion.VERSION_17
|
||||||
}
|
}
|
||||||
kotlinOptions {
|
kotlinOptions {
|
||||||
jvmTarget = '11'
|
jvmTarget = '17'
|
||||||
}
|
|
||||||
lintOptions {
|
|
||||||
disable 'GoogleAppIndexingWarning'
|
|
||||||
lintConfig file('../lint.xml')
|
|
||||||
}
|
}
|
||||||
packagingOptions {
|
packagingOptions {
|
||||||
exclude 'META-INF/DEPENDENCIES'
|
resources {
|
||||||
|
excludes += ['META-INF/DEPENDENCIES']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lint {
|
||||||
|
disable 'GoogleAppIndexingWarning'
|
||||||
|
lintConfig file('../lint.xml')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -64,13 +66,13 @@ if (project.hasProperty('sign')) {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation project(':client')
|
implementation project(':client')
|
||||||
implementation 'androidx.appcompat:appcompat:1.5.1'
|
implementation 'androidx.appcompat:appcompat:1.6.1'
|
||||||
implementation 'androidx.core:core-splashscreen:1.0.0'
|
implementation 'androidx.core:core-splashscreen:1.0.1'
|
||||||
implementation 'com.google.android.material:material:1.7.0'
|
implementation 'com.google.android.material:material:1.9.0'
|
||||||
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
|
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
|
||||||
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
|
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
|
||||||
implementation 'androidx.vectordrawable:vectordrawable:1.1.0'
|
implementation 'androidx.vectordrawable:vectordrawable:1.1.0'
|
||||||
implementation 'androidx.preference:preference:1.2.0'
|
implementation 'androidx.preference:preference-ktx:1.2.0'
|
||||||
|
|
||||||
implementation 'com.github.cyb3rko:QuickPermissions-Kotlin:1.0.2'
|
implementation 'com.github.cyb3rko:QuickPermissions-Kotlin:1.0.2'
|
||||||
implementation 'com.hypertrack:hyperlog:0.0.10'
|
implementation 'com.hypertrack:hyperlog:0.0.10'
|
||||||
|
|||||||
@@ -17,12 +17,6 @@ import com.google.android.material.snackbar.Snackbar
|
|||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import com.squareup.picasso.Picasso.LoadedFrom
|
import com.squareup.picasso.Picasso.LoadedFrom
|
||||||
import com.squareup.picasso.Target
|
import com.squareup.picasso.Target
|
||||||
import kotlinx.coroutines.CoroutineDispatcher
|
|
||||||
import kotlinx.coroutines.CoroutineScope
|
|
||||||
import kotlinx.coroutines.Dispatchers
|
|
||||||
import kotlinx.coroutines.launch
|
|
||||||
import okio.Buffer
|
|
||||||
import org.threeten.bp.OffsetDateTime
|
|
||||||
import java.io.BufferedReader
|
import java.io.BufferedReader
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.io.InputStream
|
import java.io.InputStream
|
||||||
@@ -31,6 +25,12 @@ import java.net.MalformedURLException
|
|||||||
import java.net.URI
|
import java.net.URI
|
||||||
import java.net.URISyntaxException
|
import java.net.URISyntaxException
|
||||||
import java.net.URL
|
import java.net.URL
|
||||||
|
import kotlinx.coroutines.CoroutineDispatcher
|
||||||
|
import kotlinx.coroutines.CoroutineScope
|
||||||
|
import kotlinx.coroutines.Dispatchers
|
||||||
|
import kotlinx.coroutines.launch
|
||||||
|
import okio.Buffer
|
||||||
|
import org.threeten.bp.OffsetDateTime
|
||||||
|
|
||||||
internal object Utils {
|
internal object Utils {
|
||||||
val JSON: Gson = JSON().gson
|
val JSON: Gson = JSON().gson
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.github.gotify.api
|
package com.github.gotify.api
|
||||||
|
|
||||||
import retrofit2.Call
|
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
|
import retrofit2.Call
|
||||||
|
|
||||||
internal object Api {
|
internal object Api {
|
||||||
@Throws(ApiException::class)
|
@Throws(ApiException::class)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.github.gotify.api
|
package com.github.gotify.api
|
||||||
|
|
||||||
import retrofit2.Response
|
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
|
import retrofit2.Response
|
||||||
|
|
||||||
internal class ApiException : Exception {
|
internal class ApiException : Exception {
|
||||||
var body: String = ""
|
var body: String = ""
|
||||||
|
|||||||
@@ -51,7 +51,10 @@ internal class Callback<T> private constructor(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun <T> call(onSuccess: SuccessCallback<T> = SuccessCallback {}, onError: ErrorCallback = ErrorCallback {}): retrofit2.Callback<T> {
|
fun <T> call(
|
||||||
|
onSuccess: SuccessCallback<T> = SuccessCallback {},
|
||||||
|
onError: ErrorCallback = ErrorCallback {}
|
||||||
|
): retrofit2.Callback<T> {
|
||||||
return RetrofitCallback(merge(of(onSuccess, onError), errorCallback()))
|
return RetrofitCallback(merge(of(onSuccess, onError), errorCallback()))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import android.annotation.SuppressLint
|
|||||||
import com.github.gotify.SSLSettings
|
import com.github.gotify.SSLSettings
|
||||||
import com.github.gotify.Utils
|
import com.github.gotify.Utils
|
||||||
import com.github.gotify.log.Log
|
import com.github.gotify.log.Log
|
||||||
import okhttp3.OkHttpClient
|
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.security.GeneralSecurityException
|
import java.security.GeneralSecurityException
|
||||||
import java.security.KeyStore
|
import java.security.KeyStore
|
||||||
@@ -16,6 +15,7 @@ import javax.net.ssl.SSLContext
|
|||||||
import javax.net.ssl.TrustManager
|
import javax.net.ssl.TrustManager
|
||||||
import javax.net.ssl.TrustManagerFactory
|
import javax.net.ssl.TrustManagerFactory
|
||||||
import javax.net.ssl.X509TrustManager
|
import javax.net.ssl.X509TrustManager
|
||||||
|
import okhttp3.OkHttpClient
|
||||||
|
|
||||||
internal object CertUtils {
|
internal object CertUtils {
|
||||||
@SuppressLint("CustomX509TrustManager")
|
@SuppressLint("CustomX509TrustManager")
|
||||||
|
|||||||
@@ -31,8 +31,8 @@ import com.github.gotify.log.LogsActivity
|
|||||||
import com.github.gotify.log.UncaughtExceptionHandler
|
import com.github.gotify.log.UncaughtExceptionHandler
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import com.google.android.material.textfield.TextInputEditText
|
import com.google.android.material.textfield.TextInputEditText
|
||||||
import okhttp3.HttpUrl
|
|
||||||
import java.security.cert.X509Certificate
|
import java.security.cert.X509Certificate
|
||||||
|
import okhttp3.HttpUrl
|
||||||
|
|
||||||
internal class LoginActivity : AppCompatActivity() {
|
internal class LoginActivity : AppCompatActivity() {
|
||||||
companion object {
|
companion object {
|
||||||
|
|||||||
@@ -26,9 +26,9 @@ import com.github.gotify.databinding.MessageItemCompactBinding
|
|||||||
import com.github.gotify.messages.provider.MessageWithImage
|
import com.github.gotify.messages.provider.MessageWithImage
|
||||||
import com.squareup.picasso.Picasso
|
import com.squareup.picasso.Picasso
|
||||||
import io.noties.markwon.Markwon
|
import io.noties.markwon.Markwon
|
||||||
import org.threeten.bp.OffsetDateTime
|
|
||||||
import java.text.DateFormat
|
import java.text.DateFormat
|
||||||
import java.util.Date
|
import java.util.Date
|
||||||
|
import org.threeten.bp.OffsetDateTime
|
||||||
|
|
||||||
internal class ListMessageAdapter(
|
internal class ListMessageAdapter(
|
||||||
private val context: Context,
|
private val context: Context,
|
||||||
|
|||||||
@@ -56,9 +56,9 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
|||||||
import com.google.android.material.navigation.NavigationView
|
import com.google.android.material.navigation.NavigationView
|
||||||
import com.google.android.material.snackbar.BaseTransientBottomBar.BaseCallback
|
import com.google.android.material.snackbar.BaseTransientBottomBar.BaseCallback
|
||||||
import com.google.android.material.snackbar.Snackbar
|
import com.google.android.material.snackbar.Snackbar
|
||||||
|
import java.io.IOException
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
import java.io.IOException
|
|
||||||
|
|
||||||
internal class MessagesActivity :
|
internal class MessagesActivity :
|
||||||
AppCompatActivity(),
|
AppCompatActivity(),
|
||||||
|
|||||||
@@ -11,10 +11,10 @@ import com.github.gotify.client.model.Application
|
|||||||
import com.github.gotify.log.Log
|
import com.github.gotify.log.Log
|
||||||
import com.squareup.picasso.OkHttp3Downloader
|
import com.squareup.picasso.OkHttp3Downloader
|
||||||
import com.squareup.picasso.Picasso
|
import com.squareup.picasso.Picasso
|
||||||
import okhttp3.Cache
|
|
||||||
import okhttp3.OkHttpClient
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
|
import okhttp3.Cache
|
||||||
|
import okhttp3.OkHttpClient
|
||||||
|
|
||||||
internal class PicassoHandler(private val context: Context, private val settings: Settings) {
|
internal class PicassoHandler(private val context: Context, private val settings: Settings) {
|
||||||
companion object {
|
companion object {
|
||||||
|
|||||||
@@ -10,15 +10,15 @@ import com.github.gotify.Utils
|
|||||||
import com.github.gotify.api.CertUtils
|
import com.github.gotify.api.CertUtils
|
||||||
import com.github.gotify.client.model.Message
|
import com.github.gotify.client.model.Message
|
||||||
import com.github.gotify.log.Log
|
import com.github.gotify.log.Log
|
||||||
|
import java.util.Calendar
|
||||||
|
import java.util.concurrent.TimeUnit
|
||||||
|
import java.util.concurrent.atomic.AtomicLong
|
||||||
import okhttp3.HttpUrl
|
import okhttp3.HttpUrl
|
||||||
import okhttp3.OkHttpClient
|
import okhttp3.OkHttpClient
|
||||||
import okhttp3.Request
|
import okhttp3.Request
|
||||||
import okhttp3.Response
|
import okhttp3.Response
|
||||||
import okhttp3.WebSocket
|
import okhttp3.WebSocket
|
||||||
import okhttp3.WebSocketListener
|
import okhttp3.WebSocketListener
|
||||||
import java.util.Calendar
|
|
||||||
import java.util.concurrent.TimeUnit
|
|
||||||
import java.util.concurrent.atomic.AtomicLong
|
|
||||||
|
|
||||||
internal class WebSocketConnection(
|
internal class WebSocketConnection(
|
||||||
private val baseUrl: String,
|
private val baseUrl: String,
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ internal class WebSocketService : Service() {
|
|||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
NotificationSupport.createChannels(
|
NotificationSupport.createChannels(
|
||||||
this,
|
this,
|
||||||
(this.getSystemService(NOTIFICATION_SERVICE) as NotificationManager),
|
(getSystemService(NOTIFICATION_SERVICE) as NotificationManager),
|
||||||
apps
|
apps
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ buildscript {
|
|||||||
google()
|
google()
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:7.3.1'
|
classpath 'com.android.tools.build:gradle:8.0.2'
|
||||||
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.20'
|
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.20'
|
||||||
|
|
||||||
// NOTE: Do not place your application dependencies here; they belong
|
// NOTE: Do not place your application dependencies here; they belong
|
||||||
// in the individual module build.gradle files
|
// in the individual module build.gradle files
|
||||||
|
|||||||
@@ -6,9 +6,13 @@
|
|||||||
# http://www.gradle.org/docs/current/userguide/build_environment.html
|
# http://www.gradle.org/docs/current/userguide/build_environment.html
|
||||||
# Specifies the JVM arguments used for the daemon process.
|
# Specifies the JVM arguments used for the daemon process.
|
||||||
# The setting is particularly useful for tweaking memory settings.
|
# The setting is particularly useful for tweaking memory settings.
|
||||||
|
android.defaults.buildfeatures.buildconfig=true
|
||||||
android.enableJetifier=true
|
android.enableJetifier=true
|
||||||
|
android.nonFinalResIds=true
|
||||||
|
android.nonTransitiveRClass=true
|
||||||
android.useAndroidX=true
|
android.useAndroidX=true
|
||||||
org.gradle.jvmargs=-Xmx1536m
|
org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
|
||||||
|
org.gradle.unsafe.configuration-cache=true
|
||||||
# When configured, Gradle will run in incubating parallel mode.
|
# When configured, Gradle will run in incubating parallel mode.
|
||||||
# This option should only be used with decoupled projects. More details, visit
|
# This option should only be used with decoupled projects. More details, visit
|
||||||
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
|
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
|
||||||
|
|||||||
3
gradle/wrapper/gradle-wrapper.properties
vendored
3
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,5 +1,6 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
|
distrubutionSha256Sum=e111cb9948407e26351227dabce49822fb88c37ee72f1d1582a69c68af2e702f
|
||||||
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
|
|||||||
Reference in New Issue
Block a user