Skip to content

Commit f05179e

Browse files
committed
Fix lint warnings
1 parent 2fba745 commit f05179e

File tree

10 files changed

+126
-145
lines changed

10 files changed

+126
-145
lines changed

app-backup/src/main/java/xyz/aprildown/timer/app/backup/AppPreferencesProviderImpl.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package xyz.aprildown.timer.app.backup
22

33
import android.content.Context
44
import android.content.SharedPreferences
5+
import androidx.core.content.edit
56
import com.github.deweyreed.tools.helper.getNonNullString
67
import dagger.Reusable
78
import dagger.hilt.android.qualifiers.ApplicationContext
@@ -79,11 +80,11 @@ class AppPreferencesProviderImpl @Inject constructor(
7980
}
8081

8182
override fun applyAppPreferences(prefs: Map<String, String>) {
82-
val editor = sharedPreferences.edit()
83-
PreferenceItem.getPreferenceItems().forEach { item ->
84-
item.storeToApp(context, prefs, editor)
83+
sharedPreferences.edit {
84+
PreferenceItem.getPreferenceItems().forEach { item ->
85+
item.storeToApp(context, prefs, this)
86+
}
8587
}
86-
editor.apply()
8788
}
8889
}
8990

app-base/src/main/java/xyz/aprildown/timer/app/base/ui/SpecialItemTouchHelperCallback.kt

Lines changed: 67 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import androidx.annotation.ColorInt
77
import androidx.annotation.DrawableRes
88
import androidx.core.graphics.BlendModeColorFilterCompat
99
import androidx.core.graphics.BlendModeCompat
10+
import androidx.core.graphics.withSave
1011
import androidx.recyclerview.widget.ItemTouchHelper
1112
import androidx.recyclerview.widget.RecyclerView
1213
import com.github.deweyreed.tools.helper.color
@@ -136,80 +137,82 @@ class SpecialItemTouchHelperCallback(
136137
(viewHolder.itemView.bottom.toFloat() - config.bottomPadding).coerceAtLeast(top)
137138
val width = right - left
138139
val height = bottom - top
139-
val saveCount = c.save()
140+
c.withSave {
141+
initialize(context)
140142

141-
initialize(context)
143+
val progress = abs(dX) / width
144+
val swipeThreshold = getSwipeThreshold(viewHolder)
142145

143-
val progress = abs(dX) / width
144-
val swipeThreshold = getSwipeThreshold(viewHolder)
145-
146-
val iconScale: Float = when (progress) {
147-
in 0f..swipeThreshold -> 1f
148-
in swipeThreshold..(swipeThreshold + SCALE_DISTANCE) ->
149-
1f + ((progress - swipeThreshold) / SCALE_DISTANCE * ICON_SCALE_OFFSET)
150-
else -> 1f + ICON_SCALE_OFFSET
151-
}
152-
153-
if (dX > 0) {
154-
c.clipRect(left, top, left + dX, bottom)
155-
156-
if (progress > swipeThreshold) {
157-
c.drawColor(config.startActiveBackgroundColor)
158-
startIcon.colorFilter = BlendModeColorFilterCompat.createBlendModeColorFilterCompat(
159-
config.startActiveIconColor,
160-
BlendModeCompat.SRC_IN
161-
)
162-
} else {
163-
c.drawColor(config.inactiveBackgroundColor)
164-
startIcon.colorFilter = BlendModeColorFilterCompat.createBlendModeColorFilterCompat(
165-
config.inactiveIconColor,
166-
BlendModeCompat.SRC_IN
167-
)
146+
val iconScale: Float = when (progress) {
147+
in 0f..swipeThreshold -> 1f
148+
in swipeThreshold..(swipeThreshold + SCALE_DISTANCE) ->
149+
1f + ((progress - swipeThreshold) / SCALE_DISTANCE * ICON_SCALE_OFFSET)
150+
else -> 1f + ICON_SCALE_OFFSET
168151
}
169152

170-
val cx = left + iconPadding + startIcon.intrinsicWidth / 2f
171-
172-
val cy = top + height / 2f
173-
val halfIconSize = startIcon.intrinsicWidth * iconScale / 2f
174-
startIcon.setBounds(
175-
(cx - halfIconSize).toInt(),
176-
(cy - halfIconSize).toInt(),
177-
(cx + halfIconSize).toInt(),
178-
(cy + halfIconSize).toInt()
179-
)
180-
startIcon.draw(c)
181-
} else {
182-
c.clipRect(right + dX, top, right, bottom)
183-
184-
if (progress > swipeThreshold) {
185-
c.drawColor(config.endActiveBackgroundColor)
186-
endIcon.colorFilter = BlendModeColorFilterCompat.createBlendModeColorFilterCompat(
187-
config.endActiveIconColor,
188-
BlendModeCompat.SRC_IN
153+
if (dX > 0) {
154+
c.clipRect(left, top, left + dX, bottom)
155+
156+
if (progress > swipeThreshold) {
157+
c.drawColor(config.startActiveBackgroundColor)
158+
startIcon.colorFilter =
159+
BlendModeColorFilterCompat.createBlendModeColorFilterCompat(
160+
config.startActiveIconColor,
161+
BlendModeCompat.SRC_IN
162+
)
163+
} else {
164+
c.drawColor(config.inactiveBackgroundColor)
165+
startIcon.colorFilter =
166+
BlendModeColorFilterCompat.createBlendModeColorFilterCompat(
167+
config.inactiveIconColor,
168+
BlendModeCompat.SRC_IN
169+
)
170+
}
171+
172+
val cx = left + iconPadding + startIcon.intrinsicWidth / 2f
173+
174+
val cy = top + height / 2f
175+
val halfIconSize = startIcon.intrinsicWidth * iconScale / 2f
176+
startIcon.setBounds(
177+
(cx - halfIconSize).toInt(),
178+
(cy - halfIconSize).toInt(),
179+
(cx + halfIconSize).toInt(),
180+
(cy + halfIconSize).toInt()
189181
)
182+
startIcon.draw(c)
190183
} else {
191-
c.drawColor(config.inactiveBackgroundColor)
192-
endIcon.colorFilter = BlendModeColorFilterCompat.createBlendModeColorFilterCompat(
193-
config.inactiveIconColor,
194-
BlendModeCompat.SRC_IN
184+
c.clipRect(right + dX, top, right, bottom)
185+
186+
if (progress > swipeThreshold) {
187+
c.drawColor(config.endActiveBackgroundColor)
188+
endIcon.colorFilter =
189+
BlendModeColorFilterCompat.createBlendModeColorFilterCompat(
190+
config.endActiveIconColor,
191+
BlendModeCompat.SRC_IN
192+
)
193+
} else {
194+
c.drawColor(config.inactiveBackgroundColor)
195+
endIcon.colorFilter =
196+
BlendModeColorFilterCompat.createBlendModeColorFilterCompat(
197+
config.inactiveIconColor,
198+
BlendModeCompat.SRC_IN
199+
)
200+
}
201+
202+
val cx = right - iconPadding - endIcon.intrinsicWidth / 2f
203+
204+
val cy = top + height / 2f
205+
val halfIconSize = endIcon.intrinsicWidth * iconScale / 2f
206+
endIcon.setBounds(
207+
(cx - halfIconSize).toInt(),
208+
(cy - halfIconSize).toInt(),
209+
(cx + halfIconSize).toInt(),
210+
(cy + halfIconSize).toInt()
195211
)
212+
endIcon.draw(c)
196213
}
197-
198-
val cx = right - iconPadding - endIcon.intrinsicWidth / 2f
199-
200-
val cy = top + height / 2f
201-
val halfIconSize = endIcon.intrinsicWidth * iconScale / 2f
202-
endIcon.setBounds(
203-
(cx - halfIconSize).toInt(),
204-
(cy - halfIconSize).toInt(),
205-
(cx + halfIconSize).toInt(),
206-
(cy + halfIconSize).toInt()
207-
)
208-
endIcon.draw(c)
209214
}
210215

211-
c.restoreToCount(saveCount)
212-
213216
super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive)
214217
}
215218

app-base/src/main/java/xyz/aprildown/timer/app/base/utils/TimeConverter.kt

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,11 @@ fun Long.produceHms(): Triple<Int, Int, Int> {
1111
if (time < 0) {
1212
time = -time
1313
}
14-
@Suppress("JoinDeclarationAndAssignment")
15-
var seconds: Long
1614

17-
@Suppress("JoinDeclarationAndAssignment")
18-
var minutes: Long
19-
20-
@Suppress("JoinDeclarationAndAssignment")
21-
val hours: Long
22-
seconds = time / 1000
23-
minutes = seconds / 60
15+
var seconds = time / 1000
16+
var minutes = seconds / 60
2417
seconds -= minutes * 60
25-
hours = minutes / 60
18+
val hours = minutes / 60
2619
minutes -= hours * 60
2720
// if (hours > 999) {
2821
// hours = 0
@@ -34,14 +27,10 @@ private const val TWO_DIGITS = "%02d"
3427
private const val ONE_DIGIT = "%01d"
3528

3629
fun Long.produceTime(): String {
37-
@Suppress("JoinDeclarationAndAssignment")
38-
val mHours: String?
39-
val mMinutes: String?
40-
val mSeconds: String?
4130
val (hours, minutes, seconds) = this.produceHms()
4231

4332
// Hours may be empty
44-
mHours = when {
33+
val mHours = when {
4534
hours >= 10 -> String.format(Locale.getDefault(), TWO_DIGITS, hours)
4635
hours > 0 -> String.format(Locale.getDefault(), ONE_DIGIT, hours)
4736
else -> null
@@ -54,10 +43,10 @@ fun Long.produceTime(): String {
5443
// String.format(Locale.getDefault(), ONE_DIGIT, minutes)
5544
// }
5645
// I prefer that minutes also have two digits.
57-
mMinutes = String.format(Locale.getDefault(), TWO_DIGITS, minutes)
46+
val mMinutes = String.format(Locale.getDefault(), TWO_DIGITS, minutes)
5847

5948
// Seconds are always two digits
60-
mSeconds = String.format(Locale.getDefault(), TWO_DIGITS, seconds)
49+
val mSeconds = String.format(Locale.getDefault(), TWO_DIGITS, seconds)
6150

6251
val builder = StringBuilder()
6352
if (mHours != null) {

app-settings/src/main/java/xyz/aprildown/timer/app/settings/theme/ThemeFragment.kt

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package xyz.aprildown.timer.app.settings.theme
33
import android.content.Context
44
import android.content.SharedPreferences
55
import android.content.res.ColorStateList
6-
import android.graphics.Color
76
import android.os.Build
87
import android.os.Bundle
98
import android.os.Parcelable
@@ -13,6 +12,7 @@ import android.view.ViewGroup
1312
import android.widget.ImageView
1413
import android.widget.TextView
1514
import androidx.annotation.ColorInt
15+
import androidx.core.graphics.toColorInt
1616
import androidx.core.os.BundleCompat
1717
import androidx.core.view.ViewCompat
1818
import androidx.core.view.WindowInsetsCompat
@@ -361,17 +361,15 @@ private class ThemeColor(
361361
val colorOnPrimary = AppThemeUtils.calculateOnColor(appThemeColor.primaryColor)
362362
title.setTextColor(colorOnPrimary)
363363
if (isPremium) {
364-
TextViewCompat.setCompoundDrawablesRelativeWithIntrinsicBounds(
365-
title,
364+
title.setCompoundDrawablesRelativeWithIntrinsicBounds(
366365
RBase.drawable.settings_premium,
367366
0,
368367
0,
369368
0
370369
)
371370
TextViewCompat.setCompoundDrawableTintList(title, colorOnPrimary.toColorStateList())
372371
} else {
373-
TextViewCompat.setCompoundDrawablesRelativeWithIntrinsicBounds(
374-
title,
372+
title.setCompoundDrawablesRelativeWithIntrinsicBounds(
375373
0,
376374
0,
377375
0,
@@ -475,33 +473,33 @@ private fun getAdvancedThemes(): List<AppThemeColor> {
475473
val list = mutableListOf<AppThemeColor>()
476474
list += AppThemeColor(
477475
name = "Abyss Green",
478-
primaryColor = Color.parseColor("#2A9D8F"),
479-
secondaryColor = Color.parseColor("#E9C46A"),
476+
primaryColor = "#2A9D8F".toColorInt(),
477+
secondaryColor = "#E9C46A".toColorInt(),
480478
)
481479
list += AppThemeColor(
482480
name = "Lipstick Red",
483-
primaryColor = Color.parseColor("#E63946"),
484-
secondaryColor = Color.parseColor("#457B9D"),
481+
primaryColor = "#E63946".toColorInt(),
482+
secondaryColor = "#457B9D".toColorInt(),
485483
)
486484
list += AppThemeColor(
487485
name = "Chinese Violet",
488-
primaryColor = Color.parseColor("#6D597A"),
489-
secondaryColor = Color.parseColor("#EAAC8B"),
486+
primaryColor = "#6D597A".toColorInt(),
487+
secondaryColor = "#EAAC8B".toColorInt(),
490488
)
491489
list += AppThemeColor(
492490
name = "Black Coral",
493-
primaryColor = Color.parseColor("#495867"),
494-
secondaryColor = Color.parseColor("#FE5F55"),
491+
primaryColor = "#495867".toColorInt(),
492+
secondaryColor = "#FE5F55".toColorInt(),
495493
)
496494
list += AppThemeColor(
497495
name = "Chrome Orange",
498-
primaryColor = Color.parseColor("#F6BD60"),
499-
secondaryColor = Color.parseColor("#40916C"),
496+
primaryColor = "#F6BD60".toColorInt(),
497+
secondaryColor = "#40916C".toColorInt(),
500498
)
501499
list += AppThemeColor(
502500
name = "Middle Blue Green",
503-
primaryColor = Color.parseColor("#7DCFB6"),
504-
secondaryColor = Color.parseColor("#F79256"),
501+
primaryColor = "#7DCFB6".toColorInt(),
502+
secondaryColor = "#F79256".toColorInt(),
505503
)
506504
return list
507505
}

app-timer-edit/src/main/java/xyz/aprildown/timer/app/timer/edit/RingtonePickerActivity.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import android.view.View
1414
import androidx.core.content.IntentCompat
1515
import androidx.core.content.edit
1616
import androidx.core.text.buildSpannedString
17+
import androidx.core.view.get
1718
import dagger.hilt.android.AndroidEntryPoint
1819
import xyz.aprildown.timer.app.base.data.PreferenceData.storedAudioTypeValue
1920
import xyz.aprildown.timer.app.base.ui.BaseActivity
@@ -87,8 +88,9 @@ class RingtonePickerActivity :
8788
}
8889

8990
override fun onPrepareOptionsMenu(menu: Menu?): Boolean {
90-
val menuItem = menu?.getItem(0)
91-
menuItem?.setTitle(
91+
if (menu == null) return false
92+
val menuItem = menu[0]
93+
menuItem.setTitle(
9294
buildSpannedString {
9395
append("SAF")
9496
if (usingSafPick) {

app-timer-one/src/main/java/xyz/aprildown/timer/app/timer/one/BaseOneFragment.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import android.content.ComponentName
44
import android.content.Context
55
import android.content.Intent
66
import android.content.ServiceConnection
7-
import android.net.Uri
87
import android.os.Build
98
import android.os.IBinder
109
import android.provider.Settings
@@ -17,6 +16,7 @@ import android.widget.EditText
1716
import androidx.annotation.LayoutRes
1817
import androidx.annotation.RequiresApi
1918
import androidx.appcompat.app.AlertDialog
19+
import androidx.core.net.toUri
2020
import androidx.fragment.app.Fragment
2121
import androidx.fragment.app.activityViewModels
2222
import androidx.navigation.NavOptions
@@ -167,7 +167,7 @@ abstract class BaseOneFragment<T : ViewBinding>(
167167
} else {
168168
context.startActivityOrNothing(
169169
Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION)
170-
.setData(Uri.parse("package:${context.packageName}"))
170+
.setData("package:${context.packageName}".toUri())
171171
.createChooserIntentIfDead(context)
172172
)
173173
context.longToast(RBase.string.perm_rational_floating)

component-key/src/main/java/xyz/aprildown/timer/component/key/ListItemWithLayout.kt

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import android.view.ViewStub
88
import android.widget.Checkable
99
import android.widget.RelativeLayout
1010
import androidx.annotation.LayoutRes
11+
import androidx.core.content.withStyledAttributes
1112
import androidx.core.view.updateLayoutParams
1213
import com.github.deweyreed.tools.helper.setSelectableItemBackground
1314
import com.github.deweyreed.tools.R as RTools
@@ -24,17 +25,17 @@ class ListItemWithLayout(
2425
gravity = Gravity.CENTER_VERTICAL
2526
setSelectableItemBackground()
2627

27-
val primaryText: String?
28-
val secondaryText: String?
29-
val layoutRes: Int
30-
val divider: Int
28+
var primaryText: String? = null
29+
var secondaryText: String? = null
30+
var layoutRes = 0
31+
var divider = 0
3132
if (attrs != null) {
32-
val sa = context.obtainStyledAttributes(attrs, R.styleable.ListItemWithLayout)
33-
primaryText = sa.getString(R.styleable.ListItemWithLayout_li_textPrimary)
34-
secondaryText = sa.getString(R.styleable.ListItemWithLayout_li_textSecondary)
35-
layoutRes = sa.getResourceId(R.styleable.ListItemWithLayout_li_layout, 0)
36-
divider = sa.getInt(R.styleable.ListItemWithLayout_li_divider, 0)
37-
sa.recycle()
33+
context.withStyledAttributes(attrs, R.styleable.ListItemWithLayout) {
34+
primaryText = getString(R.styleable.ListItemWithLayout_li_textPrimary)
35+
secondaryText = getString(R.styleable.ListItemWithLayout_li_textSecondary)
36+
layoutRes = getResourceId(R.styleable.ListItemWithLayout_li_layout, 0)
37+
divider = getInt(R.styleable.ListItemWithLayout_li_divider, 0)
38+
}
3839
} else {
3940
primaryText = null
4041
secondaryText = null

0 commit comments

Comments
 (0)