Skip to content

Commit 6ac5f69

Browse files
authored
Merge pull request #414 from cyb3rko/sdk-36-update
Android 16 + miscellaneous updates
2 parents 20305cb + 5397c5d commit 6ac5f69

File tree

17 files changed

+50
-48
lines changed

17 files changed

+50
-48
lines changed

app/build.gradle.kts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,16 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget
55
plugins {
66
id("com.android.application")
77
id("kotlin-android")
8-
id("org.jmailen.kotlinter") version "4.4.1"
8+
id("org.jmailen.kotlinter") version "5.1.1"
99
}
1010

1111
android {
1212
namespace = "com.github.gotify"
13-
compileSdk = 35
13+
compileSdk = 36
1414
defaultConfig {
1515
applicationId = "com.github.gotify"
1616
minSdk = 23
17-
targetSdk = 35
17+
targetSdk = 36
1818
versionCode = 33
1919
versionName = "2.8.2"
2020
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
@@ -79,15 +79,15 @@ dependencies {
7979
val markwonVersion = "4.6.2"
8080
val tinylogVersion = "2.7.0"
8181
implementation(project(":client"))
82-
implementation("androidx.appcompat:appcompat:1.7.0")
82+
implementation("androidx.appcompat:appcompat:1.7.1")
8383
implementation("androidx.core:core-splashscreen:1.0.1")
8484
implementation("com.google.android.material:material:1.12.0")
85-
implementation("androidx.constraintlayout:constraintlayout:2.1.4")
85+
implementation("androidx.constraintlayout:constraintlayout:2.2.1")
8686
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
8787
implementation("androidx.vectordrawable:vectordrawable:1.2.0")
8888
implementation("androidx.preference:preference-ktx:1.2.1")
8989

90-
implementation("com.github.cyb3rko:QuickPermissions-Kotlin:1.1.5")
90+
implementation("com.github.cyb3rko:QuickPermissions-Kotlin:1.1.6")
9191
implementation("io.coil-kt:coil:$coilVersion")
9292
implementation("io.coil-kt:coil-svg:$coilVersion")
9393
implementation("io.noties.markwon:core:$markwonVersion")
@@ -99,9 +99,9 @@ dependencies {
9999
implementation("org.tinylog:tinylog-api-kotlin:$tinylogVersion")
100100
implementation("org.tinylog:tinylog-impl:$tinylogVersion")
101101

102-
implementation("com.google.code.gson:gson:2.11.0")
103-
implementation("com.squareup.retrofit2:retrofit:2.11.0")
104-
implementation("org.threeten:threetenbp:1.7.0")
102+
implementation("com.google.code.gson:gson:2.13.1")
103+
implementation("com.squareup.retrofit2:retrofit:3.0.0")
104+
implementation("org.threeten:threetenbp:1.7.1")
105105
}
106106

107107
configurations {

app/src/main/kotlin/com/github/gotify/CoilInstance.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ package com.github.gotify
33
import android.content.Context
44
import android.graphics.Bitmap
55
import android.graphics.BitmapFactory
6-
import android.graphics.drawable.BitmapDrawable
76
import android.net.Uri
87
import android.util.Base64
98
import androidx.annotation.DrawableRes
109
import androidx.appcompat.content.res.AppCompatResources
1110
import androidx.core.graphics.drawable.toBitmap
11+
import androidx.core.graphics.drawable.toDrawable
1212
import coil.ImageLoader
1313
import coil.annotation.ExperimentalCoilApi
1414
import coil.decode.DataSource
@@ -148,7 +148,7 @@ class DataDecoderFactory : Fetcher.Factory<Uri> {
148148

149149
return Fetcher {
150150
DrawableResult(
151-
drawable = BitmapDrawable(options.context.resources, bitmap),
151+
drawable = bitmap.toDrawable(options.context.resources),
152152
isSampled = false,
153153
dataSource = DataSource.MEMORY
154154
)

app/src/main/kotlin/com/github/gotify/MissedMessageUtil.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ internal class MissedMessageUtil(private val api: MessageApi) {
3333
val filtered = filter(messages, till)
3434
result.addAll(filtered)
3535
if (messages.size != filtered.size ||
36-
messages.size == 0 ||
36+
messages.isEmpty() ||
3737
pagedMessages.paging.next == null
3838
) {
3939
break

app/src/main/kotlin/com/github/gotify/Settings.kt

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,18 @@ package com.github.gotify
22

33
import android.content.Context
44
import android.content.SharedPreferences
5+
import androidx.core.content.edit
56
import com.github.gotify.client.model.User
67

78
internal class Settings(context: Context) {
89
private val sharedPreferences: SharedPreferences
910
val filesDir: String
1011
var url: String
1112
get() = sharedPreferences.getString("url", "")!!
12-
set(value) = sharedPreferences.edit().putString("url", value).apply()
13+
set(value) = sharedPreferences.edit { putString("url", value) }
1314
var token: String?
1415
get() = sharedPreferences.getString("token", null)
15-
set(value) = sharedPreferences.edit().putString("token", value).apply()
16+
set(value) = sharedPreferences.edit { putString("token", value) }
1617
var user: User? = null
1718
get() {
1819
val username = sharedPreferences.getString("username", null)
@@ -26,22 +27,24 @@ internal class Settings(context: Context) {
2627
private set
2728
var serverVersion: String
2829
get() = sharedPreferences.getString("version", "UNKNOWN")!!
29-
set(value) = sharedPreferences.edit().putString("version", value).apply()
30+
set(value) = sharedPreferences.edit { putString("version", value) }
3031
var legacyCert: String?
3132
get() = sharedPreferences.getString("cert", null)
32-
set(value) = sharedPreferences.edit().putString("cert", value).commit().toUnit()
33+
set(value) = sharedPreferences.edit(commit = true) { putString("cert", value) }.toUnit()
3334
var caCertPath: String?
3435
get() = sharedPreferences.getString("caCertPath", null)
35-
set(value) = sharedPreferences.edit().putString("caCertPath", value).commit().toUnit()
36+
set(value) = sharedPreferences
37+
.edit(commit = true) { putString("caCertPath", value) }
38+
.toUnit()
3639
var validateSSL: Boolean
3740
get() = sharedPreferences.getBoolean("validateSSL", true)
38-
set(value) = sharedPreferences.edit().putBoolean("validateSSL", value).apply()
41+
set(value) = sharedPreferences.edit { putBoolean("validateSSL", value) }
3942
var clientCertPath: String?
4043
get() = sharedPreferences.getString("clientCertPath", null)
41-
set(value) = sharedPreferences.edit().putString("clientCertPath", value).apply()
44+
set(value) = sharedPreferences.edit { putString("clientCertPath", value) }
4245
var clientCertPassword: String?
4346
get() = sharedPreferences.getString("clientCertPass", null)
44-
set(value) = sharedPreferences.edit().putString("clientCertPass", value).apply()
47+
set(value) = sharedPreferences.edit { putString("clientCertPass", value) }
4548

4649
init {
4750
sharedPreferences = context.getSharedPreferences("gotify", Context.MODE_PRIVATE)
@@ -61,7 +64,7 @@ internal class Settings(context: Context) {
6164
}
6265

6366
fun setUser(name: String?, admin: Boolean) {
64-
sharedPreferences.edit().putString("username", name).putBoolean("admin", admin).apply()
67+
sharedPreferences.edit { putString("username", name).putBoolean("admin", admin) }
6568
}
6669

6770
fun sslSettings(): SSLSettings {

app/src/main/kotlin/com/github/gotify/api/Callback.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package com.github.gotify.api
22

33
import android.app.Activity
4-
import com.github.gotify.api.Callback.ErrorCallback
5-
import com.github.gotify.api.Callback.SuccessCallback
64
import org.tinylog.kotlin.Logger
75
import retrofit2.Call
86
import retrofit2.Response

app/src/main/kotlin/com/github/gotify/init/InitializationActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ package com.github.gotify.init
33
import android.Manifest
44
import android.app.AlarmManager
55
import android.content.Intent
6-
import android.net.Uri
76
import android.os.Build
87
import android.os.Bundle
98
import androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult
109
import androidx.annotation.RequiresApi
1110
import androidx.appcompat.app.AppCompatActivity
1211
import androidx.core.content.ContextCompat
12+
import androidx.core.net.toUri
1313
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
1414
import com.github.gotify.R
1515
import com.github.gotify.Settings
@@ -126,7 +126,7 @@ internal class InitializationActivity : AppCompatActivity() {
126126
.setPositiveButton(getString(R.string.permissions_dialog_grant)) { _, _ ->
127127
Intent(
128128
android.provider.Settings.ACTION_REQUEST_SCHEDULE_EXACT_ALARM,
129-
Uri.parse("package:$packageName")
129+
"package:$packageName".toUri()
130130
).apply {
131131
activityResultLauncher.launch(this)
132132
}

app/src/main/kotlin/com/github/gotify/log/LogsActivity.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package com.github.gotify.log
22

33
import android.content.ClipData
44
import android.content.ClipboardManager
5-
import android.content.Context
65
import android.os.Bundle
76
import android.os.Handler
87
import android.os.Looper
@@ -73,7 +72,7 @@ internal class LogsActivity : AppCompatActivity() {
7372
R.id.action_copy_logs -> {
7473
val content = binding.logContent
7574
val clipboardManager =
76-
getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
75+
getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
7776
val clipData = ClipData.newPlainText("GotifyLog", content.text.toString())
7877
clipboardManager.setPrimaryClip(clipData)
7978
Utils.showSnackBar(this, getString(R.string.logs_copied))

app/src/main/kotlin/com/github/gotify/login/LoginActivity.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ internal class LoginActivity : AppCompatActivity() {
215215

216216
try {
217217
resultLauncher.launch(Intent.createChooser(intent, getString(descriptionId)))
218-
} catch (e: ActivityNotFoundException) {
218+
} catch (_: ActivityNotFoundException) {
219219
// case for user not having a file browser installed
220220
Utils.showSnackBar(this, getString(R.string.please_install_file_browser))
221221
}

app/src/main/kotlin/com/github/gotify/messages/IntentUrlDialogActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package com.github.gotify.messages
22

33
import android.content.Intent
4-
import android.net.Uri
54
import android.os.Bundle
65
import androidx.appcompat.app.AppCompatActivity
6+
import androidx.core.net.toUri
77
import com.github.gotify.databinding.ActivityDialogIntentUrlBinding
88

99
internal class IntentUrlDialogActivity : AppCompatActivity() {
@@ -18,7 +18,7 @@ internal class IntentUrlDialogActivity : AppCompatActivity() {
1818
binding.openButton.setOnClickListener {
1919
finish()
2020
Intent(Intent.ACTION_VIEW).apply {
21-
data = Uri.parse(intentUrl)
21+
data = intentUrl?.toUri()
2222
flags = Intent.FLAG_ACTIVITY_NEW_TASK
2323
startActivity(this)
2424
}

app/src/main/kotlin/com/github/gotify/messages/MessagesActivity.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.github.gotify.messages
22

3+
import android.annotation.SuppressLint
34
import android.app.NotificationManager
45
import android.content.BroadcastReceiver
56
import android.content.Context
@@ -8,7 +9,6 @@ import android.content.IntentFilter
89
import android.graphics.Canvas
910
import android.graphics.drawable.ColorDrawable
1011
import android.graphics.drawable.Drawable
11-
import android.net.Uri
1212
import android.os.Build
1313
import android.os.Bundle
1414
import android.view.Menu
@@ -21,6 +21,8 @@ import androidx.appcompat.app.ActionBarDrawerToggle
2121
import androidx.appcompat.app.AppCompatActivity
2222
import androidx.core.content.ContextCompat
2323
import androidx.core.graphics.drawable.DrawableCompat
24+
import androidx.core.graphics.drawable.toDrawable
25+
import androidx.core.net.toUri
2426
import androidx.core.view.GravityCompat
2527
import androidx.drawerlayout.widget.DrawerLayout.SimpleDrawerListener
2628
import androidx.lifecycle.ViewModelProvider
@@ -188,7 +190,7 @@ internal class MessagesActivity :
188190
}
189191

190192
private fun openDocumentation() {
191-
val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse("https://gotify.net/docs/pushmsg"))
193+
val browserIntent = Intent(Intent.ACTION_VIEW, "https://gotify.net/docs/pushmsg".toUri())
192194
startActivity(browserIntent)
193195
}
194196

@@ -317,6 +319,7 @@ internal class MessagesActivity :
317319
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
318320
registerReceiver(receiver, filter, RECEIVER_EXPORTED)
319321
} else {
322+
@SuppressLint("UnspecifiedRegisterReceiverFlag")
320323
registerReceiver(receiver, filter)
321324
}
322325
launchCoroutine {
@@ -409,7 +412,7 @@ internal class MessagesActivity :
409412
icon = DrawableCompat.wrap(drawable.mutate())
410413
DrawableCompat.setTint(icon!!, iconColorId)
411414
}
412-
background = ColorDrawable(backgroundColorId)
415+
background = backgroundColorId.toDrawable()
413416
}
414417

415418
override fun onMove(

0 commit comments

Comments
 (0)