(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))))