wjc
2 小时以前 8b43d4e1190fc9e2261be0579e53cc6c2987f946
app/src/main/java/com/hdl/photovoltaic/ui/me/AsRegardsActivity.java
@@ -1,12 +1,23 @@
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.os.Build;
import android.os.Bundle;
import android.view.View;
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;
@@ -18,9 +29,16 @@
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.apkwgtupload.ApkDownLoadService;
import com.hdl.photovoltaic.widget.ConfirmationCancelDialog;
import com.hdl.photovoltaic.widget.UpdateConfirmationCancelDialog;
import java.util.Map;
/**
 * 关于界面(app更新)
@@ -42,8 +60,8 @@
    @Override
    public void onBindView(Bundle savedInstanceState) {
        setNotificationBarBackgroundColor(CustomColor.white);
        setStatusBarTextColor();
        setStatusBarTranslucent();
        getWindow().setNavigationBarColor(getColor(R.color.text_FF000000));
        //初始化
        initView();
        //初始化界面监听器
@@ -61,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_245EC3, null));
                    viewBinding.asRegardsRlRightContentTv.setTextColor(getResources().getColor(R.color.text_FFACACAC, null));
                }
            }
@@ -70,16 +88,20 @@
            }
        });
        //todo 等接口
        String content = "https://developer.hdlcontrol.com/AppDownload/HDLDebugerDownload.html";
        Bitmap bitmap = HdlCommonLogic.getInstance().createQRCodeBitmap(content, 168, 168, "UTF-8", "H", "1", Color.BLACK, Color.WHITE);
        //正式环境
        String content = "https://developer.hdlcontrol.com/AppDownload/HDLPhotovoltaicDownload.html";
        if (!AppConfigManage.getOnlineServer()) {
            //测试环境
            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);
    }
    private void initEvent() {
        viewBinding.toolbarTopFragmentHouseListRl.topBackLl.setOnClickListener(new View.OnClickListener() {
        viewBinding.toolbarTopRl.topBackLl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
@@ -119,18 +141,24 @@
                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);
            }
        });
    }
    private void initView() {
        viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setText(R.string.me_regard);
        viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setTextColor(getResources().getColor(R.color.text_030D1C, null));
        viewBinding.toolbarTopFragmentHouseListRl.topBackLl.setVisibility(View.VISIBLE);
        viewBinding.toolbarTopFragmentHouseListRl.topLeftIv.setImageResource(R.drawable.back_c);
        viewBinding.toolbarTopFragmentHouseListRl.topBarView.setBackgroundColor(getResources().getColor(R.color.text_FFFFFFFF, null));
        viewBinding.toolbarTopRl.topBarView.setBackgroundColor(getColor(R.color.text_00000000));
        viewBinding.toolbarTopRl.topTitleTv.setText(R.string.me_regard);
        viewBinding.toolbarTopRl.topBackLl.setVisibility(View.VISIBLE);
        String versionsStr = _mActivity.getResources().getString(R.string.app_version_number) + " " + AppConfigManage.getVersionName();
        viewBinding.asRegardsIconVersionsTv.setText(versionsStr);
@@ -144,7 +172,9 @@
            @Override
            public void run() {
                if (mNewVersionBean == null) {
                    HdlThreadLogic.toast(_mActivity, R.string.app_new_version);
                    FlashingBoxDialog flashingBoxDialog = new FlashingBoxDialog(_mActivity, 1500);
                    flashingBoxDialog.setContent(getString(R.string.app_new_version));
                    flashingBoxDialog.show();
                    return;
                }
                String app_version = getString(R.string.app_version) + ":" + mNewVersionBean.getVersion();
@@ -179,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.notification_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);
    }
}