/*
* Copyright 2017 rootkiwi
*
* AN2Linux-client is licensed under GNU General Public License 3.
*
* See LICENSE for more details.
*/
package kiwi.root.an2linuxclient.network;
import android.content.Context;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Observable;
import java.util.Observer;
abstract class PairingConnection implements Runnable {
Context c;
private PairingObservable observable;
boolean mCancel;
boolean mPairResponseSent;
OutputStream mOut;
InputStream mIn;
final byte INITIATE_PAIRING = 0;
final byte DENY_PAIRING = 2;
final byte ACCEPT_PAIRING = 3;
PairingConnection(Context c) {
this.c = c;
this.observable = new PairingObservable();
}
abstract void acceptPairing();
abstract void denyPairing();
void cancel() {
if (!mPairResponseSent && mOut != null) {
denyPairing();
}
mCancel = true;
}
void notifyObservers(Object data) {
observable.notifyObservers(data);
}
void addObserver(Observer observer) {
observable.addObserver(observer);
}
void deleteObservers(){
observable.deleteObservers();
}
private class PairingObservable extends Observable {
@Override
public void notifyObservers(Object data) {
setChanged();
super.notifyObservers(data);
}
}
}