A fork of Simple Time Tracker with WearOS support. (Now integrated upstream)
0

Configure Feed

Select the types of activity you want to include in your feed.

add universal widget hint

razeeman (Jan 15, 2023, 3:11 PM +0300) 1abe5101 30c8731f

+47 -11
+8
core/src/main/res/drawable/background_gradient.xml
··· 1 + <?xml version="1.0" encoding="utf-8"?> 2 + <shape xmlns:android="http://schemas.android.com/apk/res/android"> 3 + <gradient 4 + android:type="linear" 5 + android:angle="270" 6 + android:startColor="#00000000" 7 + android:endColor="#FFFFFF"/> 8 + </shape>
+1 -2
features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/view/RecordsFragment.kt
··· 55 55 createRecordAdapterDelegate(viewModel::onRecordClick), 56 56 createEmptyAdapterDelegate(), 57 57 createLoaderAdapterDelegate(), 58 - createHintAdapterDelegate() 59 - 58 + createHintAdapterDelegate(), 60 59 ) 61 60 } 62 61
+3 -1
features/feature_widget/src/main/java/com/example/util/simpletimetracker/feature_widget/universal/activity/view/WidgetUniversalFragment.kt
··· 13 13 import com.example.util.simpletimetracker.feature_base_adapter.activityFilter.createActivityFilterAdapterDelegate 14 14 import com.example.util.simpletimetracker.feature_base_adapter.divider.createDividerAdapterDelegate 15 15 import com.example.util.simpletimetracker.feature_base_adapter.empty.createEmptyAdapterDelegate 16 + import com.example.util.simpletimetracker.feature_base_adapter.hint.createHintAdapterDelegate 16 17 import com.example.util.simpletimetracker.feature_base_adapter.loader.createLoaderAdapterDelegate 17 18 import com.example.util.simpletimetracker.feature_base_adapter.recordType.createRecordTypeAdapterDelegate 18 19 import com.example.util.simpletimetracker.feature_widget.universal.activity.viewModel.WidgetUniversalViewModel ··· 44 45 createRecordTypeAdapterDelegate(viewModel::onRecordTypeClick), 45 46 createDividerAdapterDelegate(), 46 47 createEmptyAdapterDelegate(), 47 - createLoaderAdapterDelegate() 48 + createLoaderAdapterDelegate(), 49 + createHintAdapterDelegate(), 48 50 ) 49 51 } 50 52
+6 -3
features/feature_widget/src/main/java/com/example/util/simpletimetracker/feature_widget/universal/activity/viewModel/WidgetUniversalViewModel.kt
··· 118 118 isDarkTheme = isDarkTheme 119 119 ) 120 120 } 121 - .takeUnless { it.isEmpty() } 122 - ?: recordTypeViewDataMapper.mapToEmpty() 123 121 124 122 return mutableListOf<ViewHolderType>().apply { 125 123 if (filtersViewData.isNotEmpty()) { ··· 127 125 DividerViewData(1).let(::add) 128 126 } 129 127 130 - recordTypesViewData.let(::addAll) 128 + if (recordTypesViewData.isEmpty()) { 129 + recordTypeViewDataMapper.mapToEmpty().let(::addAll) 130 + } else { 131 + recordTypesViewData.let(::addAll) 132 + widgetUniversalViewDataMapper.mapToHint().let(::add) 133 + } 131 134 } 132 135 } 133 136 }
+8
features/feature_widget/src/main/java/com/example/util/simpletimetracker/feature_widget/universal/mapper/WidgetUniversalViewDataMapper.kt
··· 9 9 import com.example.util.simpletimetracker.feature_base_adapter.recordType.RecordTypeViewData 10 10 import com.example.util.simpletimetracker.domain.model.RecordType 11 11 import com.example.util.simpletimetracker.domain.model.RunningRecord 12 + import com.example.util.simpletimetracker.feature_base_adapter.ViewHolderType 13 + import com.example.util.simpletimetracker.feature_base_adapter.hint.HintViewData 12 14 import com.example.util.simpletimetracker.feature_widget.R 13 15 import com.example.util.simpletimetracker.feature_widget.universal.customView.IconStackData 14 16 import com.example.util.simpletimetracker.feature_widget.universal.customView.WidgetUniversalViewData ··· 67 69 return WidgetUniversalViewData( 68 70 data = listOf(data), 69 71 iconColor = R.color.widget_universal_empty_color.let(resourceRepo::getColor) 72 + ) 73 + } 74 + 75 + fun mapToHint(): ViewHolderType { 76 + return HintViewData( 77 + text = R.string.running_records_empty.let(resourceRepo::getString) 70 78 ) 71 79 } 72 80 }
+21 -5
features/feature_widget/src/main/res/layout/widget_universal_fragment.xml
··· 1 1 <?xml version="1.0" encoding="utf-8"?> 2 - <androidx.recyclerview.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android" 2 + <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 + xmlns:app="http://schemas.android.com/apk/res-auto" 3 4 xmlns:tools="http://schemas.android.com/tools" 4 - android:id="@+id/rvWidgetUniversalRecordType" 5 5 android:layout_width="match_parent" 6 - android:layout_height="match_parent" 7 - android:paddingVertical="12dp" 8 - tools:listitem="@layout/item_widget_record_type_layout" /> 6 + android:layout_height="match_parent"> 7 + 8 + <androidx.recyclerview.widget.RecyclerView 9 + android:id="@+id/rvWidgetUniversalRecordType" 10 + android:layout_width="match_parent" 11 + android:layout_height="match_parent" 12 + android:clipToPadding="false" 13 + android:paddingVertical="20dp" 14 + tools:itemCount="30" 15 + tools:listitem="@layout/item_widget_record_type_layout" /> 16 + 17 + <androidx.appcompat.widget.AppCompatImageView 18 + android:layout_width="match_parent" 19 + android:layout_height="20dp" 20 + android:src="@drawable/background_gradient" 21 + android:tint="?appBackgroundColor" 22 + app:layout_constraintBottom_toBottomOf="parent" /> 23 + 24 + </androidx.constraintlayout.widget.ConstraintLayout>