mirror of
https://github.com/tachiyomiorg/tachiyomi-extensions-inspector.git
synced 2025-02-04 11:26:22 +01:00
Tray Icon
This commit is contained in:
parent
61aee2e784
commit
98bd664ab6
@ -81,6 +81,10 @@ dependencies {
|
||||
implementation ("org.jetbrains.exposed:exposed-jdbc:$exposed_version")
|
||||
implementation ("com.h2database:h2:1.4.199")
|
||||
|
||||
// tray icon
|
||||
implementation("com.dorkbox:SystemTray:3.17")
|
||||
|
||||
|
||||
|
||||
// AndroidCompat
|
||||
implementation(project(":AndroidCompat"))
|
||||
|
@ -18,10 +18,12 @@ import ir.armor.tachidesk.util.getSource
|
||||
import ir.armor.tachidesk.util.getSourceList
|
||||
import ir.armor.tachidesk.util.getThumbnail
|
||||
import ir.armor.tachidesk.util.installAPK
|
||||
import ir.armor.tachidesk.util.openInBrowser
|
||||
import ir.armor.tachidesk.util.removeExtension
|
||||
import ir.armor.tachidesk.util.sourceFilters
|
||||
import ir.armor.tachidesk.util.sourceGlobalSearch
|
||||
import ir.armor.tachidesk.util.sourceSearch
|
||||
import ir.armor.tachidesk.util.systemTray
|
||||
import org.kodein.di.DI
|
||||
import org.kodein.di.conf.global
|
||||
import xyz.nulldev.androidcompat.AndroidCompat
|
||||
@ -48,6 +50,7 @@ class Main {
|
||||
|
||||
// make sure everything we need exists
|
||||
applicationSetup()
|
||||
val tray = systemTray()
|
||||
|
||||
registerConfigModules()
|
||||
|
||||
@ -58,17 +61,22 @@ class Main {
|
||||
// start app
|
||||
androidCompat.startApp(App())
|
||||
|
||||
// Thread(getMangaUpdateQueueThread).start()
|
||||
var hasWebUiBundled: Boolean = false
|
||||
|
||||
val app = Javalin.create { config ->
|
||||
try {
|
||||
this::class.java.classLoader.getResource("/react/index.html")
|
||||
hasWebUiBundled = true
|
||||
config.addStaticFiles("/react")
|
||||
config.addSinglePageRoot("/", "/react/index.html")
|
||||
} catch (e: RuntimeException) {
|
||||
println("Warning: react build files are missing.")
|
||||
hasWebUiBundled = false
|
||||
}
|
||||
}.start(4567)
|
||||
if (hasWebUiBundled) {
|
||||
openInBrowser()
|
||||
}
|
||||
|
||||
app.before() { ctx ->
|
||||
// allow the client which is running on another port
|
||||
|
@ -4,9 +4,17 @@ package ir.armor.tachidesk.util
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
import dorkbox.systemTray.MenuItem
|
||||
import dorkbox.systemTray.SystemTray
|
||||
import dorkbox.systemTray.SystemTray.TrayType
|
||||
import dorkbox.util.CacheUtil
|
||||
import dorkbox.util.Desktop
|
||||
import ir.armor.tachidesk.Config
|
||||
import ir.armor.tachidesk.Main
|
||||
import ir.armor.tachidesk.database.makeDataBaseTables
|
||||
import java.awt.event.ActionListener
|
||||
import java.io.File
|
||||
import java.io.IOException
|
||||
|
||||
fun applicationSetup() {
|
||||
// make dirs we need
|
||||
@ -17,3 +25,47 @@ fun applicationSetup() {
|
||||
|
||||
makeDataBaseTables()
|
||||
}
|
||||
|
||||
fun openInBrowser() {
|
||||
Desktop.browseURL("http://127.0.0.1:4567")
|
||||
}
|
||||
|
||||
val icon = Main::class.java.getResource("/icon/icon_round.png")
|
||||
|
||||
fun systemTray(): SystemTray? {
|
||||
// ref: https://github.com/dorkbox/SystemTray/blob/master/test/dorkbox/TestTray.java
|
||||
SystemTray.DEBUG = true; // for test apps, we always want to run in debug mode
|
||||
if (System.getProperty("os.name").startsWith("Windows"))
|
||||
SystemTray.FORCE_TRAY_TYPE = TrayType.Swing
|
||||
|
||||
CacheUtil.clear()
|
||||
|
||||
val systemTray = SystemTray.get() ?: return null
|
||||
val mainMenu = systemTray.menu
|
||||
|
||||
mainMenu.add(
|
||||
MenuItem(
|
||||
"Open Tachidesk",
|
||||
ActionListener {
|
||||
try {
|
||||
Desktop.browseURL("http://127.0.0.1:4567")
|
||||
} catch (e1: IOException) {
|
||||
e1.printStackTrace()
|
||||
}
|
||||
}
|
||||
)
|
||||
)
|
||||
|
||||
// systemTray.setTooltip("Tachidesk")
|
||||
systemTray.setImage(icon)
|
||||
// systemTray.status = "No Mail"
|
||||
|
||||
systemTray.getMenu().add(
|
||||
MenuItem("Quit") {
|
||||
systemTray.shutdown()
|
||||
System.exit(0)
|
||||
}
|
||||
)
|
||||
|
||||
return systemTray
|
||||
}
|
||||
|
BIN
server/src/main/resources/icon/icon_round.png
Normal file
BIN
server/src/main/resources/icon/icon_round.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
Loading…
x
Reference in New Issue
Block a user