diff options
author | Tim <contact@bytim.eu> | 2025-02-24 18:10:02 +0100 |
---|---|---|
committer | Tim <contact@bytim.eu> | 2025-02-24 18:10:02 +0100 |
commit | ac6e691ed65dbc269468ef92c982414b3f5dda61 (patch) | |
tree | 261f4162fb5d075c8069ee64a11be05b6bac12c5 /src/distractionless/ui/apps.cljd | |
parent | cd72067f63b1419c8cb87541cbc08e3a25d3a507 (diff) | |
download | distractionless-ac6e691ed65dbc269468ef92c982414b3f5dda61.tar.xz distractionless-ac6e691ed65dbc269468ef92c982414b3f5dda61.zip |
Add logic for countdown option
Diffstat (limited to 'src/distractionless/ui/apps.cljd')
-rw-r--r-- | src/distractionless/ui/apps.cljd | 21 |
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)))) |