Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
484 commits
Select commit Hold shift + click to select a range
c08f910
WindowsSdkBinPath
abakum Jan 18, 2026
5887cc0
password
abakum Jan 18, 2026
2cd36c1
WindowsSdkBinPath
abakum Jan 18, 2026
a70d52e
appx
abakum Jan 18, 2026
7e94830
abakum/tools
abakum Jan 18, 2026
d5fb6d6
SUBJECT
abakum Jan 18, 2026
c25ba3f
jsign
abakum Jan 19, 2026
bbe85f6
Jsign
abakum Jan 19, 2026
c480674
jsign-7.4
abakum Jan 19, 2026
d9b5351
error
abakum Jan 19, 2026
1a84f84
croc.cer
abakum Jan 19, 2026
b2505b5
build-windows
abakum Jan 19, 2026
8d16fa9
autoRemoveFromRecents, Website, Source, -setAction, GoBack
abakum Jan 20, 2026
451cd29
Merge branch 'master' of https://github.com/abakum/crocgui
abakum Jan 20, 2026
13a2bb0
FolderOpenIcon, -GoBack
abakum Jan 20, 2026
7e6edae
busy
abakum Jan 20, 2026
0278ed1
macos-15-intel
abakum Jan 20, 2026
af30cba
-cp
abakum Jan 20, 2026
db830e4
Development
abakum Jan 20, 2026
505fc14
cer.js
abakum Jan 21, 2026
3a417b0
croc.ps1
abakum Jan 21, 2026
9170f23
certutil -addstore -f TrustedPeople
abakum Jan 21, 2026
a896976
cert
abakum Jan 22, 2026
143f985
invite
abakum Jan 22, 2026
39a1050
abakum.github.io
abakum Jan 22, 2026
42ab21e
fromURI, toURI
abakum Jan 22, 2026
980a46b
1.11.40, pathPattern, showQR, fromClipboard
abakum Jan 23, 2026
7035dd5
setupButton, openAppSettings, locale
abakum Jan 23, 2026
85dc23a
appInfo, SCAN_QR_CODE, binaryEye, -clearIntent, -ctxHandle, openAppSe…
abakum Jan 25, 2026
d8068dd
setClipboard, OpenURL, qrButton
abakum Jan 26, 2026
5290810
INTENT FLAGS
abakum Jan 26, 2026
7257e4e
appInfo, openAppSettings, split JNI, parse doc, IsTaskRoot
abakum Jan 27, 2026
08d7f8e
appInfo, scanner, openIntent, -IsTaskRoot
abakum Jan 27, 2026
d5289b9
appInfo, scanner, FLAG_ACTIVITY, link.OnTapped, Intent
abakum Jan 28, 2026
05d9245
AndroidManifest, scanner
abakum Jan 28, 2026
0a7b971
showQR, cbButton
abakum Jan 29, 2026
e05c886
showQR
abakum Jan 29, 2026
295a9ab
showQR, reload
abakum Jan 30, 2026
81976a4
tempDir, SEND, RECV, reload
abakum Jan 30, 2026
f41f5c2
a.OpenURL
abakum Jan 30, 2026
25b7e5e
idActions, NON_BROWSER, BROWSER, treeButton
abakum Jan 31, 2026
f604f94
mark.via.gp, showQR, BROWSER,
abakum Feb 1, 2026
b2fc0b2
showQR, makeQR, setClipboard
abakum Feb 2, 2026
f43c144
makeQR, makeScannerSettings, makeQRInstructions, asMobile, cbButton
abakum Feb 3, 2026
9b5121e
defaultQR
abakum Feb 3, 2026
e6e26ab
secretButton, NewQR, OnSelectedReload
abakum Feb 4, 2026
9bb8d3c
-showQR, makeQRInstructions, -scanner, cbButton, settingsTabItem, locale
abakum Feb 4, 2026
ad6f5c3
newFileSave, ShowFileOpen, ShowFolderOpen, ShowFileSave
abakum Feb 4, 2026
738478e
ShowFolderOpen, ShowFileOpen, newFileSave
abakum Feb 5, 2026
34406fa
refreshWindow, showPage
abakum Feb 5, 2026
ccedd8c
u.Scheme() == "file", showTextDialog, validHash, <-textFromIntent, ad…
abakum Feb 6, 2026
42326a2
NewQR, showTextDialog, addEntry
abakum Feb 6, 2026
34db773
wrapButton, davServer, hostSelectOptions, treeOff, SetOnEnteredForegr…
abakum Feb 8, 2026
60c585f
tree.go
abakum Feb 9, 2026
6a2d0a1
-treeButton in recv, webdav-host, webdav-port
abakum Feb 9, 2026
df2216e
fyne.io/x/fyne, scRefresh, davControl
abakum Feb 10, 2026
8917a8c
ContentCopyIcon
abakum Feb 12, 2026
dc40720
dialogFileSave, fileSave
abakum Feb 12, 2026
1ace00e
webdavlink.go
abakum Feb 13, 2026
cbaf79a
virtual, isVirtual, isVirtualPath
abakum Feb 13, 2026
49bf397
-comment, Start, OpenURL, WAKE_LOCK, caffeinate, SleepAllowed, NewLaz…
abakum Feb 15, 2026
712c1db
OpenURL, useDav, cleanups, sCheck, link.OnTapped, GenerateTLSConfig
abakum Feb 15, 2026
6266445
ServeHTTP, serveDirectoryListing
abakum Feb 15, 2026
682ef0f
serveDirectoryListing, formatSize, generateBreadcrumbs, WebDAVWithDir…
abakum Feb 16, 2026
3c32f0e
OpenURL, generateBreadcrumbs,
abakum Feb 17, 2026
63d3d4e
updateLink
abakum Feb 18, 2026
88308be
OpenDAV, netUse, Start, WebDAVServer, prepareTLSConfig, generateTLSCo…
abakum Feb 18, 2026
01f0e67
OpenDAV
abakum Feb 18, 2026
730897a
caffeinate_android.go, caffeinate_ios.go, serveDirectoryListing
abakum Feb 18, 2026
c95626a
unix
abakum Feb 19, 2026
f608c34
darwin
abakum Feb 19, 2026
17ce5ec
CanCreateSymlinks
abakum Feb 19, 2026
5691c03
data android:scheme="XdavY", isDAV, OpenDAV, recv.cbButton
abakum Feb 20, 2026
6382407
detectMimeType
abakum Feb 20, 2026
8b22bbc
index, webdav
abakum Feb 21, 2026
098098e
netUse, OpenDAV, link.OnTapped
abakum Feb 22, 2026
b9bfead
webdav, proxy
abakum Feb 22, 2026
ad565fc
proxy.go, davControl.Hidden, WebDAVServer, Stop,
abakum Feb 23, 2026
1829106
executeAll, EnableProxy, recv.go, Conns
abakum Feb 24, 2026
844bde2
CrocProxy, NewCrocProxy, message.Send, senderReceiveLoop, receiverRec…
abakum Feb 24, 2026
294d290
proxy.go, NoMultiplexing, createLocalHandler, createFileSystem
abakum Feb 25, 2026
6494331
defAddress, receiverReceiveLoop, Step1ChannelSecured, link.OnTapped
abakum Feb 26, 2026
1852aac
defWeb, ft.OnSelected
abakum Feb 26, 2026
64632c6
onProxyStateChanged, SetProxyStateChangeCallback, remote
abakum Feb 26, 2026
ba5d1bb
SetProxyStateChangeCallback, audio/flac, Header
abakum Feb 27, 2026
be675aa
refactor(proxy): improve receive loops and fix Destination header
abakum Feb 27, 2026
51cf0c6
fix: disable multiplexing with active WebDAV to avoid port conflicts
abakum Feb 28, 2026
dd2dbdb
tcp_proxy.go
abakum Feb 28, 2026
bbb950e
refactor: replace HTTP proxy with binary stream proxy for improved pe…
abakum Feb 28, 2026
994d9bf
fix(proxy): close reader and remove from pending on error
abakum Mar 1, 2026
a302413
refactor(proxy): implement streaming request body handling
abakum Mar 2, 2026
4da914a
RestartStreamProxy
abakum Mar 2, 2026
5a5f7f6
croc_proxy.go
abakum Mar 2, 2026
5459119
take 2
abakum Mar 2, 2026
ba566d3
take 3
abakum Mar 2, 2026
0f06ad3
feat(proxy): process request body concurrently with handler
abakum Mar 2, 2026
4e15602
tcp_forwarder.go
abakum Mar 2, 2026
c54b7ae
take4
abakum Mar 3, 2026
d52cd1e
ForwardConnection, handleReceiverMessage, sendMessage
abakum Mar 3, 2026
76de67f
-proxy.go, -croc_proxy.go,
abakum Mar 3, 2026
043af35
chlose, DisableTCPForwarding
abakum Mar 3, 2026
a44c128
perf(tcp): optimize tcp forwarding buffers and logic
abakum Mar 3, 2026
3753136
caffeinate, findRunningInhibitor, createNewInhibitor, acceptLocalConn…
abakum Mar 4, 2026
5aa9ceb
DetectPathTraversal, ServeHTTP, sanitizePath
abakum Mar 4, 2026
4f7b8f9
ForwardBufferSize, sendMessage, decodeMessage, Readlink, -ForwardTime…
abakum Mar 4, 2026
4a2c618
level5 priority
abakum Mar 4, 2026
0b0fa3b
refactor: separate reader and processor in tcp forwarder
abakum Mar 4, 2026
b648ed4
conns[1] for data
abakum Mar 6, 2026
cf543a8
feat(tcp): add pending connection buffer handling
abakum Mar 6, 2026
3ff7a33
feat: add Android foreground service and update version
abakum Mar 7, 2026
83ccd33
webdavclient.go
abakum Mar 8, 2026
653d5d5
refactor: simplify file tree creation in send.go
abakum Mar 9, 2026
0ff2e6a
keep CPU cool
abakum Mar 10, 2026
1143aa5
feat: improve error feedback on send and receive actions
abakum Mar 10, 2026
37e6a5c
fix: improve WebDAV support and button visibility logic
abakum Mar 12, 2026
ac972f9
Stop, treeButton, reDir
abakum Mar 13, 2026
a29c4aa
*WebDAVFileTree.Refresh, treeButton
abakum Mar 13, 2026
6f6e059
fix(webdav): prevent unnecessary tree refresh on non-send tabs
abakum Mar 13, 2026
fa53193
perf: load WebDAV tree asynchronously to prevent UI freeze
abakum Mar 13, 2026
5116f10
refactor: simplify WebDAV tree creation and handling
abakum Mar 14, 2026
0992248
feat: sort file tree to display folders before files
abakum Mar 14, 2026
6514b4a
refactor: replace FileTree with WebDAVTree for consistency
abakum Mar 14, 2026
e4d76d7
feat(webdav): auto-expand tree branches on refresh
abakum Mar 14, 2026
e4536f3
feat(webdav): sort directories before files alphabetically
abakum Mar 14, 2026
65cc640
chore: disable WebDAV debug logs
abakum Mar 14, 2026
bdef789
fix: refresh UI widget on Android and foreground events
abakum Mar 14, 2026
8b78bbe
refactor(send): use doMonitor for WebDAV UI updates
abakum Mar 15, 2026
fc50447
refactor: rename DoRequest to Bounce and fix variable shadowing
abakum Mar 15, 2026
c6941e9
fix(send): update forwarding address before server start check
abakum Mar 15, 2026
5dfe33f
fix: improve WebDAV remote handling and UI updates
abakum Mar 15, 2026
14966c2
switchToWebDAVTree, scRefresh, treeOff,
abakum Mar 16, 2026
5e131d1
Update AndroidManifest.xml
abakum Mar 16, 2026
f295ee6
Update FyneApp.toml
abakum Mar 16, 2026
38f5156
Upgrade Fyne framework to v2.7.3
abakum Mar 17, 2026
e9403dc
refactor: replace done channel with context.Context
abakum Mar 17, 2026
c9c0ca1
feat(android): enable autoVerify for app link handling
abakum Mar 17, 2026
152877c
feat(http): add in-memory chat with API and UI
abakum Mar 26, 2026
1a7958c
feat: add video call button and routing to WebDAV chat
abakum Mar 30, 2026
0c30af0
feat: add incoming call answer button and handle room conflicts
abakum Mar 30, 2026
31219b8
feat(ui): enhance chat call links
abakum Mar 31, 2026
e280b5b
feat(ui): replace tap hint with remote video controls
abakum Mar 31, 2026
e96a0ad
fix(ui): improve mobile controls and remove auto-fullscreen
abakum Mar 31, 2026
a7f35e6
feat(videocall): add codec negotiation and resolution tracking
abakum Mar 31, 2026
d730004
feat: add persistent chat user ID and re-enable diagnostic logging
abakum Apr 1, 2026
1e56225
feat(videocall): add WebSocket transport for real-time chunk delivery
abakum Apr 1, 2026
3746f85
refactor(video): remove HTTP chunk fallback and update UI
abakum Apr 1, 2026
803940e
feat(videocall): add peer desired resolution negotiation
abakum Apr 2, 2026
42f2961
chore: bump versions and update videocall UI
abakum Apr 2, 2026
40278a5
fix(videocall): use flexbox to equalize button widths
abakum Apr 2, 2026
d57b3ee
chore: refine video call pip controls
abakum Apr 2, 2026
ddb3558
feat: restrict HTTP endpoints to local requests only
abakum Apr 3, 2026
0984e5f
perf: reduce video latency and buffer thresholds
abakum Apr 3, 2026
1034ecb
fix(videocall): remove call wait timeout and enhance PiP controls
abakum Apr 3, 2026
570f5f1
feat(chat): add incremental message loading and auto-open
abakum Apr 3, 2026
b114548
feat: migrate chat from HTTP polling to WebSocket
abakum Apr 5, 2026
8545b5e
feat: separate play and record codecs in video calls
abakum Apr 6, 2026
e05a668
Refactor: move codec negotiation from HTTP to WebSocket
abakum Apr 6, 2026
8f72102
feat(videocall): add resolution labels and fps constraints
abakum Apr 6, 2026
ec064b5
feat: add zoom/fit controls and refactor PiP layout
abakum Apr 7, 2026
61f90c8
feat: implement clipboard fallback for browser QR scanners
abakum Apr 7, 2026
23f69b4
Replace fit and fullscreen button symbols in videocall.html with stan…
abakum Apr 7, 2026
9988361
refactor(send): make browser scanner clipboard check synchronous
abakum Apr 8, 2026
480bce8
feat(deps): add pion/mediadevices and libvpx
abakum Apr 8, 2026
4caf310
ci(windows): refactor vcpkg paths and add PKG_CONFIG_PATH
abakum Apr 8, 2026
38c7a36
ci(windows): switch libvpx vcpkg triplet to mingw-static
abakum Apr 8, 2026
11bebf3
ci(windows): add static linking for libgcc and libstdc++
abakum Apr 8, 2026
847a1f7
ci(windows): update CGO_LDFLAGS to use -static flag
abakum Apr 9, 2026
20408ba
feat: add windows snapshot build and fix media sender
abakum Apr 9, 2026
8557548
fix: use #1 hash as default, move Go Sender btn to PiP corner
abakum Apr 9, 2026
84e62c4
feat: persist local hash routing and handle Go media toggles
abakum Apr 10, 2026
d64cf17
videocall: hangup on critical MSE errors, remove dead recovery code
abakum Apr 13, 2026
a7732f7
videocall: hangup on critical MSE errors, remove dead recovery code
abakum Apr 15, 2026
e132352
fix(http.go): use role-based sessionStorage for chat to fix message a…
abakum Apr 15, 2026
8442d3a
videocall: reload-based camera switch + fix peer disconnect notification
abakum Apr 15, 2026
37376cb
vc5
abakum Apr 17, 2026
6618532
vc5.html
abakum Apr 17, 2026
5cd80b7
plans/videocall-protocol.md
abakum Apr 17, 2026
0ea4aed
Fix camera aspect ratio: use native track settings instead of peer di…
abakum Apr 17, 2026
c6830ff
perf(media-recorder): add frame buffer pool to reduce GC pressure, bu…
abakum Apr 18, 2026
b3a1cef
perf(videocall): Optimize MSE queue performance
abakum Apr 18, 2026
faee9e8
chore: Refactor videocall frame rate handling
abakum Apr 18, 2026
2978c17
Fix directory creation for croc send
abakum Apr 19, 2026
e039058
vc8.html
abakum Apr 19, 2026
47861bc
refactor: remove Go MediaRecorder, hash-based routing (#1/#2) and lib…
abakum Apr 20, 2026
ec70f85
refactor: linear playback rate control and latency optimizations
abakum Apr 20, 2026
576d58a
insecure HTTP for WebDAV/polling, adaptive playback tuning, cancellab…
abakum Apr 22, 2026
c3eee1d
label
abakum Apr 22, 2026
cf68131
refactor(video): replace linear catch-up with 3-zone rate
abakum Apr 22, 2026
88b8dfc
fix(videocall): reposition resolution labels independently of controls
abakum Apr 23, 2026
4303e4a
feat(videocall): dynamic PiP sizing based on video aspect ratio
abakum Apr 23, 2026
9678944
feat(videocall): add screen sharing toggle with camera fallback
abakum Apr 23, 2026
af71d84
feat(videocall): add video recording via File System Access API
abakum Apr 23, 2026
af8d484
feat(videocall): replace pip move controls with peer recording
abakum Apr 23, 2026
7b1df79
feat(videocall): refactor pip controls and add camera flip button
abakum Apr 23, 2026
3183400
feat(videocall): add pending recording state and refine control styles
abakum Apr 24, 2026
1c25545
fix(videocall): set PIP min-width to 120px and use object-fit contain
abakum Apr 24, 2026
065c9d0
feat(ui): increase button sizes and improve mobile touch targets
abakum Apr 24, 2026
a527879
vc11
abakum Apr 25, 2026
8640c48
feat(videocall): Update protocol docs, UI controls
abakum Apr 26, 2026
9457824
feat(videocall): Add peer codec privacy controls & improve playback s…
abakum Apr 27, 2026
bc8a470
fix: use external videocall.html only if newer, adjust UI offsets
abakum Apr 27, 2026
0a4a33d
feat: generate deterministic self-signed TLS certs
abakum Apr 27, 2026
bc63336
Add mirror toggle for remote video, refactor camera acquisition
abakum Apr 27, 2026
538e8d3
fix(videocall): disable PiP, keep camera active on share, update fit …
abakum Apr 28, 2026
11ab05c
refactor(videocall): use CSS mirror transform, combine media capture
abakum Apr 28, 2026
2124df8
chore: remove unused video call variables
abakum Apr 28, 2026
fac6cad
fix: remove WebSocket reconnection logic and hangup on close
abakum Apr 29, 2026
2228441
feat: adaptive video catch-up BUST threshold using chunk statistics
abakum Apr 30, 2026
49faba2
feat(videocall): add adaptive BUST/SLOMO debug controls and settings
abakum Apr 30, 2026
8de0bfd
feat(videocall): use OPFS for recording instead of showSaveFilePicker
abakum Apr 30, 2026
3d05a51
chore: bump version to 1.11.54
abakum Apr 30, 2026
84cd717
feat(videocall): add camera selection for desktop
abakum May 1, 2026
93159cc
feat: improve camera resolution handling and toggle behavior
abakum May 1, 2026
8816bd2
optimize video buffer settings
abakum May 1, 2026
af9b3ef
TARGET_FPS = 15
abakum May 2, 2026
e92122b
go 1.24.13
abakum May 2, 2026
52a4ef5
feat(videocall): optimize adaptive bitrate and EWMA caching
abakum May 3, 2026
0705a51
videocall: improve MSE restart reliability and tune adaptive playback
abakum May 4, 2026
b48d6e3
-HYST
abakum May 4, 2026
5ebe303
refactor(ui): update resolution presets to standardized MPX groups
abakum May 5, 2026
43b02e9
feat(videocall): dynamic keyframe interval and allow mic during scree…
abakum May 5, 2026
0d00cf6
feat: add aspect ratio toggle and simplify keyframe logic
abakum May 6, 2026
c85e2c5
feat: add screenshot functionality in fullscreen mode
abakum May 6, 2026
aeca4a6
feat(videocall): add screenshot frame mode in fullscreen
abakum May 6, 2026
d9867ec
feat: add portrait aspect ratio support for fit modes and frames
abakum May 6, 2026
5bb715c
feat: upload screenshots and peer recordings to WebDAV
abakum May 7, 2026
f494d53
doRateControl
abakum May 8, 2026
67cf432
feat(webdav): refactor recording to server, add file link, update cha…
abakum May 9, 2026
5f35c92
refactor(adaptive): remove ewma cache, reset on mpx change and tab vi…
abakum May 9, 2026
fa0f1d9
feat: add VPX/AVC profile selection and codec cycling
abakum May 9, 2026
ca35582
fix(videocall): use actual video dimensions for local resolution label
abakum May 9, 2026
e18fc08
chore: add diagnostic logging for remote and local video resize events
abakum May 9, 2026
0ebf2ef
fix(videocall): improve resolution accuracy and screen sharing scaling
abakum May 10, 2026
6cbab59
refactor: replace flip camera button with device index display
abakum May 10, 2026
cf3eade
feat(videocall): add screen audio capture button and reposition toolbar
abakum May 10, 2026
5bd1e04
feat: add stereo mixing for mic and screen audio in video calls
abakum May 10, 2026
e1afe18
fix(call): ensure stereo screen audio playback when mic is off
abakum May 11, 2026
534f822
fix: debounce directory listing page reload on visibility/focus events
abakum May 11, 2026
f491abf
refactor: embed directory listing and chat HTML templates
abakum May 11, 2026
8795c1a
feat(videocall): add background remux for recording files to ensure p…
abakum May 11, 2026
e1aaa2c
feat: add relay profile management and remove password/socks5/connect…
abakum May 12, 2026
e4c6421
chore(deps): update Go version to 1.25.0 and various dependencies
abakum May 13, 2026
1c001f2
fix: correct croc dependency repository owner name in CI workflow
abakum May 13, 2026
e2a2f90
feat: add Makefile targets for fork management
abakum May 13, 2026
5af9776
chore: update dependencies to forks
abakum May 13, 2026
57c1e48
feat: add relay target to update croc service binary
abakum May 13, 2026
d2d6ea3
chore: show service status after restart in relay target
abakum May 13, 2026
00f9597
feat: add MIME type support for .mov files in WebDAV handler
abakum May 13, 2026
39ef138
chore(deps): update Fyne to v2.7.4 and bump version numbers
abakum May 14, 2026
29447b5
ci: disable direct dependency checkouts in workflows
abakum May 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
898 changes: 898 additions & 0 deletions .github/workflows/fyne.yml

Large diffs are not rendered by default.

50 changes: 50 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Binaries
*.exe~
*.dll
*.so
*.dylib
/bin/
/*.app/
/*.apk
/*.exe
/*.deb
/*.xz

# Test binary
*.test

# Output of the go coverage tool
*.out

# Dependency directories
vendor/
/go.mod
/go.sum

# IDE specific files
.idea/
.vscode/
*.swp
*.swo

# OS generated files
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

# Debug files
debug
*.log

# Temp files
*.tmp
*.temp
*.bak
/tmp/
*.jks
/*.idsig
*.p12
7 changes: 7 additions & 0 deletions .roo/mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"mcpServers": {
"code-index": {
"command": "/home/koka/go/bin/code-index-mcp"
}
}
}
127 changes: 107 additions & 20 deletions AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,24 +1,111 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.github.howeyc.crocgui"
android:versionCode="40"
android:versionName="1.11.5">

<application android:label="Croc">
<activity android:name="org.golang.app.GoNativeActivity"
android:label="Croc"
android:configChanges="orientation|keyboardHidden|uiMode"
android:theme="@android:style/Theme">
<meta-data android:name="android.app.lib_name" android:value="croc" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
android:versionCode="1927"
android:versionName="1.11.56"
package="com.github.howeyc.crocgui">

<!--
<uses-sdk
android:minSdkVersion="23"
android:targetSdkVersion="35" />
-->

<application
android:label="Croc">

<activity
android:name="org.golang.app.GoNativeActivity"
android:exported="true"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout|uiMode"
android:label="Croc"
android:launchMode="singleTop"
android:theme="@android:style/Theme.Light">

<meta-data
android:name="android.app.lib_name"
android:value="croc" />

<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="file" />
<data android:scheme="content" />
<data android:mimeType="*/*" />
</intent-filter>

<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https"
android:host="abakum.github.io"
android:pathPattern="/croc.*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="dav" />
<data android:scheme="davs" />
<data android:scheme="webdav" />
<data android:scheme="webdavs" />
</intent-filter>

<intent-filter>
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>
</activity>

</application>

<queries>
<intent>
<action android:name="android.intent.action.GET_CONTENT" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.OPENABLE" />
<data android:mimeType="*/*" />
</intent>

<intent>
<action android:name="android.intent.action.OPEN_DOCUMENT" />
<data android:mimeType="*/*" />
</intent>
<intent>
<action android:name="android.intent.action.CREATE_DOCUMENT" />
<data android:mimeType="*/*" />
</intent>
<intent>
<action android:name="android.intent.action.OPEN_DOCUMENT_TREE" />
</intent>
<intent>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" />
</intent>

<package android:name="com.android.chrome" />
<package android:name="mark.via.gp" />
<package android:name="com.sec.android.app.sbrowser" /> <!-- Samsung -->

<package android:name="com.opera.mini.native" />
<package android:name="com.microsoft.emmx" /> <!-- Microsoft Edge -->

<package android:name="org.mozilla.firefox" />
</queries>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_NETWORK" />
</manifest>
9 changes: 9 additions & 0 deletions DEBIAN/control
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Package: crocgui
Version: 1.11.32
Section: net
Priority: optional
Architecture: amd64
Maintainer: github.com/abakum
Depends: make, tar, libgl1-mesa-dev
Description: GUI for croc
Homepage: https://github.com/abakum/crocgui
56 changes: 56 additions & 0 deletions DEBIAN/postinst
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
#!/bin/bash
# Post-installation script for crocgui .deb package

set -e

echo "Running post-installation script..."

ACTION="$1"
OLD_VERSION="$2"

case "$ACTION" in
configure)
# First installation or reconfiguration
if [ -z "$OLD_VERSION" ]; then
echo "Configuring crocgui for first installation..."
else
echo "Reconfiguring crocgui (upgraded from $OLD_VERSION)..."
fi
;;

abort-upgrade|abort-remove|abort-deconfigure)
echo "Installation/upgrade was aborted, rolling back..."
exit 1
;;

*)
echo "Unknown action: '$ACTION'"
exit 0
;;
esac

# Extract and run installation from the included tar.xz
if [ -f "/usr/share/crocgui/crocgui.tar.xz" ]; then
echo "Installing crocgui files..."

# Create temporary directory
TEMP_DIR=$(mktemp -d)
trap "rm -rf $TEMP_DIR" EXIT

# Extract to temporary directory
tar -xf "/usr/share/crocgui/crocgui.tar.xz" -C "$TEMP_DIR"

# Run system installation
make -C "$TEMP_DIR" -f Makefile install

# Clean up
rm -rf "$TEMP_DIR"

echo "crocgui installation completed."
echo "Run it with: gtk-launch com.github.howeyc.crocgui"
else
echo "ERROR: crocgui.tar.xz not found in /usr/share/crocgui/"
exit 1
fi

echo "Post-installation script finished."
44 changes: 44 additions & 0 deletions DEBIAN/postrm
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#!/bin/bash
# Post-removal script for crocgui .deb package

set -e

echo "Running post-removal script..."

ACTION="$1"

case "$ACTION" in
purge)
# Package is being completely removed (including config files)
echo "Purging crocgui..."

# Get the home directory of the user running this script
if [ "$(id -u)" -eq 0 ]; then
# Running as root - use /root
HOME_DIR="/root"
else
# Running as regular user
HOME_DIR="$HOME"
fi

CONFIG_FILE="$HOME_DIR/.config/fyne/com.github.howeyc.crocgui/preferences.json"

if [ -f "$CONFIG_FILE" ]; then
echo "Removing: $CONFIG_FILE"
rm -f "$CONFIG_FILE"
else
echo "Config file not found: $CONFIG_FILE"
fi
;;

remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
# All other actions - DO NOT remove config files
echo "Action: $ACTION - keeping configuration files"
;;

*)
echo "Unknown action: '$ACTION'"
;;
esac

echo "Post-removal script finished."
55 changes: 55 additions & 0 deletions DEBIAN/prerm
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
#!/bin/bash
# Pre-removal script for crocgui .deb package

set -e

echo "Running pre-removal script..."

ACTION="$1"

case "$ACTION" in
remove)
# Package is being removed, but not purged
echo "Removing crocgui (keeping configuration)..."
;;
upgrade)
# Package is being upgraded to a new version
echo "Upgrading crocgui to new version..."
# We'll remove old files in prerm, new version will install in postinst
;;
deconfigure)
# Package's dependency is being removed but package will remain
echo "Deconfiguring crocgui due to dependency removal..."
;;
*)
echo "Unknown or no action specified: '$ACTION'"
exit 0 # Exit gracefully for unknown actions
;;
esac

# Only uninstall files if we're removing or upgrading
if [ "$ACTION" = "remove" ] || [ "$ACTION" = "upgrade" ] || [ "$ACTION" = "deconfigure" ]; then
echo "Uninstalling crocgui files..."

# Extract and run uninstallation from the included tar.xz
if [ -f "/usr/share/crocgui/crocgui.tar.xz" ]; then
# Create temporary directory
TEMP_DIR=$(mktemp -d)
trap "rm -rf $TEMP_DIR" EXIT

# Extract to temporary directory
tar -xf "/usr/share/crocgui/crocgui.tar.xz" -C "$TEMP_DIR"

# Run system uninstallation
make -C "$TEMP_DIR" -f Makefile uninstall 2>/dev/null || echo "Make uninstall completed (some warnings may be normal)"

# Clean up
rm -rf "$TEMP_DIR"

echo "crocgui files uninstalled."
else
echo "WARNING: crocgui.tar.xz not found."
fi
fi

echo "Pre-removal script finished."
16 changes: 16 additions & 0 deletions FyneApp.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
Website = "https://github.com/abakum/crocgui/releases"

[Details]
Icon = "Icon.png"
Name = "crocgui"
ID = "com.github.howeyc.crocgui"
Version = "1.11.56"
Build = 1928

[Source]
Repo = "https://github.com/abakum/crocgui"

[LinuxAndBSD]
GenericName = "GUI for croc"
Categories = ["FileTransfer"]
Comment = "A nice simple GUI for croc"
Loading