Merge branch 'changeRuffyService' into 'stable'
change to support changed IRuffyService See merge request !7
This commit is contained in:
commit
16dc21c7f1
|
@ -6,9 +6,22 @@ import org.monkey.d.ruffy.ruffy.driver.IRTHandler;
|
|||
|
||||
interface IRuffyService {
|
||||
|
||||
void setHandler(IRTHandler handler);
|
||||
void addHandler(IRTHandler handler);
|
||||
void removeHandler(IRTHandler handler);
|
||||
|
||||
/** Connect to the pump
|
||||
*
|
||||
* @return 0 if successful, -1 otherwise
|
||||
*/
|
||||
int doRTConnect();
|
||||
|
||||
/** Disconnect from the pump */
|
||||
void doRTDisconnect();
|
||||
|
||||
/*What's the meaning of 'changed'?
|
||||
* changed means if a button state has been changed, like btton pressed is a change and button release another*/
|
||||
void rtSendKey(byte keyCode, boolean changed);
|
||||
void resetPairing();
|
||||
boolean isConnected();
|
||||
boolean isBoundToPump();
|
||||
}
|
||||
|
|
|
@ -48,16 +48,36 @@ public class RuffyScripter {
|
|||
private volatile boolean connected = false;
|
||||
private volatile long lastDisconnected = 0;
|
||||
|
||||
private boolean started = false;
|
||||
|
||||
public RuffyScripter(final IRuffyService ruffyService) {
|
||||
this.ruffyService = ruffyService;
|
||||
}
|
||||
|
||||
public void start() {
|
||||
try {
|
||||
ruffyService.setHandler(mHandler);
|
||||
ruffyService.addHandler(mHandler);
|
||||
idleDisconnectMonitorThread.start();
|
||||
started = true;
|
||||
} catch (RemoteException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void stop() {
|
||||
if (started) {
|
||||
try {
|
||||
ruffyService.removeHandler(mHandler);
|
||||
} catch (RemoteException e) {
|
||||
log.warn("Removing IRTHandler from Ruffy service failed, ignoring", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isRunning() {
|
||||
return started;
|
||||
}
|
||||
|
||||
private Thread idleDisconnectMonitorThread = new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
|
|
@ -16,7 +16,6 @@ import android.support.v4.app.NotificationCompat;
|
|||
|
||||
import com.squareup.otto.Subscribe;
|
||||
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
import org.monkey.d.ruffy.ruffy.driver.IRuffyService;
|
||||
import org.slf4j.Logger;
|
||||
|
@ -189,11 +188,14 @@ public class ComboPlugin implements PluginBase, PumpInterface {
|
|||
@Override
|
||||
public void onServiceConnected(ComponentName name, IBinder service) {
|
||||
ruffyScripter = new RuffyScripter(IRuffyService.Stub.asInterface(service));
|
||||
ruffyScripter.start();
|
||||
log.debug("ruffy serivce connected");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onServiceDisconnected(ComponentName name) {
|
||||
ruffyScripter.stop();
|
||||
ruffyScripter = null;
|
||||
log.debug("ruffy service disconnected");
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue