diff options
Diffstat (limited to 'src/distractionless')
-rw-r--r-- | src/distractionless/core.cljd | 68 | ||||
-rw-r--r-- | src/distractionless/ui/apps.cljd | 3 |
2 files changed, 40 insertions, 31 deletions
diff --git a/src/distractionless/core.cljd b/src/distractionless/core.cljd index 146dc0a..f8c0929 100644 --- a/src/distractionless/core.cljd +++ b/src/distractionless/core.cljd @@ -5,6 +5,8 @@ [distractionless.config :as dconfig] ["dart:io" :as io] [clojure.string :as cstr] + ["package:url_launcher/url_launcher.dart" :as url-launcher] + ["package:url_launcher/url_launcher_string.dart" :as url-launcher-str] [distractionless.ui.constants :as duconstants] [distractionless.ui.apps :as duapps])) @@ -37,33 +39,41 @@ .child (if (nil? apps) (m/Text "Lade Apps..." .style (m/TextStyle - .color duconstants/text-color - .fontStyle m/FontStyle.italic)) + .color duconstants/text-color + .fontStyle m/FontStyle.italic)) (m/Column - .children [(m/SearchBar - .onChanged (fn [new-val] - (reset! *query new-val) - nil) - .hintText "Suche" - .controller search-bar-controller - .backgroundColor (#/(.resolveWith m/Color?) m/MaterialStateProperty (fn [^Set _states] duconstants/background-color)) - .trailing (when-not (cstr/blank? query) - [(m/IconButton .icon (m/Icon m/Icons.clear_rounded) - .color duconstants/text-color - .onPressed #(do (reset! *query "") - (.clear search-bar-controller)) - .iconSize 30.0)])) - (m/CheckboxListTile - .title (m/Text "Alle Apps anzeigen" - .style duconstants/text-style) - .value show-all-apps? - .onChanged #(reset! *show-all-apps? %) - .activeColor duconstants/checkbox-active-color) - (m/Expanded - .child (duapps/apps-list (filter (cond - (not (cstr/blank? query)) #(cstr/includes? - (cstr/lower-case (.-name %)) - (cstr/lower-case query)) - show-all-apps? (fn [_] true) - :else #(.contains favourites (.-packageName %))) apps) - config-file ctx reloader))]))))) + .children (filter some? + [(m/SearchBar + .onChanged (fn [new-val] + (reset! *query new-val) + nil) + .hintText "Suche" + .controller search-bar-controller + .backgroundColor (#/(.resolveWith m/Color?) m/MaterialStateProperty (fn [^Set _states] duconstants/background-color)) + .trailing (when-not (cstr/blank? query) + [(m/IconButton .icon (m/Icon m/Icons.clear_rounded) + .color duconstants/text-color + .onPressed #(do (reset! *query "") + (.clear search-bar-controller)) + .iconSize 30.0)])) + (m/CheckboxListTile + .title (m/Text "Alle Apps anzeigen" + .style duconstants/text-style) + .value show-all-apps? + .onChanged #(reset! *show-all-apps? %) + .activeColor duconstants/checkbox-active-color) + (m/Expanded + .child (duapps/apps-list (filter (cond + (not (cstr/blank? query)) #(cstr/includes? + (cstr/lower-case (.-name %)) + (cstr/lower-case query)) + show-all-apps? (fn [_] true) + :else #(.contains favourites (.-packageName %))) apps) + config-file ctx reloader)) + (when (not (cstr/blank? query)) + (m/ListTile + .title (m/Text (str "Nach \"" query "\" im Internet suchen") + .style duconstants/text-style) + .onTap #(do (await (url-launcher-str/launchUrlString (str "https://google.com/search?q=" (cstr/replace query " " "+")) + .mode url-launcher/LaunchMode.externalApplication)) + nil)))])))))) diff --git a/src/distractionless/ui/apps.cljd b/src/distractionless/ui/apps.cljd index 6d9920a..b7cf61f 100644 --- a/src/distractionless/ui/apps.cljd +++ b/src/distractionless/ui/apps.cljd @@ -1,6 +1,5 @@ (ns distractionless.ui.apps - (:require ["package:flutter/material.dart" :as m] - [clojure.string :as cstr] + (: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])) |