1212import org .purejava .portal .Flatpak ;
1313import org .purejava .portal .UpdatePortal ;
1414import org .purejava .portal .Util ;
15+ import org .purejava .portal .rest .UpdateCheckerTask ;
1516import org .slf4j .Logger ;
1617import org .slf4j .LoggerFactory ;
1718
1819import java .util .Collections ;
1920import java .util .List ;
2021import java .util .Map ;
22+ import java .util .concurrent .ExecutorService ;
23+ import java .util .concurrent .Executors ;
2124
2225@ Priority (1000 )
2326@ CheckAvailability
2427@ OperatingSystem (OperatingSystem .Value .LINUX )
2528public class FlatpakUpdater implements UpdateService , AutoCloseable {
2629
2730 private static final Logger LOG = LoggerFactory .getLogger (FlatpakUpdater .class );
31+ private static final String APP_NAME = "org.cryptomator.Cryptomator" ;
2832
2933 private final UpdatePortal portal ;
3034 private Flatpak .UpdateMonitor updateMonitor ;
@@ -41,6 +45,18 @@ public boolean isSupported() {
4145
4246 @ Override
4347 public String isUpdateAvailable (DistributionChannel channel ) {
48+ if (channel != DistributionChannel .LINUX_FLATPAK ) {
49+ return "" ;
50+ }
51+ try (ExecutorService executor = Executors .newFixedThreadPool (10 )) {
52+ var task = new UpdateCheckerTask (APP_NAME );
53+ executor .submit (task );
54+ try {
55+ return task .get ();
56+ } catch (Exception e ) {
57+ LOG .error (e .toString (), e .getCause ());
58+ }
59+ }
4460 return "" ;
4561 }
4662
@@ -105,12 +121,6 @@ public void notifyOnUpdateAvailable(Flatpak.UpdateMonitor.UpdateAvailable signal
105121 }
106122
107123 private UInt32 spawnApp (List <Byte > cwdPath , List <List <Byte >> argv , Map <UInt32 , FileDescriptor > fds , Map <String , String > envs , UInt32 flags , Map <String , Variant <?>> options ) {
108- var pid = portal .Spawn (cwdPath , argv , fds , envs , flags , options );
109- if (null != pid ) {
110- LOG .error ("Spawning new application failed" );
111- } else {
112- LOG .debug ("New application spawned with PID {}" , pid );
113- }
114- return pid ;
124+ return portal .Spawn (cwdPath , argv , fds , envs , flags , options );
115125 }
116126}
0 commit comments