wjc
18 小时以前 2f5411b86c59706d31f6ec7de629d8f860725e46
app/src/main/java/com/hdl/photovoltaic/ui/me/AsRegardsActivity.java
@@ -1,32 +1,44 @@
package com.hdl.photovoltaic.ui.me;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import androidx.appcompat.content.res.AppCompatResources;
import androidx.annotation.RequiresApi;
import androidx.core.app.NotificationCompat;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.hdl.linkpm.sdk.core.exception.HDLException;
import com.hdl.linkpm.sdk.user.bean.NewVersionBean;
import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.base.CustomBaseActivity;
import com.hdl.photovoltaic.config.AppConfigManage;
import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.databinding.ActivityAsRegardsBinding;
import com.hdl.photovoltaic.enums.ShowErrorMode;
import com.hdl.photovoltaic.listener.CloudCallBeak;
import com.hdl.photovoltaic.other.HdlAppUpdateLogic;
import com.hdl.photovoltaic.other.HdlCommonLogic;
import com.hdl.photovoltaic.other.HdlThreadLogic;
import com.hdl.photovoltaic.ui.BPowerStationActivity;
import com.hdl.photovoltaic.ui.CPowerStationActivity;
import com.hdl.photovoltaic.ui.StartActivity;
import com.hdl.photovoltaic.utils.BadgeUtils;
import com.hdl.photovoltaic.widget.FlashingBoxDialog;
import com.hdl.photovoltaic.widget.FlashingIconBoxDialog;
import com.hdl.photovoltaic.widget.apkwgtupload.ApkDownLoadService;
import com.hdl.photovoltaic.widget.ConfirmationCancelDialog;
import com.hdl.photovoltaic.widget.UpdateConfirmationCancelDialog;
import java.util.Map;
/**
 * 关于界面(app更新)
@@ -49,7 +61,7 @@
    @Override
    public void onBindView(Bundle savedInstanceState) {
        setStatusBarTranslucent();
        getWindow().setNavigationBarColor(getColor(R.color.text_00000000));
        getWindow().setNavigationBarColor(getColor(R.color.text_FF000000));
        //初始化
        initView();
        //初始化界面监听器
@@ -67,7 +79,7 @@
                if (newVersionBean != null) {
                    //todo 发现新版本,改变UI样式
                    viewBinding.asRegardsRlRightContentTv.setText(R.string.app_discover_new_version);
                    viewBinding.asRegardsRlRightContentTv.setTextColor(getResources().getColor(R.color.text_E6FFFFFF, null));
                    viewBinding.asRegardsRlRightContentTv.setTextColor(getResources().getColor(R.color.text_FFACACAC, null));
                }
            }
@@ -80,7 +92,7 @@
        String content = "https://developer.hdlcontrol.com/AppDownload/HDLPhotovoltaicDownload.html";
        if (!AppConfigManage.getOnlineServer()) {
            //测试环境
            content = "https://developer.hdlcontrol.com/AppDownload/HDLDebugerDownload.html";
            content = "https://developer.hdlcontrol.com/AppDownload/HDLPhotovoltaicDebugDownload.html";
        }
        Bitmap bitmap = HdlCommonLogic.getInstance().createQRCodeBitmap(content, 168, 168, "UTF-8", "H", "0", getColor(R.color.text_00000000), Color.WHITE);
        viewBinding.asRegardsQrCodeIv.setImageBitmap(bitmap);
@@ -129,7 +141,15 @@
                Intent intent = new Intent();
                intent.setClass(_mActivity, ContactUsActivity.class);
                startActivity(intent);
//                String json = "{\"expandData\":{\"expantContent\":\"{\\\"createTime\\\":1763705189605,\\\"homeName\\\":\\\"智能模式测试\\\",\\\"isRead\\\":false,\\\"msgId\\\":1991742202645020673,\\\"type\\\":\\\"EVENT\\\",\\\"homeId\\\":1990254883420880898,\\\"status\\\":\\\"UNTREATED\\\"}\",\"homeId\":1990254883420880898,\"messageType\":\"Alarm\"},\"aps\":{\"badge\":2,\"alert\":{\"title\":\"event\",\"body\":\"Battery voltage low\"}}}";
////                Gson gson = new Gson();
////                Type type = new TypeToken<Map<String, String>>() {
////                }.getType();
////                Map<String, String> map = gson.fromJson(json, type);
//                Map<String, String> map = JSONObject.parseObject(json, new TypeReference<Map<String, String>>() {
//                });
//                showCustomNotification("模拟标题", "模拟数据", map);
////                HdlPushLogic.getInstance().pushDataProcessing("", "", json);
            }
        });
@@ -189,4 +209,61 @@
            }
        }, this, ShowErrorMode.YES);
    }
    private void showCustomNotification(String title, String message, Map<String, String> data) {
        NotificationManager notificationManager =
                (NotificationManager) _mActivity.getSystemService(Context.NOTIFICATION_SERVICE);
        // 创建通知渠道(Android 8.0+)
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            createNotificationChannel(notificationManager);
        }
        NotificationCompat.Builder builder = new NotificationCompat.Builder(_mActivity, "fcm_channel")
                .setSmallIcon(R.drawable.desktop_logo)
                .setContentTitle(title)
                .setContentText(message)
                .setAutoCancel(true)
                .setNumber(5)
                .setWhen(System.currentTimeMillis());
        // 设置点击意图
        Intent intent = createNotificationIntent(data);
        PendingIntent pendingIntent = PendingIntent.getActivity(
                _mActivity, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
        builder.setContentIntent(pendingIntent);
        // 显示通知
        notificationManager.notify((int) System.currentTimeMillis(), builder.build());
    }
    private Intent createNotificationIntent(Map<String, String> data) {
        Intent intent = new Intent(_mActivity, StartActivity.class);
        intent.putExtra("from_fcm", true);
        intent.putExtra("pushData", JSON.toJSON(data).toString());
//        if (data != null) {
//            for (Map.Entry<String, String> entry : data.entrySet()) {
//                intent.putExtra(entry.getKey(), entry.getValue());
//            }
//        }
//        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
        return intent;
    }
    @RequiresApi(api = Build.VERSION_CODES.O)
    private void createNotificationChannel(NotificationManager notificationManager) {
        NotificationChannel channel = new NotificationChannel(
                "fcm_channel",
                "FCM 消息",
                NotificationManager.IMPORTANCE_HIGH
        );
        channel.setDescription("Firebase Cloud Messaging 通知");
        // 启用角标
        channel.setShowBadge(true);
        notificationManager.createNotificationChannel(channel);
        BadgeUtils.setBadgeCount(_mActivity, 7);
    }
}