Skip to content

Commit 1e17ace

Browse files
committed
Switch to ktx extensions where Android Studio recommends it
1 parent f46c665 commit 1e17ace

File tree

11 files changed

+41
-36
lines changed

11 files changed

+41
-36
lines changed

atox/src/main/kotlin/settings/Settings.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// SPDX-FileCopyrightText: 2020-2024 Robin Lindén <[email protected]>
1+
// SPDX-FileCopyrightText: 2020-2025 Robin Lindén <[email protected]>
22
// SPDX-FileCopyrightText: 2022 aTox contributors
33
//
44
// SPDX-License-Identifier: GPL-3.0-only
@@ -38,7 +38,7 @@ class Settings @Inject constructor(private val ctx: Context) {
3838

3939
var udpEnabled: Boolean
4040
get() = preferences.getBoolean("udp_enabled", false)
41-
set(enabled) = preferences.edit().putBoolean("udp_enabled", enabled).apply()
41+
set(enabled) = preferences.edit { putBoolean("udp_enabled", enabled) }
4242

4343
var runAtStartup: Boolean
4444
get() = ctx.packageManager.getComponentEnabledSetting(
@@ -60,11 +60,11 @@ class Settings @Inject constructor(private val ctx: Context) {
6060

6161
var autoAwayEnabled: Boolean
6262
get() = preferences.getBoolean("auto_away_enabled", false)
63-
set(enabled) = preferences.edit().putBoolean("auto_away_enabled", enabled).apply()
63+
set(enabled) = preferences.edit { putBoolean("auto_away_enabled", enabled) }
6464

6565
var autoAwaySeconds: Long
6666
get() = preferences.getLong("auto_away_seconds", 180)
67-
set(seconds) = preferences.edit().putLong("auto_away_seconds", seconds).apply()
67+
set(seconds) = preferences.edit { putLong("auto_away_seconds", seconds) }
6868

6969
var proxyType: ProxyType
7070
get() = ProxyType.entries[preferences.getInt("proxy_type", 0)]

atox/src/main/kotlin/ui/AvatarFactory.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
// SPDX-FileCopyrightText: 2019-2022 aTox contributors
1+
// SPDX-FileCopyrightText: 2019-2025 Robin Lindén <[email protected]>
2+
// SPDX-FileCopyrightText: 2021-2022 aTox contributors
23
//
34
// SPDX-License-Identifier: GPL-3.0-only
45

@@ -12,6 +13,7 @@ import android.graphics.Paint
1213
import android.graphics.Rect
1314
import android.graphics.RectF
1415
import android.graphics.Typeface
16+
import androidx.core.graphics.createBitmap
1517
import kotlin.math.abs
1618
import ltd.evilcorp.atox.R
1719

@@ -33,7 +35,7 @@ internal object AvatarFactory {
3335
val defaultAvatarSize = resources.getDimension(R.dimen.default_avatar_size)
3436
val textScale = size.px / defaultAvatarSize
3537

36-
val bitmap = Bitmap.createBitmap(size.px, size.px, Bitmap.Config.ARGB_8888)
38+
val bitmap = createBitmap(size.px, size.px)
3739
val canvas = Canvas(bitmap)
3840
val rect = RectF(0f, 0f, bitmap.width.toFloat(), bitmap.height.toFloat())
3941
val colors = resources.getIntArray(R.array.contactBackgrounds)

atox/src/main/kotlin/ui/AvatarImageView.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-FileCopyrightText: 2022 aTox contributors
2-
// SPDX-FileCopyrightText: 2022-2024 Robin Lindén <[email protected]>
2+
// SPDX-FileCopyrightText: 2022-2025 Robin Lindén <[email protected]>
33
//
44
// SPDX-License-Identifier: GPL-3.0-only
55

@@ -8,11 +8,11 @@ package ltd.evilcorp.atox.ui
88
import android.content.Context
99
import android.graphics.Canvas
1010
import android.graphics.Paint
11-
import android.net.Uri
1211
import android.util.AttributeSet
1312
import android.util.Log
1413
import androidx.core.content.ContextCompat
1514
import androidx.core.content.res.use
15+
import androidx.core.net.toUri
1616
import androidx.core.view.doOnPreDraw
1717
import com.google.android.material.imageview.ShapeableImageView
1818
import kotlin.math.min
@@ -63,7 +63,7 @@ class AvatarImageView @JvmOverloads constructor(context: Context, attrs: Attribu
6363

6464
doOnPreDraw {
6565
if (avatarUri.isNotEmpty()) {
66-
setImageURI(Uri.parse(avatarUri))
66+
setImageURI(avatarUri.toUri())
6767
} else if (width > 0 && height > 0) {
6868
setImageBitmap(AvatarFactory.create(resources, name, publicKey, Px(min(width, height))))
6969
} else {

atox/src/main/kotlin/ui/NotificationHelper.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import androidx.core.app.NotificationManagerCompat
2828
import androidx.core.app.Person
2929
import androidx.core.app.RemoteInput
3030
import androidx.core.content.getSystemService
31+
import androidx.core.graphics.createBitmap
3132
import androidx.core.graphics.drawable.IconCompat
3233
import androidx.core.os.bundleOf
3334
import androidx.navigation.NavDeepLinkBuilder
@@ -91,7 +92,7 @@ class NotificationHelper @Inject constructor(private val context: Context) {
9192

9293
private val circleTransform = object : Transformation {
9394
override fun transform(bitmap: Bitmap): Bitmap {
94-
val output = Bitmap.createBitmap(bitmap.width, bitmap.height, Bitmap.Config.ARGB_8888)
95+
val output = createBitmap(bitmap.width, bitmap.height)
9596
val canvas = Canvas(output)
9697
val paint = Paint()
9798
val rect = Rect(0, 0, bitmap.width, bitmap.height)

atox/src/main/kotlin/ui/ReceiveShareDialogFragment.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// SPDX-FileCopyrightText: 2021-2023 Robin Lindén <[email protected]>
1+
// SPDX-FileCopyrightText: 2021-2025 Robin Lindén <[email protected]>
22
//
33
// SPDX-License-Identifier: GPL-3.0-only
44

@@ -8,9 +8,9 @@ import android.app.Dialog
88
import android.content.Context
99
import android.content.DialogInterface
1010
import android.graphics.Color
11-
import android.graphics.drawable.ColorDrawable
1211
import android.os.Bundle
1312
import android.view.Window
13+
import androidx.core.graphics.drawable.toDrawable
1414
import androidx.fragment.app.DialogFragment
1515
import androidx.lifecycle.LiveData
1616
import ltd.evilcorp.atox.R
@@ -56,7 +56,7 @@ private class ReceiveShareDialog(
5656
requestWindowFeature(Window.FEATURE_NO_TITLE)
5757
binding = DialogReceiveShareBinding.inflate(layoutInflater)
5858
setContentView(binding.root)
59-
window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
59+
window?.setBackgroundDrawable(Color.TRANSPARENT.toDrawable())
6060

6161
binding.sharingText.text = String.format("%s", sharePreview.truncated(SHARE_TEXT_PREVIEW_LENGTH))
6262

atox/src/main/kotlin/ui/StatusDialog.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// SPDX-FileCopyrightText: 2020-2023 Robin Lindén <[email protected]>
1+
// SPDX-FileCopyrightText: 2020-2025 Robin Lindén <[email protected]>
22
//
33
// SPDX-License-Identifier: GPL-3.0-only
44

@@ -7,10 +7,10 @@ package ltd.evilcorp.atox.ui
77
import android.app.Dialog
88
import android.content.Context
99
import android.graphics.Color
10-
import android.graphics.drawable.ColorDrawable
1110
import android.graphics.drawable.TransitionDrawable
1211
import android.os.Bundle
1312
import android.view.Window
13+
import androidx.core.graphics.drawable.toDrawable
1414
import javax.inject.Inject
1515
import ltd.evilcorp.atox.R
1616
import ltd.evilcorp.atox.databinding.DialogStatusBinding
@@ -40,7 +40,7 @@ class StatusDialog(
4040
requestWindowFeature(Window.FEATURE_NO_TITLE)
4141
binding = DialogStatusBinding.inflate(layoutInflater)
4242
setContentView(binding.root)
43-
window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
43+
window?.setBackgroundDrawable(Color.TRANSPARENT.toDrawable())
4444

4545
selectStatus(activeStatus)
4646
binding.run {

atox/src/main/kotlin/ui/addcontact/AddContactFragment.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// SPDX-FileCopyrightText: 2019-2024 Robin Lindén <[email protected]>
1+
// SPDX-FileCopyrightText: 2019-2025 Robin Lindén <[email protected]>
22
// SPDX-FileCopyrightText: 2020 aTox contributors
33
//
44
// SPDX-License-Identifier: GPL-3.0-only
@@ -9,11 +9,11 @@ import android.app.Activity.RESULT_OK
99
import android.content.ActivityNotFoundException
1010
import android.content.Intent
1111
import android.content.pm.PackageManager
12-
import android.net.Uri
1312
import android.os.Bundle
1413
import android.view.View
1514
import android.widget.TextView
1615
import androidx.activity.result.contract.ActivityResultContracts
16+
import androidx.core.net.toUri
1717
import androidx.core.os.bundleOf
1818
import androidx.core.view.ViewCompat
1919
import androidx.core.view.WindowInsetsCompat
@@ -131,7 +131,7 @@ class AddContactFragment : BaseFragment<FragmentAddContactBinding>(FragmentAddCo
131131
},
132132
)
133133
} catch (_: ActivityNotFoundException) {
134-
val uri = Uri.parse("https://f-droid.org/en/packages/com.google.zxing.client.android/")
134+
val uri = "https://f-droid.org/en/packages/com.google.zxing.client.android/".toUri()
135135
startActivity(Intent(Intent.ACTION_VIEW, uri))
136136
}
137137
}

atox/src/main/kotlin/ui/chat/ChatFragment.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import android.content.ClipData
1111
import android.content.ClipboardManager
1212
import android.content.Context
1313
import android.content.Intent
14-
import android.net.Uri
1514
import android.os.Build
1615
import android.os.Bundle
1716
import android.util.Log
@@ -25,11 +24,13 @@ import androidx.activity.result.contract.ActivityResultContracts
2524
import androidx.core.content.ContextCompat
2625
import androidx.core.content.FileProvider
2726
import androidx.core.content.getSystemService
27+
import androidx.core.net.toUri
2828
import androidx.core.os.bundleOf
2929
import androidx.core.view.ViewCompat
3030
import androidx.core.view.WindowInsetsAnimationCompat
3131
import androidx.core.view.WindowInsetsCompat
3232
import androidx.core.view.WindowInsetsControllerCompat
33+
import androidx.core.view.isVisible
3334
import androidx.core.view.updatePadding
3435
import androidx.core.widget.doAfterTextChanged
3536
import androidx.fragment.app.viewModels
@@ -300,7 +301,7 @@ class ChatFragment : BaseFragment<FragmentChatBinding>(FragmentChatBinding::infl
300301
val uri = FileProvider.getUriForFile(
301302
requireContext(),
302303
"${BuildConfig.APPLICATION_ID}.fileprovider",
303-
File(Uri.parse(ft.destination).path!!),
304+
File(ft.destination.toUri().path!!),
304305
)
305306
val shareIntent = Intent(Intent.ACTION_VIEW).apply {
306307
putExtra(Intent.EXTRA_TITLE, ft.fileName)
@@ -431,7 +432,7 @@ class ChatFragment : BaseFragment<FragmentChatBinding>(FragmentChatBinding::infl
431432

432433
private fun updateActions() = binding.run {
433434
send.visibility = if (outgoingMessage.text.isEmpty()) View.GONE else View.VISIBLE
434-
attach.visibility = if (send.visibility == View.VISIBLE) View.GONE else View.VISIBLE
435+
attach.visibility = if (send.isVisible) View.GONE else View.VISIBLE
435436
attach.isEnabled = viewModel.contactOnline
436437
attach.setColorFilter(
437438
ContextCompat.getColor(

atox/src/main/kotlin/ui/chat/ChatViewModel.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import android.content.Context
1010
import android.net.Uri
1111
import android.util.Log
1212
import android.widget.Toast
13+
import androidx.core.net.toUri
1314
import androidx.lifecycle.LiveData
1415
import androidx.lifecycle.ViewModel
1516
import androidx.lifecycle.asLiveData
@@ -147,7 +148,7 @@ class ChatViewModel @Inject constructor(
147148
fileTransferManager.get(id).take(1).collect { ft ->
148149
launch(Dispatchers.IO) {
149150
try {
150-
FileInputStream(File(Uri.parse(ft.destination).path!!)).use { ins ->
151+
FileInputStream(File(ft.destination.toUri().path!!)).use { ins ->
151152
resolver.openOutputStream(dest).use { os ->
152153
ins.copyTo(os!!)
153154
}

atox/src/main/kotlin/ui/userprofile/UserProfileFragment.kt

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
// SPDX-FileCopyrightText: 2020-2022 aTox contributors
1+
// SPDX-FileCopyrightText: 2020-2025 Robin Lindén <[email protected]>
2+
// SPDX-FileCopyrightText: 2021-2022 aTox contributors
23
//
34
// SPDX-License-Identifier: GPL-3.0-only
45

@@ -23,7 +24,9 @@ import android.widget.Toast
2324
import androidx.appcompat.app.AlertDialog
2425
import androidx.core.content.FileProvider
2526
import androidx.core.content.getSystemService
27+
import androidx.core.graphics.createBitmap
2628
import androidx.core.graphics.scale
29+
import androidx.core.graphics.set
2730
import androidx.core.view.ViewCompat
2831
import androidx.core.view.WindowInsetsCompat
2932
import androidx.core.view.setPadding
@@ -213,21 +216,17 @@ class UserProfileFragment : BaseFragment<FragmentUserProfileBinding>(FragmentUse
213216

214217
private fun asQr(id: ToxID, qrSize: Px, padding: Px): Bitmap {
215218
val qrData = QrCode.encodeText("tox:%s".format(id.string()), QrCode.Ecc.LOW)
216-
var bmpQr: Bitmap = Bitmap.createBitmap(qrData.size, qrData.size, Bitmap.Config.RGB_565)
219+
var bmpQr: Bitmap = createBitmap(qrData.size, qrData.size, Bitmap.Config.RGB_565)
217220
for (x in 0 until qrData.size) {
218221
for (y in 0 until qrData.size) {
219-
bmpQr.setPixel(x, y, if (qrData.getModule(x, y)) Color.BLACK else Color.WHITE)
222+
bmpQr[x, y] = if (qrData.getModule(x, y)) Color.BLACK else Color.WHITE
220223
}
221224
}
222225

223226
bmpQr = bmpQr.scale(qrSize.px, qrSize.px, false)
224227

225228
val bmpQrWithPadding =
226-
Bitmap.createBitmap(
227-
bmpQr.width + 2 * padding.px,
228-
bmpQr.height + 2 * padding.px,
229-
Bitmap.Config.RGB_565,
230-
)
229+
createBitmap(bmpQr.width + 2 * padding.px, bmpQr.height + 2 * padding.px, Bitmap.Config.RGB_565)
231230
val canvas = Canvas(bmpQrWithPadding)
232231
canvas.drawPaint(
233232
Paint().apply {

0 commit comments

Comments
 (0)