11package org .cryptomator .linux .update ;
22
33import org .cryptomator .integrations .common .CheckAvailability ;
4- import org .cryptomator .integrations .common .DistributionChannel ;
4+ import org .cryptomator .integrations .common .DisplayName ;
55import org .cryptomator .integrations .common .OperatingSystem ;
66import org .cryptomator .integrations .common .Priority ;
77import org .cryptomator .integrations .update .Progress ;
88import org .cryptomator .integrations .update .ProgressListener ;
9- import org .cryptomator .integrations .update .SpawnExitedListener ;
10- import org .cryptomator .integrations .update .SpawnStartedListener ;
11- import org .cryptomator .integrations .update .UpdateAvailable ;
12- import org .cryptomator .integrations .update .UpdateAvailableListener ;
139import org .cryptomator .integrations .update .UpdateFailedException ;
1410import org .cryptomator .integrations .update .UpdateService ;
1511import org .freedesktop .dbus .FileDescriptor ;
3127
3228@ Priority (1000 )
3329@ CheckAvailability
34- @ DistributionChannel ( DistributionChannel . Value . LINUX_FLATPAK )
30+ @ DisplayName ( "Update via Flatpak update" )
3531@ OperatingSystem (OperatingSystem .Value .LINUX )
3632public class FlatpakUpdater implements UpdateService , AutoCloseable {
3733
3834 private static final Logger LOG = LoggerFactory .getLogger (FlatpakUpdater .class );
3935 private static final String APP_NAME = "org.cryptomator.Cryptomator" ;
4036
41- private final List <UpdateAvailableListener > updateAvailableListeners = new CopyOnWriteArrayList <>();
4237 private final List <ProgressListener > progressListeners = new CopyOnWriteArrayList <>();
43- private final List <SpawnStartedListener > spawnStartedListeners = new CopyOnWriteArrayList <>();
44- private final List <SpawnExitedListener > spawnExitedListeners = new CopyOnWriteArrayList <>();
4538
4639 private final UpdatePortal portal ;
4740 private Flatpak .UpdateMonitor updateMonitor ;
@@ -57,11 +50,7 @@ public boolean isSupported() {
5750 }
5851
5952 @ Override
60- public UpdateCheckerTask getLatestReleaseChecker (DistributionChannel .Value channel ) {
61- if (channel != DistributionChannel .Value .LINUX_FLATPAK ) {
62- LOG .error ("Wrong channel provided: {}" , channel );
63- return null ;
64- }
53+ public UpdateCheckerTask getLatestReleaseChecker () {
6554 portal .setUpdateCheckerTaskFor (APP_NAME );
6655 return portal .getUpdateCheckerTaskFor (APP_NAME );
6756 }
@@ -90,11 +79,6 @@ public boolean doesRequireElevatedPermissions() {
9079 return false ;
9180 }
9281
93- @ Override
94- public String getDisplayName () {
95- return "Update via Flatpak update" ;
96- }
97-
9882 @ Override
9983 public void close () throws Exception {
10084 try {
@@ -114,9 +98,6 @@ private synchronized Flatpak.UpdateMonitor getUpdateMonitor() {
11498 LOG .debug ("UpdateMonitor successful created at {}" , updateMonitorPath );
11599 updateMonitor = portal .getUpdateMonitor (updateMonitorPath .toString ());
116100 try {
117- portal .getDBusConnection ().addSigHandler (Flatpak .UpdateMonitor .UpdateAvailable .class , signal -> {
118- notifyOnUpdateAvailable (signal );
119- });
120101 portal .getDBusConnection ().addSigHandler (Flatpak .UpdateMonitor .Progress .class , signal -> {
121102 notifyOnUpdateProceeds (signal );
122103 });
@@ -130,16 +111,6 @@ private synchronized Flatpak.UpdateMonitor getUpdateMonitor() {
130111 return updateMonitor ;
131112 }
132113
133- @ Override
134- public void addUpdateAvailableListener (UpdateAvailableListener listener ) {
135- updateAvailableListeners .add (listener );
136- }
137-
138- @ Override
139- public void removeUpdateAvailableListener (UpdateAvailableListener listener ) {
140- updateAvailableListeners .remove (listener );
141- }
142-
143114 @ Override
144115 public void addProgressListener (ProgressListener listener ) {
145116 progressListeners .add (listener );
@@ -150,76 +121,14 @@ public void removeProgressListener(ProgressListener listener) {
150121 progressListeners .remove (listener );
151122 }
152123
153- @ Override
154- public void addSpawnStartedListener (SpawnStartedListener listener ) {
155- spawnStartedListeners .add (listener );
156- }
157-
158- @ Override
159- public void removeSpawnStartedListener (SpawnStartedListener listener ) {
160- spawnStartedListeners .remove (listener );
161- }
162-
163- @ Override
164- public void addSpawnExitedListener (SpawnExitedListener listener ) {
165- spawnExitedListeners .add (listener );
166- }
167-
168- @ Override
169- public void removeSpawnExitedListener (SpawnExitedListener listener ) {
170- spawnExitedListeners .remove (listener );
171- }
172-
173- private void notifyOnUpdateAvailable (Flatpak .UpdateMonitor .UpdateAvailable signal ) {
174- String remoteCommit = "" ;
175- Variant <?> remoteCommitVariant = signal .update_info .get ("remote-commit" );
176- if (null != remoteCommitVariant ) {
177- remoteCommit = (String ) remoteCommitVariant .getValue ();
178- }
179- String runningCommit = "" ;
180- Variant <?> runningCommitVariant = signal .update_info .get ("running-commit" );
181- if (null != runningCommitVariant ) {
182- runningCommit = (String ) runningCommitVariant .getValue ();
183- }
184- String localCommit = "" ;
185- Variant <?> localCommitVariant = signal .update_info .get ("local-commit" );
186- if (null != localCommitVariant ) {
187- localCommit = (String ) localCommitVariant .getValue ();
188- }
189- UpdateAvailable updateAvailable = new UpdateAvailable (runningCommit , localCommit , remoteCommit );
190- for (UpdateAvailableListener listener : updateAvailableListeners ) {
191- listener .onUpdateAvailable (updateAvailable );
192- }
193- }
194-
195124 private void notifyOnUpdateProceeds (Flatpak .UpdateMonitor .Progress signal ) {
196125 long status = ((UInt32 ) signal .info .get ("status" ).getValue ()).longValue ();
197126 long progress = 0 ;
198127 Variant <?> progressVariant = signal .info .get ("progress" );
199128 if (null != progressVariant ) {
200129 progress = ((UInt32 ) progressVariant .getValue ()).longValue ();
201130 }
202- long nOps = -1 ;
203- Variant <?> nOpsVariant = signal .info .get ("n_ops" );
204- if (null != nOpsVariant ) {
205- nOps = ((UInt32 ) nOpsVariant .getValue ()).longValue ();
206- }
207- long oP = -1 ;
208- Variant <?> oPVariant = signal .info .get ("op" );
209- if (null != oPVariant ) {
210- oP = ((UInt32 ) oPVariant .getValue ()).longValue ();
211- }
212- String error = "" ;
213- Variant <?> errorVariant = signal .info .get ("error" );
214- if (null != errorVariant ) {
215- error = (String ) errorVariant .getValue ();
216- }
217- String errorMessage = "" ;
218- Variant <?> errorMessageVariant = signal .info .get ("error_message" );
219- if (null != errorMessageVariant ) {
220- errorMessage = (String ) errorMessageVariant .getValue ();
221- }
222- Progress p = new Progress (nOps , oP , status , progress , error , errorMessage );
131+ Progress p = new Progress (status , progress );
223132 for (ProgressListener listener : progressListeners ) {
224133 listener .onProgress (p );
225134 }
0 commit comments