From 980756f307d2fa226659f66171a0b9657ce9df9e Mon Sep 17 00:00:00 2001 From: hwf453 Date: Wed, 28 Aug 2024 16:37:52 +0800 Subject: [PATCH] =?UTF-8?q?1.1.4=E5=8F=91=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 4 +- app/src/main/AndroidManifest.xml | 4 + .../main/java/com/rehome/dywoa/Contans.java | 54 +--- .../rehome/dywoa/base/BaseLazyFragment.java | 92 +------ .../dywoa/ui/activity/BiShowActivity.java | 242 ++++++++++++++++++ .../rehome/dywoa/ui/activity/HomeActivity.kt | 11 +- .../rehome/dywoa/ui/activity/LoginActivity.kt | 6 +- .../ui/activity/sbxdjgl/SdjgzActivity.java | 2 +- .../dywoa/ui/fragment/HomeFragment.java | 63 ++--- .../dywoa/ui/fragment/MineFragment.java | 11 +- .../com/rehome/dywoa/utils/DataPassUtils.java | 8 +- .../java/com/rehome/dywoa/utils/RSAUtils.java | 10 + app/src/main/res/drawable-xhdpi/icon_bi.png | Bin 0 -> 1754 bytes app/src/main/res/drawable-xxhdpi/icon_bi.png | Bin 0 -> 2359 bytes app/src/main/res/drawable-xxxhdpi/icon_bi.png | Bin 0 -> 3348 bytes app/src/main/res/layout/activity_bi_show.xml | 40 +++ app/src/main/res/layout/fragment_home.xml | 2 +- app/src/main/res/layout/fragment_mine.xml | 2 +- app/src/main/res/layout/fragment_xjcj.xml | 3 +- 19 files changed, 369 insertions(+), 185 deletions(-) create mode 100644 app/src/main/java/com/rehome/dywoa/ui/activity/BiShowActivity.java create mode 100644 app/src/main/res/drawable-xhdpi/icon_bi.png create mode 100644 app/src/main/res/drawable-xxhdpi/icon_bi.png create mode 100644 app/src/main/res/drawable-xxxhdpi/icon_bi.png create mode 100644 app/src/main/res/layout/activity_bi_show.xml diff --git a/app/build.gradle b/app/build.gradle index 57a57af..63834ed 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "com.rehome.dywoa" minSdk 24 targetSdk 34 - versionCode 14 - versionName "1.1.3" + versionCode 15 + versionName "1.1.4" multiDexEnabled true testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" //每个应用拥有不同的authorities,防止相同的在同一个手机上无法同时安装 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7a73dc0..1fa527c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -200,6 +200,10 @@ android:name=".ui.activity.WaitForToDoActivity" android:exported="false" android:screenOrientation="portrait" /> + BiShowActivity.this.finish()); + + + //支持缩放 + mAgentWeb.getWebCreator().getWebView().getSettings().setBuiltInZoomControls(true); + mAgentWeb.getWebCreator().getWebView().getSettings().setDisplayZoomControls(false); + mAgentWeb.getWebCreator().getWebView().getSettings().setSupportZoom(true); + mAgentWeb.getWebCreator().getWebView().getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); + + checkServerConnectStatus(); + + } + + @Override + protected void onResume() { + super.onResume(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + } + + + //检查服务器连接状态 + private void checkServerConnectStatus() { + Map param = new HashMap<>(); + param.put("login","dywoa"); + String json = GsonUtils.GsonString(param); + String url = Contans.IP + Contans.check_server_connect; + showLog(url); + showLog(json); + Request request = NoHttp.createStringRequest( + url, + RequestMethod.POST + ); + request.setDefineRequestBodyForJson(json); + NoProgresshttpUtils.getInstance().add(this, 0, request, new HttpListener() { + + @Override + public void onSucceed(int what, Response response) { + String result = response.get(); + showLog("-----onSucceed----"); + showLog(result); + if(result.equals("1")){ + showLog("connect server success"); + //可以连接到服务器,请求数据 + getSingleLoginToken(); + }else{ + showToast("无法连接到服务器,请检查网络环境"); + } + } + + @Override + public void onFailed(int what, Response response) { + showLog("connect server onFailed"); + showToast("无法连接到服务器,请检查网络环境"); + } + }); + } + + + private void getSingleLoginToken() { + //1724740210123 + //1640832102097 + long nowTime = System.currentTimeMillis(); + showLog(String.valueOf(nowTime)); + HashMap param = new HashMap<>(); + param.put("username",App.getInstance().getUserInfo().getManid()); + param.put("issueTime",String.valueOf(nowTime)); + String jsonParam = GsonUtils.GsonString(param); + String usernameEncrypt = RSAUtils.encryptBASE64BIStr(jsonParam); + String usernameEncode = ""; + try { + usernameEncode = URLEncoder.encode(usernameEncrypt, "UTF-8"); + } catch (Exception e) { + e.printStackTrace(); + } + + String url = Contans.BI_TOKEN_IP + urlToken + "?ssoToken=" + usernameEncode; + loadSisPage(url); + } + + private void loadSisPage(String biUrl) { + showLog(biUrl); + this.mAgentWeb.getUrlLoader().loadUrl(biUrl); + } + + + @NonNull + @Override + protected ViewGroup getAgentWebParent() { + return (ViewGroup) this.findViewById(R.id.container); + } + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + if (mAgentWeb != null && mAgentWeb.handleKeyEvent(keyCode, event)) { + return true; + } + + return super.onKeyDown(keyCode, event); + } + + @Override + protected int getIndicatorColor() { + return Color.parseColor("#ff0000"); + } + + @Override + protected void setTitle(WebView view, String title) { + super.setTitle(view, title); + if (!TextUtils.isEmpty(title)) { + if (mTitleTextView != null) { + mTitleTextView.setText(type); + } + } + } + + @Override + protected int getIndicatorHeight() { + return 3; + } + + @Nullable + @Override + protected String getUrl() { + return null; + //return "https://www.baidu.com/"; + } + + + private void showLog(String logText) { + if (BuildConfig.LOG_ERROR) { + if (TextUtils.isEmpty(logText)) { + Log.i("app", "logText is null"); + } else { + Log.i("app", logText); + } + } + } + + public void showToast(String msg) { + Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); + } + + public void showToast(int strId) { + Toast.makeText(this, strId, Toast.LENGTH_SHORT).show(); + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/rehome/dywoa/ui/activity/HomeActivity.kt b/app/src/main/java/com/rehome/dywoa/ui/activity/HomeActivity.kt index 4fee441..29fc758 100644 --- a/app/src/main/java/com/rehome/dywoa/ui/activity/HomeActivity.kt +++ b/app/src/main/java/com/rehome/dywoa/ui/activity/HomeActivity.kt @@ -88,6 +88,9 @@ class HomeActivity : BaseActivityOaToolbarViewBinding() { private lateinit var badgeView_me: BadgeView private var isInitTbs: Boolean = false + private lateinit var homeFragment:HomeFragment + private lateinit var mineFragment:MineFragment + private lateinit var username: String private lateinit var queueNoHttp: RequestQueue @@ -124,8 +127,10 @@ class HomeActivity : BaseActivityOaToolbarViewBinding() { badgeView_me.setBadgeMargin(0, 2, 10, 0) //设置边距 badgeView_me.textSize = 16f - fragments.add(HomeFragment.getInstance()) - fragments.add(MineFragment.getInstance()) + homeFragment = HomeFragment.getInstance() + mineFragment = MineFragment.getInstance() + fragments.add(homeFragment) + fragments.add(mineFragment) adapter = object : FragmentPagerAdapter(supportFragmentManager) { override fun getItem(position: Int): Fragment { @@ -158,6 +163,7 @@ class HomeActivity : BaseActivityOaToolbarViewBinding() { binding.rbHome.setTextColor(Color.parseColor("#0099ff")) binding.rbHome.isChecked = true binding.toolbarView.topLl.visibility = View.GONE + homeFragment.updateWaitForToDo() } 1 -> { @@ -166,6 +172,7 @@ class HomeActivity : BaseActivityOaToolbarViewBinding() { binding.toolbarView.topLl.visibility = View.GONE binding.rbMine.setTextColor(Color.parseColor("#0099ff")) binding.rbMine.isChecked = true + mineFragment.updateWaitForToDo() } } } diff --git a/app/src/main/java/com/rehome/dywoa/ui/activity/LoginActivity.kt b/app/src/main/java/com/rehome/dywoa/ui/activity/LoginActivity.kt index 0379a21..ace8d1b 100644 --- a/app/src/main/java/com/rehome/dywoa/ui/activity/LoginActivity.kt +++ b/app/src/main/java/com/rehome/dywoa/ui/activity/LoginActivity.kt @@ -192,6 +192,10 @@ class LoginActivity : BaseActivityOaToolbarViewBinding() { // binding.etUsername.setText("371522") // binding.etPassword.setText("A000000a") +// binding.etUsername.setText("CY00011") +// binding.etPassword.setText("A000000a") + + // binding.etUsername.setText("371543") // binding.etPassword.setText("Dyw@2024") @@ -729,7 +733,7 @@ class LoginActivity : BaseActivityOaToolbarViewBinding() { // showLog(json.length.toString()); showLog(json); -// showLog(jsonEncrypt); + showLog(jsonEncrypt); return jsonEncrypt } diff --git a/app/src/main/java/com/rehome/dywoa/ui/activity/sbxdjgl/SdjgzActivity.java b/app/src/main/java/com/rehome/dywoa/ui/activity/sbxdjgl/SdjgzActivity.java index f233bf3..a49f477 100644 --- a/app/src/main/java/com/rehome/dywoa/ui/activity/sbxdjgl/SdjgzActivity.java +++ b/app/src/main/java/com/rehome/dywoa/ui/activity/sbxdjgl/SdjgzActivity.java @@ -417,7 +417,7 @@ public class SdjgzActivity extends BaseActivity { @Override public void handleNfc(String result) { //super.handleNfc(result); -// tvNodata.setText(result); + //tvNodata.setText(result); //result = "04351EEA211991"; if (list.size() != 0) { showLog("--------"); diff --git a/app/src/main/java/com/rehome/dywoa/ui/fragment/HomeFragment.java b/app/src/main/java/com/rehome/dywoa/ui/fragment/HomeFragment.java index 764c097..a8fa3e0 100644 --- a/app/src/main/java/com/rehome/dywoa/ui/fragment/HomeFragment.java +++ b/app/src/main/java/com/rehome/dywoa/ui/fragment/HomeFragment.java @@ -1,8 +1,6 @@ package com.rehome.dywoa.ui.fragment; -import static com.rehome.dywoa.utils.GsonUtils.GsonToBean; - import android.content.Intent; import android.text.TextUtils; import android.view.View; @@ -10,51 +8,41 @@ import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; -import androidx.localbroadcastmanager.content.LocalBroadcastManager; - import com.rehome.dywoa.App; import com.rehome.dywoa.Contans; -import com.rehome.dywoa.DBModel.Xjjh; -import com.rehome.dywoa.DBModel.XjjhList; import com.rehome.dywoa.MainActivity; import com.rehome.dywoa.R; import com.rehome.dywoa.adapter.GridViewAdapter; import com.rehome.dywoa.base.BaseFragment; import com.rehome.dywoa.bean.GridItem; import com.rehome.dywoa.bean.WaitForBean; +import com.rehome.dywoa.ui.activity.BiShowActivity; import com.rehome.dywoa.ui.activity.JiZhuActivity; import com.rehome.dywoa.ui.activity.KksSearchActivity; -import com.rehome.dywoa.ui.activity.RunLogActivity; -import com.rehome.dywoa.ui.activity.RunLogBaseActivity; import com.rehome.dywoa.ui.activity.RunLogListActivity; import com.rehome.dywoa.ui.activity.SisBaseActivity; import com.rehome.dywoa.ui.activity.UseCarActivity; import com.rehome.dywoa.ui.activity.UseSealActivity; import com.rehome.dywoa.ui.activity.WaitForToDoActivity; -import com.rehome.dywoa.ui.activity.WaitForToDoBaseActivity; import com.rehome.dywoa.ui.activity.YjyaActivity; import com.rehome.dywoa.ui.activity.sbxdjgl.SbxdjglActivity; import com.rehome.dywoa.ui.activity.sbxj.XscbglActivity; import com.rehome.dywoa.utils.GsonUtils; import com.rehome.dywoa.utils.HttpListener; import com.rehome.dywoa.utils.NoProgresshttpUtils; -import com.rehome.dywoa.utils.NohttpUtils; import com.rehome.dywoa.weiget.AutoGridView; import com.yolanda.nohttp.NoHttp; import com.yolanda.nohttp.RequestMethod; import com.yolanda.nohttp.rest.Request; import com.yolanda.nohttp.rest.Response; -import org.litepal.crud.DataSupport; - -import java.text.ParseException; +import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; -import java.util.Map; public class HomeFragment extends BaseFragment { @@ -220,12 +208,12 @@ public class HomeFragment extends BaseFragment { startActivity(intentJiZhu); break; case 3: - if((firstDeparment!=null&&firstDeparment.equals("运行部"))||(username!=null&&username.equals("371522"))){ + if((firstDeparment!=null&&firstDeparment.equals("运行部"))||(firstDeparment!=null&&firstDeparment.equals("承包商"))||(username!=null&&username.equals("371522"))){ Intent intentXj= new Intent(mActivity, XscbglActivity.class); intentXj.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); startActivity(intentXj); }else{ - showToast("巡检功能只对运行部开放,当前用户不是运行部,无权限"); + showToast("巡检功能只对运行部和承包商开放,当前用户无权限"); } break; case 4: @@ -298,16 +286,23 @@ public class HomeFragment extends BaseFragment { intentUseSeal.putExtra("urlLog",urlSeal); startActivity(intentUseSeal); break; -// case 9: -// Intent intentWaitFor = new Intent(mActivity, WaitForToDoActivity.class); -// intentWaitFor.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); -// -// String typeWaitFor = "待办"; -// String urlWaitFor = "https://mis.dywzhny.com.cn/mobile/workflow/list/todo?cusMenuId=5116426542447237804&urlPageTitle=5b6F5Yqe5rWB56iL"; -// intentWaitFor.putExtra("type",typeWaitFor); -// intentWaitFor.putExtra("urlLog",urlWaitFor); -// startActivity(intentWaitFor); -// break; + case 10: + try { + // + Intent intentWaitFor = new Intent(mActivity, BiShowActivity.class); + intentWaitFor.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); + String typeBI = "BI"; + String urlBI = "https://bi.dywzhny.com.cn/webroot/decision/url/mobile#/directory"; + String encodedUrlBI = URLEncoder.encode(urlBI, "UTF-8"); + + //urlBI = "https://bi.dywzhny.com.cn/webroot/decision#/"; + intentWaitFor.putExtra("type",typeBI); + intentWaitFor.putExtra("urlLog",urlBI); + startActivity(intentWaitFor); + } catch (Exception e) { + e.printStackTrace(); + } + break; // case 8: // TAG = GridViewDialog.TAG_PEIXUN; // break; @@ -336,8 +331,8 @@ public class HomeFragment extends BaseFragment { // String[] titles = {"两票系统", "会议管理", "用餐管理", "车辆管理", "办公领用", "工作任务", "日程查看", "考勤", "来访管理", "培训", "党建", "安防"}; // int[] imgIds = {R.drawable.icon_liangpiao, R.drawable.icon_meetting, R.drawable.icon_dinner_new, R.drawable.icon_vehicle_new, R.drawable.icon_office, R.drawable.icon_task, R.drawable.icon_date, R.drawable.icon_check, R.drawable.icon_px, R.drawable.icon_dj,R.drawable.icon_visit, R.drawable.icon1}; // - String[] titles = {"两票系统", "SIS系统", "机组参数","巡检","点检","运行日志","kks码查询","应急预案","用车","用印"}; - int[] imgIds = {R.drawable.icon_liangpiao, R.drawable.icon_sis_new, R.drawable.icon_gcjd_new,R.drawable.xjgz,R.drawable.icon_dianjian,R.drawable.icon_runlog_home,R.drawable.icon_kks,R.drawable.icon_yjya,R.drawable.icon_use_car,R.drawable.icon_use_seal}; + String[] titles = {"两票系统", "SIS系统", "机组参数","巡检","点检","运行日志","kks码查询","应急预案","用车","用印","BI"}; + int[] imgIds = {R.drawable.icon_liangpiao, R.drawable.icon_sis_new, R.drawable.icon_gcjd_new,R.drawable.xjgz,R.drawable.icon_dianjian,R.drawable.icon_runlog_home,R.drawable.icon_kks,R.drawable.icon_yjya,R.drawable.icon_use_car,R.drawable.icon_use_seal,R.drawable.icon_bi}; @@ -375,6 +370,7 @@ public class HomeFragment extends BaseFragment { HashMap param = new HashMap<>(); param.put("YHID",username); + //param.put("YHID","sysadmin"); String url = Contans.IP + Contans.GET_WAIT_FOR_TO_DO; showLog(url); @@ -395,9 +391,15 @@ public class HomeFragment extends BaseFragment { if(waitForBean!=null){ if(!TextUtils.isEmpty(waitForBean.getTotal())){ tv_todo_count.setText(waitForBean.getTotal()); + if(Integer.valueOf(waitForBean.getTotal()).intValue()==0){ + tv_todo_count.setVisibility(View.GONE); + }else{ + tv_todo_count.setVisibility(View.VISIBLE); + } } }else{ tv_todo_count.setText("0"); + tv_todo_count.setVisibility(View.GONE); } } @@ -407,5 +409,8 @@ public class HomeFragment extends BaseFragment { } }); } - + //更新待办 + public void updateWaitForToDo() { + getWaitForToDo(); + } } \ No newline at end of file diff --git a/app/src/main/java/com/rehome/dywoa/ui/fragment/MineFragment.java b/app/src/main/java/com/rehome/dywoa/ui/fragment/MineFragment.java index cb97621..ed153c1 100644 --- a/app/src/main/java/com/rehome/dywoa/ui/fragment/MineFragment.java +++ b/app/src/main/java/com/rehome/dywoa/ui/fragment/MineFragment.java @@ -47,6 +47,7 @@ import com.luck.picture.lib.interfaces.OnResultCallbackListener; import com.rehome.dywoa.App; import com.rehome.dywoa.BuildConfig; import com.rehome.dywoa.Contans; +import com.rehome.dywoa.DBModel.DjjhRwQy; import com.rehome.dywoa.Listener.GlideEngine; import com.rehome.dywoa.R; import com.rehome.dywoa.base.BaseLazyFragment; @@ -72,6 +73,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Objects; import cn.hutool.core.io.IoUtil; @@ -227,7 +229,6 @@ public class MineFragment extends BaseLazyFragment { clearImageDiskCache(getActivity()); loadImage(); - getWaitForToDo(); } @Override @@ -501,6 +502,7 @@ public class MineFragment extends BaseLazyFragment { @Override public void onResume() { super.onResume(); + getWaitForToDo(); } @@ -797,6 +799,7 @@ public class MineFragment extends BaseLazyFragment { HashMap param = new HashMap<>(); param.put("YHID",username); + //param.put("YHID","sysadmin"); String url = Contans.IP + Contans.GET_WAIT_FOR_TO_DO; showLog(url); @@ -820,7 +823,7 @@ public class MineFragment extends BaseLazyFragment { if(Integer.valueOf(waitForBean.getTotal()).intValue()==0){ tv_count_to_do.setVisibility(View.GONE); }else{ - tv_count_to_do.setVisibility(View.GONE); + tv_count_to_do.setVisibility(View.VISIBLE); } }else{ tv_count_to_do.setVisibility(View.GONE); @@ -837,4 +840,8 @@ public class MineFragment extends BaseLazyFragment { } }); } + //更新待办 + public void updateWaitForToDo() { + getWaitForToDo(); + } } diff --git a/app/src/main/java/com/rehome/dywoa/utils/DataPassUtils.java b/app/src/main/java/com/rehome/dywoa/utils/DataPassUtils.java index 71f1feb..c96604a 100644 --- a/app/src/main/java/com/rehome/dywoa/utils/DataPassUtils.java +++ b/app/src/main/java/com/rehome/dywoa/utils/DataPassUtils.java @@ -10,7 +10,7 @@ public class DataPassUtils { try { //格式化日期的对象(转化成习惯的时间格式) SimpleDateFormat sdFormat = new SimpleDateFormat("yyyy年MM月dd日"); - Date date = sdFormat.parse("2024年08月31日"); + Date date = sdFormat.parse("2024年10月20日"); Calendar calendarOne = Calendar.getInstance(); calendarOne.setTime(date); if (!Calendar.getInstance().after(calendarOne)) { @@ -27,7 +27,7 @@ public class DataPassUtils { try { //格式化日期的对象(转化成习惯的时间格式) SimpleDateFormat sdFormat = new SimpleDateFormat("yyyy年MM月dd日"); - Date date = sdFormat.parse("2024年08月31日"); + Date date = sdFormat.parse("2024年10月20日"); Calendar calendarOne = Calendar.getInstance(); calendarOne.setTime(date); if (!Calendar.getInstance().after(calendarOne)) { @@ -43,7 +43,7 @@ public class DataPassUtils { try { //格式化日期的对象(转化成习惯的时间格式) SimpleDateFormat sdFormat = new SimpleDateFormat("yyyy年MM月dd日"); - Date date = sdFormat.parse("2024年08月31日"); + Date date = sdFormat.parse("2024年10月20日"); Calendar calendarOne = Calendar.getInstance(); calendarOne.setTime(date); if (!Calendar.getInstance().after(calendarOne)) { @@ -58,7 +58,7 @@ public class DataPassUtils { try { //格式化日期的对象(转化成习惯的时间格式) SimpleDateFormat sdFormat = new SimpleDateFormat("yyyy年MM月dd日"); - Date date = sdFormat.parse("2024年08月31日"); + Date date = sdFormat.parse("2024年10月20日"); Calendar calendarOne = Calendar.getInstance(); calendarOne.setTime(date); if (!Calendar.getInstance().after(calendarOne)) { diff --git a/app/src/main/java/com/rehome/dywoa/utils/RSAUtils.java b/app/src/main/java/com/rehome/dywoa/utils/RSAUtils.java index 0d1cb48..c8afbc2 100644 --- a/app/src/main/java/com/rehome/dywoa/utils/RSAUtils.java +++ b/app/src/main/java/com/rehome/dywoa/utils/RSAUtils.java @@ -51,6 +51,7 @@ public class RSAUtils { public static final String private_key_local = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQD+WFBHIUxXkssnP2MWNj5lb/v3AS66MMmPLxjGXGp9JP4VRQ7K0fjp8tF3mbizg2PsvTeGyzPQfQzWkqJTNTOnq6VILwYfb+5nMGrjtqCt71tbQD5S7QiILB85zQnUvVSUub/BZEZbRLDnU4dgCz32KuOHF0YU5W/+ZL0XPPGYFEU7BRcUPyJfIQojzGS17IcaeIpHAFihZHfaRDDsf8yelqajV8KscDoODnkIF4gSSDajI8YrO+GQ9WiknOP3O6RbzDYXSJHmWXRAGXtfMbLLcQeYixiyh3ctIiHWDkDbOyxwnSi6isoYvBjUsrTprfglORjPmnuXHo2frnz1F7wbAgMBAAECggEAakyCkJfMDjWdjjOht+DHxyE8TwlBfDNzqdHnKs/o+ZCCWGVaP03uF+iRvsiSNwRMuN6D3GQErbf1q5/xE5GCmyrTkw2EI5NmMd48bhsfoFIO/l4lLgc+r5qxGjklSLIwLVBMYgkElpRo0uVICM3qAX3/RbBma8lQOyPjG1kvJ31L/xYN4DbfOfumqs3Eb06ZNvPEP0BnbbVFp6NiOcBvLipQxrhnMob5MDyPWEjcBeV/IssK3ZvrzjsqF1Ckz8KNUKGfDq4DHM7YzkLBySDIiOZHSBfimzc8fxtDFZpMOOBbEZJ0sGlTeftv5Zd0KHWD0OBWBeSHeVFRBc5RCPO38QKBgQD/rPC5Jr2Sgp3tKrRyEztYZrce0ecYvsxYZRgQpSxLF+rd8Z8ftH/MHPEdnYZjLWFPDrd+R3eEEr5B2t2sfKUWE/PA97RvSp/Uqv0xKoetX8JopeZ6X/3PRb9bQFWRe2dPBSA5mKx8MIOIhfr2qjdepDF+Lejn4pCFDSs8BLpPbQKBgQD+qvDlusQ1IvBi19DnKqx3iLvgHFHYb/GcrFzqfQZewGZLH7yoBo4zXZLT2Np+DW7K8IC3JOLNhLrvD1V8+bmOwW84Foo62Gvm1GPm8nxbgTCqg+ns5bV0xoHXdN1v4dAgeOBqYrIFkmSfxpB4usij8yFMZkN7PNZ3KwQYqZYcpwKBgQDS+qKqJo3ImIA5dUPx3mzaRehWRl+sy8VULBfvpF0omlP1Ua09PHU4uak+Bv8eWBQ0aLCCQ/cbxVu6fCDwdOrFjTFXyw/Zxnqdw3urVq0fJCYItN27nfqTT7rYUf5KTsqxKkmtPY8X6/Ced/DgGxYVwugUd036C7u2D2fd3wjfAQKBgQCfHkduAofde3sfByFrjmo8NZ7NpGQvC6K29asIiB2Wzjgb8DR797yZs3muC+xYniP/gM2roMxlBO2XuMj9UTrzS0Emlk6//cFNdJ8HCbNRqSKzJ8DdV5lM4Ur3R/mjkj/sShpN3mTEvndIrVRPWsVKSvsfNTYsphKKWsIwdqVoOQKBgQD5ibg09UHs0dHiaOn0lKsUFb25q+ylu4NLIU6gh/xi7sJ2huRA2gElPwkUsCIzH+/TTiIdvs1WuoBCvvCWL6a7xchN1+nve2fw4ohNHWupcTNWX1k1pNFHXjhtaUMes7zTTy6wBDbkbM7yTQLtB8/VMzMpuzg6UZPw3Hv8sIOz+w=="; public static final String public_key_mqtt = "MIIEIjANBgkqhkiG9w0BAQEFAAOCBA8AMIIECgKCBAEAujmJWv1QTJU1uS/t0Tj0ms9dPuYtZeuxCCAvc93/6JvxAON6UyfniL4hScOzwDqR74GsOtYC5O1JNi4VGn4XU6XKt30o+/cCJeSaynmcVRBnkbjpo4pvE/97//GEwHbhPSsHRv2GmURx/wEZKGhlAceMu3xMs1slhD2gmGlfoZTdMULUN7xIbN5wgwZbcGs+XD+eaGEkE6xOyJdthKnsoYq+7lsfl0668231374zIDMSYCkcES5v86jr0HG4TVYymBbD33/WAJ0ISyBP+LMboasw62QoVrwPYXkWIqfiFFHwpi/TqyjJef8bM4bUuW2vqfFCMRZb23NKIseSvjgJu62FlQAPFgw8U5/i1yRGyFJPryJP0dJS07uv5k+J5iSKabvjp0RWkVLwgUzctQKjJhx+cE9bOPXgAGp7dczumjMPlOVm7AGEsAAlDNHNcDksKssy91kl3tkkj987/0P534TehtKvZ43W2XoOSyA0nPxfb/hxb6cLo3D1OD9Favc5WkSUgnYS8Kc+wwOPpUl8eveGLWjbdd8tFGpq8jW2Nrrk584zqu6OqgE9BqHC4NwnMkd1ZmwVBC7aUB+BuVgKxb+lRXRzoYOeCYYdn4Rg0yEdSJcCTwEEwJqouAD/eCkj2KVpz2lTr1zut8w4oDwk9BYe/9R5fz9/yE+M06MAG60ys4Ac0IpfERQP8VP3a+JuTZGPvan/CSq4nGdvd/+R+aZHcQUJDXk1YzSPZFezrLIVZQe0u0HbIIfPhLHmEwCAXzhM1Ise4xC8XHOytlJw3drkNAsJN9sZ9UePLZMEkggLYgzsgSZ11tRgObA/OXPW4/fd71RO/MZmH9DLv7blCkLomTKinKDiO7MsQvjIQaDKgOVX8Db8UvVcolZLHy48c6vUbJFVXRo2ds/1MK5sgDBNGzNTX/QkPuQS+IDnh4g4edbU0tfwTzkcawHShMza+QQfcHRu5hgpurGv4CApcVWIZn49T/ElJMbSSQczbF6f08piXs8hlyUYBhFjdQJNp3Imuii2c1M10rOGn1PHR0yIay6+L1toDn6ASJksY1FCNSkzpv5utykEKf0Hq2+HX0Wi1Umdl/tndqBVXygSgi4SSu/j5iZtSnjwb1DxQKvO5LLNxxdtEJLsEpQii5LlWr7MjkcsR7zHhzzkqWIAsIbaiwuasMcRkYbAjYFcIH4mSZCTACvsTDxm+hB0GxVmGEfEgknphVm0Yqa7/NXcz9bL856ez5IemmiavfntBS8uhet3m4FYa0FolJF0YdlJa0LCXW/QQYa/PltBFx9xY9nveEp08f+DXUPzJ+0puX3qxLIMyazTfM4mWgxxPmMQOFTNwGwtNGMP6Ncbd6V4oQIDAQAB"; public static final String private_key_mqtt = "MIISQgIBADANBgkqhkiG9w0BAQEFAASCEiwwghIoAgEAAoIEAQC6OYla/VBMlTW5L+3ROPSaz10+5i1l67EIIC9z3f/om/EA43pTJ+eIviFJw7PAOpHvgaw61gLk7Uk2LhUafhdTpcq3fSj79wIl5JrKeZxVEGeRuOmjim8T/3v/8YTAduE9KwdG/YaZRHH/ARkoaGUBx4y7fEyzWyWEPaCYaV+hlN0xQtQ3vEhs3nCDBltwaz5cP55oYSQTrE7Il22Eqeyhir7uWx+XTrrzbfXfvjMgMxJgKRwRLm/zqOvQcbhNVjKYFsPff9YAnQhLIE/4sxuhqzDrZChWvA9heRYip+IUUfCmL9OrKMl5/xszhtS5ba+p8UIxFlvbc0oix5K+OAm7rYWVAA8WDDxTn+LXJEbIUk+vIk/R0lLTu6/mT4nmJIppu+OnRFaRUvCBTNy1AqMmHH5wT1s49eAAant1zO6aMw+U5WbsAYSwACUM0c1wOSwqyzL3WSXe2SSP3zv/Q/nfhN6G0q9njdbZeg5LIDSc/F9v+HFvpwujcPU4P0Vq9zlaRJSCdhLwpz7DA4+lSXx694YtaNt13y0UamryNbY2uuTnzjOq7o6qAT0GocLg3CcyR3VmbBUELtpQH4G5WArFv6VFdHOhg54Jhh2fhGDTIR1IlwJPAQTAmqi4AP94KSPYpWnPaVOvXO63zDigPCT0Fh7/1Hl/P3/IT4zTowAbrTKzgBzQil8RFA/xU/dr4m5NkY+9qf8JKricZ293/5H5pkdxBQkNeTVjNI9kV7OsshVlB7S7Qdsgh8+EseYTAIBfOEzUix7jELxcc7K2UnDd2uQ0Cwk32xn1R48tkwSSCAtiDOyBJnXW1GA5sD85c9bj993vVE78xmYf0Mu/tuUKQuiZMqKcoOI7syxC+MhBoMqA5VfwNvxS9VyiVksfLjxzq9RskVVdGjZ2z/UwrmyAME0bM1Nf9CQ+5BL4gOeHiDh51tTS1/BPORxrAdKEzNr5BB9wdG7mGCm6sa/gIClxVYhmfj1P8SUkxtJJBzNsXp/TymJezyGXJRgGEWN1Ak2ncia6KLZzUzXSs4afU8dHTIhrLr4vW2gOfoBImSxjUUI1KTOm/m63KQQp/Qerb4dfRaLVSZ2X+2d2oFVfKBKCLhJK7+PmJm1KePBvUPFAq87kss3HF20QkuwSlCKLkuVavsyORyxHvMeHPOSpYgCwhtqLC5qwxxGRhsCNgVwgfiZJkJMAK+xMPGb6EHQbFWYYR8SCSemFWbRiprv81dzP1svznp7Pkh6aaJq9+e0FLy6F63ebgVhrQWiUkXRh2UlrQsJdb9BBhr8+W0EXH3Fj2e94SnTx/4NdQ/Mn7Sm5ferEsgzJrNN8ziZaDHE+YxA4VM3AbC00Yw/o1xt3pXihAgMBAAECggQBAKnlukHQH8Vuz8+/QXoDO25Nx2WOPFbjG+Us7/4GyOXf95V28/AP1PX1eItCx6iWBvR62rXm8EcJkSSkEE7WQNPoyzRyNMUDyurlUK9vGcilqcfR6x5wOv0Eto2APDwXeVEEA6SpwnXscxBSYTBzZcuk0elu8s8jVev7CZxjboMNPGwn61NaLL1eh0mSsDO1M/SXeh8CmRZ1un7ZYGqLWL7cxWrSqdSyWG+kn5Bch2pWDeq7NscaFbs4HsRSK/IqtQf6pQMwLv7qRVm9BhkA1zG87GmlPAQ9mM612RMPFXyycRo9QiDCmmX570goN8Vgo8YovNnp6y4gVb+7Uk7G82JNYjTZE+pqiVNF6H+dshIqvlYquKXV/Aj+D/HQGSBlr/3dFEpTV6NIBvIAPM/LsysfDd/LFo+2CoJ2o2KK8BiwgwO18xtYG0UzLJowgvxivL/iGQJ/S8SvWOMFqEgwLTTWlOpuJucUCbLp30Z9AGNFAJE4Gc3imgSoFqEVYHDBUorfTJplvMvf2auzgQcsLyxEzR56rtYwIYGhwSZvCGmQQyyU/KBy+qdxb8qwJApf8Ea32QzziI0DbdtxkzmUcGePe+oM3z24xaMsv7P74xZb/MpwMwP/CuXpdApDps9qwTBzYUCAeH/iCkyXPgY6OQCTef6vS5VjSmJm6TVgXcXgwXC9l6htORUf9+KJhYchAc6HxG1aPi9XrrteT6TKxy/ysjQabCaxYvtgprdFrpvz18g+KdwnrkvpJ8IpxW/3CLRonynxjFFku5g4KbVVOsgsCP2e+nM5Fo2IXPAixTS8178BKG6gd0fc/+WbYX2yS/rPUFaLLcUHlNgLgXmNAJSpRTf6moOsQCxB4ZdqBKfM4E6VMfCrRaY5II5xHr1ZEXAcQBCvhhis86m4aYT2QVc83aOHhD9XpH6Vwvzw+RbbetazdTteXygxUrqKF8maT/Rn3IUUaQ/NxytOTjf3JWxjU2PIbItBjFCqc6wgl7phihnjNmxxLPbNy7vh9V3yVgNiA6nKbZkhtZBstRaKKI4Bw2kkeIR/9vN/UQAYc78PerMy5t7930+o3qJD4KcAZgfazMen0NKooIqa7WvJegtzQHQN6AYYyXAPD9edlbMDAm5YlLYeXE2n57jK2MBd9MQOG06fGV2kkjwfsSt4in+1f96U1Jg8YqOnN7785Vw26nDPM2pGKRmLAzsuPhWsgeOktcGZPyqKXbVVwpuLSGWVS++tJerJDQ9eco5NuWt7HxbvKvCHVUnc/HdBzawUT51BVCmCKYfwNMCTZZeoy+u6znyeSKdo0/sT5UOOo+NdQsz53UYgDm9pVVxjqi4OD77FurGXd1lMWXnBeVqFCC0CggIBAPet5dZAZNxmTYBvQ7KRjeiXPQPe6Me8fFVqINXIwNiZkatW7icdXrUqNMVzgNDgFo+u1U2VEsBYE1b3zTj1FcnmgnfZQ3GnruMf9eAqNSVf7A8hhe/nx2W2BO0R5kwTEhtQcjr7vRKR7FgfcNFtvHTute2tUNELD3hwZf/17YWbp2Jv6tJcQ+czAkyClaVd02SoJOAn4fnrnufuZg+FrG0nR5W0h5VabMWKG9tl0e5A6yck2+gHInu3nwHI/ZkBSVic62xdphb0zuvFw4d4x5IH3JKDcAeEO07FVwo8OW1k542nZpQoEYhersOBbdAtO5DojDxdjNfrBO5GlQU4ViSmP/hU3hfxwxhnK04GnhydIsUtFDjLbVs9TnSVZW8w/QyaYpY1sE1ymSKHqKPedKJF/JZiurOmNZjfPZCSr3SvggaJWUGCbAKUpDmG/L1MaL5jAU7W1mtVWzae6J7yx4RugF3HX1SfEWTBz5k3OHzQvQgzIiJKNsKC658ycm2MbJOma/8rIHLHDju16roiIb3IbMti8jpTT3f7JqdA6RIvq1GNYYRPZNPl2g7Vt9BDAaAcoSXNLV9WvZrH+njUjU9/6PZ0bKJOaLO+W69rHIt5CXM0DCRKIT3j1YXzQ2tSegNXmActBD1h1eiqOqLqRUgCuXurvWVAl9oB2cnFPNELAoICAQDAex1hVfF3MxRcc8urUAUcsysBs/hnPf72VSukuNaWbQqWAGN+/6bkGaAVDqIaZar1Y0evrGnc9FfwmsJQYQLwexOb5ajDwws8jVMSOIriv/kLDlUpeHrdjrN7GLNC8E1wOK7DfNGoUjMRP+p6RZ9Ws4i3eMxs2wMaREKze0B24jt0WDLnh3kDRQBDhQdyKOnQcXgpoI0NzasgBPObHYwtJ3fzzeoY5S1dXz555BJ8o7KvO3rTHa6oNwGVKqYyfCxCa360CXjK5oKmqd9bM+G5WPmdHWDBxisB0mxEjMmrZkRNs51DBjhJKGvl8IIvuOHu8TbXvk4nku33wfQM0aFFtI9Uw4Ump1i5tKs+AePQKX3gdvwi2ZKkArhbM/KChQW97EXtccOxOrsSnWQLLUFmSkRxdfw5jvKVOcnX6bTLek2hAJK99oKZkHRxjTTcROPBLQvjamcgzpUSQru9KWs/e89jbGMSFh/DlVUOMEzC4GaQRiPzoOeUsDBtZDN3Fmp5BZHD8CHFhQIz0emq5tNIMsfmuSDZ5YaefO+p3DitshKLVC/rAWHf5BJWkpqhhEBKQKgxmelnu4MwssiVxUzIUa9hFvlLC/+uaBFjZF7IWt5qsFmb5bNl81ZJGxOlkbgW36cJ+8W+7IdDjKnTj9bNiVFy0hczVMKSQFMudaOAgwKCAgAdidfHXZap0mmbz6k7OrC59I+KTqNkbs5FQYr49CBLtMTyskNk1tPct1Pj2IqcXp1SNX+q6QR7fAWScatAB7q5gYw9zuOEQoNRAxbHzUDZXD9C7rSSkAnvz212+JOGrx+Rsl5tOmiqNk0BlX5W+8dmCrIXznu88py9uGnxxNq2/IFR9BcFT4upnyO/DDPcrPvxHTyInzkMHVWuQ3hYkZCm0/BtokIpRceDJ5165QHMcGGbIYI4geFS7+s+w0G7ZbPhpZVOLz0Hr9qds9BF79mdSOK9dn995f9MvaxLxDL1IPucoUJSmRS+NsyQ9HasRTi9Z36SFHYfqh/EaxaKsNVVOZ6Xd0elg2fJGUTI4XEp6HOlIGMxAtHf98fLj6WxRR5oymDHmU+VbP1maNdr87PlRoOBS/UIR+JMgRNOkq/qMqRHM0o5zdwj0qZjVf3+dYZoblZRmL2pv1xJf1ou2rWAzczxYj20UeQ5KAQiObu65wokWDTR8hflysdfDR0og37PfSGUJQiRp7vC00dTO47am3SeLQbGffkUThemCs/BI35DE6F1riJQQzFmY4awh81B0yhE4dtva2DhfMgacP8JZC/cdLYgBUnnZeR5X0TgPWcrHiH0kgK05t8oQoLf4c47Z87xzCSdTXW9cc/cbiQlGm4Umb7UvIdfsKjQr305UQKCAgA2VAms6ZcoL/C1T7HS/tkSire+2U9pxKPsX4ncCpf3CXwNbrqmo/41L85xYxn6HWwtqwIW4bFXvlf7/5KNIXS07+hO/nmuF6VaSAGEiRUaf1kJ99etxuXXF2oteoFOiYkx/a3GW7rJqbnkSogiTvh0fmQ+dQguSXsMtOumwUkmxSBG7IYht6k+dQFoDWpWnJmyTfS+uyRVGxIMDZm81JA2Roei9yH2OOmfCz0VJnzZVVMgBsfaQuyDalM2CT2zzjyn2rN+mZXQn1ONOzFiCrjRmf2KjTo8N3T4JK6OgraBfHIXBHWE74J/k7swwbvdQG/1A3yZVIu2u9ATOFlsLNc6V4aFRFKW4HE4qXgUHnBw1uVCsBLmu0aaqHHkvDrdADLosoHiTVQQ+CTJUkdkqDdnadr7s3Onw2NRH2iLWtm+/RxgL0s79xJRyeY0Dsk2yvMGGXLbk7LcHbMR3mgjMkelOYsF4xfriPcaO1IwmQ1xi+knG8UWBPqYi0p/9eJY4KjY0+uaxHKjz7EZc0xjApfsLvkhdGuDVTe0EEuNRC1zSWnWjcKgsFkx2qwaZ3Lh1/RVgP54UZsBvnl/C1d2fqP3fqbj3poqxo46agFObowaPRu+PVxtll4WjqJyLARVnVW6jxIUzU25YAWl2VQt9NGKXhHxOL93q5rnsORJnsaxhQKCAgA0AZW+rZcbdbpptTUz8QUpk4MDP4MEhLkLLEz3/LXXy98GGXvIacgqT9wOroJgSX9jirL3RIAKEL/JSB6X8TInz0VmG5UbZmNgmmnAsNjWRn3Ioej/QL6pDWtFiei7wHCwUcbIFe1fHLJm89ngAxxJYHPHcJu7uo29A0+zYJu9wFpfmaBTyysA0saSGmv/lUdtvtiZeJ0ewxhlW1qJxCkotkVlPuXwZUfRLg6TQUtIE6P3WGeU4y5YhlCx9bomtiDxUQVNA+/hIuy2uOXPNnjuCboNhqZNOSNW10igiCUGMnKVhg2nf++jAGDyi6R0KZnHuMN4UpznLZDWY3yLtzvN4xPFNFnqnLHrjIXLlqxZb7RbwDY6+2R/Fkwj3boYQCsrl7g7kVTEde0JoeeJEtNVCJOHCXN3rjkeMIAymJZyclu/Ynz80yLKuph1v2lZNv9r3dZH3Je7byYCDaP3JJ9UVXfHzVwYlwm7VnRjL+WovIDapu+ZAWjQqd5CNwR8piZQWMm8dHWBaoGoH0yczIuWqmrl5nPikAUXnvCEoieTk1noudhPxWu5knm1dpoicJOJcFve/ohKrTI9MOUbZCdYd1xXg6keSWgIvcxTiwTJ5RL/OM58rih+qMVRVd4pGE7znZpl+Y/wbOwz4ENieb69GfT5ZAjOE5148gsJpJsv2w=="; + private static final String public_key_bi = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn/JBD57/oaucGUt8+hXwtIOfFWqYlHvPd1c4MFvTfp3M3ZZWTfc2MtyijKZn111/4wRVlHqvHhf4gjswDlzPKXOIsF4a9a0i6YyatYlaRa4c667UQSBJjR57xk9ExT1cMpmO1oMr3p1Pqbh1BPUdPYe6+QCraZ4hUnzE5NMPnzltdpN9MPsCjHOlhn6CAETCys6Kr1vtaxSfZQy2DfYVg8TJWr8wwIl/5HGiVWxETEfs5EFS5Qdb2dgplnoDw1mHrEr2RgJ1A8j2v2u5LMNglCyQFT4lEgMx1OiMaKNmdFj5/NP7c6XJwzoV6md7JI276FR/1F/xua0UneFKz/fRtwIDAQAB"; public static byte[] decryptBASE64(String key) throws Exception { return Base64.decode(key, Base64.NO_WRAP); @@ -149,6 +150,15 @@ public class RSAUtils { return ""; } + public static String encryptBASE64BIStr(String text) { + try { + return encryptBASE64(encryptByPublicKey(text.getBytes( java.nio.charset.StandardCharsets.UTF_8), public_key_bi)); + } catch (Exception e) { + e.printStackTrace(); + } + return ""; + } + /** * 解密
* 用私钥解密 diff --git a/app/src/main/res/drawable-xhdpi/icon_bi.png b/app/src/main/res/drawable-xhdpi/icon_bi.png new file mode 100644 index 0000000000000000000000000000000000000000..65464b7482fe44d45a153e9826f6dfa4b96176a2 GIT binary patch literal 1754 zcmV<01||84P)Px#1am@3R0s$N2z&@+hyVZvgh@m}RCt{2o!?IsR}{y;XLh!QxRyeIS_Beb8bL*} zR<~;cJjoTh8_mpU0$~>e)dak5_WXQ? zfoTGU!5AV!S9BiNs>^8H%(=AM0iz+_PmHes99g%g&f+Q)&Q=!D{gn>VjDG0sWPL2e z=ZSF-D)`xOgc$e6LVUinlXatmGG@TY6xR{q3K4c&=bv+6#sD)uttz3x)Zfws7@y+z zpy3(=MY(a$84wUc49yiKbSGv1|BOs=ol8TP3cfWE5YlusZt>7iV&769(Amj45w57< zTL%M03sH0=?^_b!EicZfnx7NAqai+>*dSnOsCiGGPtJoG^_9gmpaH<*IA4)Nh;R}B zXn2wE`4{*^V@8u~Pn-&AXw*R1CEF3F5(DZr2C8K{ z;#3IOrl}=msgxP6hAMJ`O9>zuC4gj<0FqGxNJa@D86|*ZlmL=3yj#CsI{pgd^3$+Y z=5t1U@hbp;Z@kvbS7~gTS+vonThB$Cv;|#<%Z1w%UV={cP6JGN*)Bg3pV8v`00uZu z+xJgqg@;RcAMkK$UbM-)Mz{dXt3Gb3NJ9K5NO+f?-&l|VqAlh(7G!`bL2E%}fMmoA z5EE@NzfqmAWH!t&)LW_}_;+-}*fopoGr(Kw#&?aIm$olGeu+zeyj-_k-}XZIY6^wg z%m(305u&I6i6ABL)fB?Fy>NXtlY*bHY4%*v*m@Xxv1v2BrRgsEY6<}c+8;;OY_p}N zAWhWZWK`Pl*|x*b*7rBVTW0K@ueJ~Xq3w6`rNdua2w!bM+Wz2VRNC;_mVH3$2P+3Z zfv>gz%s{&d5n2p_-~K3K>U^uP-6$w<(33IvpLNb)Pq~hk9m|85*lv4dT#o!Z3ewI4 z;=zxfCvWy{s|;v02>!8OW)Pf=qVIVWV4!7Zx(L0`qVZauf?@D~i>xSGt`I*8ie=YY z4|=etJVWq*oIq=^Lp?L!d+h9X({DH==eh^@5+ z4rLC$e=+!}#~-^jlUamA9(c=jfC2x`0<`Q(4}RNX@U!vLidnt|^8i{?GYtN%F#0AI z4A1l549CSuq3w_d{+$KzXA1sc1cAZ1HT#&{L?bl=+755Ro;NZC|7I9{6X{oeYBLhS zUzaKPa|jI1Wq;*woD4A6+CIu0{FWPG^iD)g+iAIxS%hQ)19NB{hzOaPi$+=r${76X zVf3z0c8r?u`mCV{@!+qo?Brz$>YZ2~FyHlA^iC{fT^f8p&8FE5^v|KSUqIQhumlNz zGOoVkAJfNvUjHfppl4zsEqK{->EliD{sX|p{y8Bwlj%SDnoxUE7vnBI{5NS!OnUo% zOn!LE{`aSCyBOybY_$~OL@c-|Z~wHn6Dk8Fqxt~Js0@&d?QY084V3|s5iY>nZ@SPk zz98DHE!bP(5^htt01aDR=o!n;2SkrIxP{vkF2ENJZZHGiKFF_Em5w*Kv3INZ46x)i zRRHK2jc37w(T!h@j_((L%Spfyy= zDM3>DfPGaOx+`7i9al2HOkMhPGp zC4gj<0CHK-7?_srg@c*Y2pE>_g;QbRsRqW->W3<ymR|!kNlq8UT_eVt)p4 ziWvj)+;R-T$|CwYv9at~@{uX7b7|;e^<8;OARwgaXx!qVrJ?__rHHB$8bl1u1cY+$ zUVcMB2r)D#2Or3=7F1C}cQhT10D?L5F8>K?IvOiV=uYYnE56P$8sgK$IAxt*`41D$ zB-i{@R(+pn^abx;`~dw?sMS-m!~k?K<6L62V}$7!x}Gz8=3n3w($E+K>Iv8epbUWc whvqjH3jikL3v1}-7;d|Z@k2S$jG2@F1G>xz!V^=(p8x;=07*qoM6N<$g66V!Z literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/icon_bi.png b/app/src/main/res/drawable-xxhdpi/icon_bi.png new file mode 100644 index 0000000000000000000000000000000000000000..2da79b84769d0ab69f5f6da8ad127824639be2ce GIT binary patch literal 2359 zcmV-73CQ+|P)Px#1am@3R0s$N2z&@+hyVZx;Ymb6RCt{2-R)0QR~`rO@43SWvsDVIx=^r9ZL*74 z#7e>F*8UUiyNz11fUT5$A=`bqoA%`zn{4VLgT|+(FE(laiFOyGJY;}Mv5C4{A)SAT@QnyQ zQ_HyCuuI)3Y!i8!jYz8k-iN~P3u%zbl;BeV&NkMniF{s`SAgagHdd<}*;dRNpznT?lZgbbx>6Qd#c}XM&yiAIOl#@WE&CmH`c0;HhXT<0CCu&^+a&8 zu~uDQ|M-RgB`3_or74SS;wW^~KdVNbdTjkl$)hcz4HANZ^^ZLjpycN~JXEK2UYm=^ z2WuaAGK9@Wq*W<|N?#M%CI-CxVvV{7tm%OiKVhaERRH~|pB1ojVibPNm@A2Fj!ONHqI0O0DqMF7B+ z|127=r2HMM*#-dU-21C1KbxfH7DP-IaP{6IF5hQx3h`>qHvGM<#%K*j1N6tS1%x7x zO*QWcoqL}_=U#JHyUV0Euw!;|2U6k+himAdxd@PcS%ynQEEb#378d z7#zYliS_~xVWfqVXwt$t5NY8MMp`(DCN1oNNK08<(rQ9?Qvk2-T>14c%{;>R|6*IJ zeYb4Mqp*Qv)i|_s^;aKw-H%IOKf$t0{m#GzE;c?kH;9g^SaA6Wd(czj%8IW8MN6%GA`xkF7 zX@}G#&t4PVv%e~*od+P}da37zZs#|g<=XzrcJ2LC-jhREPCM_brPWXf(EUo55J~PK z%Da7wc`iUbuT*6W1CZQ#U#;%E)Xy11lzeXO>)dMJX6A;lB5d; zPUaA$o?Bhlz4mQm{RfGsa@l#4O9&=+b}oXGQ9yv616e{OYkqdIeVbT)ImfA%D)bzv z%(%|bWVE227fkjRnYN!PV7l$w!rC6_oddarXK=FcIY;WX+1e>q`!=w05}i|cCfwP1 zgA+?D!&z&7A#$tza%XS|D||B9R_Dw3d~hPVGLLa-!a6t^g#b8}V~E^tznob)gth%T zec8c@Cv=Z9Cm#CJ1!^yUS9M=H><$G-Qobw^?6hhzBohBvziO*pK1EkL9v(f|F)}lwW`0o^=$%PzmBNm1-stUR#p4n z?8Wv z0)V9fqVi!^e@SJB0U|975NTn6NDBi*S{NYG!T^yL28gsUK%|8MA{}u@0gI-qAZsl+ z0{mdQ3bK?!*n!}I={m?-_Z=wAn682>C75=gFmAdIvXjIy=J0-z-g5llURoDRl5qxI49gOi`YOGZgV2CIi!G|x_sC%h@ZulzX+=7Gvw3f6e zvc+gajcQ-}z=pH&;^5uV)k8LM6i#n=Z2bd`)#`@h;O&xBMAi_&$@*v2$oj`Oy&kB( zT3r)CfAPyA8;GF4u~u#RQBTI(LCi+vj8dyJZrXa1;rS@t^I7jFG8>T-O5vKjWswa; za57!blalq4*2Y?O-BIWOFzQ-mRPII{g^q0D0rI?~(Og76fWlu2uZzl_;KPPm_19ci z&-<2G|6P#16+l0*@sN(JHV^~Ot^JTN7X{x_?Yp04S3HK}3V0I=M+@B!86+4M;B#LE zK1rS1%9krQ<@^4j)IE;k4dp`{6q*6N1VJ5u8UXy;mS)8PEI=U);64P?635uKN_??< dy9(=W{Qv99$@2@nw@?58002ovPDHLkV1ii4hu{DJ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/icon_bi.png b/app/src/main/res/drawable-xxxhdpi/icon_bi.png new file mode 100644 index 0000000000000000000000000000000000000000..d8b57c0dd6f560ecfe6a91db242547f9905321de GIT binary patch literal 3348 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 BL*W1b literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/activity_bi_show.xml b/app/src/main/res/layout/activity_bi_show.xml new file mode 100644 index 0000000..1f076a9 --- /dev/null +++ b/app/src/main/res/layout/activity_bi_show.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 40cd238..c058ac8 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -57,7 +57,7 @@ android:text="0" android:layout_marginEnd="16dp" android:textColor="#267AE4" - android:visibility="gone" + android:visibility="visible" android:textSize="20sp" /> diff --git a/app/src/main/res/layout/fragment_mine.xml b/app/src/main/res/layout/fragment_mine.xml index ba8833d..8d12ef4 100644 --- a/app/src/main/res/layout/fragment_mine.xml +++ b/app/src/main/res/layout/fragment_mine.xml @@ -118,7 +118,7 @@ android:gravity="center_vertical" android:padding="2dp" android:text="" - android:visibility="gone" + android:visibility="visible" android:textColor="#267AE4" android:textSize="20sp" />