Skip to content

Commit d7ca6f8

Browse files
committed
refactor getting widget id from intent
1 parent a6634cd commit d7ca6f8

6 files changed

Lines changed: 24 additions & 33 deletions

File tree

features/feature_widget/src/main/java/com/example/util/simpletimetracker/feature_widget/grid/WidgetGridProvider.kt

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import com.example.util.simpletimetracker.core.extension.allowDiskRead
99
import com.example.util.simpletimetracker.domain.prefs.interactor.PrefsInteractor
1010
import com.example.util.simpletimetracker.domain.widget.interactor.WidgetInteractor
1111
import com.example.util.simpletimetracker.feature_widget.common.WidgetTypeClickManager
12+
import com.example.util.simpletimetracker.feature_widget.utils.getAppWidgetIdOrNull
1213
import dagger.hilt.android.AndroidEntryPoint
1314
import kotlinx.coroutines.MainScope
1415
import kotlinx.coroutines.launch
@@ -88,7 +89,7 @@ class WidgetGridProvider : AppWidgetProvider() {
8889
context: Context?,
8990
intent: Intent,
9091
) {
91-
val appWidgetId = intent.getAppWidgetId() ?: return
92+
val appWidgetId = intent.getAppWidgetIdOrNull() ?: return
9293
widgetTypeClickManager.onClick(
9394
context = context,
9495
recordTypeId = intent.getLongExtra(TYPE_ID_EXTRA, 0),
@@ -99,17 +100,12 @@ class WidgetGridProvider : AppWidgetProvider() {
99100
private suspend fun onNewPage(
100101
intent: Intent,
101102
) {
102-
val appWidgetId = intent.getAppWidgetId() ?: return
103+
val appWidgetId = intent.getAppWidgetIdOrNull() ?: return
103104
val page = intent.getIntExtra(NEW_PAGE_EXTRA, 0)
104105
prefsInteractor.setGridWidget(appWidgetId, page)
105106
widgetInteractor.updateGridWidget(appWidgetId)
106107
}
107108

108-
private fun Intent.getAppWidgetId(): Int? {
109-
return getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, -1)
110-
.takeUnless { it == -1 }
111-
}
112-
113109
companion object {
114110
const val TYPE_ID_EXTRA =
115111
"com.example.util.simpletimetracker.feature_widget.grid.typeIdExtra"

features/feature_widget/src/main/java/com/example/util/simpletimetracker/feature_widget/grid/settings/WidgetGridSettingsFragment.kt

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.example.util.simpletimetracker.feature_widget.grid.settings
22

3-
import android.appwidget.AppWidgetManager
43
import android.view.LayoutInflater
54
import android.view.ViewGroup
65
import androidx.fragment.app.viewModels
@@ -11,6 +10,7 @@ import com.example.util.simpletimetracker.feature_base_adapter.empty.createEmpty
1110
import com.example.util.simpletimetracker.feature_base_adapter.loader.createLoaderAdapterDelegate
1211
import com.example.util.simpletimetracker.feature_base_adapter.recordType.createRecordTypeAdapterDelegate
1312
import com.example.util.simpletimetracker.feature_views.extension.setOnClick
13+
import com.example.util.simpletimetracker.feature_widget.utils.getAppWidgetIdOrInvalid
1414
import com.google.android.flexbox.FlexDirection
1515
import com.google.android.flexbox.FlexWrap
1616
import com.google.android.flexbox.FlexboxLayoutManager
@@ -61,12 +61,7 @@ class WidgetGridSettingsFragment : BaseFragment<Binding>() {
6161
}
6262

6363
private fun getWidgetId(): Int {
64-
return activity?.intent?.extras
65-
?.getInt(
66-
AppWidgetManager.EXTRA_APPWIDGET_ID,
67-
AppWidgetManager.INVALID_APPWIDGET_ID,
68-
)
69-
?: AppWidgetManager.INVALID_APPWIDGET_ID
64+
return activity?.intent.getAppWidgetIdOrInvalid()
7065
}
7166

7267
private fun exit(widgetId: Int) {

features/feature_widget/src/main/java/com/example/util/simpletimetracker/feature_widget/quickSettings/settings/WidgetQuickSettingsConfigureActivity.kt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import com.example.util.simpletimetracker.core.base.BaseActivity
1010
import com.example.util.simpletimetracker.core.manager.ThemeManager
1111
import com.example.util.simpletimetracker.core.provider.ContextProvider
1212
import com.example.util.simpletimetracker.feature_views.extension.setOnClick
13+
import com.example.util.simpletimetracker.feature_widget.utils.getAppWidgetIdOrInvalid
1314
import dagger.hilt.android.AndroidEntryPoint
1415
import javax.inject.Inject
1516
import com.example.util.simpletimetracker.feature_widget.databinding.WidgetQuickSettingsConfigureActivityBinding as Binding
@@ -40,12 +41,7 @@ class WidgetQuickSettingsConfigureActivity : BaseActivity<Binding>() {
4041
}
4142

4243
override fun initViewModel(): Unit = with(viewModel) {
43-
val widgetId = intent?.extras
44-
?.getInt(
45-
AppWidgetManager.EXTRA_APPWIDGET_ID,
46-
AppWidgetManager.INVALID_APPWIDGET_ID,
47-
)
48-
?: AppWidgetManager.INVALID_APPWIDGET_ID
44+
val widgetId = intent.getAppWidgetIdOrInvalid()
4945

5046
extra = WidgetQuickSettingsConfigureExtra(widgetId)
5147
handled.observe(::exit)

features/feature_widget/src/main/java/com/example/util/simpletimetracker/feature_widget/single/settings/WidgetSingleSettingsActivity.kt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import com.example.util.simpletimetracker.feature_base_adapter.empty.createEmpty
1414
import com.example.util.simpletimetracker.feature_base_adapter.loader.createLoaderAdapterDelegate
1515
import com.example.util.simpletimetracker.feature_base_adapter.recordType.createRecordTypeAdapterDelegate
1616
import com.example.util.simpletimetracker.feature_base_adapter.recordTypeSpecial.createRunningRecordTypeSpecialAdapterDelegate
17+
import com.example.util.simpletimetracker.feature_widget.utils.getAppWidgetIdOrInvalid
1718
import com.google.android.flexbox.FlexDirection
1819
import com.google.android.flexbox.FlexWrap
1920
import com.google.android.flexbox.FlexboxLayoutManager
@@ -63,12 +64,7 @@ class WidgetSingleSettingsActivity : BaseActivity<Binding>() {
6364
}
6465

6566
override fun initViewModel(): Unit = with(viewModel) {
66-
val widgetId = intent?.extras
67-
?.getInt(
68-
AppWidgetManager.EXTRA_APPWIDGET_ID,
69-
AppWidgetManager.INVALID_APPWIDGET_ID,
70-
)
71-
?: AppWidgetManager.INVALID_APPWIDGET_ID
67+
val widgetId = intent.getAppWidgetIdOrInvalid()
7268

7369
extra = WidgetSingleSettingsExtra(widgetId)
7470
recordTypes.observe(typesAdapter::replace)

features/feature_widget/src/main/java/com/example/util/simpletimetracker/feature_widget/statistics/settings/WidgetStatisticsSettingsFragment.kt

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.example.util.simpletimetracker.feature_widget.statistics.settings
22

3-
import android.appwidget.AppWidgetManager
43
import android.view.LayoutInflater
54
import android.view.ViewGroup
65
import androidx.fragment.app.viewModels
@@ -16,6 +15,7 @@ import com.example.util.simpletimetracker.feature_base_adapter.empty.createEmpty
1615
import com.example.util.simpletimetracker.feature_base_adapter.loader.createLoaderAdapterDelegate
1716
import com.example.util.simpletimetracker.feature_base_adapter.recordType.createRecordTypeAdapterDelegate
1817
import com.example.util.simpletimetracker.feature_views.extension.setOnClick
18+
import com.example.util.simpletimetracker.feature_widget.utils.getAppWidgetIdOrInvalid
1919
import com.example.util.simpletimetracker.navigation.params.screen.OptionsListParams
2020
import com.google.android.flexbox.FlexDirection
2121
import com.google.android.flexbox.FlexWrap
@@ -95,12 +95,7 @@ class WidgetStatisticsSettingsFragment :
9595
}
9696

9797
private fun getWidgetId(): Int {
98-
return activity?.intent?.extras
99-
?.getInt(
100-
AppWidgetManager.EXTRA_APPWIDGET_ID,
101-
AppWidgetManager.INVALID_APPWIDGET_ID,
102-
)
103-
?: AppWidgetManager.INVALID_APPWIDGET_ID
98+
return activity?.intent.getAppWidgetIdOrInvalid()
10499
}
105100

106101
private fun setDoNotIncludeItemsState(isChecked: Boolean) = with(binding) {

features/feature_widget/src/main/java/com/example/util/simpletimetracker/feature_widget/utils/WidgetUtils.kt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,25 @@
11
package com.example.util.simpletimetracker.feature_widget.utils
22

3+
import android.appwidget.AppWidgetManager
4+
import android.content.Intent
35
import android.os.SystemClock
46
import android.view.View
57
import android.widget.RemoteViews
68
import com.example.util.simpletimetracker.domain.record.model.Record
79
import com.example.util.simpletimetracker.domain.record.model.RunningRecord
810
import com.example.util.simpletimetracker.feature_widget.R
911

12+
fun Intent?.getAppWidgetIdOrInvalid(): Int {
13+
return this?.getAppWidgetIdOrNull() ?: AppWidgetManager.INVALID_APPWIDGET_ID
14+
}
15+
16+
fun Intent?.getAppWidgetIdOrNull(): Int? {
17+
return this?.getIntExtra(
18+
AppWidgetManager.EXTRA_APPWIDGET_ID,
19+
AppWidgetManager.INVALID_APPWIDGET_ID,
20+
)
21+
}
22+
1023
fun setChronometer(
1124
timestamp: Long?,
1225
chronometerId: Int,

0 commit comments

Comments
 (0)