mirror of
https://gitlab.com/cc-ru/ocelot/ocelot-desktop.git
synced 2025-12-20 02:59:19 +01:00
Make Version object safer
This commit is contained in:
parent
a1eb9bbbda
commit
6c622446e8
@ -48,39 +48,52 @@ class UpdateCheckerDialog extends ModalDialog with Logging {
|
||||
OcelotOnlineAPI.checkRemoteVersion {
|
||||
case Success(version) =>
|
||||
setContainerChildren(ArraySeq.empty)
|
||||
container.children :+= new Label(s"Release: ${BuildInfo.version} ▸ ${version.releaseVersion.drop(1)}")
|
||||
if (version.releaseVersion.drop(1) == BuildInfo.version) {
|
||||
container.children :+= new PaddingBox(new Label("Up to date!", small = true), Padding2D(6))
|
||||
} else {
|
||||
container.children :+= new PaddingBox(new Label("New release version is available:", small = true), Padding2D(6))
|
||||
if (Desktop.isDesktopSupported) {
|
||||
container.children :+= new PaddingBox(new Button {
|
||||
override def text: String = "Download"
|
||||
override def onClick(): Unit = Desktop.getDesktop.browse(new URI("https://ocelot.fomalhaut.me/desktop"))
|
||||
}, Padding2D(6))
|
||||
if (version.releaseVersion.isDefined) {
|
||||
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))
|
||||
} else {
|
||||
container.children :+= new PaddingBox(new Label("https://ocelot.fomalhaut.me/desktop", small = true), Padding2D(6))
|
||||
container.children :+= new PaddingBox(new Label("New release version is available:", small = true), Padding2D(6))
|
||||
if (Desktop.isDesktopSupported) {
|
||||
container.children :+= new PaddingBox(new Button {
|
||||
override def text: String = "Download"
|
||||
|
||||
override def onClick(): Unit = Desktop.getDesktop.browse(new URI("https://ocelot.fomalhaut.me/desktop"))
|
||||
}, Padding2D(6))
|
||||
} else {
|
||||
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 {
|
||||
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)) {
|
||||
container.children :+= new PaddingBox(new Label("Up to date!", small = true), Padding2D(6))
|
||||
} else {
|
||||
container.children :+= new PaddingBox(
|
||||
new Label(s"New dev build from ${version.devDate.withZoneSameInstant(ZoneId.systemDefault()).format(dateFormat)}:", small = true)
|
||||
, Padding2D(4))
|
||||
if (Desktop.isDesktopSupported) {
|
||||
container.children :+= new PaddingBox(new Button {
|
||||
override def text: String = "Download"
|
||||
override def onClick(): Unit = Desktop.getDesktop.browse(new URI("https://ocelot.fomalhaut.me/desktop"))
|
||||
}, Padding2D(6))
|
||||
|
||||
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))
|
||||
} else {
|
||||
container.children :+= new PaddingBox(new Label("https://ocelot.fomalhaut.me/desktop", small = true), Padding2D(6))
|
||||
container.children :+= new PaddingBox(
|
||||
new Label(s"New dev build from ${version.devDate.get.withZoneSameInstant(ZoneId.systemDefault()).format(dateFormat)}:", small = true)
|
||||
, Padding2D(4))
|
||||
if (Desktop.isDesktopSupported) {
|
||||
container.children :+= new PaddingBox(new Button {
|
||||
override def text: String = "Download"
|
||||
|
||||
override def onClick(): Unit = Desktop.getDesktop.browse(new URI("https://ocelot.fomalhaut.me/desktop"))
|
||||
}, Padding2D(6))
|
||||
} else {
|
||||
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) =>
|
||||
|
||||
@ -24,8 +24,8 @@ object OcelotOnlineAPI {
|
||||
val releaseVersion = RegexReleaseVersion.findFirstMatchIn(response).map(_.group(1))
|
||||
val releaseDate = RegexReleaseDate.findFirstMatchIn(response).map(_.group(1))
|
||||
val version = Version(
|
||||
devId.orNull, devDate.map(it => ZonedDateTime.parse(it)).orNull,
|
||||
releaseVersion.orNull, releaseDate.map(it => ZonedDateTime.parse(it)).orNull
|
||||
devId, devDate.map(it => ZonedDateTime.parse(it)),
|
||||
releaseVersion, releaseDate.map(it => ZonedDateTime.parse(it))
|
||||
)
|
||||
|
||||
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