Skip to content

Commit 549c46f

Browse files
committed
Complete signals
1 parent 77edc0d commit 549c46f

File tree

1 file changed

+67
-8
lines changed

1 file changed

+67
-8
lines changed

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

Lines changed: 67 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
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;
911
import org.cryptomator.integrations.update.UpdateAvailable;
1012
import org.cryptomator.integrations.update.UpdateAvailableListener;
1113
import org.cryptomator.integrations.update.UpdateFailedException;
@@ -38,6 +40,8 @@ public class FlatpakUpdater implements UpdateService, AutoCloseable {
3840

3941
private final List<UpdateAvailableListener> updateAvailableListeners = new CopyOnWriteArrayList<>();
4042
private final List<ProgressListener> progressListeners = new CopyOnWriteArrayList<>();
43+
private final List<SpawnStartedListener> spawnStartedListeners = new CopyOnWriteArrayList<>();
44+
private final List<SpawnExitedListener> spawnExitedListeners = new CopyOnWriteArrayList<>();
4145

4246
private final UpdatePortal portal;
4347
private Flatpak.UpdateMonitor updateMonitor;
@@ -136,13 +140,6 @@ public void removeUpdateAvailableListener(UpdateAvailableListener listener) {
136140
updateAvailableListeners.remove(listener);
137141
}
138142

139-
private void notifyOnUpdateAvailable(Flatpak.UpdateMonitor.UpdateAvailable signal) {
140-
UpdateAvailable updateAvailable = new UpdateAvailable((String) signal.update_info.get("remote-commit").getValue());
141-
for (UpdateAvailableListener listener : updateAvailableListeners) {
142-
listener.onUpdateAvailable(updateAvailable);
143-
}
144-
}
145-
146143
@Override
147144
public void addProgressListener(ProgressListener listener) {
148145
progressListeners.add(listener);
@@ -153,14 +150,76 @@ public void removeProgressListener(ProgressListener listener) {
153150
progressListeners.remove(listener);
154151
}
155152

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+
156195
private void notifyOnUpdateProceeds(Flatpak.UpdateMonitor.Progress signal) {
157196
long status = ((UInt32) signal.info.get("status").getValue()).longValue();
158197
long progress = 0;
159198
Variant<?> progressVariant = signal.info.get("progress");
160199
if (null != progressVariant) {
161200
progress = ((UInt32) progressVariant.getValue()).longValue();
162201
}
163-
Progress p = new Progress(status, progress);
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);
164223
for (ProgressListener listener : progressListeners) {
165224
listener.onProgress(p);
166225
}

0 commit comments

Comments
 (0)