| | |
| | | import android.content.Context; |
| | | import android.graphics.Bitmap; |
| | | import android.os.SystemClock; |
| | | import android.text.SpannableStringBuilder; |
| | | import android.text.TextPaint; |
| | | import android.text.TextUtils; |
| | | import android.text.style.ClickableSpan; |
| | | import android.view.View; |
| | | import android.view.inputmethod.InputMethodManager; |
| | | import android.widget.ImageView; |
| | | import android.widget.TextView; |
| | | |
| | | import androidx.annotation.NonNull; |
| | | |
| | | import com.google.gson.JsonObject; |
| | | import com.google.zxing.BarcodeFormat; |
| | |
| | | import com.google.zxing.common.BitMatrix; |
| | | import com.google.zxing.qrcode.QRCodeWriter; |
| | | import com.hdl.linkpm.sdk.user.HDLLinkPMUser; |
| | | import com.hdl.photovoltaic.HDLApp; |
| | | import com.hdl.photovoltaic.R; |
| | | import com.hdl.photovoltaic.config.ConstantManage; |
| | | import com.hdl.photovoltaic.config.UserConfigManage; |
| | | import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch; |
| | |
| | | import com.hdl.photovoltaic.enums.UnitType; |
| | | import com.hdl.photovoltaic.utils.GlideUtils; |
| | | import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus; |
| | | import com.hdl.sdk.link.core.callback.BaseCallBack; |
| | | |
| | | import org.greenrobot.eventbus.EventBus; |
| | | import org.json.JSONObject; |
| | |
| | | if (TextUtils.isEmpty(value)) { |
| | | return UnitType.noValue + unit; |
| | | } |
| | | if (unit.equals(UnitType.kW)) { |
| | | if (unit.equals(UnitType.kW) || unit.equals(UnitType.kWh)) { |
| | | return divideByOneThousandAndFormat(value).toString() + unit; |
| | | } |
| | | return getBigDecimal(value).toString() + unit; |
| | | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @param value 值 |
| | |
| | | * @return BigDecimal |
| | | */ |
| | | public static BigDecimal divideByOneThousandAndFormat(String value) { |
| | | double doubleValue = Double.parseDouble(value); |
| | | BigDecimal bigDecimal = new BigDecimal(doubleValue); |
| | | return bigDecimal.divide(new BigDecimal(1000), 2, RoundingMode.HALF_EVEN); |
| | | try { |
| | | double doubleValue = Double.parseDouble(value); |
| | | int val = 1000; |
| | | if (doubleValue > 1000 && doubleValue < 1000 * 1000) { |
| | | val = 1000; |
| | | } else if (doubleValue > 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) { |
| | | val = 1000 * 1000; |
| | | } else if (doubleValue > 1000 * 1000 * 1000) { |
| | | val = 1000 * 1000 * 1000; |
| | | } |
| | | BigDecimal bigDecimal = new BigDecimal(doubleValue); |
| | | return bigDecimal.divide(new BigDecimal(val), 2, RoundingMode.HALF_EVEN); |
| | | } catch (Exception e) { |
| | | BigDecimal bigDecimal = new BigDecimal(0); |
| | | return bigDecimal.divide(new BigDecimal(1000), 2, RoundingMode.HALF_EVEN); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 获取倍数 |
| | | * |
| | | * @param value 值 |
| | | */ |
| | | public static int val(String value) { |
| | | double doubleValue = Double.parseDouble(value); |
| | | int val = 1000; |
| | | if (doubleValue > 1000 && doubleValue < 1000 * 1000) { |
| | | val = 1000; |
| | | } else if (doubleValue > 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) { |
| | | val = 1000 * 1000; |
| | | } else if (doubleValue > 1000 * 1000 * 1000) { |
| | | val = 1000 * 1000 * 1000; |
| | | } |
| | | return val; |
| | | } |
| | | |
| | | /** |
| | | * 生成二维码 |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 没有数据界面的样式 |
| | | * |
| | |
| | | GlideUtils.getDrawableGifAnimation(mContext, imageView); |
| | | textView.setText(str); |
| | | |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 设置字体的富文本已经下划线 |
| | | * |
| | | * @param view 当前组件 |
| | | * @param str 内容字符串 |
| | | * @param isUnderline 是否显示下划线(true=显示) |
| | | * @param spanCallBack 点击文本后回调事件,不需要回调事件填null |
| | | */ |
| | | public void setSpan(TextView view, String str, boolean isUnderline, SpanCallBack spanCallBack) { |
| | | |
| | | if (view == null || TextUtils.isEmpty(str)) { |
| | | return; |
| | | } |
| | | try { |
| | | SpannableStringBuilder registerTvStrSpannable = new SpannableStringBuilder(str); |
| | | registerTvStrSpannable.setSpan(new ClickableSpan() { |
| | | @Override |
| | | public void onClick(@NonNull View widget) { |
| | | if (spanCallBack != null) { |
| | | spanCallBack.onClick(); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void updateDrawState(@NonNull TextPaint ds) { |
| | | super.updateDrawState(ds); |
| | | //设置字体颜色 |
| | | ds.setColor(HDLApp.getInstance().getResources().getColor(R.color.text_E6FFFFFF, null)); |
| | | // 去掉下划线 |
| | | ds.setUnderlineText(isUnderline); |
| | | } |
| | | |
| | | |
| | | }, 0, str.length(), 0); |
| | | view.setText(registerTvStrSpannable); |
| | | } catch (Exception ignored) { |
| | | } |
| | | } |
| | | |
| | |
| | | EventBus.getDefault().post(baseEventBus); |
| | | } |
| | | |
| | | public interface SpanCallBack { |
| | | void onClick(); |
| | | } |
| | | |
| | | } |