wjc
4 天以前 acccdeba7fe28f7f4b72ba464ad4789b0d9ddb2a
app/src/main/java/com/hdl/photovoltaic/other/HdlPushLogic.java
@@ -2,14 +2,21 @@
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.text.TextUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.hdl.linkpm.sdk.core.exception.HDLException;
import com.hdl.photovoltaic.config.AppConfigManage;
import com.hdl.photovoltaic.config.ConstantManage;
import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.enums.MessageStateType;
import com.hdl.photovoltaic.internet.HttpClient;
import com.hdl.photovoltaic.internet.api.HttpApi;
import com.hdl.photovoltaic.listener.CloudCallBeak;
import com.hdl.photovoltaic.push.PushMessageInfoBean;
import com.hdl.photovoltaic.ui.BPowerStationActivity;
import com.hdl.photovoltaic.ui.bean.MessageBean;
@@ -47,56 +54,105 @@
    }
    /**
     * 添加推送Token
     *
     * @param cloudCallBeak -
     */
    public void pushAdd(CloudCallBeak<String> cloudCallBeak) {
        String requestUrl = HttpApi.POST_push_add;
        JsonObject json = new JsonObject();
        json.addProperty("deviceName", Build.MODEL);//设备名称
        json.addProperty("deviceType", "Android");//设备类型
        json.addProperty("produce", AppConfigManage.isIsOnlineServer());//表示是否是正式服务器
        json.addProperty("pushToken", UserConfigManage.getInstance().getPushToken());//App的推送Token,在极光为RegId
        json.addProperty("software", "PHOTOVOLTAIC");//也就云端说的通道号(channel)
        json.addProperty("platform", "ALIYUN_APNS");//阿里云的版本的platform
//        json.addProperty("platform", "FCM");//google的版本的platform
        json.addProperty("language", UserConfigManage.getInstance().getCurrentAppLanguage());//2.0追加的字段
        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
            @Override
            public void onSuccess(String pushId) {
                if (!TextUtils.isEmpty(pushId)) {
                    UserConfigManage.getInstance().setPushId(pushId);
                    UserConfigManage.getInstance().Save();
                }
                if (cloudCallBeak != null) {
                    cloudCallBeak.onSuccess(pushId);
                }
            }
            @Override
            public void onFailure(HDLException e) {
                if (cloudCallBeak != null) {
                    cloudCallBeak.onFailure(e);
                }
            }
        });
    }
    /**
     * 删除推送Token
     *
     * @param cloudCallBeak -
     */
    public void pushDel(CloudCallBeak<String> cloudCallBeak) {
        String requestUrl = HttpApi.POST_push_del;
        JsonObject json = new JsonObject();
        json.addProperty("pushId", UserConfigManage.getInstance().getPushId());
        json.addProperty("pushToken", UserConfigManage.getInstance().getPushToken());
        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
            @Override
            public void onSuccess(String jsonStr) {
                if (cloudCallBeak != null) {
                    cloudCallBeak.onSuccess(jsonStr);
                }
            }
            @Override
            public void onFailure(HDLException e) {
                if (cloudCallBeak != null) {
                    cloudCallBeak.onFailure(e);
                }
            }
        });
    }
    /**
     * 推送数据统一处理的方法
     *
     * @param context             上下文
     * @param pushMessageInfoBean 推送数据对象实体
     * @param isOpened            true=点击通知栏回调,false=收到推送通知回调;
     * @param isAppInForeground   true表示是前台,false表示后台
     */
    public void PushPushCommonData(Context context, PushMessageInfoBean pushMessageInfoBean, boolean isOpened) {
    public void PushPushCommonData(Context context, PushMessageInfoBean pushMessageInfoBean, boolean isAppInForeground) {
        if (UserConfigManage.getInstance().isBAccount()) {
            //添加推送数据到缓存列表中;
//            this.addPushDataToMemoryList(pushMessageInfoBean);
            if (isOpened) {
//                //安装商跳转界面
//                Intent intent = new Intent(context, BPowerStationActivity.class);
//                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
//                intent.putExtra("skip", "skip");//里面判断有这个标识就跳转到消息中心界面
//                context.startActivity(intent);
            } else {
            if (isAppInForeground) {
                //应用在前台通知更新住宅消息列表即可
                BaseEventBus bus = new BaseEventBus();
                bus.setTopic(ConstantManage.refresh_message_house);
                bus.setType(ConstantManage.refresh_message_house);
                EventBus.getDefault().post(bus);
                EventBus.getDefault().postSticky(bus);
            } else {
                // 安装商跳转界面
//                Intent intent = new Intent(context, BPowerStationActivity.class);
//                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
//                intent.putExtra("skip", "skip");//里面判断有这个标识就跳转到消息中心界面
//                context.startActivity(intent);
            }
        } else {
//            if (isOpened) {
            //产品经理说暂时不做 2024年03月29日10:34:44
//                boolean existsActivity = AppManagerUtils.getAppManager().existsActivity(MessageCenterListActivity.class);
//                if (existsActivity) {
//                    //存在唯一一种可能就是当前活动窗口就是它
//                    return;
//                }
//                //跳转C端消息中心界面
//                Intent intent = new Intent(context, MessageCenterListActivity.class);
//                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
//                context.startActivity(intent);
//                //不管存不存在这些Activity(找到才移除),都要做这些动作,有可能当前的活动窗口是其中一个
//                AppManagerUtils.getAppManager().finishActivity(AccountAndSecurityActivity.class);
//                AppManagerUtils.getAppManager().finishActivity(AsRegardsActivity.class);
//                AppManagerUtils.getAppManager().finishActivity(BindMailActivity.class);
//                AppManagerUtils.getAppManager().finishActivity(BindPhoneActivity.class);
//                AppManagerUtils.getAppManager().finishActivity(languageSelectionActivity.class);
//                AppManagerUtils.getAppManager().finishActivity(MeChangePasswordActivity.class);
//                AppManagerUtils.getAppManager().finishActivity(PersonalDataActivity.class);
//                AppManagerUtils.getAppManager().finishActivity(SetActivity.class);
//                AppManagerUtils.getAppManager().finishActivity(TemperatureUnitActivity.class);
//                AppManagerUtils.getAppManager().finishActivity(WebActivity.class);
//                //通知uni移除界面
//                HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean();
//                uniCallBackBaseBean.setType(HDLUniMP.UNI_EVENT_NOTIFICATION_REMOVE_VIEW);
//                HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean);
//            }
        }
    }