|
|
|
@ -114,6 +114,9 @@ public class MpMasterService extends Service {
|
|
|
|
|
|
|
|
|
|
private boolean mSeparateNetwork = false;
|
|
|
|
|
|
|
|
|
|
private PendingIntent mPreviousHB = null;
|
|
|
|
|
private long mPreviousHeartbeatTime = 0;
|
|
|
|
|
|
|
|
|
|
public MpMasterService() {
|
|
|
|
|
}
|
|
|
|
|
@Override
|
|
|
|
@ -199,6 +202,9 @@ public class MpMasterService extends Service {
|
|
|
|
|
intentFilter.addAction(ACTION_MSG_BROADCAST);
|
|
|
|
|
intentFilter.addAction(ACTION_UPDATE_CONFIGS);
|
|
|
|
|
intentFilter.addAction(ACTION_UPD_OTA);
|
|
|
|
|
if (!mSeparateNetwork) {
|
|
|
|
|
intentFilter.addAction(MicroPhotoContext.ACTION_HEARTBEAT_MP);
|
|
|
|
|
}
|
|
|
|
|
registerReceiver(mAlarmReceiver, intentFilter);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -400,6 +406,15 @@ public class MpMasterService extends Service {
|
|
|
|
|
mService.startMaster();
|
|
|
|
|
mService.startMpApp();
|
|
|
|
|
|
|
|
|
|
} else if (TextUtils.equals(MicroPhotoContext.ACTION_HEARTBEAT_MP, action)) {
|
|
|
|
|
if (!mService.mSeparateNetwork && !mService.mMntnMode && !mService.mQuickHbMode) {
|
|
|
|
|
mService.logger.info("Heartbeat Timer Fired By MpAPP ACTION=" + action);
|
|
|
|
|
|
|
|
|
|
mService.registerHeartbeatTimer(mService.mPreviousHeartbeatTime + mService.mHeartbeatDuration * 1000);
|
|
|
|
|
|
|
|
|
|
mService.startMaster();
|
|
|
|
|
mService.startMpApp();
|
|
|
|
|
}
|
|
|
|
|
} else if (TextUtils.equals(ACTION_UPDATE_CONFIGS, action)) {
|
|
|
|
|
int restart = intent.getIntExtra("restart", 0);
|
|
|
|
|
mService.logger.info("Update Config Fired ACTION=" + action + " restart=" + restart);
|
|
|
|
@ -413,21 +428,9 @@ public class MpMasterService extends Service {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
private void registerHeartbeatTimer(int duration) {
|
|
|
|
|
int orgHeartbeatDuration = mHeartbeatDuration;
|
|
|
|
|
mHeartbeatDuration = duration;
|
|
|
|
|
if (orgHeartbeatDuration == 0) {
|
|
|
|
|
registerHeartbeatTimer();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
private void registerHeartbeatTimer() {
|
|
|
|
|
|
|
|
|
|
Intent alarmIntent = new Intent();
|
|
|
|
|
alarmIntent.setAction(ACTION_HEARTBEAT);
|
|
|
|
|
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0);
|
|
|
|
|
|
|
|
|
|
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
|
|
|
|
|
long timeout = mHeartbeatDuration;
|
|
|
|
|
if (mMntnMode && mQuickHbMode) {
|
|
|
|
|
timeout = mQuickHeartbeatDuration;
|
|
|
|
@ -435,7 +438,26 @@ public class MpMasterService extends Service {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
alarmManager.setExactAndAllowWhileIdle(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + timeout * 1000, pendingIntent);
|
|
|
|
|
registerHeartbeatTimer(SystemClock.elapsedRealtime() + timeout * 1000);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void registerHeartbeatTimer(long triggerTime) {
|
|
|
|
|
|
|
|
|
|
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
|
|
|
|
|
if (mPreviousHB != null) {
|
|
|
|
|
try {
|
|
|
|
|
alarmManager.cancel(mPreviousHB);
|
|
|
|
|
} catch (Exception ex) {
|
|
|
|
|
}
|
|
|
|
|
mPreviousHeartbeatTime = 0;
|
|
|
|
|
}
|
|
|
|
|
Intent alarmIntent = new Intent();
|
|
|
|
|
alarmIntent.setAction(ACTION_HEARTBEAT);
|
|
|
|
|
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0);
|
|
|
|
|
|
|
|
|
|
mPreviousHB = pendingIntent;
|
|
|
|
|
mPreviousHeartbeatTime = triggerTime;
|
|
|
|
|
alarmManager.setExactAndAllowWhileIdle(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerTime, pendingIntent);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|