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 = "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"; + 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 0000000..65464b7 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/icon_bi.png differ 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 0000000..2da79b8 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/icon_bi.png differ 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 0000000..d8b57c0 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/icon_bi.png differ 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" />