private void setState(final State state, final boolean force) {
        if (state != this.state || force) {
            this.state = state;
            listeners.executeOnMain(l -> l.accept(state));
        }
    }
Represents and manages one audio file or tone
main/src/main/java/cgeo/geocaching/utils/AudioManager.java