| | |
| | | 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 com.google.zxing.BarcodeFormat; |
| | | import com.google.zxing.MultiFormatWriter; |
| | | import com.google.zxing.WriterException; |
| | | import com.google.zxing.common.BitMatrix; |
| | | 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.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更新) |
| | |
| | | |
| | | @Override |
| | | public void onBindView(Bundle savedInstanceState) { |
| | | setNotificationBarBackgroundColor(CustomColor.white); |
| | | setStatusBarTextColor(); |
| | | setStatusBarTranslucent(); |
| | | getWindow().setNavigationBarColor(getColor(R.color.text_FF000000)); |
| | | //初始化 |
| | | initView(); |
| | | //初始化界面监听器 |
| | |
| | | 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)); |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | } |
| | | }); |
| | | //todo 等接口 |
| | | String content = "https://spark.appc02.com/ksgd1"; |
| | | 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.topBackBtn.setOnClickListener(new View.OnClickListener() { |
| | | viewBinding.toolbarTopRl.topBackLl.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | finish(); |
| | |
| | | |
| | | } |
| | | }); |
| | | viewBinding.contactUsRl.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | 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.topBackBtn.setVisibility(View.VISIBLE); |
| | | 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); |
| | | |
| | |
| | | @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(); |
| | |
| | | } |
| | | }, 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); |
| | | } |
| | | } |