diff options
Diffstat (limited to 'src/distractionless/ui/apps.cljd')
-rw-r--r-- | src/distractionless/ui/apps.cljd | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/distractionless/ui/apps.cljd b/src/distractionless/ui/apps.cljd new file mode 100644 index 0000000..7fd620c --- /dev/null +++ b/src/distractionless/ui/apps.cljd @@ -0,0 +1,26 @@ +(ns distractionless.ui.apps + (:require ["package:flutter/material.dart" :as m] + [clojure.string :as cstr] + ["package:installed_apps/installed_apps.dart" :as apps] + [distractionless.ui.constants :as duconstants] + [distractionless.ui.apps.settings :as duasettings])) + +(defn load-installed-apps! [a] + (reset! a (await (apps/InstalledApps.getInstalledApps)))) + +(defn- render-app [app config-file ctx reloader] + (m/ListTile + .title (m/Text (.-name app) + .style duconstants/text-style) + .onTap #(do (await (apps/InstalledApps.startApp (.-packageName app))) nil) + .onLongPress #(duasettings/open app config-file ctx reloader))) + +(defn apps-list [apps query config-file ctx reloader] + (m/ListView + .children (for [app (if (cstr/blank? query) + apps + (filter #(cstr/includes? + (cstr/lower-case (.-name %)) + (cstr/lower-case query)) + apps))] + (render-app app config-file ctx reloader)))) |