Skip to content

Commit 9a2ed10

Browse files
Making UserPreferencesRepository a singleton.
Updating some library versions Addressing lint issues
1 parent 1673492 commit 9a2ed10

File tree

4 files changed

+20
-7
lines changed

4 files changed

+20
-7
lines changed

app/src/main/java/com/codelab/android/datastore/data/UserPreferencesRepository.kt

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ enum class SortOrder {
3434
/**
3535
* Class that handles saving and retrieving user preferences
3636
*/
37-
class UserPreferencesRepository(context: Context) {
37+
class UserPreferencesRepository private constructor(context: Context) {
3838

3939
private val sharedPreferences =
4040
context.applicationContext.getSharedPreferences(USER_PREFERENCES_NAME, Context.MODE_PRIVATE)
@@ -97,4 +97,17 @@ class UserPreferencesRepository(context: Context) {
9797
putString(SORT_ORDER_KEY, sortOrder.name)
9898
}
9999
}
100+
101+
companion object {
102+
@Volatile
103+
private var INSTANCE: UserPreferencesRepository? = null
104+
105+
fun getInstance(context: Context): UserPreferencesRepository {
106+
return INSTANCE ?: synchronized(this) {
107+
val instance = UserPreferencesRepository(context)
108+
INSTANCE = instance
109+
instance
110+
}
111+
}
112+
}
100113
}

app/src/main/java/com/codelab/android/datastore/ui/TasksActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,14 @@ class TasksActivity : AppCompatActivity() {
4141

4242
viewModel = ViewModelProvider(
4343
this,
44-
TasksViewModelFactory(TasksRepository, UserPreferencesRepository(this))
44+
TasksViewModelFactory(TasksRepository, UserPreferencesRepository.getInstance(this))
4545
).get(TasksViewModel::class.java)
4646

4747
setupRecyclerView()
4848
setupFilterListeners(viewModel)
4949
setupSort()
5050

51-
viewModel.tasksUiModel.observe(this) { tasksUiModel ->
51+
viewModel.tasksUiModel.observe(owner = this) { tasksUiModel ->
5252
adapter.submitList(tasksUiModel.tasks)
5353
updateSort(tasksUiModel.sortOrder)
5454
binding.showCompletedSwitch.isChecked = tasksUiModel.showCompleted

app/src/main/res/layout/activity_tasks.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
android:layout_height="wrap_content"
5252
android:layout_gravity="center"
5353
android:src="@drawable/ic_baseline_filter_list_24"
54-
android:tint="?attr/colorOnSecondary" />
54+
app:tint="?attr/colorOnSecondary" />
5555

5656
<TextView
5757
android:id="@+id/show_completed"
@@ -85,7 +85,7 @@
8585
android:layout_height="wrap_content"
8686
android:layout_gravity="center"
8787
android:src="@drawable/ic_baseline_reorder_24"
88-
android:tint="?attr/colorOnSurface" />
88+
app:tint="?attr/colorOnSurface" />
8989

9090
<com.google.android.material.chip.ChipGroup
9191
android:layout_width="match_parent"

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ task clean(type: Delete) {
4040

4141
ext {
4242
supportLibVersion = '1.2.0'
43-
constraintLayoutVersion = '2.0.1'
44-
coreVersion = '1.3.1'
43+
constraintLayoutVersion = '2.0.2'
44+
coreVersion = '1.3.2'
4545
coroutinesVersion = '1.3.9'
4646
materialVersion = '1.2.1'
4747
lifecycleVersion = '2.2.0'

0 commit comments

Comments
 (0)