diff --git a/uhabits-android/src/main/AndroidManifest.xml b/uhabits-android/src/main/AndroidManifest.xml
index 36f3928c0..bfebccaa2 100644
--- a/uhabits-android/src/main/AndroidManifest.xml
+++ b/uhabits-android/src/main/AndroidManifest.xml
@@ -110,15 +110,6 @@
-
-
-
-
-
-
(selectedIds.size)
for (id in selectedIds) {
- val h = habits.getById(id) ?: throw HabitNotFoundException()
+ val h = habits.getById(id) ?: habitGroups.getHabitByID(id)
+ ?: throw HabitNotFoundException()
selectedHabits.add(h)
}
return selectedHabits
@@ -159,6 +161,7 @@ abstract class BaseWidgetProvider : AppWidgetProvider() {
private fun updateDependencies(context: Context) {
val app = context.applicationContext as HabitsApplication
habits = app.component.habitList
+ habitGroups = app.component.habitGroupList
preferences = app.component.preferences
widgetPrefs = app.component.widgetPreferences
}
diff --git a/uhabits-android/src/main/java/org/isoron/uhabits/widgets/activities/HabitPickerDialog.kt b/uhabits-android/src/main/java/org/isoron/uhabits/widgets/activities/HabitPickerDialog.kt
index 67ad8ae2d..9a9f286ac 100644
--- a/uhabits-android/src/main/java/org/isoron/uhabits/widgets/activities/HabitPickerDialog.kt
+++ b/uhabits-android/src/main/java/org/isoron/uhabits/widgets/activities/HabitPickerDialog.kt
@@ -25,7 +25,6 @@ import android.appwidget.AppWidgetManager.INVALID_APPWIDGET_ID
import android.content.Intent
import android.os.Bundle
import android.widget.ArrayAdapter
-import android.widget.Button
import android.widget.ListView
import android.widget.TextView
import org.isoron.uhabits.HabitsApplication
@@ -34,11 +33,6 @@ import org.isoron.uhabits.activities.AndroidThemeSwitcher
import org.isoron.uhabits.core.preferences.WidgetPreferences
import org.isoron.uhabits.widgets.WidgetUpdater
-class BooleanHabitPickerDialog : HabitPickerDialog() {
- override fun shouldHideNumerical() = true
- override fun getEmptyMessage() = R.string.no_boolean_habits
-}
-
class NumericalHabitPickerDialog : HabitPickerDialog() {
override fun shouldHideBoolean() = true
override fun getEmptyMessage() = R.string.no_numerical_habits
@@ -50,7 +44,6 @@ open class HabitPickerDialog : Activity() {
private lateinit var widgetPreferences: WidgetPreferences
private lateinit var widgetUpdater: WidgetUpdater
- protected open fun shouldHideNumerical() = false
protected open fun shouldHideBoolean() = false
protected open fun getEmptyMessage() = R.string.no_habits
@@ -59,6 +52,7 @@ open class HabitPickerDialog : Activity() {
val component = (applicationContext as HabitsApplication).component
AndroidThemeSwitcher(this, component.preferences).apply()
val habitList = component.habitList
+ val habitGroupList = component.habitGroupList
widgetPreferences = component.widgetPreferences
widgetUpdater = component.widgetUpdater
widgetId = intent.extras?.getInt(EXTRA_APPWIDGET_ID, INVALID_APPWIDGET_ID) ?: 0
@@ -67,12 +61,22 @@ open class HabitPickerDialog : Activity() {
val habitNames = ArrayList()
for (h in habitList) {
if (h.isArchived) continue
- if (h.isNumerical and shouldHideNumerical()) continue
if (!h.isNumerical and shouldHideBoolean()) continue
habitIds.add(h.id!!)
habitNames.add(h.name)
}
+ for (hgr in habitGroupList) {
+ if (hgr.isArchived) continue
+
+ for (h in hgr.habitList) {
+ if (h.isArchived) continue
+ if (!h.isNumerical and shouldHideBoolean()) continue
+ habitIds.add(h.id!!)
+ habitNames.add(h.name)
+ }
+ }
+
if (habitNames.isEmpty()) {
setContentView(R.layout.widget_empty_activity)
findViewById(R.id.message).setText(getEmptyMessage())
@@ -81,7 +85,6 @@ open class HabitPickerDialog : Activity() {
setContentView(R.layout.widget_configure_activity)
val listView = findViewById(R.id.listView)
- val saveButton = findViewById