/* * Copyright (c) 2020 WildFireChat. All rights reserved. */ package cn.wildfirechat.push.meizu; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.util.Log; import com.meizu.cloud.pushsdk.MzPushMessageReceiver; import com.meizu.cloud.pushsdk.platform.message.PushSwitchStatus; import com.meizu.cloud.pushsdk.platform.message.RegisterStatus; import com.meizu.cloud.pushsdk.platform.message.SubAliasStatus; import com.meizu.cloud.pushsdk.platform.message.SubTagsStatus; import com.meizu.cloud.pushsdk.platform.message.UnRegisterStatus; import org.json.JSONException; import org.json.JSONObject; import java.util.Iterator; import java.util.Set; import cn.wildfirechat.client.NotInitializedExecption; import cn.wildfirechat.push.AndroidPushMessage; import cn.wildfirechat.push.PushService; import cn.wildfirechat.remote.ChatManager; import cn.wildfirechat.PushType; public class MeizuPushReceiver extends MzPushMessageReceiver { @Override public void onRegister(Context context, String pushId) { Log.e(TAG, "onReceiveClientId -> " + "pushId = " + pushId); try { ChatManager.Instance().setDeviceToken(pushId, PushType.MEIZU); } catch (NotInitializedExecption notInitializedExecption) { notInitializedExecption.printStackTrace(); } } @Override public void onUnRegister(Context context, boolean success) { } @Override public void onPushStatus(Context context, PushSwitchStatus pushSwitchStatus) { Log.e(TAG, "onPS " + pushSwitchStatus); } @Override public void onRegisterStatus(Context context, RegisterStatus registerStatus) { Log.e(TAG, "onRS " + registerStatus); } @Override public void onUnRegisterStatus(Context context, UnRegisterStatus unRegisterStatus) { } @Override public void onSubTagsStatus(Context context, SubTagsStatus subTagsStatus) { } @Override public void onSubAliasStatus(Context context, SubAliasStatus subAliasStatus) { } @Override public void onNotificationClicked(Context context, String title, String content, String selfDefineContentString) { PushService.showMainActivity(context); } @Override public void onNotificationArrived(Context context, String title, String content, String selfDefineContentString) { super.onNotificationArrived(context, title, content, selfDefineContentString); Log.e(TAG, "onNA"); } @Override public void onNotificationDeleted(Context context, String title, String content, String selfDefineContentString) { super.onNotificationDeleted(context, title, content, selfDefineContentString); Log.e(TAG, "onND"); } @Override public void onNotifyMessageArrived(Context context, String message) { super.onNotifyMessageArrived(context, message); Log.e(TAG, "onNMA"); } @Override public void onMessage(Context context, String message) { Log.d(TAG, "receiver push message = " + message); try { AndroidPushMessage pushMessage = AndroidPushMessage.messageFromJson(message); PushService.didReceiveIMPushMessage(context, pushMessage, PushService.PushServiceType.MeiZu); } catch (Exception e) { PushService.didReceivePushMessageData(context, message); } Log.d(TAG, "receiver payload = " + message); } @Override public void onMessage(Context context, Intent intent) { String json = toJson(intent); onMessage(context, json); } public String toJson(Intent intent) { if (intent == null) { return null; } JSONObject jsonObject = new JSONObject(); try { Bundle extras = intent.getExtras(); Set keySet = extras.keySet(); Iterator iterator = keySet.iterator(); while (iterator.hasNext()) { String next = iterator.next(); Object value = extras.get(next); if (value instanceof Boolean) { jsonObject.put(next, (Boolean) value); } else if (value instanceof Integer) { jsonObject.put(next, (Integer) value); } else if (value instanceof Long) { jsonObject.put(next, (Long) value); } else if (value instanceof Double) { jsonObject.put(next, (Double) value); } else if (value instanceof String) { jsonObject.put(next, value); } } } catch (JSONException e) { e.printStackTrace(); } return jsonObject.toString(); } }