package com.yotadevices.sdk;
import com.yotadevices.sdk.Constants.VolumeButtonsEvent;
import com.yotadevices.sdk.InnerConstants.AnswerFramework;
import android.content.Intent;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import java.lang.ref.WeakReference;
/**
* Handler of incoming messages from service.
*
* @hide
*/
class BSAcivityIncomingMessagesHandler extends Handler {
private WeakReference<BSActivity> mBSActivity;
public BSAcivityIncomingMessagesHandler(BSActivity bsActivity) {
mBSActivity = new WeakReference<BSActivity>(bsActivity);
}
@Override
public void handleMessage(Message msg) {
if (mBSActivity.get() == null) {
return;
}
Log.d(mBSActivity.get().getClass().getSimpleName(), "Received from service: " + msg.what);
switch (msg.what) {
case AnswerFramework.MESSAGE_ACTIVATED:
int requestCode = msg.arg2;
if (requestCode != -1) {
// TODO: unlocked!!!
mBSActivity.get().performBSActivated(false, requestCode, msg.arg1, (Intent) msg.obj);
} else {
mBSActivity.get().performBSActivated(msg.arg1 == 1); // isBSLock
}
break;
case AnswerFramework.MESSAGE_DISACTIVATED:
mBSActivity.get().performBSDisActivated();
break;
case AnswerFramework.MESSAGE_BS_PAUSE:
mBSActivity.get().performBSPause();
break;
case AnswerFramework.MESSAGE_BS_RESUME:
mBSActivity.get().performBSResume(msg.arg1 == 1);
break;
case AnswerFramework.MESSAGE_BS_LOCK:
mBSActivity.get().performBSLock();
break;
case AnswerFramework.MESSAGE_BS_UNLOCK:
mBSActivity.get().performBSUnlock();
break;
case AnswerFramework.MESSAGE_VOLUME_BUTTONS_EVENT:
mBSActivity.get().performVolumeButtonsEvent(VolumeButtonsEvent.valueOf(msg.arg1));
break;
case AnswerFramework.MESSAGE_SYSTEM_UI_CHANGE:
mBSActivity.get().performSystemUIChange();
break;
case AnswerFramework.MESSAGE_ON_KEY_PRESS:
mBSActivity.get().performKeyPress(msg.arg1);
break;
case AnswerFramework.MESSAGE_ACTIVITY_START:
mBSActivity.get().performBSCreate();
break;
default:
super.handleMessage(msg);
}
}
}