aboutsummaryrefslogtreecommitdiff
path: root/src/distractionless/ui/apps.cljd
diff options
context:
space:
mode:
Diffstat (limited to 'src/distractionless/ui/apps.cljd')
-rw-r--r--src/distractionless/ui/apps.cljd21
1 files changed, 16 insertions, 5 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))))