package com.topjohnwu.magisk.utils; import java.util.HashSet; import java.util.Set; public class CallbackEvent { public boolean isTriggered = false; private Result result; private Set> listeners; public void register(Listener l) { if (listeners == null) { listeners = new HashSet<>(); } listeners.add(l); } public void unRegister() { listeners = null; } public void unRegister(Listener l) { if (listeners != null) { listeners.remove(l); } } public void trigger() { trigger(null); } public void trigger(Result r) { result = r; isTriggered = true; if (listeners != null) { for (Listener listener : listeners) { listener.onTrigger(this); } } } public Result getResult() { return result; } public interface Listener { void onTrigger(CallbackEvent event); } }