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

(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 config-file ctx reloader]
  (m/ListView
   .children (for [app apps]
               (render-app app config-file ctx reloader))))