Compare commits

...

702 Commits

Author SHA1 Message Date
lollipopkit
413c45a559 opt.: backup 2024-06-04 22:33:59 +08:00
lollipopkit
6dc5536c48 fix: batch import 2024-06-04 19:57:56 +08:00
lollipopkit
76c4bf56fa fix: sync 2024-06-02 16:04:45 +08:00
lollipopkit
a0c6642230 fix: ios watch config 2024-06-02 15:50:01 +08:00
lollipopkit
4198d7bd13 opt.: ios watch config 2024-06-02 15:30:21 +08:00
lollipopkit
b06fddec07 new: windows release actions 2024-06-02 15:29:53 +08:00
lollipopkit
d1f14bee59 opt.: speed up docker page 2024-06-01 22:36:02 +08:00
lollipopkit
8953f63197 opt.: pve 2024-06-01 17:10:22 +08:00
lollipopkit🏳️‍⚧️
193d80d826 Merge pull request #370 from leganck/main
Add pve http proxy
2024-05-31 14:15:18 +08:00
leganck
9e308792aa Add pve http proxy 2024-05-30 23:30:45 +08:00
lollipopkit
fbabd8c351 new: wear settings (#358) & opt.: android widget edit 2024-05-27 20:52:46 +08:00
lollipopkit
1a3cb09ca2 fix: ssh term (#365) 2024-05-27 11:32:52 +08:00
lollipopkit
ccab4040b1 new: github actions 2024-05-25 19:29:18 +08:00
lollipopkit
ee5f4d10ea chore: update deps. 2024-05-24 21:29:03 +08:00
lollipopkit
57b83dc226 Merge branch 'main' of github.com:lollipopkit/flutter_server_box 2024-05-24 21:10:46 +08:00
lollipopkit
dddec01070 opt.: snippet confirmation (#363) 2024-05-24 17:04:17 +08:00
lollipopkit
3524b059c6 fix: bakPath & lib l10n 2024-05-24 16:29:05 +08:00
PaperCube
5888cb7172 Improve backup functionality and error handling
- (Windows) Fix not selecting the right backup file in explorer
- Fix progress indicator not stopping on WebDAV failure

#188 #364
2024-05-23 20:41:56 +01:00
PaperCube
17b8bbd269 Always display app bar in SSH Page on Linux/Windows
#361
2024-05-23 17:12:31 +01:00
lollipopkit
5bcb950275 opt: toleranter on gpu parsing 2024-05-23 20:05:56 +08:00
lollipopkit
eb0100d432 opt. 2024-05-23 18:23:26 +08:00
lollipopkit
cf5810d6ca fix: no-pwd WOL 2024-05-22 22:30:08 +08:00
lollipopkit
7c3818bc51 opt.
- hideTitleBar tip
- android home widget err handle
- sftp loading dialog
2024-05-22 20:45:11 +08:00
lollipopkit
9304a0377b fix: ssh tab multi page FocusNode 2024-05-22 19:17:46 +08:00
lollipopkit
2c5886de09 new: wearos detect (#358) 2024-05-22 18:45:23 +08:00
lollipopkit
9919f9038f fix: flutter 3.22 multi-dex 2024-05-20 16:56:37 +08:00
lollipopkit
ed05bddbbc fix: gpu parse 2024-05-20 15:57:51 +08:00
lollipopkit
381acbf5ed Merge branch 'main' of github.com:lollipopkit/flutter_server_box 2024-05-16 17:26:17 +08:00
lollipopkit
9eb16f4703 opt.: l10n 2024-05-16 17:25:38 +08:00
lollipopkit
eefdc9b2d1 Merge pull request #357 from FrancXPT/patch-french-translation
Patch french translation
2024-05-15 21:43:55 +08:00
Achraf BenBamoula
8c4c15584f Second pass 2024-05-15 14:38:32 +01:00
Achraf BenBamoula
7223f3d4e1 Updated french translation 2024-05-15 14:31:34 +01:00
lollipopkit
ba4abcecfb opt. 2024-05-14 23:39:17 +08:00
lollipopkit
04dfede535 opt.: migrate fl_lib 2024-05-14 22:29:37 +08:00
lollipopkit
248430e5b0 opt.: global server logo url & new {BRIGHT} param 2024-05-12 15:17:59 +08:00
lollipopkit
6b5f98cb2d fix: click blank to show fab 2024-05-10 21:46:05 +08:00
lollipopkit
5bc28a0560 opt.: sensors 2024-05-10 21:02:36 +08:00
lollipopkit
f9efd6acfa fix: sensors (#350) 2024-05-10 20:15:30 +08:00
lollipopkit
ed5bcb17ed rm: r_upgrade 2024-05-10 12:55:32 +08:00
lollipopkit
52a9cc6852 fix: WOL config edit 2024-05-10 11:30:06 +08:00
lollipopkit
d538367354 fix: logo display 2024-05-10 11:28:27 +08:00
lollipopkit
9a60e8f075 fix: auto refresh 2024-05-09 23:32:23 +08:00
lollipopkit
e2ddd48a79 feat: Wake On LAN 2024-05-09 23:27:05 +08:00
lollipopkit
b876981243 feat: manually close conn 2024-05-09 22:29:44 +08:00
lollipopkit
7767cc4b51 opt.: more friendly err tip 2024-05-09 21:50:30 +08:00
lollipopkit
131ece725a opt.: server tab navigation bar when landscape 2024-05-09 18:26:31 +08:00
lollipopkit
4d2a944310 feat: custom server logo 2024-05-09 17:08:37 +08:00
lollipopkit
91a9d5aab5 opt.: collapse custom cmd output 2024-05-09 16:03:33 +08:00
lollipopkit
dc16574a04 fix: disk parse 2024-05-09 14:51:41 +08:00
lollipopkit
8ed6a3869e opt.: server tab if landscape & ignore stderr 2024-05-09 13:39:11 +08:00
lollipopkit
faacbe088b feat: auto hide fab 2024-05-09 12:31:59 +08:00
lollipopkit
f70449d67d feat: general wake lock (#347) 2024-05-07 15:48:08 +08:00
lollipopkit
d0523c1e54 feat: keyboard-interactive auth (#349) 2024-05-07 15:22:31 +08:00
lollipopkit
026e414388 feat: wake lock (#347) 2024-04-27 15:40:23 +08:00
lollipopkit
2535c8c7c3 new: sftp search (#345) 2024-04-26 23:26:56 +08:00
lollipopkit
ece74d7552 opt. 2024-04-26 20:11:03 +08:00
lollipopkit
3237d9eb21 opt. & new: icons 2024-04-26 00:39:03 +08:00
lollipopkit
3ccb61fba2 opt. 2024-04-23 19:49:02 +08:00
lollipopkit
73f2926469 feat: turn off countly 2024-04-23 00:58:04 +08:00
lollipopkit
1249055668 feat: only one line ssh virt keys (#332) 2024-04-23 00:42:54 +08:00
lollipopkit
d312b783e9 opt.: ssh 2024-04-23 00:36:44 +08:00
lollipopkit
4044f43808 opt.: terminal selection 2024-04-22 01:19:07 +08:00
lollipopkit
d94b2a7805 fix: preferTempDev 2024-04-21 11:57:51 +08:00
lollipopkit
a0ea95b1c3 fix & opt.: prefer temperature dev 2024-04-21 01:04:43 +08:00
lollipopkit
23764f8c93 readd: jump server 2024-04-21 00:42:00 +08:00
lollipopkit
9d1df94f89 new: use browser to upgrade 2024-04-21 00:20:49 +08:00
lollipopkit
0f226b3620 new: editor softWrap (#338) 2024-04-19 20:32:06 +08:00
lollipopkit
536b7f3b2c fix: auth cancel 2024-04-19 00:13:33 +08:00
lollipopkit
1c0ea9e7bb fix: details card page 2024-04-17 00:08:00 +08:00
lollipopkit
ff8bc49074 fix: wrong hostname display (#336) 2024-04-16 00:19:00 +08:00
lollipopkit
b80bf51a61 new: update in browser (#337) 2024-04-16 00:07:00 +08:00
lollipopkit
a28fabedef opt.: server card seq page 2024-04-13 00:45:48 +08:00
lollipopkit
b989953b7a new: cpu view settings 2024-04-12 23:53:37 +08:00
lollipopkit
39cd8ff63e Merge branch 'main' of github.com:lollipopkit/flutter_server_box 2024-04-12 23:33:59 +08:00
lollipopkit
57fc8c2687 chore: README 2024-04-12 00:26:00 +08:00
lollipopkit
0befb32571 Merge pull request #333 from QazCetelic/feature/dutch_localisation
Dutch localisation
2024-04-11 18:53:02 +08:00
QazCetelic
824d7c7bb6 Fix formatting errors 2024-04-11 12:49:23 +02:00
QazCetelic
a45716e0cb Dutch localisation 2024-04-11 12:46:23 +02:00
lollipopkit
64066e9622 new: ios orientation 2024-04-10 21:27:00 +08:00
lollipopkit
5836275a3f new: fullscreen mode 2024-04-10 21:23:00 +08:00
lollipopkit
11956aee00 fix: ssh page icon color 2024-04-10 20:41:00 +08:00
lollipopkit
a38cc9a1ee fix: count down btn 2024-04-10 08:23:00 +08:00
lollipopkit
107548aa36 fix: android widget id (#323) 2024-04-10 08:20:00 +08:00
lollipopkit
4d58eafc19 opt.: set min window size 2024-04-09 22:39:53 +08:00
lollipopkit
fbc6f6e887 fix: pve cert ignore (#317) 2024-04-09 08:54:00 +08:00
lollipopkit
991d91b636 opt.: only calc cpu0 2024-04-09 16:51:00 +08:00
lollipopkit
5f701980a4 fix: desktop init 2024-04-09 00:13:00 +08:00
lollipopkit
4fd82afade new: hideTitlebar & cupertinoRoute 2024-04-08 23:43:24 +08:00
lollipopkit
7d2fbde2fe opt.: cpu line chart 2024-04-08 21:31:00 +08:00
lollipopkit
819c53df7e new: cpu line chart 2024-04-08 21:24:00 +08:00
lollipopkit
aed5a63a19 opt.: only req noti perm on Android 2024-04-08 20:13:00 +08:00
lollipopkit
439208605b Merge branch 'main' of github.com:lollipopkit/flutter_server_box 2024-04-07 22:55:12 +08:00
lollipopkit
3c7bb77f3e new: FIFO list impl 2024-04-07 22:55:00 +08:00
lollipopkit
f126a59ff2 opt.: add tip for upgrading pkgs (#326) 2024-04-07 17:44:47 +08:00
lollipopkit
c1a729f542 fix: ssh virt key icon color 2024-04-07 10:25:06 +08:00
lollipopkit
2f96a090c4 new: auto request noti perm 2024-04-03 11:27:06 +08:00
lollipopkit
704a93713f opt.: ignore unknown pve res type 2024-04-02 12:41:27 +08:00
lollipopkit
78e156bfb2 fix: condig dir perm (#299) 2024-04-02 12:35:05 +08:00
lollipopkit
765404f55d fix: apple privacy info 2024-04-01 14:35:38 +08:00
nezha
d08a3df440 fix(iOS): privacy info warnings when archiving 2024-03-30 20:58:20 +08:00
lollipopkit
3ad1e7a196 new: customCmds tips 2024-03-30 17:34:02 +08:00
lollipopkit
dacc042a85 fix: repeatedly auth (#294 #320) 2024-03-28 11:48:01 +08:00
lollipopkit
f5d5bf9c37 fix & opt.
- fix: db type err
- opt.: server detail page `customCmd` card
2024-03-28 11:10:12 +08:00
lollipopkit
bfece9ae7d opt.: ssh tab top padding 2024-03-25 16:41:34 +08:00
lollipopkit
b6a797c993 new: custom cmds (#313) 2024-03-25 15:03:39 +08:00
lollipopkit
96866565c4 new: option of ignoring pve cert (#317) 2024-03-23 12:16:46 +08:00
lollipopkit
6ed2e558cb new: add PrivacyInfo for ios/macos 2024-03-22 23:15:04 +08:00
lollipopkit
2681e4eb28 opt. & fix
- fix: pve text color
- opt.: rm ssh tab appbar
- opt.: ssh tab only display fab on `Add` page
2024-03-22 22:52:31 +08:00
lollipopkit
7feebb8c1f try: fix repeated auth (#294) 2024-03-21 17:24:07 +08:00
lollipopkit
32da0c8283 opt.: pve err 2024-03-21 17:06:49 +08:00
lollipopkit
e11d505409 opt.: rm settings of backup 2024-03-20 14:29:22 +08:00
lollipopkit
fae3a20a9e new: VersionRelated 2024-03-20 14:26:22 +08:00
lollipopkit
d5ce11c788 new: docker icon 2024-03-20 14:24:05 +08:00
lollipopkit
cedade1d01 opt.: only calc real-disk's speed (#314) 2024-03-19 16:39:37 +08:00
lollipopkit
7edef87a4f opt.: pve dashboard (#307) 2024-03-19 16:26:53 +08:00
lollipopkit
48fdf4cc84 new: pve ctrl (#307) 2024-03-19 15:00:28 +08:00
lollipopkit
2597f99571 new: pve dashboard (#307) 2024-03-19 11:11:30 +08:00
lollipopkit
26264ecdea new: pve (#307) 2024-03-18 18:34:25 +08:00
lollipopkit
8bfb0eb9e0 opt.: server item onTap when err occurs (#310) 2024-03-16 23:52:11 +08:00
lollipopkit
f654557fae fix: NAS disk amount 2024-03-16 10:55:12 +08:00
lollipopkit
cf3a246520 opt.: ignore all disk not start with /dev 2024-03-15 18:22:32 +08:00
lollipopkit
5993231c2a opt. & fix 2024-03-15 18:01:24 +08:00
lollipopkit
7be9c5fb9c fix: ssh page keyboard type (#308) 2024-03-15 17:30:53 +08:00
lollipopkit
98bee2aae7 opt.: term padding 2024-03-13 14:08:27 +08:00
lollipopkit
3747e2fc40 new: compatibility of Chinese Android safe keyboard 2024-03-13 12:18:33 +08:00
lollipopkit
150c8f014b opt. & new
new: term respond to tap event
opt.: term selection
2024-03-13 10:55:17 +08:00
lollipopkit
e361e509af fix: bsd status (#284) 2024-03-12 15:47:18 +08:00
lollipopkit
0ad7b4f8b8 fix: disk io (#304) 2024-03-12 15:10:53 +08:00
lollipopkit
13df750473 new: pkg supports 'deepin' (#306) 2024-03-12 14:58:47 +08:00
lollipopkit
baffe6dbe0 feat: separate ssh term theme setting (#305) 2024-03-12 14:56:19 +08:00
lollipopkit
f187bc6ccf new: remember pwd in mem 2024-03-11 10:15:24 +08:00
lollipopkit
5e9f0bf8a1 new: bulk import servers (#301) 2024-03-10 16:20:27 +08:00
lollipopkit
ff1780bb04 new: ios widget l10n 2024-03-09 17:43:28 +08:00
lollipopkit
96a0b9cfd2 opt.: use cdn as default 2024-03-09 17:43:15 +08:00
lollipopkit
519ca23556 opt.: container asks pwd repeatly 2024-03-08 17:14:06 +08:00
lollipopkit
2ddc29f45e new: setting of termCursor type 2024-03-08 17:03:11 +08:00
lollipopkit
b9aa4ba124 new: useCDN option 2024-03-08 15:52:02 +08:00
lollipopkit
7b74d83c23 new: ssh page zoom (#256) 2024-03-08 15:18:11 +08:00
lollipopkit
9ad710fade fix #300 2024-03-08 14:10:00 +08:00
lollipopkit
58f0a1fade fix #298 2024-03-08 14:06:19 +08:00
lollipopkit
c65525ac86 new: macos l10n 2024-03-08 13:55:36 +08:00
lollipopkit
466ec45f7b new: 日本語 2024-03-07 11:12:19 +08:00
lollipopkit
9c6e6b8be8 new: ru es pt l10n 2024-03-06 17:55:20 +08:00
lollipopkit
157d7239c6 Merge branch 'main' of github.com:lollipopkit/flutter_server_box 2024-03-06 15:33:06 +08:00
lollipopkit
602ef60bf0 opt.: replace first with firstOrNull 2024-03-06 15:33:00 +08:00
lollipopkit
fc00b4b961 opt.: display total disk space on server tab 2024-03-06 15:31:54 +08:00
lollipopkit
4e6ea086e3 new: only calc non-virt net iface (#295) 2024-03-06 14:59:37 +08:00
lollipopkit
2e31076171 Merge pull request #296 from upbeat-backbone-bose/main
Update analysis checkout action version to avoid build warnning message
2024-03-06 14:42:18 +08:00
debian-go
14b8608be1 Update analysis checkout action version to avoid build warnning message 2024-03-06 12:18:19 +08:00
lollipopkit
5baf683278 readd: double column on server page 2024-03-06 11:35:24 +08:00
lollipopkit
44a431c19f rm: refresh key (#291) 2024-03-01 10:57:33 +08:00
lollipopkit
183fc7f160 opt.: loading dialog 2024-02-29 18:12:44 +08:00
lollipopkit
2137bfbcd0 new: prefer temperature device (#285) 2024-02-26 09:57:59 +08:00
lollipopkit
1f586a2c31 new: sensors view (#285) 2024-02-23 12:33:42 +08:00
lollipopkit
fad3f41e58 opt.: install script 2024-02-23 11:01:47 +08:00
PaperCube
37dc1056c9 Build script QoL update
- make.dart: Added an alias "apk" for "android"
- Prevent reading commit message s.t. commit counting will not malfunction on Windows
- build.gradle: Check key.properties and storeFile prior to building
- build.gradle: Do not specify abiFilters when --split-per-abi is specified via CLI
2024-02-22 12:31:23 +00:00
PaperCube
2993e1236a Add missing android notification permission 2024-02-22 12:28:16 +00:00
lollipopkit
8e484a575c readd: server tab double column (#277) 2024-02-20 18:02:08 +08:00
lollipopkit
ba564a886b new: pick dialog support tags 2024-02-20 16:13:36 +08:00
lollipopkit
1a64dc5cba readd: server tags 2024-02-20 15:40:14 +08:00
lollipopkit
f4bf7a4d5e new: auto refresh container page 2024-02-20 15:16:40 +08:00
lollipopkit
813cfb56a2 opt.: snippet auto run ids 2024-02-20 15:03:45 +08:00
lollipopkit
828752e354 new: container stats (#272) 2024-02-20 15:00:13 +08:00
lollipopkit
483bf51c2f opt.: webdav sync 2024-02-20 11:11:36 +08:00
lollipopkit
7557bacb60 new: keepStatusWhenErr 2024-02-20 10:44:05 +08:00
lollipopkit
8fa3a2d0e4 fix: linux build 2024-02-19 10:57:49 +08:00
lollipopkit
ab058cc094 fix: bad check of script writing result (#275) 2024-02-18 17:34:42 +08:00
lollipopkit
b802c97a8d new: settings of containerTrySudo usePodman 2024-02-18 16:54:13 +08:00
lollipopkit
61ddb56639 new: auto run snippet (#67) 2024-02-18 15:00:41 +08:00
lollipopkit
8bfea497a0 chore: migrate flutter 3.19 2024-02-18 12:46:39 +08:00
lollipopkit
b1b8332a7c Merge branch 'main' of github.com:lollipopkit/flutter_server_box 2024-02-18 10:33:55 +08:00
lollipopkit
fb2809e4c2 opt. & fix 2024-02-18 10:33:49 +08:00
PaperCube
21860daf41 Fix sudo pswd dialog neither re-appearing nor closing session
- Fixed that when empty password was provided the dialog should have stopped the session
- Fixed that when wrong password was provided the dialog should have appeared again but it didn't
2024-02-17 01:46:02 +00:00
PaperCube
52e94e902b Option in settings to disable SFTP folders-first 2024-02-17 00:58:57 +00:00
PaperCube
8d722da799 SFTP supports reversed sorting 2024-02-17 00:26:01 +00:00
PaperCube
18b33ee0a2 Sort files with directories first in SFTP 2024-02-16 17:48:03 +00:00
PaperCube
1d8f6bed6b Experimental support for haptic feedback 2024-02-16 13:48:57 +00:00
PaperCube
6b41459281 Merge branch 'main' of https://github.com/lollipopkit/flutter_server_box 2024-02-16 12:39:08 +00:00
PaperCube
b34b504bf3 Auto-close the tab where session is done 2024-02-16 12:38:14 +00:00
lollipopkit
026c26cea7 Merge pull request #282 from PaperCube/main 2024-02-15 20:06:57 +08:00
PaperCube
c360dd7f84 Merge branch 'main' of https://github.com/lollipopkit/flutter_server_box 2024-02-15 11:13:34 +00:00
lollipopkit
e20adee0e2 opt.: seq settings (#273) 2024-02-15 16:44:41 +08:00
lollipopkit
2c79c25436 rm: fullscreen mode (#271) 2024-02-15 15:51:06 +08:00
lollipopkit
d605db5c8f fix: docker version (#276) 2024-02-15 15:49:07 +08:00
PaperCube
1f69f88b81 Docker: Adaptive sudo 2024-02-14 15:02:59 +00:00
PaperCube
71e6e18e09 Fix: bad detection of docker installation on fish 2024-02-13 22:15:00 +00:00
PaperCube
694854a89f Rework shell installer script writer s.t. fish shell doesn't rely on sftp 2024-02-13 21:03:14 +00:00
lollipopkit
7c816ec20a Merge pull request #281 from PaperCube/main 2024-02-13 12:46:57 +08:00
PaperCube
b2b5c21cf0 fix: redundant punctuation in some languages 2024-02-13 01:55:15 +00:00
PaperCube
c796cf4009 Fix "PEM header must end with -----" by standardizing CRLF 2024-02-13 01:25:40 +00:00
lollipopkit
4d78f1b11a fix: icloud upload (#267) 2024-02-02 22:50:27 +08:00
lollipopkit
991189dbca fix: disk used text (#268) 2024-02-02 21:39:38 +08:00
lollipopkit
a1af24be47 fix: empty disk list on busybox 2024-02-01 17:31:04 +08:00
lollipopkit
17c50000db new: use foreground service to keep ssh conn (#265) 2024-02-01 17:30:21 +08:00
lollipopkit
6f3c916273 opt.: ssh alive 2024-02-01 14:35:15 +08:00
lollipopkit
3d5ce4b863 new: clipboard backup (#263) 2024-02-01 11:57:18 +08:00
lollipopkit
3093230400 new: participants 2024-01-30 16:20:30 +08:00
lollipopkit
5b0081d914 chore: README 2024-01-30 14:43:55 +08:00
lollipopkit
a117e5fd77 fix: ssh page 2024-01-30 11:29:00 +08:00
lollipopkit
5168995ed9 fix: ssh page pop (#261) 2024-01-29 13:30:49 +08:00
lollipopkit
e04fede462 fix: ssh virt keys (#260) 2024-01-29 10:55:33 +08:00
lollipopkit
d1441fbafe fix 2024-01-28 16:47:57 +08:00
lollipopkit
b9640c380f opt.: debug page (#259) 2024-01-28 15:43:11 +08:00
lollipopkit
799a1ac5f0 opt.: reconnect logic (#258) 2024-01-28 14:53:48 +08:00
lollipopkit
2e11d8827e fix: store type 2024-01-27 23:14:46 +08:00
lollipopkit
b08265221f fix: backup merge 2024-01-27 21:11:40 +08:00
lollipopkit
dacf8f0864 chore: macos icons 2024-01-26 21:05:07 +08:00
lollipopkit
6c08b7b45d fix: sftp download/upload (#255) 2024-01-26 16:54:48 +08:00
lollipopkit
9edbc5cc89 fix: disk size display 2024-01-25 22:34:11 +08:00
lollipopkit
47560173f9 fix: snippet tag 2024-01-25 20:49:40 +08:00
lollipopkit
292a29a611 opt.: backup restore 2024-01-25 20:00:40 +08:00
lollipopkit
c910696735 fix: webdav restore & container page UI 2024-01-23 16:04:26 +08:00
lollipopkit
2ead60a13a fix: linux build script 2024-01-22 17:45:17 +08:00
lollipopkit
83dccfda1a opt.: container status 2024-01-21 19:03:31 +08:00
lollipopkit
1434556e0b new: iperf 2024-01-21 18:53:17 +08:00
lollipopkit
50d6ed919b opt.: disk size (#252) 2024-01-21 18:01:11 +08:00
lollipopkit
362dcdf288 opt.: server status update interval 2024-01-21 17:45:01 +08:00
lollipopkit
7414dcc8da new: snippet fmt 2024-01-21 17:42:43 +08:00
lollipopkit
07cc0a22e8 opt. 2024-01-21 15:41:35 +08:00
lollipopkit
e57b63a76f opt.: multi process 2024-01-21 15:30:50 +08:00
lollipopkit
50bcabbc54 new: podman 2024-01-21 15:12:43 +08:00
lollipopkit
7156f08eb8 new: control server detail page cards 2024-01-19 17:32:03 +08:00
lollipopkit
1f654fb4a6 chore: README 2024-01-16 15:01:34 +08:00
lollipopkit
a26efc5ca6 fix: gpu view 2024-01-16 12:06:35 +08:00
lollipopkit
ee96f2696e opt.: file view (#249) 2024-01-16 11:42:30 +08:00
lollipopkit
9eeacb3bdd fix: android home widget blank 2024-01-15 18:46:40 +08:00
lollipopkit
df800aba70 fix: CRLF of private key (#7) 2024-01-14 21:32:32 +08:00
lollipopkit
11dca4c37c fix: restore logic 2024-01-14 18:50:25 +08:00
lollipopkit
460f3f957e opt.: auto add date for manual webdav backup 2024-01-11 18:37:57 +08:00
lollipopkit
7032677def chore: add contributors 2024-01-06 13:39:17 +08:00
lollipopkit
c337e959b5 fix: ssh term deletion on safe keyboard (#242) & new: bgRunTip 2024-01-05 22:14:00 +08:00
lollipopkit
b442e0f914 new: setting of default collapse 2024-01-05 21:58:43 +08:00
lollipopkit
43fb481aee fix: follow system color scheme 2024-01-05 21:00:00 +08:00
lollipopkit
9f299079f8 Merge pull request #245 from FrancXPT/main 2023-12-30 10:48:38 +08:00
FrancXPT
aa0f941624 generate 2023-12-29 17:23:03 +01:00
Achraf BenBamoula
cca3a35229 Added French translation 2023-12-29 16:48:39 +01:00
Achraf BenBamoula
23783ae411 add french file 2023-12-29 16:41:43 +01:00
lollipopkit
72a2a392c3 Merge pull request #243 from dccif/main 2023-12-29 10:02:15 +08:00
dccif
1d9894ce5b opt.:try add high refresh rate support 2023-12-28 23:24:33 +08:00
lollipopkit
5284ceefd6 opt. 2023-12-27 11:44:45 +08:00
lollipopkit
3a3ba4de37 opt. & rm: server detail cards seq 2023-12-25 14:02:46 +08:00
lollipopkit
527e161264 opt.: battery status 2023-12-21 17:34:04 +08:00
lollipopkit
14260fa180 fix: init icloud sync (#239) 2023-12-21 14:14:29 +08:00
lollipopkit
e686387d88 opt.: docker rm container -f & font setting item 2023-12-21 14:06:18 +08:00
lollipopkit
4a93b326db new: more battery data & fix: auto reload 2023-12-20 17:26:04 +08:00
lollipopkit
7283c968ae opt.: server batch delete & fullscreen 2023-12-20 14:02:59 +08:00
lollipopkit
6924290626 opt. 2023-12-20 11:34:18 +08:00
lollipopkit
eec13678a1 fix: webdav 2023-12-19 15:24:21 +08:00
lollipopkit
2b1b6c7afb new & opt.: server page font size 2023-12-19 14:27:59 +08:00
lollipopkit
0d1a720f03 new: custom titlebar on linux/win 2023-12-19 11:00:00 +08:00
lollipopkit
48bc6da7b5 new: battery (#235) 2023-12-18 17:43:38 +08:00
lollipopkit
dd2555fc3f fix: sftp upload (#175) 2023-12-18 16:17:57 +08:00
lollipopkit
3ff94413e4 chore: README 2023-12-15 17:40:27 +08:00
lollipopkit
c2afe134f6 opt.: temperature display 2023-12-15 12:05:46 +08:00
lollipopkit
ee18b85108 opt.: tag switcher 2023-12-15 12:01:55 +08:00
lollipopkit
f10c5b9ea8 fix: net dev (#234 #236) 2023-12-15 11:37:34 +08:00
lollipopkit
54c75ecbe5 fix: restore loop & opt. 2023-12-12 16:16:15 +08:00
lollipopkit
2200ff98d7 chore: README 2023-12-12 14:18:09 +08:00
lollipopkit
47280b1339 new: bakup includes history 2023-12-11 11:37:01 +08:00
lollipopkit
2b3f70393b new: switch of displaying pwd 2023-12-11 11:31:05 +08:00
lollipopkit
ce9929e93f opt. 2023-12-11 11:13:49 +08:00
lollipopkit
73752bffc3 opt.: backup & titlebar 2023-12-09 18:48:22 +08:00
lollipopkit
b2eb96ec16 new: no titlebar on desktop 2023-12-09 16:31:18 +08:00
lollipopkit
cd9d5567fb rm: vnc 2023-12-06 11:31:00 +08:00
lollipopkit
8a3fd342c6 opt.: upgrade linter & fix lint issues 2023-12-06 11:09:05 +08:00
lollipopkit
143cb1e7c1 opt.: sync switch 2023-12-05 10:49:14 +08:00
lollipopkit
03b9a46a4c opt.: webdav sync logic 2023-12-04 15:11:12 +08:00
lollipopkit
5a982ae32e fix: reload after restoring 2023-12-04 14:40:11 +08:00
lollipopkit
22901bb856 opt.: detect sync conflict 2023-12-04 14:36:32 +08:00
lollipopkit
38cdef9458 new: webdav sync test 2023-12-04 14:21:20 +08:00
lollipopkit
2dc86a9da2 new: webdav sync 2023-12-04 13:39:13 +08:00
lollipopkit
3524d92013 opt.: icloud sync (#187) 2023-12-04 10:44:51 +08:00
lollipopkit
5035fdce86 new: vnc (beta #227) 2023-12-03 14:16:07 +08:00
lollipopkit
7c2480f027 fix: servers batch del 2023-12-03 14:14:30 +08:00
lollipopkit
66d344c910 chore: screenshots 2023-12-03 13:16:51 +08:00
lollipopkit
440dabfca8 opt.: server tab 2023-12-02 17:35:14 +08:00
lollipopkit
fc0c9b3a49 opt.: android only arm64 & ssh tab page 2023-12-02 00:21:07 +08:00
lollipopkit
90403b655b new: gpu percent / fanSpeed 2023-11-27 17:54:57 +08:00
lollipopkit
ad49593fe3 opt. 2023-11-27 17:35:15 +08:00
lollipopkit
05de760c41 new: gpu status (#201) 2023-11-27 16:49:26 +08:00
lollipopkit
ac94b33ad4 init: nvdia-smi 2023-11-26 13:45:08 +08:00
lollipopkit
f9f419f03f new: edit docker host on err 2023-11-23 22:22:56 +08:00
lollipopkit
d74819b198 new: add back ping 2023-11-22 20:18:46 +08:00
lollipopkit
d1d11e7b70 new: force delete docker container 2023-11-22 20:17:19 +08:00
lollipopkit
b696cdff08 fix: docker cmd wrap 2023-11-20 16:57:31 +08:00
lollipopkit
f093853d21 fix: docker (#162 #167) 2023-11-20 13:28:17 +08:00
lollipopkit
4153713ce7 opt: ssh tab & del script 2023-11-19 15:49:47 +08:00
lollipopkit
1a49c7870c fix: temporarily disable jump server 2023-11-19 14:47:27 +08:00
lollipopkit
691471dae5 new: setting of preferDiskAmount 2023-11-19 13:34:06 +08:00
lollipopkit
5660c0e0db new: disk view option & chore: flutter 3.16 2023-11-19 13:15:12 +08:00
lollipopkit
d3a6b1639c fix #214 2023-11-13 10:42:42 +08:00
lollipopkit
b2f6094a1d opt.: ssh page 2023-11-13 10:31:59 +08:00
lollipopkit
55ba013977 opt.: ssh tab 2023-11-12 17:09:43 +08:00
lollipopkit
790812901d new: ssh tab 2023-11-12 15:58:54 +08:00
lollipopkit
8693ce07a2 new: auto amoled 2023-11-07 18:22:31 +08:00
lollipopkit
2133302397 new: delete scripts when delete server 2023-11-07 18:10:38 +08:00
lollipopkit
e80f6d4cc2 opt.
- spi: use ip as name if empty
- server tab ui
- only display io speed when available
2023-11-03 22:13:18 +08:00
lollipopkit
a1b9cecebb new: manual refresh failed servers 2023-11-03 10:38:06 +08:00
lollipopkit
a9f9a1650e new: secure store 2023-11-03 10:23:57 +08:00
lollipopkit
e80d115e4f opt.: server detail page 2023-11-02 15:27:17 +08:00
lollipopkit
be714bec12 fix #207 2023-11-02 13:43:49 +08:00
lollipopkit
402045a53d opt.: display name of server func btns 2023-11-02 13:43:15 +08:00
lollipopkit
220f4c6723 opt.: server provider 2023-11-02 13:41:28 +08:00
lollipopkit
9000228698 opt.: server detail page 2023-11-01 15:25:09 +08:00
lollipopkit
a5341b00c1 new: tap server tab disk io view to switch 2023-11-01 14:59:54 +08:00
lollipopkit
37e5c4d092 new: tap server tab net io view to switch type 2023-11-01 14:38:51 +08:00
lollipopkit
a363e97dd4 opt.: display server func btns' name 2023-11-01 11:53:11 +08:00
lollipopkit
3d47390bf1 opt.: detail page cpu collapse / expand 2023-11-01 11:01:09 +08:00
lollipopkit
040cd6a29f new: detail page net sort 2023-10-31 20:13:57 +08:00
lollipopkit
b4dbde9a80 fix: swap 2023-10-31 19:53:30 +08:00
lollipopkit
37df072711 new: detail status page 2023-10-31 19:41:54 +08:00
lollipopkit
f2edd14117 fix: sftp mission error display 2023-10-31 18:50:37 +08:00
lollipopkit
bff799afd9 fix: jump server (#190) 2023-10-30 17:10:29 +08:00
lollipopkit
4971239bfc fix: macos build 2023-10-30 16:17:52 +08:00
lollipopkit
2b52e8e6ee fix (#195) & opt.
- fix: debug provider color
- fix: can't write script through SFTP (#195)
- opt.: go next refresh only after current refresh task is done
2023-10-30 12:01:07 +08:00
lollipopkit
eb0b219505 opt. (#202) 2023-10-30 11:19:05 +08:00
lollipopkit
1023f092f6 chore: dart 3+ 2023-10-28 21:52:18 +08:00
lollipopkit
7de5987355 fix: store item type & update file check 2023-10-28 19:02:54 +08:00
lollipopkit
c3ca5725a4 fix: constantly write script by sftp 2023-10-27 22:13:45 +08:00
lollipopkit
92bb653e81 fix & opt.
- fix: `sftpGoPath`
- opt.: `PersistentStore.toJson`
- rm: `first` store
- opt.: log print
2023-10-27 18:13:02 +08:00
lollipopkit
6579190ae4 opt: Shares 2023-10-26 10:18:37 +08:00
lollipopkit
02be466954 opt.: linux/win window size & server reconnect 2023-10-22 15:47:22 +08:00
lollipopkit
86c6b149d7 fix: windows bakup (#188) 2023-10-22 14:27:31 +08:00
lollipopkit
307ec25524 new: jump serevr (#190) 2023-10-22 14:20:13 +08:00
lollipopkit
e89ccd7ad4 fix: can't restore settings from backup 2023-10-21 19:02:21 +08:00
lollipopkit
bcf7e2125c fix #189 2023-10-21 18:38:41 +08:00
lollipopkit
476e0d5542 fix: ios home widget 2023-10-21 18:00:29 +08:00
lollipopkit
4984953287 default: mac window size & opt.: snippet result 2023-10-18 19:57:47 +08:00
lollipopkit
cf4f74dcfc opt.: snippet result 2023-10-18 19:14:06 +08:00
lollipopkit
cf231f9fe6 opt.: backup page 2023-10-17 20:27:47 +08:00
lollipopkit
8ce2cc579c new: icloud manual 2023-10-17 20:03:55 +08:00
lollipopkit
439aa913b6 update: win dl link 2023-10-15 20:39:17 +08:00
lollipopkit
2e17054037 opt.: ios home widget 2023-10-15 16:56:53 +08:00
lollipopkit
9cf9a6fbc5 new: ios interactive home widget (#82 #185) 2023-10-15 13:32:46 +08:00
lollipopkit
93b52655b5 update: README 2023-10-14 23:20:07 +08:00
lollipopkit
a397f81988 new: open sftp with last viewed path 2023-10-14 23:03:12 +08:00
lollipopkit
c9d54f4fea new: ExpandTile & fix: macos Podfile 2023-10-14 22:28:18 +08:00
lollipopkit
79df3c847e #177 update: README 2023-10-14 20:04:23 +08:00
lollipopkit
533e32abac new: win/linux update 2023-10-14 19:14:21 +08:00
lollipopkit
43506e19f1 new: linux build 2023-10-14 19:13:45 +08:00
lollipopkit
9a4a7cef4c fix: SystemType(#184) & opt.: ios home widget 2023-10-14 13:26:15 +08:00
lollipopkit
930697d033 #82 #185 new: StandBy 2023-10-13 22:17:32 +08:00
lollipopkit
70f6e1d22b opt.: bio auth setting 2023-10-13 13:13:24 +08:00
lollipopkit
3cce2c1e1b opt.: temperature parse 2023-10-13 13:12:21 +08:00
lollipopkit
a2bb4f1287 opt.: shell_func only get useful mem data 2023-10-13 12:48:54 +08:00
lollipopkit
7388ad4524 new: setting of editor highlight 2023-10-12 13:28:01 +08:00
lollipopkit
a43a000c68 #163 #176 #184 opt.: wrap with try-catch 2023-10-12 13:12:19 +08:00
lollipopkit
7148015037 update: README 2023-10-12 12:10:56 +08:00
lollipopkit
c90cd4ce1a update README / LICENSE 2023-10-12 11:27:02 +08:00
lollipopkit
da65babd56 opt. 2023-10-05 21:17:04 +08:00
lollipopkit
a23a284d1a new: picker & opt. rm -r 2023-10-05 19:51:24 +08:00
lollipopkit
ef144e27cb opt.: confirm of suspend & etc. 2023-10-05 17:08:21 +08:00
lollipopkit
153bfc191d opt.: sftp rename 2023-09-25 19:47:20 +08:00
lollipopkit
4d06a52e99 new & opt.
- new: support suspend and WOL #172
- opt.: `execWithPwd` when cancel
- opt.: extentions
2023-09-25 18:51:14 +08:00
lollipopkit
df84aeb8b2 chore: sync tip 2023-09-25 17:43:45 +08:00
lollipopkit
7bbaa5f5ab fix: auto reload after restoring 2023-09-24 15:53:53 +08:00
lollipopkit
4619b6ef9c #170 fix & opt.
`VirtKeyProvider` only used in ssh_term.dart`
2023-09-24 15:20:56 +08:00
lollipopkit
1194a87c76 fix
- fix: same name snippet caused err
- fix: auto load servers from db after restoring
2023-09-24 14:51:51 +08:00
lollipopkit
5a9fd74470 opt. 2023-09-23 10:54:42 +08:00
lollipopkit
f2981c5b15 fix #168 2023-09-23 10:36:30 +08:00
lollipopkit
09576285c9 #168 fix 2023-09-21 10:13:23 +08:00
lollipopkit
e928a29353 opt.: no app restart required 2023-09-21 20:08:54 +08:00
lollipopkit
cc4a05bf11 new: rebuild impl 2023-09-21 19:24:05 +08:00
lollipopkit
453eb200a8 opt.: logger & shell script 2023-09-19 19:36:07 +08:00
lollipopkit
e74a6cf3d5 fix: xcode 15 incompatibility 2023-09-19 19:01:37 +08:00
lollipopkit
96d5b750ba fix & opt.
fix: servers will only refresh once if `spi.autoConnect` is false
opt.: `UrlText` algo
2023-09-19 13:31:06 +08:00
lollipopkit
f47aacaf6f opt.: OS type 2023-09-17 15:21:12 +08:00
lollipopkit
603e226995 tidy: settings page 2023-09-17 14:30:34 +08:00
lollipopkit
1edd54b4df opt.: ios / watch 2023-09-17 00:26:44 +08:00
lollipopkit
cf943bf41f fix: bio auth on Android 2023-09-16 22:51:22 +08:00
lollipopkit
6c6c9cdc98 #150 new: net view sort 2023-09-16 21:46:54 +08:00
lollipopkit
3c3ca33cda opt.: watch app 2023-09-16 21:43:31 +08:00
lollipopkit
f51934396f new: watchOS phone end 2023-09-16 18:45:11 +08:00
lollipopkit
ef880c67af new: watchOS watch end app 2023-09-16 17:53:34 +08:00
lollipopkit
f74c5cd9ba fix: ios pbxproj 2023-09-16 17:30:18 +08:00
lollipopkit
8152829c89 #165 new: bio auth 2023-09-16 17:26:40 +08:00
lollipopkit
2e8761f533 opt.: divide platform 2023-09-16 17:06:47 +08:00
lollipopkit
2a6c2f7c72 opt.: method channels 2023-09-16 16:56:11 +08:00
lollipopkit
c07958fa73 new: Providers 2023-09-14 15:13:11 +08:00
lollipopkit
eb158e63a2 opt.: mem usage 2023-09-13 15:22:48 +08:00
lollipopkit
278d5984b2 opt. 2023-09-13 14:28:02 +08:00
lollipopkit
6c84d2f52b opt.: Loggers 2023-09-13 13:41:09 +08:00
lollipopkit
269c2a0a10 opt.: backup 2023-09-13 13:05:19 +08:00
lollipopkit
9ce7138d9b new: manual icloud sync 2023-09-12 14:02:31 +08:00
lollipopkit
700322c603 fix: mark sftp mission as completed when dispose 2023-09-12 13:26:14 +08:00
lollipopkit
730a62831b #157 opt. 2023-09-11 23:23:46 +08:00
lollipopkit
932a9ef3ff fix: server detail cards order 2023-09-11 22:54:47 +08:00
lollipopkit
6e4aa8e56e #157 opt.: icloud sync 2023-09-11 22:39:44 +08:00
lollipopkit
82b0abaab3 #161 opt. 2023-09-11 21:55:27 +08:00
lollipopkit
e4fd75ac5a #157 new: icloud sync 2023-09-11 19:20:29 +08:00
lollipopkit
ddaee7c2f3 opt.: primaryColor 2023-09-10 11:13:02 +08:00
lollipopkit
b187ec88be #159 opt. 2023-09-08 20:05:43 +08:00
lollipopkit
84e99048ab #158 new: follow system color 2023-09-08 19:47:43 +08:00
lollipopkit
7c853e3ea5 #159 opt.: diff shell path 2023-09-08 19:09:53 +08:00
lollipopkit
1f29fde5d2 fix: macOS app zip struct 2023-09-08 18:17:57 +08:00
lollipopkit
6e4cc8eb28 new: note of Snippet 2023-09-07 19:17:49 +08:00
lollipopkit
4bdf3694c3 new: snippet for installing ServerBoxMonitor 2023-09-07 19:05:46 +08:00
lollipopkit
03f9e88bad new: setting of doubleColumn on Desktop 2023-09-07 18:54:35 +08:00
lollipopkit
b55b8bf831 opt.: performance 2023-09-07 18:41:18 +08:00
lollipopkit
3b698fc062 chore: upgrade deps for CVE-2023-39139 2023-09-07 17:14:22 +08:00
lollipopkit
567f1442f5 #156 opt.: show error of settings json 2023-09-07 16:41:38 +08:00
lollipopkit
459b647b68 #156 new: setting of textFactor 2023-09-06 21:05:30 +08:00
lollipopkit
806a223e00 fix: tag changed without saving 2023-09-06 20:54:17 +08:00
lollipopkit
f3970b9fb2 opt.: server edit page 2023-09-06 18:22:35 +08:00
lollipopkit
191ffe0173 #155 new: option autoConnect 2023-09-05 21:14:39 +08:00
lollipopkit
e32f7536b5 opt.: use ssh term to upgrade pkg 2023-09-03 17:36:12 +08:00
lollipopkit
61218f9ca3 new: shutdown | reboot on rootless user 2023-09-03 16:40:29 +08:00
lollipopkit
ab09fa6614 fix: server card height 2023-09-03 15:43:08 +08:00
lollipopkit
b417cca906 opt.: sftp rm -rf 2023-09-01 12:57:48 +08:00
lollipopkit
acaec6e2d8 new: fast poweroff | reboot (#119) 2023-09-01 12:36:40 +08:00
lollipopkit
28660b82ef new: setting item of record history 2023-08-30 19:33:06 +08:00
lollipopkit
f4b6326652 new: custom timeout 2023-08-30 19:07:32 +08:00
lollipopkit
c899a84b29 new: delete all in settings page 2023-08-30 18:52:28 +08:00
lollipopkit
be62767d45 opt.: handle situation that font file not existing 2023-08-30 17:15:36 +08:00
lollipopkit
2f4b522189 new: upgrade on macos 2023-08-30 17:06:24 +08:00
lollipopkit
8004c41094 #146 new: option of server tab old ui 2023-08-30 15:41:41 +08:00
lollipopkit
f7278fc890 #144 opt.: only show decompress option when valid 2023-08-30 13:52:25 +08:00
lollipopkit
685faa0627 #152 fix 2023-08-30 13:44:19 +08:00
lollipopkit
1cdcff120d fix: backup restore failed 2023-08-29 10:53:38 +08:00
lollipopkit
57b72ae440 fix: avoid display cutout in fullscreen mode 2023-08-29 10:38:57 +08:00
lollipopkit
2062bf082d #151 fix 2023-08-29 10:28:55 +08:00
lollipopkit
a302050431 fix: null dist 2023-08-28 22:03:21 +08:00
lollipopkit
d9c26e01f4 #148 fix 2023-08-28 19:26:17 +08:00
lollipopkit
d06ffdacd0 new: backup support settings 2023-08-28 18:21:43 +08:00
lollipopkit
0420793e21 new: edit settings in json 2023-08-28 18:08:26 +08:00
lollipopkit
11c3bf795b opt.: store 2023-08-28 18:07:22 +08:00
lollipopkit
e20f2d32e8 #148 fix: alpine process 2023-08-28 17:11:58 +08:00
lollipopkit
e1284feae6 opt.: more params of editor page 2023-08-28 15:22:12 +08:00
lollipopkit
a53ebb334b #147 fix 2023-08-28 15:16:06 +08:00
lollipopkit
7abadfb5a6 new & fix
- new: switch of sftp `rm -rf` dir
- fix: sftp upload
- fix: sftp uploading progress
- opt.: editor will save content if is editing file
2023-08-27 00:10:01 +08:00
lollipopkit
65de4a8ca5 #144 new: sftp decompress 2023-08-26 23:07:16 +08:00
lollipopkit
7d4c30732a opt. 2023-08-24 21:24:27 +08:00
lollipopkit
536fbedda2 opt.: use new routes 2023-08-23 21:51:50 +08:00
lollipopkit
93f6368753 new: sftp jump history 2023-08-23 20:37:29 +08:00
lollipopkit
ad11b9fcc5 opt.: route 2023-08-22 21:25:51 +08:00
lollipopkit
3475e6ec91 opt.: bsd cpu 2023-08-22 21:18:46 +08:00
lollipopkit
417cb4c89d #43 new: bsd base support 2023-08-22 21:07:17 +08:00
lollipopkit
e3f2b211a9 new & opt.
opt.: input field auto focus
opt.: snippet page top padding
new: setting of editor font size
2023-08-21 13:54:09 +08:00
lollipopkit
6a2191ff92 opt.: cntering btn text 2023-08-21 13:04:07 +08:00
lollipopkit
8111a83703 opt. 2023-08-20 23:30:44 +08:00
lollipopkit
e643378249 update: README 2023-08-20 22:55:32 +08:00
lollipopkit
d663106f9f opt.: UI 2023-08-20 22:40:39 +08:00
lollipopkit
d5f8cf6cf0 new: animation of circle_chart 2023-08-20 21:59:28 +08:00
lollipopkit
a0287a9f36 #139 fix 2023-08-20 21:34:32 +08:00
lollipopkit
9c8ed3dfa8 opt.: TagBtn 2023-08-20 21:33:27 +08:00
lollipopkit
f02cca1981 opt.: move logic of reorder to settings page 2023-08-20 20:14:02 +08:00
lollipopkit
46cc363413 #94 new: option of moving out server func btns 2023-08-20 19:07:20 +08:00
lollipopkit
a59286473f opt.
- move out btns from more vert btn (docker, sftp & etc.)
- redesigned routes
- confirmation before deleting private key
2023-08-20 18:30:08 +08:00
lollipopkit
f88f5c3bda Merge pull request #141 from lollipopkit/lollipopkit/issue140
#140 feat: double columns of servers tab
2023-08-20 14:05:17 +08:00
lollipopkit
b5d8b8771e #140 feat: double columns of servers tab 2023-08-20 14:01:41 +08:00
lollipopkit
35e9ecedd0 Merge pull request #137 from lollipopkit/lollipopkit/issue136
Lollipopkit/issue136
2023-08-18 20:08:30 +08:00
lollipopkit
b5c705a1fe feat: no titlebar on macOS
Fixes #136
2023-08-18 20:01:18 +08:00
lollipopkit
fe51669369 chore: update l10n 2023-08-18 16:33:16 +08:00
lollipopkit
46cffb836c new & opt.
- new: ssh discontinuity test
- opt.: server cmds
- opt.: check ssh client status before exec cmds
- new: #124 notify on discontinuity
2023-08-17 21:36:00 +08:00
lollipopkit
b78949cf0c opt.: only display virt keys on mobile devices 2023-08-17 18:43:41 +08:00
lollipopkit
1be87d0ec0 fix: ssh session not inited 2023-08-17 14:59:23 +08:00
lollipopkit
329922a836 opt.: settings 2023-08-16 15:11:22 +08:00
lollipopkit
c62c8e2c43 #135 opt. 2023-08-15 23:05:51 +08:00
lollipopkit
cfca40b7be #130 opt. 2023-08-14 11:07:05 +08:00
lollipopkit
8057c24947 opt. 2023-08-13 22:19:08 +08:00
lollipopkit
1af7271a06 fix: alterUrl will change spi's props 2023-08-13 21:19:16 +08:00
calvinweb
7ce03c18b2 Merge pull request #126 from lollipopkit/fix_system_private_prompt
FIX:Fix system private prompt
2023-08-12 09:28:27 +08:00
calvin
ab8fdf3106 FIX:Fix system private prompt 2023-08-12 09:27:55 +08:00
lollipopkit
1d1b186d1e Merge branch 'main' of https://github.com/lollipopkit/flutter_server_box 2023-08-11 23:48:51 +08:00
lollipopkit
fb1f868c42 Merge branch 'main' of https://github.com/lollipopkit/flutter_server_box 2023-08-11 23:48:35 +08:00
lollipopkit
e08fa188ec Merge pull request #123 from lollipopkit/remove_header_bar
FEAT:Remove headerbar for linux so it will look better
2023-08-11 23:37:55 +08:00
lollipopkit
e30bf47f0d new: AGP 7.4.2 2023-08-11 23:35:29 +08:00
calvin
253ab40e5c FEAT:Remove headerbar for linux so it will look better 2023-08-11 13:48:31 +08:00
lollipopkit
58a08757f5 #118 fix 2023-08-11 11:45:22 +08:00
lollipopkit
9ca096094f add: refresh btn on desktop 2023-08-10 18:39:58 +08:00
lollipopkit
4788f1dddc #116 fix 2023-08-10 18:05:24 +08:00
lollipopkit
cf1c9643b9 opt.: check client before route pushed 2023-08-10 00:37:51 +08:00
lollipopkit
c512a6a274 opt. 2023-08-09 23:58:38 +08:00
lollipopkit
58fbd62779 #86 fix: docker loading forever 2023-08-08 20:31:35 +08:00
lollipopkit
173b7f6362 fix: typo 2023-08-08 18:43:17 +08:00
lollipopkit
9fb738eda1 #114 fix 2023-08-08 18:38:56 +08:00
lollipopkit
d35d106ad4 opt. 2023-08-08 17:46:04 +08:00
lollipopkit
159942de95 #112 new: check hash during upgrade 2023-08-08 16:31:28 +08:00
lollipopkit
693eef8f7e new: animation for process page 2023-08-08 15:21:22 +08:00
lollipopkit
2887d23381 new: animation 2023-08-08 14:55:13 +08:00
lollipopkit
096d41088f rm: fvm 2023-08-08 12:52:28 +08:00
lollipopkit
bd84eeca0b Merge pull request #111 from lollipopkit/lollipopkit/issue95
#95 fix
2023-08-07 20:05:48 +08:00
lollipopkit
b804f43d5a opt. 2023-08-07 20:03:48 +08:00
lollipopkit
36b24bedb4 #95 fix 2023-08-07 20:02:09 +08:00
lollipopkit
c1b3ff7bfd Merge pull request #110 from lollipopkit/lollipopkit/issue109
Lollipopkit/issue109
2023-08-07 18:04:55 +08:00
lollipopkit
20c859b0a1 #109 fix: path sep on win 2023-08-07 17:41:35 +08:00
lollipopkit
c4925ee2c7 opt.: delete key after use 2023-08-07 16:51:47 +08:00
lollipopkit
d37a1fbea7 feat: use native ssh terminal on desktop
Implement #109
2023-08-07 16:27:00 +08:00
lollipopkit
2142ae3e1c new: kill process 2023-08-07 15:01:58 +08:00
lollipopkit
e686df45c9 new: actions analysis 2023-08-07 14:57:21 +08:00
calvinweb
ed9ed905ed Merge pull request #108 from calvinweb/call_system_terminal
FEAT:Support call system terminal(Macos&Linux)
2023-08-07 14:31:46 +08:00
lollipopkit
98e77b9d0f #105 new: switch of auto check update 2023-08-07 13:30:53 +08:00
lollipopkit
879a347f23 update: README 2023-08-07 13:10:24 +08:00
lollipopkit
cab58c30a7 Merge branch 'main' of https://github.com/lollipopkit/flutter_server_box 2023-08-07 12:55:04 +08:00
lollipopkit
75b9a3eeb0 Merge branch 'main' of https://github.com/lollipopkit/flutter_server_box 2023-08-07 12:54:56 +08:00
lollipopkit
00bf34965a Merge pull request #102 from gaelthas/main
Update: FileDescription in Windows
2023-08-07 12:51:07 +08:00
lollipopkit
81ab841fa5 #100 fix 2023-08-07 12:46:22 +08:00
lollipopkit
df313adf39 Update README.md 2023-08-07 12:41:49 +08:00
Galois
c991c20cc1 Update: FileDescription in Windows
Signed-off-by: Galois <fv10015@outlook.com>
2023-08-06 20:02:47 +08:00
lollipopkit
0e54be8f66 Merge pull request #101 from gaelthas/main
Update the title in Windows and Linux.
2023-08-06 20:01:55 +08:00
Galois
140a3de5ed Update: linux BINARY_NAME
Signed-off-by: Galois <fv10015@outlook.com>
2023-08-06 19:54:17 +08:00
Galois
ae97012456 Update: Windows title
Signed-off-by: Galois <fv10015@outlook.com>
2023-08-06 19:48:39 +08:00
Galois
20d81e4353 Fix: readme_zh 上述
Signed-off-by: Galois <fv10015@outlook.com>
2023-08-06 11:35:18 +08:00
lollipopkit
8abdcf15d4 #96 opt. 2023-08-05 22:09:54 +08:00
lollipopkit
7f35ddfe30 #96 opt. 2023-08-05 21:19:19 +08:00
lollipopkit
7431de094f #97 fix 2023-08-05 21:15:29 +08:00
lollipopkit
4b7397de46 opt. 2023-08-05 17:48:56 +08:00
lollipopkit
a716254557 Merge branch 'main' of https://github.com/lollipopkit/flutter_server_box 2023-08-05 15:20:05 +08:00
lollipopkit
c406d92b82 opt.: refactor AppShellFunc 2023-08-05 15:19:37 +08:00
lollipopkit
432e3b1824 add: more contributors 2023-08-05 14:32:21 +08:00
calvin
73611dacf1 FEAT:Support call system terminal(Macos&Linux) 2023-08-05 14:12:08 +08:00
lollipopkit
8f4f141a64 new: import local file & rm local dir 2023-08-05 13:34:55 +08:00
lollipopkit
51af3c63f1 Merge pull request #93 from Liloupar/Liloupar-patch-1
typo
2023-08-05 13:07:08 +08:00
Liloupar
b3c35b385b typo 2023-08-05 13:02:21 +08:00
lollipopkit
5b2ed02428 opt.: move docker stats to more btn 2023-08-05 12:40:45 +08:00
lollipopkit
3405172d76 #90 #91 fix 2023-08-05 12:23:29 +08:00
lollipopkit
d88a078cd6 rm: field password of PrivateKeyInfo 2023-08-04 23:47:22 +08:00
lollipopkit
ee3e30d9b5 #88 #74 fix: firstWhere 2023-08-04 22:53:26 +08:00
lollipopkit
0250589be2 Merge pull request #89 from lollipopkit/lollipopkit/issue88
#88 #74 fix: rootDisk if not found
2023-08-04 22:01:33 +08:00
lollipopkit
a66204f672 #88 #74 fix: rootDisk if not found 2023-08-04 21:58:48 +08:00
lollipopkit
91967e6ce3 #87 new: auto ask add system key (~/.ssh/id_rsa) 2023-08-04 21:46:44 +08:00
lollipopkit
60507ea4bc Merge pull request #87 from calvinweb/system_privatekey
DRAFT:Add support of reading system privatekey (.ssh/id_rsa)
2023-08-04 18:50:52 +08:00
calvin
486b920d6b DRAFT:Add support of reading system privatekey (.ssh/id_rsa) 2023-08-04 18:41:04 +08:00
lollipopkit
0260444ca0 #84 fix: sftp upload 2023-08-03 13:42:30 +08:00
lollipopkit
43d3e576e2 fix: local page 2023-08-02 23:33:56 +08:00
lollipopkit
0038ed347f opt. & new
- opt.: docker page perf
- new: docker stats
2023-08-02 23:07:11 +08:00
lollipopkit
336c31e48d #81 #72 #65 #20 fix 2023-08-02 20:03:02 +08:00
lollipopkit
411bef9320 fix: LocalStoragePage.initDir 2023-08-02 19:33:52 +08:00
lollipopkit
027b9cc4f7 #83 opt.: batch delete servers 2023-08-01 13:55:05 +08:00
lollipopkit
33932f7428 fix: import backup 2023-08-01 13:41:00 +08:00
lollipopkit
0f83d10bfa opt.: cancel sftp mission 2023-07-29 18:24:22 +08:00
lollipopkit
e13c5910ec #78 opt.: alter url 2023-07-29 16:53:57 +08:00
lollipopkit
7f4dcc1357 opt.
- add help for ssh virt keys
- rm unused lib
2023-07-29 16:24:47 +08:00
lollipopkit
1163f2e418 opt.: TimeSeq 2023-07-28 20:21:15 +08:00
lollipopkit
6045e7e7f0 fix: sftp dl 2023-07-28 19:08:34 +08:00
lollipopkit
6803e9fa40 Merge pull request #79 from azkadev/main
Add Indonesian Language And Fix Editor Page
2023-07-28 17:26:13 +08:00
Your Name
f1852aa83a update 2023-07-28 15:21:51 +07:00
Your Name
287df4a1cc Add Indonesian Language 2023-07-28 15:21:25 +07:00
Your Name
177b3ab66a Fix editor on open 2023-07-28 15:04:19 +07:00
lollipopkit
df4836458f #78 fix 2023-07-28 14:11:38 +08:00
lollipopkit
389d1753c4 #78 new: alter host 2023-07-28 13:59:32 +08:00
lollipopkit
ed3201db6d new: delete all servers btn 2023-07-27 13:04:49 +08:00
lollipopkit
08a4dba659 #77 new: also when backing app 2023-07-25 12:24:26 +08:00
lollipopkit
9e6f386b28 #77 opt. 2023-07-21 16:57:17 +08:00
lollipopkit
eef38f0949 #74 probably fix 2023-07-21 16:56:50 +08:00
lollipopkit
262b4486e4 #73 opt.: reorderable 2023-07-21 15:05:09 +08:00
lollipopkit
aac556f769 #76 add translation 2023-07-21 14:40:04 +08:00
lollipopkit
b443870e62 #76 opt. 2023-07-21 14:37:29 +08:00
lollipopkit
0d5707a1df #76 new: switch net view 2023-07-21 14:25:07 +08:00
lollipopkit
5a5e2fd1d1 #73 fix & opt.
- fix: reorder list default drag
- opt.: android home widget grey text
2023-07-20 18:26:17 +08:00
lollipopkit
7f8fbfead3 #26 new & fix
- new: click to refresh
- fix: SharedPreference setPrefix
2023-07-19 19:23:05 +08:00
lollipopkit
2ed578c0ca update README 2023-07-19 18:39:57 +08:00
lollipopkit
9ce221935e #26 android home widget 2023-07-19 18:26:10 +08:00
lollipopkit
0ee55d4873 #26 new: ios home widget 2023-07-16 22:46:32 +08:00
lollipopkit
814e9c853a Add translation 2023-07-08 15:09:01 +08:00
lollipopkit
291c737a40 #54 fix order 2023-07-08 14:18:15 +08:00
lollipopkit
0bc176b603 #54 run multi snippets on multi servers 2023-07-08 11:23:21 +08:00
lollipopkit
fefd3f9701 #54 run multiple snippets 2023-07-08 00:12:15 +08:00
lollipopkit
cb16b3a8b6 fix 2023-07-07 21:09:29 +08:00
lollipopkit
bb50fbc589 #54 snippet group 2023-07-07 20:37:50 +08:00
lollipopkit
d8155e7771 update deps. 2023-06-30 20:59:38 +08:00
lollipopkit
6d6048bc5c fix 2023-06-27 14:40:10 +08:00
lollipopkit
92e2e2a75f new: fullscreen rotation angel 2023-06-27 13:31:35 +08:00
lollipopkit
76e8a1efca new: set light/dark editor theme 2023-06-27 12:52:11 +08:00
lollipopkit
9ffe5583fd #64 opt. for process page 2023-06-27 12:27:16 +08:00
lollipopkit
0022294ea4 #71 new & opt.
- ssh page virt key long press
- custom ssh virt keys
2023-06-27 00:41:56 +08:00
lollipopkit
dc63d902e5 opt. for settings page 2023-06-26 21:00:13 +08:00
lollipopkit
f0b31a9b08 #65 new: custom keyboard type 2023-06-23 16:59:27 +08:00
lollipopkit
743e5bfbff #64 new: process page 2023-06-23 14:30:35 +08:00
lollipopkit
06d6500ef6 opt. & fix
opt.: upload file
fix: surplus server order
opt.: sftp view
2023-06-21 18:30:52 +08:00
lollipopkit
3a8e189dd7 new: server tab process 2023-06-21 17:47:57 +08:00
lollipopkit
625bc280f0 opt.: auto switch status bar 2023-06-21 16:57:06 +08:00
lollipopkit
0aff5b3b72 opt. for fullscreen jitter 2023-06-20 21:04:55 +08:00
lollipopkit
2095b79b9a new: full screen jitter 2023-06-08 22:45:38 +08:00
lollipopkit
0ddfc4ec75 new: full screen 2023-06-08 22:17:26 +08:00
lollipopkit
342c3ea295 new: launch image 2023-06-08 20:48:16 +08:00
lollipopkit
7b1c1b9a5a opt. for performance 2023-06-05 17:51:52 +08:00
lollipopkit
378baf589a rm: linux dist logos 2023-06-05 16:50:22 +08:00
lollipopkit
d2cdbe4774 Merge branch 'main' of https://github.com/lollipopkit/flutter_server_box 2023-06-05 16:42:53 +08:00
lollipopkit
d66e570e01 opt.: use ValueBuilder 2023-06-05 16:39:54 +08:00
lollipopkit
88cc6542a9 Update LICENSE 2023-06-05 16:38:28 +08:00
lollipopkit
2ab2306469 Merge pull request #62 from its-tom/main
fix translation (german), use save icon for servers & snippets
2023-06-04 18:50:54 +08:00
Thomas
86ae4df790 fix translation (german), use save icon for servers & snippets 2023-06-04 12:46:06 +02:00
lollipopkit
a11507d0d2 Update README.md 2023-06-04 17:42:59 +08:00
lollipopkit
5600d713a6 new: app icon 2023-06-04 17:19:22 +08:00
lollipopkit
261b8e9d29 opt. 2023-06-03 21:15:26 +08:00
lollipopkit
8c25b5e60b #33 new: upload file to sftp from file picker 2023-06-02 21:51:39 +08:00
lollipopkit
f0bf95a7d2 #33 new: upload file in sftp 2023-06-01 16:07:09 +08:00
lollipopkit
026e951604 #57 AMOLED theme 2023-06-01 15:18:54 +08:00
lollipopkit
6091cd0da8 new: server tag animation 2023-05-31 18:10:18 +08:00
lollipopkit
55a13799b2 new: tag rename 2023-05-31 17:56:08 +08:00
lollipopkit
d24fe5ff5d opt. for tag 2023-05-31 17:19:56 +08:00
lollipopkit
472a441c8e new: server tag 2023-05-30 22:44:45 +08:00
lollipopkit
92ffed6541 #25 new: sftp upload 2023-05-30 19:49:54 +08:00
lollipopkit
a1e80fd806 #54 new: grouped snippet & tab snippet 2023-05-30 18:05:46 +08:00
lollipopkit
96438313a1 update ISSUE_TEMPLATE 2023-05-29 17:37:24 +08:00
lollipopkit
0837f1619a Update README.md 2023-05-28 19:49:17 +08:00
lollipopkit
edaffb736c new: open sftp in ssh 2023-05-28 18:58:38 +08:00
lollipopkit
06be4503ca #24 #25 #33 new: sftp file edit 2023-05-28 18:21:03 +08:00
lollipopkit
dbabe81e3c new: editor custom theme 2023-05-28 16:25:12 +08:00
lollipopkit
68c1fe4943 #24 #25 #33 new: editor 2023-05-28 15:03:02 +08:00
lollipopkit
ae822de737 opt.
- `TerminalColors`
- ssh virtual key auto switch
2023-05-27 20:43:40 +08:00
lollipopkit
02494651fc fix & opt.
- fix: ssh paste
- opt.: docker logs & shell
2023-05-27 18:58:38 +08:00
lollipopkit
4f45ce3f50 Merge branch 'main' of https://github.com/lollipopkit/flutter_server_box 2023-05-27 17:49:12 +08:00
lollipopkit
5d774bfd33 Merge pull request #51 from kalashnikov/main
Support zh_TW
2023-05-27 17:48:39 +08:00
lollipopkit
b04c2a9693 #51 new: custom language 2023-05-27 17:47:48 +08:00
Kala Kuo
371f60c68a Fix connection problem in macos 2023-05-27 16:54:46 +08:00
Kala Kuo
79ebd89e8b Support zh_TW 2023-05-27 16:51:03 +08:00
lollipopkit
a8194319b6 #50 new: docker shell 2023-05-27 14:24:54 +08:00
lollipopkit
7a211b9a55 fix: cards order 2023-05-26 20:09:13 +08:00
lollipopkit
00fdcb1ee8 Server detail page cards support sorting 2023-05-26 18:03:43 +08:00
lollipopkit
20ef9d4575 opt. 2023-05-26 17:01:52 +08:00
lollipopkit
c1c009863d Update README.md 2023-05-26 13:18:37 +08:00
lollipopkit
c4594559a2 opt.: custom diskIgnorePath 2023-05-26 12:46:47 +08:00
lollipopkit
46350b7522 #48 display all support devices temperature 2023-05-25 16:44:26 +08:00
lollipopkit
29683572b9 #46 SSH term fontSize 2023-05-25 15:21:57 +08:00
lollipopkit
472599498e #42 new: docker logs 2023-05-18 22:06:12 +08:00
lollipopkit
a9fa981e96 fix: servers missed due to ServerOrder 2023-05-16 16:47:21 +08:00
lollipopkit
82ed2e70dc #40 new: docker container restart 2023-05-16 16:45:46 +08:00
lollipopkit
2161596efc opt. 2023-05-14 17:39:34 +08:00
lollipopkit
5714e26c4d Update ISSUE_TEMPLATE 2023-05-13 21:55:51 +08:00
lollipopkit
eedeff6caa Merge branch 'main' of https://github.com/lollipopkit/flutter_server_box 2023-05-13 19:41:20 +08:00
lollipopkit
d7c0be045a opt. UI 2023-05-13 19:40:18 +08:00
lollipopkit
a61c440484 Update issue templates 2023-05-13 15:14:35 +08:00
lollipopkit
91b2145c6e Merge pull request #37 from its-tom/main
UI Improvements
2023-05-12 21:55:00 +08:00
Thomas
7684c280bc remove unnecessary padding 2023-05-12 15:37:30 +02:00
Thomas
d0656ba157 Merge branch 'lollipopkit:main' into main 2023-05-12 15:30:17 +02:00
Thomas
62d8285c1a show Menu when clicking on ListTile, correct german typo, use multiline for snippets 2023-05-12 15:29:44 +02:00
lollipopkit
fee02a53b6 fix: typo 2023-05-12 21:18:41 +08:00
lollipopkit
cbeaa9705f #35 new: servers tab reorderable 2023-05-12 18:35:56 +08:00
lollipopkit
2ee0c6f995 Merge pull request #36 from its-tom/main
Add german
2023-05-11 23:33:36 +08:00
Thomas
f72ec4452b Merge branch 'lollipopkit:main' into main 2023-05-11 17:18:35 +02:00
Thomas
9239c04c4b add german (final) 2023-05-11 17:18:22 +02:00
lollipopkit
9b0bb414db migrate: flutter 3.10.0 2023-05-11 12:24:39 +08:00
lollipopkit
91f97e52b0 #34 fix & new
- fix: `ping`
- new: support busybox `ping`
- new: flutter 3.10.0
2023-05-11 12:06:30 +08:00
Thomas
c7cbf1a9f3 german (only partly) 2023-05-10 22:25:12 +02:00
lollipopkit
4f82eb09d8 #30 fix: parse mem 2023-05-10 13:25:46 +08:00
lollipopkit
c1d1af8c01 opt.: popupmenu 2023-05-09 22:04:45 +08:00
lollipopkit
b4f3fce64a #30 fix: context.pop() 2023-05-09 19:49:31 +08:00
lollipopkit
3f9f589178 constraint: share_plus 6.3.2 2023-05-08 17:43:25 +08:00
lollipopkit
6a4d4f9bca fix: sysVer of older CentOS 2023-05-08 17:30:39 +08:00
lollipopkit
7f16c27dcf opt. 2023-05-08 16:25:31 +08:00
lollipopkit
a2361da560 opt. for pkg 2023-05-07 20:44:15 +08:00
lollipopkit
ffae93cc72 #29 opt. for TextInput 2023-05-07 18:25:30 +08:00
lollipopkit
29ea43a10f #29 opt. for material 3 2023-05-07 16:34:21 +08:00
lollipopkit
5afa543ba5 migrate: material 3 2023-05-07 01:28:51 +08:00
lollipopkit
e932241df0 Merge pull request #29 from its-tom/main
Material 3
2023-05-06 20:46:19 +08:00
Thomas
7505f77b4a use ColorSchemeSeed instead of own ColorScheme 2023-05-06 13:05:58 +02:00
Thomas
e61597b3ce use Material3, changed color selection 2023-05-06 12:53:32 +02:00
lollipopkit
90e25856cf rewrite pkg 2023-04-27 18:46:13 +08:00
lollipopkit
3a17a24774 Merge pull request #28 from lollipopkit/fix/synology
Fix & opt.
2023-04-27 16:24:31 +08:00
zhaoyingbo
50e0a0b688 feat: Modify the header image to the right size 2023-04-27 16:18:40 +08:00
zhaoyingbo
4cb7dc03a7 feat: Use hostname when Sysver is unknown 2023-04-27 13:02:48 +08:00
zhaoyingbo
658d6ec0c8 fix: parseDisk error in deal with multiline data 2023-04-27 12:59:27 +08:00
lollipopkit
6d7a47a228 update README.md 2023-04-23 14:52:01 +08:00
lollipopkit
167d65a97b fix: dio < 5.0.0 vulnerability 2023-04-23 14:51:46 +08:00
lollipopkit
71243ea1fe opt.: servers list -> map 2023-04-23 14:08:46 +08:00
lollipopkit
bd608ce06f update README.md 2023-04-23 13:04:12 +08:00
lollipopkit
fe3055f77c auto reconnect & opt. perf. 2023-04-23 12:54:54 +08:00
lollipopkit
1ccda52f6f update README.md 2023-04-20 12:40:12 +08:00
lollipopkit
9cdfd86f70 replace: context.pop 2023-04-19 20:58:29 +08:00
lollipopkit
e709262477 fix: update changelog & backup restore 2023-04-19 20:52:02 +08:00
lollipopkit
20d2817c8d fix: moveBg during share 2023-04-19 20:18:54 +08:00
lollipopkit
a7269ee68a #25 fix sftp rm 2023-04-19 20:18:27 +08:00
lollipopkit
552e2738cd opt. for backup 2023-04-19 10:51:10 +08:00
lollipopkit
216d64e3eb new: license dialog 2023-04-18 22:37:19 +08:00
lollipopkit
f903a1da55 update: update api 2023-04-18 22:33:56 +08:00
lollipopkit
f2b1158eda update build script 2023-04-18 21:47:42 +08:00
lollipopkit
1d797f8d16 flutter 3.7.11 2023-04-17 13:09:59 +08:00
lollipopkit
9e503e4901 readd: paste in ssh 2023-04-17 12:55:47 +08:00
lollipopkit
bf22309fe5 opt. for performance 2023-04-16 19:41:54 +08:00
lollipopkit
a3537a67c2 #25 fix sftp rmdir 2023-04-16 16:26:50 +08:00
lollipopkit
8ba888a5b3 #25 snippet in SSH 2023-04-16 14:08:10 +08:00
lollipopkit
fd2d59b1e0 fix: backup restore failed 2023-04-16 11:59:00 +08:00
lollipopkit
5c2cc5e5e4 fix: Android moveBg during picking file 2023-04-05 15:15:17 +08:00
lollipopkit
fe7ea04011 boost loading speed 2023-04-05 15:03:18 +08:00
lollipopkit
19baff5dde opt. & fix.
fix: setting page update item display issue.
fix: `bgRun` condition issue.
opt: `r_upgrade` use 0.3.8+2
2023-04-04 17:38:00 +08:00
lollipopkit
0ac6984576 #21 font setting only take effect to SSH 2023-04-04 17:35:37 +08:00
lollipopkit
de0eedb2cb xterm.dart use git 2023-03-28 17:36:06 +08:00
lollipopkit
30dddf462e #22 Add switch for run in bg 2023-03-28 17:35:49 +08:00
lollipopkit
abee470afc Android: support background process 2023-03-28 17:12:44 +08:00
lollipopkit
42d8505504 Update README.md 2023-03-27 21:25:20 +08:00
lollipopkit
3c481cf61c Update README.md 2023-03-27 21:16:16 +08:00
lollipopkit
55c96031f7 fix: ios debug: local network 2023-03-27 15:59:05 +08:00
lollipopkit
2ea061d324 backup add docker 2023-03-27 15:09:19 +08:00
lollipopkit
2747df64dd #19 fix & opt
- opt: android default dir move to external storage
- fix: err when font not exist
2023-03-27 13:56:17 +08:00
lollipopkit
9e3afe98a9 fix: ThemeMode not works under copied data 2023-03-21 15:36:35 +08:00
lollipopkit
7732ce5dbb make.dart: auto kill java 2023-03-21 15:03:03 +08:00
lollipopkit
f1ae924724 fix: countly double init due to rebuild app 2023-03-21 15:02:43 +08:00
lollipopkit
4cc72328a7 manually restart app 2023-03-21 14:46:30 +08:00
lollipopkit
43e32775a3 apply font to ssh term 2023-03-21 14:12:44 +08:00
lollipopkit
27e7653587 #15 support: select font 2023-03-21 13:15:36 +08:00
lollipopkit
89050daf4e opt: only display token on iOS 2023-03-18 17:52:25 +08:00
lollipopkit
2cc52fcee6 #11 Update README.md 2023-03-18 00:16:01 +08:00
lollipopkit
3f3240040a opt. 2023-03-18 00:09:24 +08:00
lollipopkit
350d248776 Add issue translate bot 2023-03-16 12:35:27 +08:00
lollipopkit
bb15f34615 #17 ios production env no token 2023-03-16 11:47:06 +08:00
lollipopkit
58b950f814 #14 add ssh log 2023-03-15 13:37:19 +08:00
lollipopkit
c2e822f49d new: PlatformType 2023-03-13 12:02:48 +08:00
lollipopkit
4c4153ef98 new: support msg push 2023-03-12 16:06:51 +08:00
lollipopkit
35b5d1ccb5 Add l10n files 2023-03-11 19:02:40 +08:00
lollipopkit
065fd15429 decrease res files 2023-03-11 19:02:22 +08:00
491 changed files with 32389 additions and 9221 deletions

53
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,53 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
<!--
Thanks for your feedback
1、Please check if there is a similar issue first
2、If it is a function or UI suggestion, please go to Discussion
-->
**Describe the bug**
<!--A clear and concise description of what the bug is.-->
**To Reproduce**
<!--
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
-->
**Desired Results**
<!--A clear description of the result you expected.-->
**Actual Results**
<!--A clear description of the actual result.-->
**Screenshots**
<!--If applicable, add screenshots(both bug screen and logs
screen) to help explain your problem.-->
**Device**
<!--
- OS: e.g. iOS16 or Android13
- App Version: e.g. 1.0.302
-->
**Additional context**
<!--Add any other context about the problem here.-->

51
.github/ISSUE_TEMPLATE/bug_report_cn.md vendored Normal file
View File

@@ -0,0 +1,51 @@
---
name: Bug 反馈
about: 帮助我们改进错误
title: ''
labels: ''
assignees: ''
---
<!--
感谢您反馈问题,请先阅读以下内容:
1、请先查看是否已存在相似 issue
2、如果是功能、UI建议请移步至 Discussion
-->
**描述BUG**
<!--一个关于BUG的清晰描述。-->
**复现步骤**
<!--
如何复现:
1. 打开 '...'
2. 点击 '....'
3. 滚动到 '....'
4. 看到错误
-->
**期望结果**
<!--一个关于你期望的结果的清晰描述。-->
**实际结果**
<!--一个关于实际结果的清晰描述。-->
**截图**
<!--如果可以,请添加截图(包括错误界面和日志界面)来帮助解释你的问题。-->
**设备**
<!--
- 系统: e.g. iOS16 or Android13
- App版本 e.g. 1.0.302
-->
**更多信息**
<!--在这里添加关于这个问题的更多信息。-->

39
.github/workflows/analysis.yml vendored Normal file
View File

@@ -0,0 +1,39 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
name: flutter analysis
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: 'stable' # or: 'beta', 'dev' or 'master'
- name: Install dependencies
run: flutter pub get
# Uncomment this step to verify the use of 'dart format' on each commit.
- name: Verify formatting
run: dart format --output=none .
# Consider passing '--fatal-infos' for slightly stricter analysis.
- name: Analyze project source
run: dart analyze
# Your project will need to have tests in test/ and a dependency on
# package:test for this step to succeed. Note that Flutter projects will
# want to change this to 'flutter test'.
- name: Run tests
run: flutter test

20
.github/workflows/issue-translator.yml vendored Normal file
View File

@@ -0,0 +1,20 @@
name: 'issue-translator'
on:
issue_comment:
types: [created]
issues:
types: [opened]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: usthe/issues-translate-action@v2.7
with:
# not require, default false.
# Decide whether to modify the issue title.
# if true, the robot account @Issues-translate-bot must have modification permissions, invite @Issues-translate-bot to your project or use your custom bot.
IS_MODIFY_TITLE: false
# not require.
# Customize the translation robot prefix message.
CUSTOM_BOT_NOTE: Bot detected the issue body's language is not English, translate it automatically. 👯👭🏻🧑‍🤝‍🧑👫🧑🏿‍🤝‍🧑🏻👩🏾‍🤝‍👨🏿👬🏿

80
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,80 @@
name: Flutter Release
on:
push:
tags:
- "v*"
permissions:
contents: write
jobs:
releaseAL:
name: Release android and linux
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: '0'
- name: Install Flutter
uses: subosito/flutter-action@v2
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '17'
- name: Fetch secrets
run: |
curl -u ${{ secrets.BASIC_AUTH }} -o android/app/app.key ${{ secrets.URL_PREFIX }}app.key
curl -u ${{ secrets.BASIC_AUTH }} -o android/key.properties ${{ secrets.URL_PREFIX }}key.properties
- name: Build
run: dart run fl_build -p android,linux
- name: Create Release
uses: softprops/action-gh-release@v2
with:
files: |
build/app/outputs/flutter-apk/${{ env.APP_NAME }}_${{ env.BUILD_NUMBER }}_arm64.apk
build/app/outputs/flutter-apk/${{ env.APP_NAME }}_${{ env.BUILD_NUMBER }}_arm.apk
build/app/outputs/flutter-apk/${{ env.APP_NAME }}_${{ env.BUILD_NUMBER }}_amd64.apk
${{ env.APP_NAME }}_${{ env.BUILD_NUMBER }}_amd64.AppImage
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
releaseWin:
name: Release windows
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: '0'
- name: Install Flutter
uses: subosito/flutter-action@v2
- name: Build
run: dart run fl_build -p windows
- name: Create Release
uses: softprops/action-gh-release@v2
with:
files: |
${{ env.APP_NAME }}_${{ env.BUILD_NUMBER }}_windows_amd64.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# releaseApple:
# name: Release ios and macos
# runs-on: macos-latest
# steps:
# - name: Checkout
# uses: actions/checkout@v4
# - name: Install Flutter
# uses: subosito/flutter-action@v2
# - name: Build
# run: dart run fl_build -p ios,mac
# - name: Create Release
# uses: softprops/action-gh-release@v2
# with:
# files: |
# ${{ env.APP_NAME }}_universal_macos.zip
# ${{ env.APP_NAME }}_universal.ipa
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

18
.gitignore vendored
View File

@@ -23,7 +23,7 @@
# Flutter/Dart/Pub related # Flutter/Dart/Pub related
**/doc/api/ **/doc/api/
**/ios/Flutter/.last_build_id **/ios/Flutter/.last_build_id
.dart_tool/ # .dart_tool/
.flutter-plugins .flutter-plugins
.flutter-plugins-dependencies .flutter-plugins-dependencies
.packages .packages
@@ -48,4 +48,18 @@ app.*.map.json
/android/app/fjy.androidstudio.key /android/app/fjy.androidstudio.key
/release /release
test.dart test.dart
.fvm
# Keep generated l10n files
# /.dart_tool/*
# !/.dart_tool/flutter_gen
.dart_tool
# Linux release
linux.AppDir
ServerBox-x86_64.AppImage
untranlated.json
.vscode/settings.json
more_build_data.json

View File

@@ -1,11 +1,11 @@
# This file tracks properties of this Flutter project. # This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc. # Used by Flutter tool to assess capabilities and perform upgrades etc.
# #
# This file should be version controlled. # This file should be version controlled and should not be manually edited.
version: version:
revision: 9944297138845a94256f1cf37beb88ff9a8e811a revision: "bae5e49bc2a867403c43b2aae2de8f8c33b037e4"
channel: stable channel: "stable"
project_type: app project_type: app
@@ -13,11 +13,26 @@ project_type: app
migration: migration:
platforms: platforms:
- platform: root - platform: root
create_revision: 9944297138845a94256f1cf37beb88ff9a8e811a create_revision: bae5e49bc2a867403c43b2aae2de8f8c33b037e4
base_revision: 9944297138845a94256f1cf37beb88ff9a8e811a base_revision: bae5e49bc2a867403c43b2aae2de8f8c33b037e4
- platform: android
create_revision: bae5e49bc2a867403c43b2aae2de8f8c33b037e4
base_revision: bae5e49bc2a867403c43b2aae2de8f8c33b037e4
- platform: ios
create_revision: bae5e49bc2a867403c43b2aae2de8f8c33b037e4
base_revision: bae5e49bc2a867403c43b2aae2de8f8c33b037e4
- platform: linux
create_revision: bae5e49bc2a867403c43b2aae2de8f8c33b037e4
base_revision: bae5e49bc2a867403c43b2aae2de8f8c33b037e4
- platform: macos - platform: macos
create_revision: 9944297138845a94256f1cf37beb88ff9a8e811a create_revision: bae5e49bc2a867403c43b2aae2de8f8c33b037e4
base_revision: 9944297138845a94256f1cf37beb88ff9a8e811a base_revision: bae5e49bc2a867403c43b2aae2de8f8c33b037e4
- platform: web
create_revision: bae5e49bc2a867403c43b2aae2de8f8c33b037e4
base_revision: bae5e49bc2a867403c43b2aae2de8f8c33b037e4
- platform: windows
create_revision: bae5e49bc2a867403c43b2aae2de8f8c33b037e4
base_revision: bae5e49bc2a867403c43b2aae2de8f8c33b037e4
# User provided section # User provided section

9
.vscode/launch.json vendored
View File

@@ -5,12 +5,15 @@
"version": "0.2.0", "version": "0.2.0",
"configurations": [ "configurations": [
{ {
"name": "toolbox", "name": "debug",
"request": "launch", "request": "launch",
"type": "dart" "type": "dart",
// "args": [
// "-v"
// ]
}, },
{ {
"name": "toolbox (profile mode)", "name": "profile",
"request": "launch", "request": "launch",
"type": "dart", "type": "dart",
"flutterMode": "profile", "flutterMode": "profile",

12
.vscode/settings.json vendored
View File

@@ -1,12 +0,0 @@
{
"dart.flutterSdkPath": ".fvm",
"files.watcherExclude": {
"**/.fvm": true
},
"git.ignoredRepositories": [
".fvm"
],
"search.exclude": {
"**/.fvm": true
}
}

View File

@@ -1,7 +1,7 @@
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007 Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed. of this license document, but changing it is not allowed.
@@ -631,8 +631,8 @@ to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found. the "copyright" line and a pointer to where the full notice is found.
{one line to give the program's name and a brief idea of what it does.} <one line to give the program's name and a brief idea of what it does.>
Copyright (C) {year} {name of author} Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@@ -645,14 +645,14 @@ the "copyright" line and a pointer to where the full notice is found.
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail. Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode: notice like this when it starts in an interactive mode:
{project} Copyright (C) {year} {fullname} <program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details. under certain conditions; type `show c' for details.
@@ -664,11 +664,11 @@ might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school, You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary. if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>. <https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>. <https://www.gnu.org/licenses/why-not-lgpl.html>.

113
README.md
View File

@@ -1,92 +1,69 @@
<!-- Title--> English | [简体中文](README_zh.md)
<p align="center">
<h1 align="center">Server Box</h1> <h2 align="center">Flutter Server Box</h2>
</p>
<!-- Badges-->
<p align="center"> <p align="center">
<a href="https://apps.apple.com/app/id1586449703"> <img alt="lang" src="https://img.shields.io/badge/lang-dart-pink">
<img style="height: 37px" src="screenshots/appstore.svg"> <img alt="countly" src="https://img.shields.io/badge/analysis-countly-pink">
</a> <img alt="license" src="https://img.shields.io/badge/license-GPLv3-pink">
<a href="https://github.com/lollipopkit/flutter_server_box/releases/latest">
<img style="height: 37px" src="screenshots/dl-android.svg">
</a>
</p> </p>
<p align="center"> <p align="center">
<a href="https://count.ly/f/badge" rel="nofollow"> A Flutter project which provide charts to display <a href="../../issues/43">Linux</a> server status and tools to manage server.
<img style="height: 37px" src="https://count.ly/badges/light.svg">
</a>
</p>
<p align="center">
A Flutter project which provide charts to display server status and tools to manage server.
<br> <br>
Especially thanks to <a href="https://github.com/TerminalStudio/dartssh2">dartssh2</a> & <a href="https://github.com/TerminalStudio/xterm.dart">xterm.dart</a>. Especially thanks to <a href="https://github.com/TerminalStudio/dartssh2">dartssh2</a> & <a href="https://github.com/TerminalStudio/xterm.dart">xterm.dart</a>.
</p> </p>
## ⬇️ Download
🎉 **The `Android / Linux / Windows` version are now built via GitHub Actions**
[iOS & macOS](https://apps.apple.com/app/id6476033062) / [Android & Linux & Windows](https://github.com/lollipopkit/flutter_gpt_box/releases)
## 🔖 Feature ## 🔖 Feature
- [x] Functions - `Status chart` (CPU, Sensors, GPU...), `SSH` Term, `SFTP`, `Docker & Pkg & Process`...
- [x] `SSH` Terminal - Platform specific: `Bio auth``Msg push``Home widget``watchOS App`...
- [x] `Docker & Pkg` Manager - English, 简体中文; Deutsch [@its-tom](https://github.com/its-tom), 繁體中文 [@kalashnikov](https://github.com/kalashnikov), Indonesian [@azkadev](https://github.com/azkadev), Français [@FrancXPT](https://github.com/FrancXPT), Dutch [@QazCetelic](https://github.com/QazCetelic); Español, Русский язык, Português, 日本語 (Generated by GPT)
- [x] `SFTP`
- [x] `Snippet`
- [x] `Ping`
- [x] Status charts
- [x] etc.
- [x] i18n (English, Chinese)
- **Welcome contribution** :)
- [How to contribute?](#i18n-guide)
- [x] Desktop support
## 📱 ScreenShots
## 🏙️ ScreenShots
<table> <table>
<tr> <tr>
<td> <td><img width="277px" src="imgs/server.png"></td>
<img width="200px" src="screenshots/server.jpg"> <td><img width="277px" src="imgs/detail.png"></td>
</td> <td><img width="277px" src="imgs/sftp.png"></td>
<td>
<img width="200px" src="screenshots/detail.jpg">
</td>
<td>
<img width="200px" src="screenshots/ssh.jpg">
</td>
<td>
<img width="200px" src="screenshots/apt.png">
</td>
</tr> </tr>
</table> </table>
<table> <table>
<tr> <tr>
<td> <td><img width="277px" src="imgs/editor.png"> </td>
<img width="200px" src="screenshots/ping.png"> <td><img width="277px" src="imgs/ssh.png"></td>
</td> <td><img width="277px" src="imgs/docker.png"></td>
<td>
<img width="200px" src="screenshots/sftp.jpg">
</td>
<td>
<img width="200px" src="screenshots/docker.jpg">
</td>
<td>
<img width="200px" src="screenshots/convert.png">
</td>
</tr> </tr>
</table> </table>
## 🖥 Platform
Status|Platform
--- | ---
Full Support|Android/iOS
Support, but not tested|macOS/Windows/Linux
## i18n guide ## 🆘 Help
1. Fork this repo and clone it to your local machine. - In order to push server status to your portable device without opening ServerBox app (Such as **message push** and **home widget**), you need to install [ServerBoxMonitor](https://github.com/lollipopkit/server_box_monitor) on your servers, and config it correctly. See [wiki](https://github.com/lollipopkit/server_box_monitor/wiki) for more details.
2. Create `arb` file in `lib/l10n/` directory - **Common issues** can be found in [app wiki](https://github.com/lollipopkit/flutter_server_box/wiki).
- File name should be `intl_XX.arb`, where `XX` is the language code. Such as `intl_en.arb` for English and `intl_zh.arb` for Chinese.
3. Add content to the file. You can refer to `intl_en.arb` and `intl_zh.arb` for the format. Before you open an issue, please read the following:
4. Pull commit to your forked repo. 1. Paste the **entire log** (click the top right of the home page) in the issue template.
5. Request a pull request on my repo. 2. Make sure whether the issue is caused by ServerBox app.
3. Welcome all valid and positive feedback, subjective feedback (such as you think other UI is better) may not be accepted.
After you read the above, you can open an [issue](https://github.com/lollipopkit/flutter_server_box/issues/new).
## 🧱 Contribution
- Any positive contribution is welcome.
- [l10n guide](https://blog.lolli.tech/faq/) can be found in my blog.
## 💡 My other apps
- [GPT Box](https://github.com/lollipopkit/flutter_gpt_box) - A third-party GPT Client for OpenAI API on all platforms.
- [More](https://github.com/lollipopkit) - Tools & etc.
## 📝 License ## 📝 License
`GPL v3. lollipopkit 2023` `GPL v3 lollipopkit`

75
README_zh.md Normal file
View File

@@ -0,0 +1,75 @@
简体中文 | [English](README.md)
<h2 align="center">Flutter Server Box</h2>
<p align="center">
<img alt="lang" src="https://img.shields.io/badge/lang-dart-pink">
<img alt="countly" src="https://img.shields.io/badge/analysis-countly-pink">
<img alt="license" src="https://img.shields.io/badge/license-GPLv3-pink">
</p>
<p align="center">
使用 Flutter 开发的 <a href="../../issues/43">Linux</a> 服务器工具箱,提供服务器状态图表和管理工具。
<br>
特别感谢 <a href="https://github.com/TerminalStudio/dartssh2">dartssh2</a> & <a href="https://github.com/TerminalStudio/xterm.dart">xterm.dart</a>
</p>
## ⬇️ Download
🎉 **现在 `Android / Linux / Windows` 版本使用 GitHub Actions 构建**
[iOS & macOS](https://apps.apple.com/app/id1586449703) / [Android & Linux & Windows](https://github.com/lollipopkit/flutter_gpt_box/releases)
## 🔖 特点
- `状态图表`CPU、传感器、GPU 等), `SSH` 终端, `SFTP`, `Docker & 包 & 进程` 管理器...
- 特殊支持:`生物认证``推送``桌面小部件``watchOS App``跟随系统颜色`...
- 本地化
- English, 简体中文
- Español, Русский язык, Português, 日本語 (Generated by GPT)
- Deutsch (@its-tom) / 繁體中文 (@kalashnikov) / Indonesian (@azkadev) / Français (@FrancXPT) / Dutch (@QazCetelic)
## 🏙️ 截屏
<table>
<tr>
<td><img width="277px" src="imgs/server.png"></td>
<td><img width="277px" src="imgs/detail.png"></td>
<td><img width="277px" src="imgs/sftp.png"></td>
</tr>
</table>
<table>
<tr>
<td><img width="277px" src="imgs/editor.png"> </td>
<td><img width="277px" src="imgs/ssh.png"></td>
<td><img width="277px" src="imgs/docker.png"></td>
</tr>
</table>
## 🆘 帮助
- 吹水、参与开发、了解如何使用QQ群 **762870488**
- 为了可以在不使用 ServerBox app 时获取服务器状态(例如:桌面小部件、推送服务),你需要在你的服务器上安装 [ServerBoxMonitor](https://github.com/lollipopkit/server_box_monitor),并且正确配置,详情可见 [wiki](https://github.com/lollipopkit/server_box_monitor/wiki/%E4%B8%BB%E9%A1%B5)。
- **常见问题**可以在 [app wiki](https://github.com/lollipopkit/flutter_server_box/wiki/主页) 查看。
反馈前须知:
1. 反馈问题请附带 log点击首页右上角并以 bug 模版提交。
2. 反馈问题前请检查是否是 serverbox 的问题。
3. 欢迎所有有效、正面的反馈主观比如你觉得其他UI更好看的反馈不一定会接受
确认了解上述内容后,请在 [问题](https://github.com/lollipopkit/flutter_server_box/issues/new) 中反馈。
## 🧱 贡献
- 任何正面的贡献都欢迎。
- [本地化翻译指南](https://blog.lolli.tech/faq/) 可在我的博客中找到。
## 💡 我的其它 Apps
- [GPT Box](https://github.com/lollipopkit/flutter_gpt_box) - 支持 OpenAI API 的 第三方全平台客户端。
- [更多](https://github.com/lollipopkit) - 工具 & etc.
## 📝 协议
`GPL v3 lollipopkit`

View File

@@ -9,6 +9,14 @@
# packages, and plugins designed to encourage good coding practices. # packages, and plugins designed to encourage good coding practices.
include: package:flutter_lints/flutter.yaml include: package:flutter_lints/flutter.yaml
analyzer:
exclude:
- '**/*.g.dart'
language:
# strict-casts: true
# strict-inference: true
# strict-raw-types: true
linter: linter:
# The lint rules applied to this project can be customized in the # The lint rules applied to this project can be customized in the
# section below to disable rules from the `package:flutter_lints/flutter.yaml` # section below to disable rules from the `package:flutter_lints/flutter.yaml`
@@ -24,6 +32,10 @@ linter:
rules: rules:
library_private_types_in_public_api: false library_private_types_in_public_api: false
use_build_context_synchronously: false use_build_context_synchronously: false
depend_on_referenced_packages: false
prefer_final_locals: true
unnecessary_parenthesis: true
implicit_call_tearoffs: true
# avoid_print: false # Uncomment to disable the `avoid_print` rule # avoid_print: false # Uncomment to disable the `avoid_print` rule
# prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule

View File

@@ -1,3 +1,9 @@
plugins {
id "com.android.application"
id "kotlin-android"
id "dev.flutter.flutter-gradle-plugin"
}
def localProperties = new Properties() def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties') def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) { if (localPropertiesFile.exists()) {
@@ -10,11 +16,12 @@ def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties') def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) { if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
} else {
System.err.printf(" [!] key.properties not found in %s (%s). Build will fail. \n", rootProject, rootProject.file('.'))
} }
def flutterRoot = localProperties.getProperty('flutter.sdk') if (keystoreProperties['storeFile'] == null || !file(keystoreProperties['storeFile']).exists()) {
if (flutterRoot == null) { System.err.printf(" [!] storeFile defined in key.properties does not exist in %s. Build will fail. \n", file('.'))
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
} }
def flutterVersionCode = localProperties.getProperty('flutter.versionCode') def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
@@ -27,12 +34,10 @@ if (flutterVersionName == null) {
flutterVersionName = '1.0' flutterVersionName = '1.0'
} }
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android { android {
compileSdkVersion 33 namespace "tech.lolli.toolbox"
compileSdk flutter.compileSdkVersion
ndkVersion flutter.ndkVersion
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8 sourceCompatibility JavaVersion.VERSION_1_8
@@ -48,11 +53,20 @@ android {
} }
defaultConfig { defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "tech.lolli.toolbox" applicationId "tech.lolli.toolbox"
minSdkVersion 21 // You can update the following values to match your application needs.
targetSdkVersion 30 // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
minSdkVersion flutter.minSdkVersion
targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger() versionCode flutterVersionCode.toInteger()
versionName flutterVersionName versionName flutterVersionName
ndk {
if(!splits.abi.enable) { // abiFilters cannot be present when splits abi filters are set
abiFilters 'arm64-v8a', 'armeabi-v7a'
}
}
} }
signingConfigs { signingConfigs {
@@ -85,6 +99,4 @@ flutter {
source '../..' source '../..'
} }
dependencies { dependencies {}
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}

View File

@@ -1,18 +1,24 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android">
package="tech.lolli.toolbox">
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<application <application
android:label="ServerBox" android:label="ServerBox"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:allowBackup="true" android:allowBackup="true"
android:hasFragileUserData="true" android:hasFragileUserData="true"
android:restoreAnyVersion="true"> android:restoreAnyVersion="true">
<activity <activity
android:name=".MainActivity" android:name=".MainActivity"
android:exported="true"
android:launchMode="singleTop" android:launchMode="singleTop"
android:theme="@style/LaunchTheme" android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
@@ -36,5 +42,42 @@
<meta-data <meta-data
android:name="flutterEmbedding" android:name="flutterEmbedding"
android:value="2" /> android:value="2" />
<service
android:name="id.flutter.flutter_background_service.BackgroundService"
android:foregroundServiceType="dataSync"
/>
<receiver
android:name=".widget.HomeWidget"
android:exported="false"
android:label="StatusWidget">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
<action android:name="tech.lolli.toolbox.UPDATE_WIDGET" />
<action android:name="miui.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<!--
<meta-data
android:name="miuiWidget"
android:value="true" />
-->
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/home_widget" />
</receiver>
<service android:name=".KeepAliveService"/>
</application> </application>
<!-- Required to query activities that can process text, see:
https://developer.android.com/training/package-visibility?hl=en and
https://developer.android.com/reference/android/content/Intent#ACTION_PROCESS_TEXT.
In particular, this is used by the Flutter engine in io.flutter.plugin.text.ProcessTextPlugin. -->
<queries>
<intent>
<action android:name="android.intent.action.PROCESS_TEXT"/>
<data android:mimeType="text/plain"/>
</intent>
</queries>
</manifest> </manifest>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -0,0 +1,18 @@
package tech.lolli.toolbox
import android.app.Service
import android.content.Intent
import android.os.IBinder
import org.jetbrains.annotations.Nullable
class KeepAliveService : Service() {
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
return START_STICKY
}
@Nullable
override fun onBind(intent: Intent?): IBinder? {
return null
}
}

View File

@@ -1,6 +1,31 @@
package tech.lolli.toolbox package tech.lolli.toolbox
import io.flutter.embedding.android.FlutterActivity import android.content.Intent
import io.flutter.embedding.android.FlutterFragmentActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugin.common.MethodChannel
class MainActivity: FlutterActivity() { class MainActivity: FlutterFragmentActivity() {
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
val binaryMessenger = flutterEngine.dartExecutor.binaryMessenger
MethodChannel(binaryMessenger, "tech.lolli.toolbox/app_retain").apply {
setMethodCallHandler { method, result ->
when (method.method) {
"sendToBackground" -> {
moveTaskToBack(true)
result.success(null)
}
"startService" -> {
val intent = Intent(this@MainActivity, KeepAliveService::class.java)
startService(intent)
}
else -> {
result.notImplemented()
}
}
}
}
}
} }

View File

@@ -0,0 +1,111 @@
package tech.lolli.toolbox.widget
import android.app.PendingIntent
import android.appwidget.AppWidgetManager
import android.appwidget.AppWidgetProvider
import android.content.Context
import android.content.Intent
import android.os.Build
import android.view.View
import android.widget.RemoteViews
import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import org.json.JSONObject
import tech.lolli.toolbox.R
import java.net.URL
class HomeWidget : AppWidgetProvider() {
override fun onUpdate(context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray) {
for (appWidgetId in appWidgetIds) {
updateAppWidget(context, appWidgetManager, appWidgetId)
}
}
@OptIn(DelicateCoroutinesApi::class)
private fun updateAppWidget(context: Context, appWidgetManager: AppWidgetManager, appWidgetId: Int) {
val views = RemoteViews(context.packageName, R.layout.home_widget)
val sp = context.getSharedPreferences("FlutterSharedPreferences", Context.MODE_PRIVATE)
var url = sp.getString("$appWidgetId", null)
val gUrl = sp.getString("*", null)
if (url.isNullOrEmpty()) {
url = gUrl
}
val intentUpdate = Intent(context, HomeWidget::class.java)
intentUpdate.action = AppWidgetManager.ACTION_APPWIDGET_UPDATE
val ids = intArrayOf(appWidgetId)
intentUpdate.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, ids)
var flag = PendingIntent.FLAG_UPDATE_CURRENT
if (Build.VERSION_CODES.O <= Build.VERSION.SDK_INT) {
flag = PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
}
val pendingUpdate: PendingIntent = PendingIntent.getBroadcast(
context,
appWidgetId,
intentUpdate,
flag)
views.setOnClickPendingIntent(R.id.widget_container, pendingUpdate)
if (url.isNullOrEmpty()) {
views.setViewVisibility(R.id.widget_cpu_label, View.INVISIBLE)
views.setViewVisibility(R.id.widget_mem_label, View.INVISIBLE)
views.setViewVisibility(R.id.widget_disk_label, View.INVISIBLE)
views.setViewVisibility(R.id.widget_net_label, View.INVISIBLE)
views.setTextViewText(R.id.widget_name, "ID: $appWidgetId")
appWidgetManager.updateAppWidget(appWidgetId, views)
return
} else {
views.setViewVisibility(R.id.widget_cpu_label, View.VISIBLE)
views.setViewVisibility(R.id.widget_mem_label, View.VISIBLE)
views.setViewVisibility(R.id.widget_disk_label, View.VISIBLE)
views.setViewVisibility(R.id.widget_net_label, View.VISIBLE)
}
GlobalScope.launch(Dispatchers.IO) {
try {
val jsonStr = URL(url).readText()
val jsonObject = JSONObject(jsonStr)
val data = jsonObject.getJSONObject("data")
val server = data.getString("name")
val cpu = data.getString("cpu")
val mem = data.getString("mem")
val disk = data.getString("disk")
val net = data.getString("net")
GlobalScope.launch(Dispatchers.Main) main@ {
// mem or disk is empty -> get status failed
// (cpu | net) isEmpty -> data is not ready
if (mem.isEmpty() || disk.isEmpty()) {
return@main
}
views.setTextViewText(R.id.widget_name, server)
views.setTextViewText(R.id.widget_cpu, cpu)
views.setTextViewText(R.id.widget_mem, mem)
views.setTextViewText(R.id.widget_disk, disk)
views.setTextViewText(R.id.widget_net, net)
val timeStr = android.text.format.DateFormat.format("HH:mm", java.util.Date()).toString()
views.setTextViewText(R.id.widget_time, timeStr)
appWidgetManager.updateAppWidget(appWidgetId, views)
}
} catch (e: Exception) {
println("ServerBoxHomeWidget: ${e.localizedMessage}")
GlobalScope.launch(Dispatchers.Main) main@ {
views.setViewVisibility(R.id.widget_cpu_label, View.INVISIBLE)
views.setViewVisibility(R.id.widget_mem_label, View.INVISIBLE)
views.setViewVisibility(R.id.widget_disk_label, View.INVISIBLE)
views.setViewVisibility(R.id.widget_net_label, View.INVISIBLE)
views.setTextViewText(R.id.widget_name, "ID: $appWidgetId")
views.setTextViewText(R.id.widget_mem, e.localizedMessage)
appWidgetManager.updateAppWidget(appWidgetId, views)
}
}
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 B

After

Width:  |  Height:  |  Size: 69 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 B

After

Width:  |  Height:  |  Size: 69 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 B

After

Width:  |  Height:  |  Size: 69 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 144 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 B

After

Width:  |  Height:  |  Size: 69 B

View File

@@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="@color/widgetSummaryText"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M15,9L9,9v6h6L15,9zM13,13h-2v-2h2v2zM21,11L21,9h-2L19,7c0,-1.1 -0.9,-2 -2,-2h-2L15,3h-2v2h-2L11,3L9,3v2L7,5c-1.1,0 -2,0.9 -2,2v2L3,9v2h2v2L3,13v2h2v2c0,1.1 0.9,2 2,2h2v2h2v-2h2v2h2v-2h2c1.1,0 2,-0.9 2,-2v-2h2v-2h-2v-2h2zM17,17L7,17L7,7h10v10z"/>
</vector>

View File

@@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="@color/widgetSummaryText"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M7.77,6.76L6.23,5.48 0.82,12l5.41,6.52 1.54,-1.28L3.42,12l4.35,-5.24zM7,13h2v-2L7,11v2zM17,11h-2v2h2v-2zM11,13h2v-2h-2v2zM17.77,5.48l-1.54,1.28L20.58,12l-4.35,5.24 1.54,1.28L23.18,12l-5.41,-6.52z"/>
</vector>

View File

@@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="@color/widgetSummaryText"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M19.14,12.94c0.04,-0.3 0.06,-0.61 0.06,-0.94c0,-0.32 -0.02,-0.64 -0.07,-0.94l2.03,-1.58c0.18,-0.14 0.23,-0.41 0.12,-0.61l-1.92,-3.32c-0.12,-0.22 -0.37,-0.29 -0.59,-0.22l-2.39,0.96c-0.5,-0.38 -1.03,-0.7 -1.62,-0.94L14.4,2.81c-0.04,-0.24 -0.24,-0.41 -0.48,-0.41h-3.84c-0.24,0 -0.43,0.17 -0.47,0.41L9.25,5.35C8.66,5.59 8.12,5.92 7.63,6.29L5.24,5.33c-0.22,-0.08 -0.47,0 -0.59,0.22L2.74,8.87C2.62,9.08 2.66,9.34 2.86,9.48l2.03,1.58C4.84,11.36 4.8,11.69 4.8,12s0.02,0.64 0.07,0.94l-2.03,1.58c-0.18,0.14 -0.23,0.41 -0.12,0.61l1.92,3.32c0.12,0.22 0.37,0.29 0.59,0.22l2.39,-0.96c0.5,0.38 1.03,0.7 1.62,0.94l0.36,2.54c0.05,0.24 0.24,0.41 0.48,0.41h3.84c0.24,0 0.44,-0.17 0.47,-0.41l0.36,-2.54c0.59,-0.24 1.13,-0.56 1.62,-0.94l2.39,0.96c0.22,0.08 0.47,0 0.59,-0.22l1.92,-3.32c0.12,-0.22 0.07,-0.47 -0.12,-0.61L19.14,12.94zM12,15.6c-1.98,0 -3.6,-1.62 -3.6,-3.6s1.62,-3.6 3.6,-3.6s3.6,1.62 3.6,3.6S13.98,15.6 12,15.6z"/>
</vector>

View File

@@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="@color/widgetSummaryText"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M20.38,8.57l-1.23,1.85a8,8 0,0 1,-0.22 7.58L5.07,18A8,8 0,0 1,15.58 6.85l1.85,-1.23A10,10 0,0 0,3.35 19a2,2 0,0 0,1.72 1h13.85a2,2 0,0 0,1.74 -1,10 10,0 0,0 -0.27,-10.44zM10.59,15.41a2,2 0,0 0,2.83 0l5.66,-8.49 -8.49,5.66a2,2 0,0 0,0 2.83z"/>
</vector>

View File

@@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="@color/widgetSummaryText"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M2,20h20v-4L2,16v4zM4,17h2v2L4,19v-2zM2,4v4h20L22,4L2,4zM6,7L4,7L4,5h2v2zM2,14h20v-4L2,10v4zM4,11h2v2L4,13v-2z"/>
</vector>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="16dp"/>
<solid android:color="@color/widgetBackground" />
</shape>

View File

@@ -0,0 +1,148 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/widget_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/widget_background"
android:padding="17dp"
android:orientation="vertical" >
<TextView
android:id="@+id/widget_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/widgetText"
android:textSize="23sp"
android:textStyle="bold"
android:maxLines="1"
tools:text="Server Name" />
<RelativeLayout
android:id="@+id/widget_container_inner"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:paddingTop="13dp">
<LinearLayout
android:id="@+id/widget_cpu_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="2.7dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:layout_width="17dp"
android:layout_height="17dp"
android:src="@drawable/speed_24">
</ImageView>
<TextView
android:id="@+id/widget_cpu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="11dp"
android:singleLine="true"
android:ellipsize = "marquee"
android:textColor="@color/widgetSummaryText"
android:textSize="12.7sp"
tools:text="CPU" />
</LinearLayout>
<LinearLayout
android:id="@+id/widget_mem_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="2.7dp"
android:layout_below="@id/widget_cpu_label"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:layout_width="17dp"
android:layout_height="17dp"
android:src="@drawable/memory_24">
</ImageView>
<TextView
android:id="@+id/widget_mem"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="11dp"
android:maxLines="1"
android:textColor="@color/widgetSummaryText"
android:textSize="12.7sp"
tools:text="Mem" />
</LinearLayout>
<LinearLayout
android:id="@+id/widget_disk_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="2.7dp"
android:layout_below="@id/widget_mem_label"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:layout_width="17dp"
android:layout_height="17dp"
android:src="@drawable/storage_24">
</ImageView>
<TextView
android:id="@+id/widget_disk"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="11dp"
android:maxLines="1"
android:textColor="@color/widgetSummaryText"
android:textSize="12.7sp"
tools:text="Disk" />
</LinearLayout>
<LinearLayout
android:id="@+id/widget_net_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/widget_disk_label"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:layout_width="17dp"
android:layout_height="17dp"
android:src="@drawable/net_24">
</ImageView>
<TextView
android:id="@+id/widget_net"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="11dp"
android:maxLines="1"
android:textColor="@color/widgetSummaryText"
android:textSize="12.7sp"
tools:text="Net" />
</LinearLayout>
</RelativeLayout>
<TextView
android:id="@+id/widget_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:maxLines="2"
android:textColor="@color/widgetSummaryText"
android:textSize="11sp"
tools:text="UpdateTime" />
</RelativeLayout>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -1,18 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:forceDarkAllowed">false</item>
<item name="android:windowFullscreen">false</item>
<item name="android:windowSplashScreenBackground">#121212</item>
</style>
<!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your
Flutter UI initializes, as well as behind your Flutter UI while its
running.
This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item>
</style>
</resources>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="widgetBackground">#000000</color>
<color name="widgetText">#FFFFFF</color>
<color name="widgetSummaryText">#BBBBBB</color>
</resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="ic_launcher_background">#372D2D</color>
</resources>

View File

@@ -7,6 +7,8 @@
<item name="android:windowBackground">@drawable/launch_background</item> <item name="android:windowBackground">@drawable/launch_background</item>
<item name="android:forceDarkAllowed">false</item> <item name="android:forceDarkAllowed">false</item>
<item name="android:windowFullscreen">false</item> <item name="android:windowFullscreen">false</item>
<item name="android:windowDrawsSystemBarBackgrounds">false</item>
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
</style> </style>
<!-- Theme applied to the Android Window as soon as the process has started. <!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your This theme determines the color of the Android Window while your

View File

@@ -1,18 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
<item name="android:forceDarkAllowed">false</item>
<item name="android:windowFullscreen">false</item>
<item name="android:windowSplashScreenBackground">#ffffff</item>
</style>
<!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your
Flutter UI initializes, as well as behind your Flutter UI while its
running.
This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item>
</style>
</resources>

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<color name="colorLaunch">#EEEEEE</color>
<color name="widgetBackground">#FFFFFF</color>
<color name="widgetText">#000000</color>
<color name="widgetSummaryText">#333333</color>
</resources>

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<color name="ic_launcher_background">#083963</color> <color name="ic_launcher_background">#FFFFFF</color>
</resources> </resources>

View File

@@ -7,6 +7,8 @@
<item name="android:windowBackground">@drawable/launch_background</item> <item name="android:windowBackground">@drawable/launch_background</item>
<item name="android:forceDarkAllowed">false</item> <item name="android:forceDarkAllowed">false</item>
<item name="android:windowFullscreen">false</item> <item name="android:windowFullscreen">false</item>
<item name="android:windowDrawsSystemBarBackgrounds">false</item>
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
</style> </style>
<!-- Theme applied to the Android Window as soon as the process has started. <!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your This theme determines the color of the Android Window while your

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="110dp"
android:maxHeight="110dp"
android:maxWidth="110dp"
android:minHeight="110dp"
android:updatePeriodMillis="1800001"
android:initialLayout="@layout/home_widget"
android:resizeMode="none"
android:widgetCategory="home_screen">
</appwidget-provider>

View File

@@ -1,16 +1,3 @@
buildscript {
ext.kotlin_version = '1.6.10'
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.0.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects { allprojects {
repositories { repositories {
google() google()
@@ -21,9 +8,11 @@ allprojects {
rootProject.buildDir = '../build' rootProject.buildDir = '../build'
subprojects { subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}" project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app') project.evaluationDependsOn(':app')
} }
task clean(type: Delete) { tasks.register("clean", Delete) {
delete rootProject.buildDir delete rootProject.buildDir
} }

View File

@@ -1,3 +1,3 @@
org.gradle.jvmargs=-Xmx1536M org.gradle.jvmargs=-Xmx4G
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true

View File

@@ -1,6 +1,5 @@
#Fri Jun 23 08:50:38 CEST 2017
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip

View File

@@ -1,11 +1,26 @@
include ':app' pluginManagement {
def flutterSdkPath = {
def properties = new Properties()
file("local.properties").withInputStream { properties.load(it) }
def flutterSdkPath = properties.getProperty("flutter.sdk")
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
return flutterSdkPath
}
settings.ext.flutterSdkPath = flutterSdkPath()
def localPropertiesFile = new File(rootProject.projectDir, "local.properties") includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle")
def properties = new Properties()
assert localPropertiesFile.exists() repositories {
localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } google()
mavenCentral()
gradlePluginPortal()
}
}
def flutterSdkPath = properties.getProperty("flutter.sdk") plugins {
assert flutterSdkPath != null, "flutter.sdk not set in local.properties" id "dev.flutter.flutter-plugin-loader" version "1.0.0"
apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" id "com.android.application" version "7.4.2" apply false
id "org.jetbrains.kotlin.android" version "1.8.10" apply false
}
include ":app"

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

1
devtools_options.yaml Normal file
View File

@@ -0,0 +1 @@
extensions:

4
fl_build.json Normal file
View File

@@ -0,0 +1,4 @@
{
"appName": "ServerBox",
"beforeBuild": "./make.dart before"
}

BIN
imgs/detail.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

BIN
imgs/docker.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

BIN
imgs/editor.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 112 KiB

BIN
imgs/server.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

BIN
imgs/sftp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

BIN
imgs/ssh.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

View File

@@ -21,6 +21,6 @@
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>1.0</string> <string>1.0</string>
<key>MinimumOSVersion</key> <key>MinimumOSVersion</key>
<string>11.0</string> <string>12.0</string>
</dict> </dict>
</plist> </plist>

View File

@@ -1,5 +1,5 @@
# Uncomment this line to define a global platform for your project # Uncomment this line to define a global platform for your project
# platform :ios, '11.0' # platform :ios, '12.0'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency. # CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true' ENV['COCOAPODS_DISABLE_STATS'] = 'true'

View File

@@ -1,59 +1,114 @@
PODS: PODS:
- countly_flutter (22.09.0): - countly_flutter (24.4.1):
- Flutter
- device_info_plus (0.0.1):
- Flutter - Flutter
- file_picker (0.0.1): - file_picker (0.0.1):
- Flutter - Flutter
- Flutter (1.0.0) - Flutter (1.0.0)
- flutter_background_service_ios (0.0.3):
- Flutter
- flutter_native_splash (0.0.1): - flutter_native_splash (0.0.1):
- Flutter - Flutter
- icloud_storage (0.0.1):
- Flutter
- local_auth_darwin (0.0.1):
- Flutter
- package_info_plus (0.4.5):
- Flutter
- path_provider_foundation (0.0.1): - path_provider_foundation (0.0.1):
- Flutter - Flutter
- FlutterMacOS - FlutterMacOS
- r_upgrade (0.0.1): - permission_handler_apple (9.3.0):
- Flutter
- plain_notification_token (0.0.1):
- Flutter - Flutter
- share_plus (0.0.1): - share_plus (0.0.1):
- Flutter - Flutter
- shared_preferences_foundation (0.0.1):
- Flutter
- FlutterMacOS
- url_launcher_ios (0.0.1): - url_launcher_ios (0.0.1):
- Flutter - Flutter
- wakelock_plus (0.0.1):
- Flutter
- watch_connectivity (0.0.1):
- Flutter
DEPENDENCIES: DEPENDENCIES:
- countly_flutter (from `.symlinks/plugins/countly_flutter/ios`) - countly_flutter (from `.symlinks/plugins/countly_flutter/ios`)
- device_info_plus (from `.symlinks/plugins/device_info_plus/ios`)
- file_picker (from `.symlinks/plugins/file_picker/ios`) - file_picker (from `.symlinks/plugins/file_picker/ios`)
- Flutter (from `Flutter`) - Flutter (from `Flutter`)
- flutter_background_service_ios (from `.symlinks/plugins/flutter_background_service_ios/ios`)
- flutter_native_splash (from `.symlinks/plugins/flutter_native_splash/ios`) - flutter_native_splash (from `.symlinks/plugins/flutter_native_splash/ios`)
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/ios`) - icloud_storage (from `.symlinks/plugins/icloud_storage/ios`)
- r_upgrade (from `.symlinks/plugins/r_upgrade/ios`) - local_auth_darwin (from `.symlinks/plugins/local_auth_darwin/darwin`)
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
- permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`)
- plain_notification_token (from `.symlinks/plugins/plain_notification_token/ios`)
- share_plus (from `.symlinks/plugins/share_plus/ios`) - share_plus (from `.symlinks/plugins/share_plus/ios`)
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`)
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
- wakelock_plus (from `.symlinks/plugins/wakelock_plus/ios`)
- watch_connectivity (from `.symlinks/plugins/watch_connectivity/ios`)
EXTERNAL SOURCES: EXTERNAL SOURCES:
countly_flutter: countly_flutter:
:path: ".symlinks/plugins/countly_flutter/ios" :path: ".symlinks/plugins/countly_flutter/ios"
device_info_plus:
:path: ".symlinks/plugins/device_info_plus/ios"
file_picker: file_picker:
:path: ".symlinks/plugins/file_picker/ios" :path: ".symlinks/plugins/file_picker/ios"
Flutter: Flutter:
:path: Flutter :path: Flutter
flutter_background_service_ios:
:path: ".symlinks/plugins/flutter_background_service_ios/ios"
flutter_native_splash: flutter_native_splash:
:path: ".symlinks/plugins/flutter_native_splash/ios" :path: ".symlinks/plugins/flutter_native_splash/ios"
icloud_storage:
:path: ".symlinks/plugins/icloud_storage/ios"
local_auth_darwin:
:path: ".symlinks/plugins/local_auth_darwin/darwin"
package_info_plus:
:path: ".symlinks/plugins/package_info_plus/ios"
path_provider_foundation: path_provider_foundation:
:path: ".symlinks/plugins/path_provider_foundation/ios" :path: ".symlinks/plugins/path_provider_foundation/darwin"
r_upgrade: permission_handler_apple:
:path: ".symlinks/plugins/r_upgrade/ios" :path: ".symlinks/plugins/permission_handler_apple/ios"
plain_notification_token:
:path: ".symlinks/plugins/plain_notification_token/ios"
share_plus: share_plus:
:path: ".symlinks/plugins/share_plus/ios" :path: ".symlinks/plugins/share_plus/ios"
shared_preferences_foundation:
:path: ".symlinks/plugins/shared_preferences_foundation/darwin"
url_launcher_ios: url_launcher_ios:
:path: ".symlinks/plugins/url_launcher_ios/ios" :path: ".symlinks/plugins/url_launcher_ios/ios"
wakelock_plus:
:path: ".symlinks/plugins/wakelock_plus/ios"
watch_connectivity:
:path: ".symlinks/plugins/watch_connectivity/ios"
SPEC CHECKSUMS: SPEC CHECKSUMS:
countly_flutter: 135f1a4930f8e26ba223a14201d3f265ea7b4c83 countly_flutter: 56233d921c6b4e0a720774a39b8ee8110d6f8d91
file_picker: 1d63c4949e05e386da864365f8c13e1e64787675 device_info_plus: 97af1d7e84681a90d0693e63169a5d50e0839a0d
Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 file_picker: c79185e70b9b45728cde2a8d8da454e0cb43f287
flutter_native_splash: 52501b97d1c0a5f898d687f1646226c1f93c56ef Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
path_provider_foundation: c68054786f1b4f3343858c1e1d0caaded73f0be9 flutter_background_service_ios: e30e0d3ee69e4cee66272d0c78eacd48c2e94aac
r_upgrade: 44d715c61914cce3d01ea225abffe894fd51c114 flutter_native_splash: edf599c81f74d093a4daf8e17bd7a018854bc778
share_plus: 056a1e8ac890df3e33cb503afffaf1e9b4fbae68 icloud_storage: d9ac7a33ced81df08ba7ea1bf3099cc0ee58f60a
url_launcher_ios: 08a3dfac5fb39e8759aeb0abbd5d9480f30fc8b4 local_auth_darwin: 4d56c90c2683319835a61274b57620df9c4520ab
package_info_plus: 58f0028419748fad15bf008b270aaa8e54380b1c
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2
plain_notification_token: b36467dc91939a7b6754267c701bbaca14996ee1
share_plus: 8875f4f2500512ea181eef553c3e27dba5135aad
shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78
url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe
wakelock_plus: 78ec7c5b202cab7761af8e2b2b3d0671be6c4ae1
watch_connectivity: 715eb484685e05846eab74795348a44bb2809b82
PODFILE CHECKSUM: 7fb15c416f8685fca4966867a8da218ec592ec2e PODFILE CHECKSUM: ec6ef69056f066e8b21a3391082f23b5ad2d37f8
COCOAPODS: 1.11.3 COCOAPODS: 1.15.2

17
ios/PrivacyInfo.xcprivacy Normal file
View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrivacyAccessedAPITypes</key>
<array>
<dict>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>CA92.1</string>
</array>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
</dict>
</array>
</dict>
</plist>

View File

@@ -10,12 +10,51 @@
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
7538AEC32BB83FAB002AB82A /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 7538AEC22BB83FAB002AB82A /* PrivacyInfo.xcprivacy */; };
7538AEC52BB83FC8002AB82A /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 7538AEC42BB83FC8002AB82A /* PrivacyInfo.xcprivacy */; };
7538AEC72BB83FD3002AB82A /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 7538AEC62BB83FD3002AB82A /* PrivacyInfo.xcprivacy */; };
9234EA956D1225D388A01660 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 278C1EB3935F9285537B0516 /* Pods_Runner.framework */; }; 9234EA956D1225D388A01660 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 278C1EB3935F9285537B0516 /* Pods_Runner.framework */; };
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; E33A3E372A626DCD009744AB /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E33A3E362A626DCD009744AB /* WidgetKit.framework */; };
E33A3E392A626DCD009744AB /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E33A3E382A626DCD009744AB /* SwiftUI.framework */; };
E33A3E3C2A626DCE009744AB /* StatusWidgetBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = E33A3E3B2A626DCE009744AB /* StatusWidgetBundle.swift */; };
E33A3E402A626DCE009744AB /* StatusWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = E33A3E3F2A626DCE009744AB /* StatusWidget.swift */; };
E33A3E492A626DD0009744AB /* StatusWidgetExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = E33A3E352A626DCD009744AB /* StatusWidgetExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
E37C48EA2B9C30EE00E542D2 /* StatusWidget.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = E37C48ED2B9C30EE00E542D2 /* StatusWidget.intentdefinition */; };
E37C48EB2B9C30EE00E542D2 /* StatusWidget.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = E37C48ED2B9C30EE00E542D2 /* StatusWidget.intentdefinition */; };
E39515CA2AB5AD62003602C1 /* WatchEndApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = E39515C92AB5AD62003602C1 /* WatchEndApp.swift */; };
E39515CC2AB5AD62003602C1 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E39515CB2AB5AD62003602C1 /* ContentView.swift */; };
E39515D42AB5AD64003602C1 /* ServerBox.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = E39515C72AB5AD62003602C1 /* ServerBox.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
E39515DB2AB5AE7F003602C1 /* PhoneConnMgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = E39515DA2AB5AE7F003602C1 /* PhoneConnMgr.swift */; };
E39515DD2AB5AE9E003602C1 /* Store.swift in Sources */ = {isa = PBXBuildFile; fileRef = E39515DC2AB5AE9E003602C1 /* Store.swift */; };
E39515E02AB5CF97003602C1 /* Watch.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E39515DF2AB5CF97003602C1 /* Watch.xcassets */; };
E39A76AE2AB9A2F70067C641 /* Info-Debug.plist in Resources */ = {isa = PBXBuildFile; fileRef = E39A76AB2AB9A2F70067C641 /* Info-Debug.plist */; };
E39A76AF2AB9A2F70067C641 /* Info-Release.plist in Resources */ = {isa = PBXBuildFile; fileRef = E39A76AC2AB9A2F70067C641 /* Info-Release.plist */; };
E39A76B02AB9A2F70067C641 /* Info-Profile.plist in Resources */ = {isa = PBXBuildFile; fileRef = E39A76AD2AB9A2F70067C641 /* Info-Profile.plist */; };
E3AE8AEA2AB601DB000A6459 /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3AE8AE92AB601DB000A6459 /* Utils.swift */; };
E3AE8AEB2AB601DB000A6459 /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3AE8AE92AB601DB000A6459 /* Utils.swift */; };
E3AE8AEC2AB601DB000A6459 /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3AE8AE92AB601DB000A6459 /* Utils.swift */; };
E3DB67ED2A31FE200027B8CB /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E3DB67EB2A31FE200027B8CB /* LaunchScreen.storyboard */; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
E33A3E472A626DD0009744AB /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 97C146E61CF9000F007C117D /* Project object */;
proxyType = 1;
remoteGlobalIDString = E33A3E342A626DCD009744AB;
remoteInfo = StatusWidgetExtension;
};
E39515D22AB5AD64003602C1 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 97C146E61CF9000F007C117D /* Project object */;
proxyType = 1;
remoteGlobalIDString = E39515C62AB5AD62003602C1;
remoteInfo = "WatchEnd Watch App";
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */ /* Begin PBXCopyFilesBuildPhase section */
9705A1C41CF9048500538489 /* Embed Frameworks */ = { 9705A1C41CF9048500538489 /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase; isa = PBXCopyFilesBuildPhase;
@@ -27,6 +66,28 @@
name = "Embed Frameworks"; name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
E33A3E4A2A626DD0009744AB /* Embed Foundation Extensions */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 13;
files = (
E33A3E492A626DD0009744AB /* StatusWidgetExtension.appex in Embed Foundation Extensions */,
);
name = "Embed Foundation Extensions";
runOnlyForDeploymentPostprocessing = 0;
};
E39515D52AB5AD64003602C1 /* Embed Watch Content */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "$(CONTENTS_FOLDER_PATH)/Watch";
dstSubfolderSpec = 16;
files = (
E39515D42AB5AD64003602C1 /* ServerBox.app in Embed Watch Content */,
);
name = "Embed Watch Content";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */ /* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
@@ -37,16 +98,64 @@
5A4B3EB10512B2EB8E10213B /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; }; 5A4B3EB10512B2EB8E10213B /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
7538AEC22BB83FAB002AB82A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
7538AEC42BB83FC8002AB82A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
7538AEC62BB83FD3002AB82A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; }; 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
9C5314B89F1F73A1900CCAFD /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; }; 9C5314B89F1F73A1900CCAFD /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
A775F241DEE026555178AC01 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; }; A775F241DEE026555178AC01 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
E33A3E352A626DCD009744AB /* StatusWidgetExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = StatusWidgetExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; };
E33A3E362A626DCD009744AB /* WidgetKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WidgetKit.framework; path = System/Library/Frameworks/WidgetKit.framework; sourceTree = SDKROOT; };
E33A3E382A626DCD009744AB /* SwiftUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftUI.framework; path = System/Library/Frameworks/SwiftUI.framework; sourceTree = SDKROOT; };
E33A3E3B2A626DCE009744AB /* StatusWidgetBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusWidgetBundle.swift; sourceTree = "<group>"; };
E33A3E3F2A626DCE009744AB /* StatusWidget.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusWidget.swift; sourceTree = "<group>"; };
E33A3E442A626DD0009744AB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
E37C48EC2B9C30EE00E542D2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.intentdefinition; name = Base; path = Base.lproj/StatusWidget.intentdefinition; sourceTree = "<group>"; };
E37C48F02B9C5E0C00E542D2 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/StatusWidget.strings; sourceTree = "<group>"; };
E37C48F22B9C5E0D00E542D2 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/StatusWidget.strings"; sourceTree = "<group>"; };
E37C48F42B9C5E1000E542D2 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/StatusWidget.strings"; sourceTree = "<group>"; };
E37C48F62B9C5E1500E542D2 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/StatusWidget.strings; sourceTree = "<group>"; };
E37C48F82B9C5E1700E542D2 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/StatusWidget.strings; sourceTree = "<group>"; };
E37C48FA2B9C5E1700E542D2 /* id */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = id; path = id.lproj/StatusWidget.strings; sourceTree = "<group>"; };
E37C48FC2B9C5E1800E542D2 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/StatusWidget.strings; sourceTree = "<group>"; };
E37C48FE2B9C5E1800E542D2 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/StatusWidget.strings"; sourceTree = "<group>"; };
E37C49002B9C5E1900E542D2 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/StatusWidget.strings; sourceTree = "<group>"; };
E37C49022B9C5E1900E542D2 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/StatusWidget.strings; sourceTree = "<group>"; };
E39515C72AB5AD62003602C1 /* ServerBox.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ServerBox.app; sourceTree = BUILT_PRODUCTS_DIR; };
E39515C92AB5AD62003602C1 /* WatchEndApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchEndApp.swift; sourceTree = "<group>"; };
E39515CB2AB5AD62003602C1 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
E39515DA2AB5AE7F003602C1 /* PhoneConnMgr.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhoneConnMgr.swift; sourceTree = "<group>"; };
E39515DC2AB5AE9E003602C1 /* Store.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Store.swift; sourceTree = "<group>"; };
E39515DF2AB5CF97003602C1 /* Watch.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Watch.xcassets; sourceTree = "<group>"; };
E398BF6A29BDB34500FE4FD5 /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = "<group>"; };
E39A76AB2AB9A2F70067C641 /* Info-Debug.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-Debug.plist"; sourceTree = "<group>"; };
E39A76AC2AB9A2F70067C641 /* Info-Release.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-Release.plist"; sourceTree = "<group>"; };
E39A76AD2AB9A2F70067C641 /* Info-Profile.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-Profile.plist"; sourceTree = "<group>"; };
E3AE8AE92AB601DB000A6459 /* Utils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Utils.swift; sourceTree = "<group>"; };
E3D26BC22B99637800D83425 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/Main.strings"; sourceTree = "<group>"; };
E3D26BC32B99637900D83425 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/LaunchScreen.strings"; sourceTree = "<group>"; };
E3D26BC42B99637F00D83425 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Main.strings; sourceTree = "<group>"; };
E3D26BC52B99637F00D83425 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/LaunchScreen.strings; sourceTree = "<group>"; };
E3D26BC62B99639800D83425 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Main.strings; sourceTree = "<group>"; };
E3D26BC72B99639800D83425 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/LaunchScreen.strings; sourceTree = "<group>"; };
E3D26BC82B9963A600D83425 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Main.strings; sourceTree = "<group>"; };
E3D26BC92B9963A600D83425 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/LaunchScreen.strings; sourceTree = "<group>"; };
E3D26BCA2B9963AC00D83425 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Main.strings; sourceTree = "<group>"; };
E3D26BCB2B9963AC00D83425 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/LaunchScreen.strings; sourceTree = "<group>"; };
E3D26BCC2B9963BC00D83425 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Main.strings"; sourceTree = "<group>"; };
E3D26BCD2B9963BC00D83425 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/LaunchScreen.strings"; sourceTree = "<group>"; };
E3D26BCE2B9963CE00D83425 /* id */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = id; path = id.lproj/Main.strings; sourceTree = "<group>"; };
E3D26BCF2B9963CE00D83425 /* id */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = id; path = id.lproj/LaunchScreen.strings; sourceTree = "<group>"; };
E3D26BD02B9963E100D83425 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Main.strings"; sourceTree = "<group>"; };
E3D26BD12B9963E100D83425 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/LaunchScreen.strings"; sourceTree = "<group>"; };
E3D26BD22B9966EC00D83425 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Main.strings; sourceTree = "<group>"; };
E3D26BD32B9966EC00D83425 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/LaunchScreen.strings; sourceTree = "<group>"; };
E3DB67EC2A31FE200027B8CB /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
/* End PBXFileReference section */ /* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */ /* Begin PBXFrameworksBuildPhase section */
@@ -58,6 +167,22 @@
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
E33A3E322A626DCD009744AB /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
E33A3E392A626DCD009744AB /* SwiftUI.framework in Frameworks */,
E33A3E372A626DCD009744AB /* WidgetKit.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
E39515C42AB5AD62003602C1 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */ /* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */ /* Begin PBXGroup section */
@@ -87,6 +212,8 @@
children = ( children = (
9740EEB11CF90186004384FC /* Flutter */, 9740EEB11CF90186004384FC /* Flutter */,
97C146F01CF9000F007C117D /* Runner */, 97C146F01CF9000F007C117D /* Runner */,
E33A3E3A2A626DCE009744AB /* StatusWidget */,
E39515C82AB5AD62003602C1 /* WatchApp */,
97C146EF1CF9000F007C117D /* Products */, 97C146EF1CF9000F007C117D /* Products */,
65C40392B90925608A0465EE /* Pods */, 65C40392B90925608A0465EE /* Pods */,
D242A20E381A343934B6A7B6 /* Frameworks */, D242A20E381A343934B6A7B6 /* Frameworks */,
@@ -97,6 +224,8 @@
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
97C146EE1CF9000F007C117D /* Runner.app */, 97C146EE1CF9000F007C117D /* Runner.app */,
E33A3E352A626DCD009744AB /* StatusWidgetExtension.appex */,
E39515C72AB5AD62003602C1 /* ServerBox.app */,
); );
name = Products; name = Products;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -104,12 +233,17 @@
97C146F01CF9000F007C117D /* Runner */ = { 97C146F01CF9000F007C117D /* Runner */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
7538AEC22BB83FAB002AB82A /* PrivacyInfo.xcprivacy */,
E398BF6A29BDB34500FE4FD5 /* Runner.entitlements */,
97C146FA1CF9000F007C117D /* Main.storyboard */, 97C146FA1CF9000F007C117D /* Main.storyboard */,
97C146FD1CF9000F007C117D /* Assets.xcassets */, 97C146FD1CF9000F007C117D /* Assets.xcassets */,
97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, E3DB67EB2A31FE200027B8CB /* LaunchScreen.storyboard */,
97C147021CF9000F007C117D /* Info.plist */, E39A76AB2AB9A2F70067C641 /* Info-Debug.plist */,
E39A76AD2AB9A2F70067C641 /* Info-Profile.plist */,
E39A76AC2AB9A2F70067C641 /* Info-Release.plist */,
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
E3AE8AE92AB601DB000A6459 /* Utils.swift */,
74858FAE1ED2DC5600515810 /* AppDelegate.swift */, 74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
); );
@@ -120,10 +254,37 @@
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
278C1EB3935F9285537B0516 /* Pods_Runner.framework */, 278C1EB3935F9285537B0516 /* Pods_Runner.framework */,
E33A3E362A626DCD009744AB /* WidgetKit.framework */,
E33A3E382A626DCD009744AB /* SwiftUI.framework */,
); );
name = Frameworks; name = Frameworks;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
E33A3E3A2A626DCE009744AB /* StatusWidget */ = {
isa = PBXGroup;
children = (
7538AEC42BB83FC8002AB82A /* PrivacyInfo.xcprivacy */,
E33A3E3B2A626DCE009744AB /* StatusWidgetBundle.swift */,
E33A3E3F2A626DCE009744AB /* StatusWidget.swift */,
E37C48ED2B9C30EE00E542D2 /* StatusWidget.intentdefinition */,
E33A3E442A626DD0009744AB /* Info.plist */,
);
path = StatusWidget;
sourceTree = "<group>";
};
E39515C82AB5AD62003602C1 /* WatchApp */ = {
isa = PBXGroup;
children = (
7538AEC62BB83FD3002AB82A /* PrivacyInfo.xcprivacy */,
E39515C92AB5AD62003602C1 /* WatchEndApp.swift */,
E39515CB2AB5AD62003602C1 /* ContentView.swift */,
E39515DA2AB5AE7F003602C1 /* PhoneConnMgr.swift */,
E39515DC2AB5AE9E003602C1 /* Store.swift */,
E39515DF2AB5CF97003602C1 /* Watch.xcassets */,
);
path = WatchApp;
sourceTree = "<group>";
};
/* End PBXGroup section */ /* End PBXGroup section */
/* Begin PBXNativeTarget section */ /* Begin PBXNativeTarget section */
@@ -137,16 +298,55 @@
97C146EB1CF9000F007C117D /* Frameworks */, 97C146EB1CF9000F007C117D /* Frameworks */,
97C146EC1CF9000F007C117D /* Resources */, 97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */, 9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
AA0A1FF2F3246F84EB0D91F2 /* [CP] Embed Pods Frameworks */, AA0A1FF2F3246F84EB0D91F2 /* [CP] Embed Pods Frameworks */,
E33A3E4A2A626DD0009744AB /* Embed Foundation Extensions */,
E39515D52AB5AD64003602C1 /* Embed Watch Content */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
955896919A10AA2BEC131F36 /* [CP] Copy Pods Resources */,
);
buildRules = (
);
dependencies = (
E33A3E482A626DD0009744AB /* PBXTargetDependency */,
E39515D32AB5AD64003602C1 /* PBXTargetDependency */,
);
name = Runner;
productName = Runner;
productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
productType = "com.apple.product-type.application";
};
E33A3E342A626DCD009744AB /* StatusWidgetExtension */ = {
isa = PBXNativeTarget;
buildConfigurationList = E33A3E4E2A626DD0009744AB /* Build configuration list for PBXNativeTarget "StatusWidgetExtension" */;
buildPhases = (
E33A3E312A626DCD009744AB /* Sources */,
E33A3E322A626DCD009744AB /* Frameworks */,
E33A3E332A626DCD009744AB /* Resources */,
); );
buildRules = ( buildRules = (
); );
dependencies = ( dependencies = (
); );
name = Runner; name = StatusWidgetExtension;
productName = Runner; productName = StatusWidgetExtension;
productReference = 97C146EE1CF9000F007C117D /* Runner.app */; productReference = E33A3E352A626DCD009744AB /* StatusWidgetExtension.appex */;
productType = "com.apple.product-type.app-extension";
};
E39515C62AB5AD62003602C1 /* WatchApp */ = {
isa = PBXNativeTarget;
buildConfigurationList = E39515D92AB5AD64003602C1 /* Build configuration list for PBXNativeTarget "WatchApp" */;
buildPhases = (
E39515C32AB5AD62003602C1 /* Sources */,
E39515C42AB5AD62003602C1 /* Frameworks */,
E39515C52AB5AD62003602C1 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = WatchApp;
productName = "WatchEnd Watch App";
productReference = E39515C72AB5AD62003602C1 /* ServerBox.app */;
productType = "com.apple.product-type.application"; productType = "com.apple.product-type.application";
}; };
/* End PBXNativeTarget section */ /* End PBXNativeTarget section */
@@ -155,13 +355,20 @@
97C146E61CF9000F007C117D /* Project object */ = { 97C146E61CF9000F007C117D /* Project object */ = {
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
LastUpgradeCheck = 1300; LastSwiftUpdateCheck = 1430;
LastUpgradeCheck = 1510;
ORGANIZATIONNAME = ""; ORGANIZATIONNAME = "";
TargetAttributes = { TargetAttributes = {
97C146ED1CF9000F007C117D = { 97C146ED1CF9000F007C117D = {
CreatedOnToolsVersion = 7.3.1; CreatedOnToolsVersion = 7.3.1;
LastSwiftMigration = 1100; LastSwiftMigration = 1100;
}; };
E33A3E342A626DCD009744AB = {
CreatedOnToolsVersion = 14.3;
};
E39515C62AB5AD62003602C1 = {
CreatedOnToolsVersion = 14.3.1;
};
}; };
}; };
buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */;
@@ -171,6 +378,15 @@
knownRegions = ( knownRegions = (
en, en,
Base, Base,
"zh-Hant",
fr,
ru,
es,
de,
"pt-BR",
id,
"zh-Hans",
ja,
); );
mainGroup = 97C146E51CF9000F007C117D; mainGroup = 97C146E51CF9000F007C117D;
productRefGroup = 97C146EF1CF9000F007C117D /* Products */; productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
@@ -178,6 +394,8 @@
projectRoot = ""; projectRoot = "";
targets = ( targets = (
97C146ED1CF9000F007C117D /* Runner */, 97C146ED1CF9000F007C117D /* Runner */,
E33A3E342A626DCD009744AB /* StatusWidgetExtension */,
E39515C62AB5AD62003602C1 /* WatchApp */,
); );
}; };
/* End PBXProject section */ /* End PBXProject section */
@@ -187,13 +405,34 @@
isa = PBXResourcesBuildPhase; isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
E3DB67ED2A31FE200027B8CB /* LaunchScreen.storyboard in Resources */,
E39A76AF2AB9A2F70067C641 /* Info-Release.plist in Resources */,
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
E39A76AE2AB9A2F70067C641 /* Info-Debug.plist in Resources */,
E39A76B02AB9A2F70067C641 /* Info-Profile.plist in Resources */,
7538AEC32BB83FAB002AB82A /* PrivacyInfo.xcprivacy in Resources */,
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
E33A3E332A626DCD009744AB /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
7538AEC52BB83FC8002AB82A /* PrivacyInfo.xcprivacy in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
E39515C52AB5AD62003602C1 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
7538AEC72BB83FD3002AB82A /* PrivacyInfo.xcprivacy in Resources */,
E39515E02AB5CF97003602C1 /* Watch.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */ /* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */
@@ -204,6 +443,7 @@
files = ( files = (
); );
inputPaths = ( inputPaths = (
"${TARGET_BUILD_DIR}/${INFOPLIST_PATH}",
); );
name = "Thin Binary"; name = "Thin Binary";
outputPaths = ( outputPaths = (
@@ -212,6 +452,23 @@
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
}; };
955896919A10AA2BEC131F36 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
showEnvVarsInLog = 0;
};
9740EEB61CF901F6004384FC /* Run Script */ = { 9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1; alwaysOutOfDate = 1;
@@ -275,24 +532,98 @@
files = ( files = (
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
E37C48EA2B9C30EE00E542D2 /* StatusWidget.intentdefinition in Sources */,
E3AE8AEA2AB601DB000A6459 /* Utils.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
E33A3E312A626DCD009744AB /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
E33A3E402A626DCE009744AB /* StatusWidget.swift in Sources */,
E37C48EB2B9C30EE00E542D2 /* StatusWidget.intentdefinition in Sources */,
E33A3E3C2A626DCE009744AB /* StatusWidgetBundle.swift in Sources */,
E3AE8AEB2AB601DB000A6459 /* Utils.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
E39515C32AB5AD62003602C1 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
E3AE8AEC2AB601DB000A6459 /* Utils.swift in Sources */,
E39515DB2AB5AE7F003602C1 /* PhoneConnMgr.swift in Sources */,
E39515CC2AB5AD62003602C1 /* ContentView.swift in Sources */,
E39515CA2AB5AD62003602C1 /* WatchEndApp.swift in Sources */,
E39515DD2AB5AE9E003602C1 /* Store.swift in Sources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
/* End PBXSourcesBuildPhase section */ /* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
E33A3E482A626DD0009744AB /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = E33A3E342A626DCD009744AB /* StatusWidgetExtension */;
targetProxy = E33A3E472A626DD0009744AB /* PBXContainerItemProxy */;
};
E39515D32AB5AD64003602C1 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = E39515C62AB5AD62003602C1 /* WatchApp */;
targetProxy = E39515D22AB5AD64003602C1 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */ /* Begin PBXVariantGroup section */
97C146FA1CF9000F007C117D /* Main.storyboard */ = { 97C146FA1CF9000F007C117D /* Main.storyboard */ = {
isa = PBXVariantGroup; isa = PBXVariantGroup;
children = ( children = (
97C146FB1CF9000F007C117D /* Base */, 97C146FB1CF9000F007C117D /* Base */,
E3D26BC22B99637800D83425 /* zh-Hant */,
E3D26BC42B99637F00D83425 /* fr */,
E3D26BC62B99639800D83425 /* ru */,
E3D26BC82B9963A600D83425 /* es */,
E3D26BCA2B9963AC00D83425 /* de */,
E3D26BCC2B9963BC00D83425 /* pt-BR */,
E3D26BCE2B9963CE00D83425 /* id */,
E3D26BD02B9963E100D83425 /* zh-Hans */,
E3D26BD22B9966EC00D83425 /* ja */,
); );
name = Main.storyboard; name = Main.storyboard;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { E37C48ED2B9C30EE00E542D2 /* StatusWidget.intentdefinition */ = {
isa = PBXVariantGroup; isa = PBXVariantGroup;
children = ( children = (
97C147001CF9000F007C117D /* Base */, E37C48EC2B9C30EE00E542D2 /* Base */,
E37C48F02B9C5E0C00E542D2 /* en */,
E37C48F22B9C5E0D00E542D2 /* zh-Hans */,
E37C48F42B9C5E1000E542D2 /* zh-Hant */,
E37C48F62B9C5E1500E542D2 /* fr */,
E37C48F82B9C5E1700E542D2 /* de */,
E37C48FA2B9C5E1700E542D2 /* id */,
E37C48FC2B9C5E1800E542D2 /* ja */,
E37C48FE2B9C5E1800E542D2 /* pt-BR */,
E37C49002B9C5E1900E542D2 /* ru */,
E37C49022B9C5E1900E542D2 /* es */,
);
name = StatusWidget.intentdefinition;
sourceTree = "<group>";
};
E3DB67EB2A31FE200027B8CB /* LaunchScreen.storyboard */ = {
isa = PBXVariantGroup;
children = (
E3DB67EC2A31FE200027B8CB /* Base */,
E3D26BC32B99637900D83425 /* zh-Hant */,
E3D26BC52B99637F00D83425 /* fr */,
E3D26BC72B99639800D83425 /* ru */,
E3D26BC92B9963A600D83425 /* es */,
E3D26BCB2B9963AC00D83425 /* de */,
E3D26BCD2B9963BC00D83425 /* pt-BR */,
E3D26BCF2B9963CE00D83425 /* id */,
E3D26BD12B9963E100D83425 /* zh-Hans */,
E3D26BD32B9966EC00D83425 /* ja */,
); );
name = LaunchScreen.storyboard; name = LaunchScreen.storyboard;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -304,6 +635,7 @@
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO; ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++"; CLANG_CXX_LIBRARY = "libc++";
@@ -341,7 +673,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 11.0; IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos; SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos; SUPPORTED_PLATFORMS = iphoneos;
@@ -354,17 +686,21 @@
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = { buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = 227; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = 923;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.227; MARKETING_VERSION = 1.0.923;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
@@ -377,6 +713,7 @@
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO; ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++"; CLANG_CXX_LIBRARY = "libc++";
@@ -420,7 +757,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 11.0; IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = YES; MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES; ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos; SDKROOT = iphoneos;
@@ -432,6 +769,7 @@
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO; ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++"; CLANG_CXX_LIBRARY = "libc++";
@@ -469,7 +807,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 11.0; IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos; SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos; SUPPORTED_PLATFORMS = iphoneos;
@@ -484,17 +822,21 @@
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
buildSettings = { buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = 227; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = 923;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.227; MARKETING_VERSION = 1.0.923;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
@@ -508,17 +850,21 @@
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = { buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = 227; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = 923;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.227; MARKETING_VERSION = 1.0.923;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
@@ -527,6 +873,234 @@
}; };
name = Release; name = Release;
}; };
E33A3E4B2A626DD0009744AB /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 923;
DEVELOPMENT_TEAM = BA88US33G6;
GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = StatusWidget/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = StatusWidget;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.0.923;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
E33A3E4C2A626DD0009744AB /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 923;
DEVELOPMENT_TEAM = BA88US33G6;
GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = StatusWidget/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = StatusWidget;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.0.923;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
E33A3E4D2A626DD0009744AB /* Profile */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 923;
DEVELOPMENT_TEAM = BA88US33G6;
GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = StatusWidget/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = StatusWidget;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.0.923;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Profile;
};
E39515D62AB5AD64003602C1 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 923;
DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_PREVIEWS = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown";
INFOPLIST_KEY_WKCompanionAppBundleIdentifier = com.lollipopkit.toolbox;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0.923;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd;
PRODUCT_NAME = ServerBox;
SDKROOT = watchos;
SKIP_INSTALL = YES;
SUPPORTED_PLATFORMS = "watchsimulator watchos";
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 4;
WATCHOS_DEPLOYMENT_TARGET = 7.0;
};
name = Debug;
};
E39515D72AB5AD64003602C1 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 923;
DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_PREVIEWS = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown";
INFOPLIST_KEY_WKCompanionAppBundleIdentifier = com.lollipopkit.toolbox;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0.923;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd;
PRODUCT_NAME = ServerBox;
SDKROOT = watchos;
SKIP_INSTALL = YES;
SUPPORTED_PLATFORMS = "watchsimulator watchos";
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 4;
WATCHOS_DEPLOYMENT_TARGET = 7.0;
};
name = Release;
};
E39515D82AB5AD64003602C1 /* Profile */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 923;
DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_PREVIEWS = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown";
INFOPLIST_KEY_WKCompanionAppBundleIdentifier = com.lollipopkit.toolbox;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0.923;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd;
PRODUCT_NAME = ServerBox;
SDKROOT = watchos;
SKIP_INSTALL = YES;
SUPPORTED_PLATFORMS = "watchsimulator watchos";
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 4;
WATCHOS_DEPLOYMENT_TARGET = 7.0;
};
name = Profile;
};
/* End XCBuildConfiguration section */ /* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */ /* Begin XCConfigurationList section */
@@ -550,6 +1124,26 @@
defaultConfigurationIsVisible = 0; defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release; defaultConfigurationName = Release;
}; };
E33A3E4E2A626DD0009744AB /* Build configuration list for PBXNativeTarget "StatusWidgetExtension" */ = {
isa = XCConfigurationList;
buildConfigurations = (
E33A3E4B2A626DD0009744AB /* Debug */,
E33A3E4C2A626DD0009744AB /* Release */,
E33A3E4D2A626DD0009744AB /* Profile */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
E39515D92AB5AD64003602C1 /* Build configuration list for PBXNativeTarget "WatchApp" */ = {
isa = XCConfigurationList;
buildConfigurations = (
E39515D62AB5AD64003602C1 /* Debug */,
E39515D72AB5AD64003602C1 /* Release */,
E39515D82AB5AD64003602C1 /* Profile */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */ /* End XCConfigurationList section */
}; };
rootObject = 97C146E61CF9000F007C117D /* Project object */; rootObject = 97C146E61CF9000F007C117D /* Project object */;

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1300" LastUpgradeVersion = "1510"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"
@@ -27,8 +27,6 @@
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"> shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<MacroExpansion> <MacroExpansion>
<BuildableReference <BuildableReference
BuildableIdentifier = "primary" BuildableIdentifier = "primary"
@@ -38,8 +36,8 @@
ReferencedContainer = "container:Runner.xcodeproj"> ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference> </BuildableReference>
</MacroExpansion> </MacroExpansion>
<AdditionalOptions> <Testables>
</AdditionalOptions> </Testables>
</TestAction> </TestAction>
<LaunchAction <LaunchAction
buildConfiguration = "Debug" buildConfiguration = "Debug"
@@ -61,8 +59,6 @@
ReferencedContainer = "container:Runner.xcodeproj"> ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference> </BuildableReference>
</BuildableProductRunnable> </BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction> </LaunchAction>
<ProfileAction <ProfileAction
buildConfiguration = "Profile" buildConfiguration = "Profile"

View File

@@ -0,0 +1,113 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1430"
wasCreatedForAppExtension = "YES"
version = "2.0">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "E33A3E342A626DCD009744AB"
BuildableName = "StatusWidgetExtension.appex"
BlueprintName = "StatusWidgetExtension"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
shouldAutocreateTestPlan = "YES">
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = ""
selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
launchStyle = "0"
askForAppToLaunch = "Yes"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES"
launchAutomaticallySubstyle = "2">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<EnvironmentVariables>
<EnvironmentVariable
key = "_XCWidgetKind"
value = ""
isEnabled = "NO">
</EnvironmentVariable>
<EnvironmentVariable
key = "_XCWidgetDefaultView"
value = "timeline"
isEnabled = "NO">
</EnvironmentVariable>
<EnvironmentVariable
key = "_XCWidgetFamily"
value = "medium"
isEnabled = "NO">
</EnvironmentVariable>
</EnvironmentVariables>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES"
askForAppToLaunch = "Yes"
launchAutomaticallySubstyle = "2">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@@ -0,0 +1,91 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1430"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "E39515C62AB5AD62003602C1"
BuildableName = "ServerBox.app"
BlueprintName = "WatchApp"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
shouldAutocreateTestPlan = "YES">
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "E39515C62AB5AD62003602C1"
BuildableName = "ServerBox.app"
BlueprintName = "WatchApp"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "E39515C62AB5AD62003602C1"
BuildableName = "ServerBox.app"
BlueprintName = "WatchApp"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@@ -1,13 +1,33 @@
import UIKit import UIKit
import WidgetKit
import Flutter import Flutter
@UIApplicationMain @UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate { @objc class AppDelegate: FlutterAppDelegate {
override func application( override func application(
_ application: UIApplication, _ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool { ) -> Bool {
GeneratedPluginRegistrant.register(with: self) GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
} let controller : FlutterViewController = window?.rootViewController as! FlutterViewController
let methodChannel = FlutterMethodChannel(name: "tech.lolli.toolbox/home_widget", binaryMessenger: controller.binaryMessenger)
methodChannel.setMethodCallHandler({(call: FlutterMethodCall, result: @escaping FlutterResult) -> Void in
if call.method == "update" {
if #available(iOS 14.0, *) {
WidgetCenter.shared.reloadTimelines(ofKind: "StatusWidget")
}
}
})
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
override func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
if url.scheme == "https" || url.scheme == "http" {
UIApplication.shared.open(url)
} else {
// Pass
}
return true
}
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Some files were not shown because too many files have changed in this diff Show More