mirror of
https://gitlab.com/cc-ru/ocelot/ocelot-desktop.git
synced 2025-12-20 11:09:20 +01:00
Make Version object safer
This commit is contained in:
parent
a1eb9bbbda
commit
6c622446e8
@ -48,40 +48,53 @@ class UpdateCheckerDialog extends ModalDialog with Logging {
|
|||||||
OcelotOnlineAPI.checkRemoteVersion {
|
OcelotOnlineAPI.checkRemoteVersion {
|
||||||
case Success(version) =>
|
case Success(version) =>
|
||||||
setContainerChildren(ArraySeq.empty)
|
setContainerChildren(ArraySeq.empty)
|
||||||
container.children :+= new Label(s"Release: ${BuildInfo.version} ▸ ${version.releaseVersion.drop(1)}")
|
if (version.releaseVersion.isDefined) {
|
||||||
if (version.releaseVersion.drop(1) == BuildInfo.version) {
|
val newReleaseVersion = version.releaseVersion.get.drop(1)
|
||||||
|
container.children :+= new Label(s"Release: ${BuildInfo.version} ▸ ${newReleaseVersion}")
|
||||||
|
if (newReleaseVersion == BuildInfo.version) {
|
||||||
container.children :+= new PaddingBox(new Label("Up to date!", small = true), Padding2D(6))
|
container.children :+= new PaddingBox(new Label("Up to date!", small = true), Padding2D(6))
|
||||||
} else {
|
} else {
|
||||||
container.children :+= new PaddingBox(new Label("New release version is available:", small = true), Padding2D(6))
|
container.children :+= new PaddingBox(new Label("New release version is available:", small = true), Padding2D(6))
|
||||||
if (Desktop.isDesktopSupported) {
|
if (Desktop.isDesktopSupported) {
|
||||||
container.children :+= new PaddingBox(new Button {
|
container.children :+= new PaddingBox(new Button {
|
||||||
override def text: String = "Download"
|
override def text: String = "Download"
|
||||||
|
|
||||||
override def onClick(): Unit = Desktop.getDesktop.browse(new URI("https://ocelot.fomalhaut.me/desktop"))
|
override def onClick(): Unit = Desktop.getDesktop.browse(new URI("https://ocelot.fomalhaut.me/desktop"))
|
||||||
}, Padding2D(6))
|
}, Padding2D(6))
|
||||||
} else {
|
} else {
|
||||||
container.children :+= new PaddingBox(new Label("https://ocelot.fomalhaut.me/desktop", small = true), Padding2D(6))
|
container.children :+= new PaddingBox(new Label("https://ocelot.fomalhaut.me/desktop", small = true), Padding2D(6))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
container.children :+= new Label("Release: N\\A")
|
||||||
|
}
|
||||||
|
|
||||||
container.children :+= new Filler {
|
container.children :+= new Filler {
|
||||||
override def minimumSize: Size2D = Size2D(8, 16)
|
override def minimumSize: Size2D = Size2D(8, 16)
|
||||||
}
|
}
|
||||||
container.children :+= new Label(s"Dev build: ${BuildInfo.commit.take(7)} ▸ ${version.devId.take(7)}")
|
|
||||||
if (BuildInfo.commit.take(7) == version.devId.take(7)) {
|
if (version.devId.isDefined && version.devDate.isDefined) {
|
||||||
|
val newDevVersion = version.devId.get.take(7)
|
||||||
|
container.children :+= new Label(s"Dev build: ${BuildInfo.commit.take(7)} ▸ ${newDevVersion}")
|
||||||
|
if (BuildInfo.commit.take(7) == newDevVersion) {
|
||||||
container.children :+= new PaddingBox(new Label("Up to date!", small = true), Padding2D(6))
|
container.children :+= new PaddingBox(new Label("Up to date!", small = true), Padding2D(6))
|
||||||
} else {
|
} else {
|
||||||
container.children :+= new PaddingBox(
|
container.children :+= new PaddingBox(
|
||||||
new Label(s"New dev build from ${version.devDate.withZoneSameInstant(ZoneId.systemDefault()).format(dateFormat)}:", small = true)
|
new Label(s"New dev build from ${version.devDate.get.withZoneSameInstant(ZoneId.systemDefault()).format(dateFormat)}:", small = true)
|
||||||
, Padding2D(4))
|
, Padding2D(4))
|
||||||
if (Desktop.isDesktopSupported) {
|
if (Desktop.isDesktopSupported) {
|
||||||
container.children :+= new PaddingBox(new Button {
|
container.children :+= new PaddingBox(new Button {
|
||||||
override def text: String = "Download"
|
override def text: String = "Download"
|
||||||
|
|
||||||
override def onClick(): Unit = Desktop.getDesktop.browse(new URI("https://ocelot.fomalhaut.me/desktop"))
|
override def onClick(): Unit = Desktop.getDesktop.browse(new URI("https://ocelot.fomalhaut.me/desktop"))
|
||||||
}, Padding2D(6))
|
}, Padding2D(6))
|
||||||
} else {
|
} else {
|
||||||
container.children :+= new PaddingBox(new Label("https://ocelot.fomalhaut.me/desktop", small = true), Padding2D(6))
|
container.children :+= new PaddingBox(new Label("https://ocelot.fomalhaut.me/desktop", small = true), Padding2D(6))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
container.children :+= new Label("Dev build: N\\A")
|
||||||
|
}
|
||||||
|
|
||||||
case Failure(exception) =>
|
case Failure(exception) =>
|
||||||
logger.error("Cannot download information about new Ocelot version!", exception)
|
logger.error("Cannot download information about new Ocelot version!", exception)
|
||||||
|
|||||||
@ -24,8 +24,8 @@ object OcelotOnlineAPI {
|
|||||||
val releaseVersion = RegexReleaseVersion.findFirstMatchIn(response).map(_.group(1))
|
val releaseVersion = RegexReleaseVersion.findFirstMatchIn(response).map(_.group(1))
|
||||||
val releaseDate = RegexReleaseDate.findFirstMatchIn(response).map(_.group(1))
|
val releaseDate = RegexReleaseDate.findFirstMatchIn(response).map(_.group(1))
|
||||||
val version = Version(
|
val version = Version(
|
||||||
devId.orNull, devDate.map(it => ZonedDateTime.parse(it)).orNull,
|
devId, devDate.map(it => ZonedDateTime.parse(it)),
|
||||||
releaseVersion.orNull, releaseDate.map(it => ZonedDateTime.parse(it)).orNull
|
releaseVersion, releaseDate.map(it => ZonedDateTime.parse(it))
|
||||||
)
|
)
|
||||||
|
|
||||||
source.close()
|
source.close()
|
||||||
@ -45,5 +45,5 @@ object OcelotOnlineAPI {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
case class Version(devId: String, devDate: ZonedDateTime, releaseVersion: String, releaseDate: ZonedDateTime)
|
case class Version(devId: Option[String], devDate: Option[ZonedDateTime], releaseVersion: Option[String], releaseDate: Option[ZonedDateTime])
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user