Skip to content

Commit 4976dde

Browse files
committed
Correlate with API as suggested in a separate PoC: UpdateMechanism and UpdateProcess
1 parent a2607d7 commit 4976dde

File tree

1 file changed

+4
-95
lines changed

1 file changed

+4
-95
lines changed

src/main/java/org/cryptomator/linux/update/FlatpakUpdater.java

Lines changed: 4 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
11
package org.cryptomator.linux.update;
22

33
import org.cryptomator.integrations.common.CheckAvailability;
4-
import org.cryptomator.integrations.common.DistributionChannel;
4+
import org.cryptomator.integrations.common.DisplayName;
55
import org.cryptomator.integrations.common.OperatingSystem;
66
import org.cryptomator.integrations.common.Priority;
77
import org.cryptomator.integrations.update.Progress;
88
import 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;
139
import org.cryptomator.integrations.update.UpdateFailedException;
1410
import org.cryptomator.integrations.update.UpdateService;
1511
import org.freedesktop.dbus.FileDescriptor;
@@ -31,17 +27,14 @@
3127

3228
@Priority(1000)
3329
@CheckAvailability
34-
@DistributionChannel(DistributionChannel.Value.LINUX_FLATPAK)
30+
@DisplayName("Update via Flatpak update")
3531
@OperatingSystem(OperatingSystem.Value.LINUX)
3632
public 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

Comments
 (0)