diff --git a/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/acceptance/WidgetTest.java b/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/acceptance/WidgetTest.java index e98e8475b..f5bcb4285 100644 --- a/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/acceptance/WidgetTest.java +++ b/android/uhabits-android/src/androidTest/java/org/isoron/uhabits/acceptance/WidgetTest.java @@ -36,7 +36,6 @@ public class WidgetTest extends BaseUserInterfaceTest { dragCheckmarkWidgetToHomeScreen(); clickText("Wake up early"); - clickText("Save"); verifyCheckmarkWidgetIsShown(); clickCheckmarkWidget(); diff --git a/android/uhabits-android/src/main/java/org/isoron/uhabits/widgets/BaseWidgetProvider.java b/android/uhabits-android/src/main/java/org/isoron/uhabits/widgets/BaseWidgetProvider.java index 41405276a..edd2ce29f 100644 --- a/android/uhabits-android/src/main/java/org/isoron/uhabits/widgets/BaseWidgetProvider.java +++ b/android/uhabits-android/src/main/java/org/isoron/uhabits/widgets/BaseWidgetProvider.java @@ -38,6 +38,7 @@ public abstract class BaseWidgetProvider extends AppWidgetProvider { private HabitList habits; + private Preferences preferences; private WidgetPreferences widgetPrefs; public static void updateAppWidget(@NonNull AppWidgetManager manager, @@ -122,10 +123,14 @@ public abstract class BaseWidgetProvider extends AppWidgetProvider if (context == null) throw new RuntimeException("context is null"); if (manager == null) throw new RuntimeException("manager is null"); if (widgetIds == null) throw new RuntimeException("widgetIds is null"); - context.setTheme(R.style.OpaqueWidgetTheme); - updateDependencies(context); + if(preferences.isWidgetStackEnabled()) { + context.setTheme(R.style.OpaqueWidgetTheme); + } else { + context.setTheme(R.style.TransparentWidgetTheme); + } + new Thread(() -> { Looper.prepare(); @@ -193,6 +198,7 @@ public abstract class BaseWidgetProvider extends AppWidgetProvider HabitsApplication app = (HabitsApplication) context.getApplicationContext(); habits = app.getComponent().getHabitList(); + preferences = app.getComponent().getPreferences(); widgetPrefs = app.getComponent().getWidgetPreferences(); } } diff --git a/android/uhabits-android/src/main/java/org/isoron/uhabits/widgets/HabitPickerDialog.kt b/android/uhabits-android/src/main/java/org/isoron/uhabits/widgets/HabitPickerDialog.kt index 3b405b6c3..0ff16d9ef 100644 --- a/android/uhabits-android/src/main/java/org/isoron/uhabits/widgets/HabitPickerDialog.kt +++ b/android/uhabits-android/src/main/java/org/isoron/uhabits/widgets/HabitPickerDialog.kt @@ -26,28 +26,25 @@ import android.os.* import android.widget.* import android.widget.AbsListView.* import org.isoron.uhabits.* -import org.isoron.uhabits.core.models.* import org.isoron.uhabits.core.preferences.* import java.util.* class HabitPickerDialog : Activity() { private var widgetId = 0 - private lateinit var habitList: HabitList - private lateinit var preferences: WidgetPreferences - private lateinit var habitIds: ArrayList + private lateinit var widgetPreferences: WidgetPreferences private lateinit var widgetUpdater: WidgetUpdater - private lateinit var listView: ListView override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val component = (applicationContext as HabitsApplication).component - habitList = component.habitList - preferences = component.widgetPreferences + val habitList = component.habitList + val preferences = component.preferences + widgetPreferences = component.widgetPreferences widgetUpdater = component.widgetUpdater widgetId = intent.extras?.getInt(EXTRA_APPWIDGET_ID, INVALID_APPWIDGET_ID) ?: 0 - habitIds = ArrayList() + val habitIds = ArrayList() val habitNames = ArrayList() for (h in habitList) { if (h.isArchived) continue @@ -56,30 +53,47 @@ class HabitPickerDialog : Activity() { } setContentView(R.layout.widget_configure_activity) - listView = findViewById(R.id.listView) as ListView + val listView = findViewById(R.id.listView) + val saveButton = findViewById