EfunboxUtil.java 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. package com.edufound.reader.util;
  2. import android.app.Activity;
  3. import android.app.Application;
  4. import android.content.Context;
  5. import android.content.Intent;
  6. import android.text.TextUtils;
  7. import android.util.DisplayMetrics;
  8. import com.edufound.reader.activity.LoginAlertActivity;
  9. import com.edufound.reader.application.EApplication;
  10. import com.edufound.reader.bean.ChannelCode;
  11. import com.orhanobut.logger.Logger;
  12. import java.math.BigDecimal;
  13. import java.text.DecimalFormat;
  14. import io.reactivex.rxjava3.annotations.NonNull;
  15. public class EfunboxUtil {
  16. /**
  17. * 得到宽高缩放比
  18. */
  19. public static void initDesignSize(Context context) {
  20. final DisplayMetrics appDisplayMetrics = context.getResources().getDisplayMetrics();
  21. int designWidth = 1280;
  22. int designHeight = 720;
  23. float ds = 1.0f * designWidth / designHeight;
  24. float ts = 1.0f * appDisplayMetrics.widthPixels / appDisplayMetrics.heightPixels;
  25. if (ds >= ts) {
  26. int targetWidth = appDisplayMetrics.widthPixels;
  27. float designScale = 1.0f * targetWidth / designWidth;
  28. setDisplay(context, designScale);
  29. } else {
  30. int targetHeight = appDisplayMetrics.heightPixels;
  31. float designScale = 1.0f * targetHeight / designHeight;
  32. setDisplay(context, designScale);
  33. }
  34. }
  35. /**
  36. * 设置dpi缩放比
  37. */
  38. public static void setDisplay(Context context, float designScale) {
  39. DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
  40. displayMetrics.density = designScale;
  41. displayMetrics.scaledDensity = displayMetrics.density;
  42. displayMetrics.xdpi = displayMetrics.density * 160;
  43. displayMetrics.ydpi = displayMetrics.xdpi;
  44. displayMetrics.densityDpi = Float.valueOf(displayMetrics.xdpi).intValue();
  45. }
  46. /**
  47. * 判断字符串是否符合手机号码格式
  48. * 移动号段: 134,135,136,137,138,139,147,150,151,152,157,158,159,170,178,182,183,184,187,188
  49. * 联通号段: 130,131,132,145,155,156,170,171,175,176,185,186
  50. * 电信号段: 133,149,153,170,173,177,180,181,189
  51. *
  52. * @param mobileNums
  53. * @return 待检测的字符串
  54. */
  55. public static boolean isMobileNO(String mobileNums) {
  56. String telRegex = "^((13[0-9])|(14[5,7,9])|(15[^4])|(18[0-9])|(17[0,1,3,5,6,7,8]))\\d{8}$";// "[1]"代表第1位为数字1,"[358]"代表第二位可以为3、5、8中的一个,"\\d{9}"代表后面是可以是0~9的数字,有9位。
  57. if (TextUtils.isEmpty(mobileNums)) {
  58. return false;
  59. } else {
  60. return mobileNums.matches(telRegex);
  61. }
  62. }
  63. /**
  64. * 根据中文年纪选择换成后台枚举
  65. */
  66. public static String getEnumByCNGrade(String cnGrade) {
  67. // PRESCHOOL("学前"),
  68. // PRIMARY_FIRST_GRADE("小学一年级"),
  69. // PRIMARY_SECOND_GRADE("小学二年级"),
  70. // PRIMARY_THREE_GRADE("小学三年级"),
  71. // PRIMARY_SENIOR_GRADE("小学四年级");
  72. switch (cnGrade) {
  73. case "一年级":
  74. return "PRIMARY_FIRST_GRADE";
  75. case "二年级":
  76. return "PRIMARY_SECOND_GRADE";
  77. case "三年级":
  78. return "PRIMARY_THREE_GRADE";
  79. case "四年级":
  80. return "PRIMARY_SENIOR_GRADE";
  81. case "学前":
  82. return "PRESCHOOL";
  83. }
  84. return "undefinde";
  85. }
  86. public static String getCNGradeByEnum(String gradeEnum) {
  87. switch (gradeEnum) {
  88. case "PRIMARY_FIRST_GRADE":
  89. return "一年级";
  90. case "PRIMARY_SECOND_GRADE":
  91. return "二年级";
  92. case "PRIMARY_THREE_GRADE":
  93. return "三年级";
  94. case "PRIMARY_SENIOR_GRADE":
  95. return "四年级";
  96. case "PRESCHOOL":
  97. return "学前";
  98. }
  99. return "undefinde";
  100. }
  101. public static int getIndexGradeByEnum(String gradeEnum) {
  102. switch (gradeEnum) {
  103. case "PRIMARY_FIRST_GRADE":
  104. return 0;
  105. case "PRIMARY_SECOND_GRADE":
  106. return 1;
  107. case "PRIMARY_THREE_GRADE":
  108. return 2;
  109. case "PRIMARY_SENIOR_GRADE":
  110. return 3;
  111. case "PRESCHOOL":
  112. return 4;
  113. }
  114. return -1;
  115. }
  116. public static boolean checkLogin(Context context) {
  117. if (!Consts.getUID().equals("test")) {
  118. //已登录
  119. return true;
  120. }
  121. //未登录,去登录
  122. if (Consts.getUmengChannel().equals(ChannelCode.BAIDU.getChannelCode())) {
  123. //百度渠道调用百度的授权
  124. } else if (Consts.getUmengChannel().equals(ChannelCode.YIFANG.getChannelCode())) {
  125. //义方调用普通版登录
  126. Intent tologin = new Intent(context, LoginAlertActivity.class);
  127. context.startActivity(tologin);
  128. }
  129. return false;
  130. }
  131. public static String checkNum10000(String num) {
  132. if (Float.valueOf(num) > 10000f) {
  133. float a = Float.parseFloat(num) / 10000;
  134. DecimalFormat decimalFormat = new DecimalFormat("#.#");
  135. return String.valueOf(decimalFormat.format(a)) + "万";
  136. }
  137. return num;
  138. }
  139. }