package com.yotadevices.sdk.utils;
import com.yotadevices.sdk.Drawer.Waveform;
import com.yotadevices.sdk.helper.IFrameworkService;
import com.yotadevices.sdk.helper.ServiceBSHelper;
import com.yotadevices.sdk.helper.ServiceBSHelper.OnSuccesBinding;
import android.content.Context;
import android.os.Message;
import android.os.RemoteException;
/**
* @hide
*/
public class FrameworkUtils {
private final static int COMMAND_IS_LOCK_SCREEN_DISABLED = 1;
private final static int COMMAND_PERFORM_SINGLE_UPDATE = 2;
private static void executeCommand(Context ctx, final Message msg) {
final ServiceBSHelper h = new ServiceBSHelper(ctx);
h.getAsyncService(new OnSuccesBinding() {
@Override
public void onError() {
}
@Override
public void onBind(IFrameworkService service) {
try {
switch (msg.what) {
case COMMAND_IS_LOCK_SCREEN_DISABLED:
IPlatinumCallback callback = (IPlatinumCallback) msg.obj;
if (callback != null) {
callback.onLockScreenDisabled(service.isLockScreenDisabled());
}
break;
case COMMAND_PERFORM_SINGLE_UPDATE:
service.performSingleUpdate(msg.arg1);
break;
default:
break;
}
} catch (RemoteException unused) {
} finally {
h.unbind();
}
}
});
}
/**
* Return "true" if lock screen is "None"
*/
public static void isLockScreenDisabled(Context ctx, IPlatinumCallback callback) {
executeCommand(ctx, Message.obtain(null, COMMAND_IS_LOCK_SCREEN_DISABLED, callback));
}
public static void performSingleUpdate(Context ctx, Waveform waveform) {
executeCommand(ctx, Message.obtain(null, COMMAND_PERFORM_SINGLE_UPDATE, waveform.getInternalValue(), -1));
}
}