aboutsummaryrefslogtreecommitdiff
path: root/src/distractionless/ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/distractionless/ui')
-rw-r--r--src/distractionless/ui/apps.cljd21
-rw-r--r--src/distractionless/ui/apps/settings.cljd7
2 files changed, 21 insertions, 7 deletions
diff --git a/src/distractionless/ui/apps.cljd b/src/distractionless/ui/apps.cljd
index b7cf61f..0341b6b 100644
--- a/src/distractionless/ui/apps.cljd
+++ b/src/distractionless/ui/apps.cljd
@@ -2,20 +2,31 @@
(:require ["package:flutter/material.dart" :as m]
["package:installed_apps/installed_apps.dart" :as apps]
[distractionless.ui.constants :as duconstants]
- [distractionless.ui.apps.settings :as duasettings]))
+ [distractionless.ui.apps.settings :as duasettings]
+ ["dart:async" :as async]))
+
+(defn start-app [app config-file *app-in-queue]
+ (async/Future.delayed (Duration.
+ .seconds (duasettings/countdown-setting-value app config-file))
+ (fn []
+ (reset! *app-in-queue nil)
+ (await (apps/InstalledApps.startApp (.-packageName app))))))
(defn load-installed-apps! [a]
(reset! a (await (apps/InstalledApps.getInstalledApps false))))
-(defn- render-app [app config-file ctx reloader]
+(defn- render-app [app config-file ctx reloader *app-in-queue]
(m/ListTile
.title (m/Text (.-name app)
.style duconstants/text-style)
- .onTap #(do (await (apps/InstalledApps.startApp (.-packageName app))) nil)
+ .onTap (fn []
+ (reset! *app-in-queue app)
+ (start-app app config-file *app-in-queue)
+ nil)
.onLongPress #(duasettings/open app config-file ctx reloader)))
-(defn apps-list [apps config-file ctx reloader]
+(defn apps-list [apps config-file ctx reloader *app-in-queue]
(m/ListView
.padding m/EdgeInsets.zero
.children (for [app apps]
- (render-app app config-file ctx reloader))))
+ (render-app app config-file ctx reloader *app-in-queue))))
diff --git a/src/distractionless/ui/apps/settings.cljd b/src/distractionless/ui/apps/settings.cljd
index 8fa57ce..a2c1d4b 100644
--- a/src/distractionless/ui/apps/settings.cljd
+++ b/src/distractionless/ui/apps/settings.cljd
@@ -31,6 +31,10 @@
reloader)))
.activeColor duconstants/checkbox-active-color))
+(defn countdown-setting-value [app config-file]
+ (get-in (dconfig/read-from-file config-file)
+ ["countdowns" (.-packageName app)] 0))
+
(defn- countdown-setting [app config-file reloader]
(m/Row
.children [(m/Text "Countdown, bevor App öffnet (in Sekunden): "
@@ -38,8 +42,7 @@
(m/Expanded
.child (m/TextFormField
.keyboardType m/TextInputType.number
- .initialValue (str (get-in (dconfig/read-from-file config-file)
- ["countdowns" (.-packageName app)] 0))
+ .initialValue (str (countdown-setting-value app config-file))
.onChanged (fn [new-val]
(dconfig/update-config! config-file
#(update % "countdowns"