package com.xiaomi.xmsf.push.service.receivers;

import android.content.Context;
import android.content.Intent;

import com.elvishew.xlog.Logger;
import com.elvishew.xlog.XLog;
import com.xiaomi.mipush.sdk.MiPushCommandMessage;
import com.xiaomi.mipush.sdk.MiPushMessage;
import com.xiaomi.mipush.sdk.PushMessageReceiver;
import com.xiaomi.xmsf.push.service.XMAccountManager;



public class MiuiPushMessageReceiver extends PushMessageReceiver {
    private final Logger logger = XLog.tag(MiuiPushMessageReceiver.class.getSimpleName()).build();
    public void onCommandResult(Context context, MiPushCommandMessage miPushCommandMessage) {
        logger.d("onCommandResult");
        logger.d(miPushCommandMessage.toString());
        if (miPushCommandMessage.getResultCode() == 0) {
            String command = miPushCommandMessage.getCommand();
            if (miPushCommandMessage.getCommandArguments().size() > 0 && "register".equals(command)) {
                XMAccountManager.getInstance(context).setAccountAsAlias();
                return;
            }
            return;
        }
        logger.e(miPushCommandMessage.toString());
    }

    public void onReceiveMessage(Context context, MiPushMessage miPushMessage) {
        logger.i("onReceiveMessage -> " + miPushMessage.toString());
        String str = (String) miPushMessage.getExtra().get("miui_package_name");
        if (str != null && !str.trim().isEmpty()) {
            logger.d("not empty");
            Intent intent = new Intent();
            intent.setPackage(str);
            intent.putExtras(miPushMessage.toBundle());
            if (miPushMessage.isNotified()) {
                logger.d("isNotified -> true");
                intent.setAction("com.xiaomi.mipush.miui.CLICK_MESSAGE");
                context.startService(intent);
                return;
            }
            logger.d("send broadcast");
            intent.setAction("com.xiaomi.mipush.miui.RECEIVE_MESSAGE");
            context.sendBroadcast(intent);
        }
    }
}