增加免检管理

master
hwf452 2 years ago
parent 8cfbc805c8
commit 3b31ad1d44

@ -1,4 +1,5 @@
apply plugin: 'com.android.application'
apply plugin: 'org.jetbrains.kotlin.android'
android {
compileSdkVersion 33
@ -15,6 +16,9 @@ android {
resValue "string", "authorities", applicationId
resourceConfigurations += ['zh', 'en', 'hdpi']
}
buildFeatures {
viewBinding = true
}
signingConfigs {
release {
keyAlias 'key0'
@ -53,8 +57,8 @@ android {
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
namespace 'com.rehome.sgbaxj'
}

@ -4,20 +4,19 @@
<uses-feature
android:name="android.hardware.bluetooth_le"
android:required="true" />
<!--Android 12 中的新蓝牙权限开始-->
android:required="true" /> <!-- Android 12 中的新蓝牙权限开始 -->
<!-- Request legacy Bluetooth permissions on older devices. -->
<uses-permission android:name="android.permission.BLUETOOTH"
<uses-permission
android:name="android.permission.BLUETOOTH"
android:maxSdkVersion="30" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"
<uses-permission
android:name="android.permission.BLUETOOTH_ADMIN"
android:maxSdkVersion="30" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!--Android 12 中的新蓝牙权限结束-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- Android 12 中的新蓝牙权限结束 -->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
@ -50,6 +49,7 @@
<uses-permission
android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
tools:ignore="ProtectedPermissions" />
<uses-feature
android:name="android.hardware.nfc"
android:required="true" />
@ -57,14 +57,13 @@
android:name="android.hardware.telephony"
android:required="false" />
<permission-group android:name="${applicationId}.andpermission"/>
<permission-group android:name="${applicationId}.andpermission" />
<application
android:name="com.rehome.sgbaxj.MyApplication"
android:name=".MyApplication"
android:allowBackup="false"
android:fullBackupContent="false"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="false"
android:icon="@mipmap/logo1"
android:label="@string/app_name"
android:networkSecurityConfig="@xml/network_security_config"
@ -73,243 +72,242 @@
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:ignore="GoogleAppIndexingWarning"
tools:targetApi="s"
tools:replace="android:allowBackup">
tools:replace="android:allowBackup"
tools:targetApi="s">
<activity
android:name="com.rehome.sgbaxj.activity.LoginActivity"
android:name=".activity.LoginActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.rehome.sgbaxj.activity.MainActivity"
android:name=".activity.MainActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait">
</activity>
android:screenOrientation="portrait"/>
<activity
android:name="com.rehome.sgbaxj.activity.CustomDialogActivity"
android:theme="@android:style/Theme.Dialog"/>
android:name=".activity.CustomDialogActivity"
android:theme="@android:style/Theme.Dialog" />
<activity
android:name="com.rehome.sgbaxj.activity.TabMainActivity"
android:name=".activity.TabMainActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustPan" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxdj.MainSbxdjglActivity"
android:name=".activity.sbxdj.MainSbxdjglActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxdj.SxcdjActivity"
android:name=".activity.sbxdj.SxcdjActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxdj.SbxdjcjsbActivity"
android:name=".activity.sbxdj.SbxdjcjsbActivity"
android:windowSoftInputMode="stateHidden" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxdj.SdjgzActivity"
android:name=".activity.sbxdj.SdjgzActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxdj.YulActivity"
android:name=".activity.sbxdj.YulActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxdj.Yul_SBActivity"
android:name=".activity.sbxdj.Yul_SBActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxdj.ChangeYulActivity"
android:name=".activity.sbxdj.ChangeYulActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxdj.SdjSbListActivity"
android:name=".activity.sbxdj.SdjSbListActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxdj.DjgwListActivity"
android:name=".activity.sbxdj.DjgwListActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxj.XscbglActivity"
android:name=".activity.sbxj.XscbglActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxj.YxrlinfoActivity"
android:name=".activity.sbxj.BamjActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.regular.RegularActivity"
android:name=".activity.sbxj.YxrlinfoActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.qfgd.ComfirmSblistActivity"
android:name=".activity.regular.RegularActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.qfgd.ZRbzBmListActivity"
android:name=".activity.qfgd.ComfirmSblistActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.qfgd.DeviceTreeActivity"
android:name=".activity.qfgd.ZRbzBmListActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxj.XsBackLogActivity"
android:name=".activity.qfgd.DeviceTreeActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxj.XscbqyWorkActivity"
android:name=".activity.sbxj.XsBackLogActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxj.XscbqyActivity"
android:name=".activity.sbxj.XscbqyWorkActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxj.XscbqyWorkXsActivity"
android:name=".activity.sbxj.XscbqyActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxj.XsHistoryActivity"
android:name=".activity.sbxj.XscbqyWorkXsActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxj.NFCInfoActivity"
android:name=".activity.sbxj.XsHistoryActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxj.XjMainActivity"
android:name=".activity.sbxj.NFCInfoActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxj.SxgzActivity"
android:name=".activity.sbxj.XjMainActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.regular.DqgzUpAndDownActivity"
android:name=".activity.sbxj.SxgzActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.regular.DqgzActivity"
android:name=".activity.regular.DqgzUpAndDownActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxj.SxSbListActivity"
android:name=".activity.regular.DqgzActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxj.XjSbListActivity"
android:name=".activity.sbxj.SxSbListActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxj.XjYulActivity"
android:name=".activity.sbxj.XjSbListActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxj.CheckedListActivity"
android:name=".activity.sbxj.XjYulActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxj.NoCheckedListActivity"
android:name=".activity.sbxj.CheckedListActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxj.CheckedStatusListActivity"
android:name=".activity.sbxj.NoCheckedListActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxj.XJStatisticsActivity"
android:name=".activity.sbxj.CheckedStatusListActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxj.XJStatisticsMyUploadActivity"
android:name=".activity.sbxj.XJStatisticsActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxj.SbxjcjsbActivity"
android:name=".activity.sbxj.XJStatisticsMyUploadActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name=".activity.sbxj.SbxjcjsbActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustPan" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxdj.TipsActivity"
android:name=".activity.sbxdj.TipsActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxdj.DjMainActivity"
android:name=".activity.sbxdj.DjMainActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.sbxdj.SbSelectActivity"
android:name=".activity.sbxdj.SbSelectActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.base.MipcaActivityCapture"
android:name=".base.MipcaActivityCapture"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.yhpc.YhpcDataListActivity"
android:name=".activity.yhpc.YhpcDataListActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.yhpc.YhzgDataListActivity"
android:name=".activity.yhpc.YhzgDataListActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.QxgdActivity"
android:name=".activity.QxgdActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.NfcinfoActivity"
android:name=".activity.NfcinfoActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.bleUtil.BlueTestInfoActivity"
android:name=".bleUtil.BlueTestInfoActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.UserChangeActivity"
android:name=".activity.UserChangeActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name="com.rehome.sgbaxj.activity.CheckTemperatureActivity"
android:name=".activity.CheckTemperatureActivity"
android:launchMode="singleInstance"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustPan" />
<activity
android:name="com.rehome.sgbaxj.activity.CheckVibrationActivity"
android:name=".activity.CheckVibrationActivity"
android:launchMode="singleInstance"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustPan" />
<activity
android:name="com.rehome.sgbaxj.activity.regular.CheckTemperatureDqgzActivity"
android:name=".activity.regular.CheckTemperatureDqgzActivity"
android:launchMode="singleInstance"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustPan" />
<activity
android:name="com.rehome.sgbaxj.activity.regular.CheckVibrationDqgzActivity"
android:name=".activity.regular.CheckVibrationDqgzActivity"
android:launchMode="singleInstance"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustPan" />
<activity
android:name="com.rehome.sgbaxj.activity.regular.DqgzCheckActivity"
android:name=".activity.regular.DqgzCheckActivity"
android:launchMode="singleInstance"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustPan" />
<service
android:name="com.rehome.sgbaxj.bleUtil.BluetoothLeService"
android:name=".bleUtil.BluetoothLeService"
android:enabled="true" />
<service
android:name="com.rehome.sgbaxj.service.MQTTPushService"
android:name=".service.MQTTPushService"
android:exported="true"
android:process=":com.rehome.sgbaxj.mqttpushservice" />
@ -331,8 +329,8 @@
android:value="1280" />
<service
android:name="com.rehome.sgbaxj.service.PushService"
android:name=".service.PushService"
android:exported="false" />
</application>
</manifest>

@ -189,7 +189,6 @@ public class LoginActivity extends BaseActivity {
private void OnlineLogin() {
String json = getPhoneInfo();
Log.i("app", Contans.IP + Contans.LOGIN);
Request<String> request = NoHttp.createStringRequest(Contans.IP + Contans.LOGIN, RequestMethod.POST);
// SSLSocketFactory socketFactory = NohttpUtils.getSSLSocketFactory(context);
// if(socketFactory!=null){
@ -366,7 +365,7 @@ public class LoginActivity extends BaseActivity {
private void DownloadAndInstall(String downloadURL, String versionName, String description, String versionCode) {
new DownloadManager.Builder(this)
.apkUrl(downloadURL)
.apkName("中粤能源点巡检.apk")
.apkName("韶关电厂保安巡检.apk")
.smallIcon(R.mipmap.logo1)
.showNewerToast(true)
.apkVersionCode(Integer.parseInt(versionCode))

@ -28,6 +28,7 @@ import com.azhon.appupdate.listener.OnDownloadListener;
import com.azhon.appupdate.manager.DownloadManager;
import com.rehome.sgbaxj.R;
import com.rehome.sgbaxj.activity.regular.RegularActivity;
import com.rehome.sgbaxj.activity.sbxj.BamjActivity;
import com.rehome.sgbaxj.activity.sbxj.XscbglActivity;
import com.rehome.sgbaxj.adapter.GridViewAdapter;
import com.rehome.sgbaxj.base.BaseActivity3;
@ -40,6 +41,7 @@ import com.rehome.sgbaxj.service.MQTTPushService;
import com.rehome.sgbaxj.utils.AppManager;
import com.rehome.sgbaxj.utils.FlashUtil;
import com.rehome.sgbaxj.utils.HttpUtils;
import com.rehome.sgbaxj.utils.NetworkUtil;
import com.rehome.sgbaxj.utils.SPUtils;
import com.rehome.sgbaxj.utils.StatusBarUtil;
import com.rehome.sgbaxj.weight.AuditDialog;
@ -166,6 +168,9 @@ public class MainActivity extends BaseActivity3 {
str.add("保安巡检");
imageId.add(R.mipmap.icon8);
colors.add(R.drawable.radius_e2);
str.add("保安免检管理");
imageId.add(R.mipmap.icon3);
colors.add(R.drawable.radius_b1);
}
}
@ -297,7 +302,17 @@ public class MainActivity extends BaseActivity3 {
}else if(iconText.equals("手电筒")){
checkPermission();
}else if(iconText.equals("Q4工单")){
showLog("Q4工单");
}else if (iconText.equals("保安免检管理")) {
if (NetworkUtil.hasNetWorkStatus(context, true)) {
Log.i("app", "有wifi网络");
Intent intentTemp = new Intent(context, BamjActivity.class);
intentTemp.putExtra("type", "BA");
startActivity(intentTemp);
} else {
Log.i("app", "无网络");
showToast("没有连接到wifi,当前功能需要依赖网络环境,请检查网络连接");
}
}
}
});
@ -433,7 +448,7 @@ public class MainActivity extends BaseActivity3 {
private void DownloadAndInstall(String downloadURL, String versionName, String description, String versionCode) {
new DownloadManager.Builder(this)
.apkUrl(downloadURL)
.apkName("中粤能源点巡检.apk")
.apkName("韶关电厂保安巡检.apk")
.smallIcon(R.mipmap.logo1)
.showNewerToast(true)
.apkVersionCode(Integer.parseInt(versionCode))

@ -0,0 +1,211 @@
package com.rehome.sgbaxj.activity.sbxj
import android.text.TextUtils
import android.util.Log
import android.view.View
import android.widget.CheckBox
import android.widget.TextView
import com.rehome.sgbaxj.R
import com.rehome.sgbaxj.adapter.BamjAdapter
import com.rehome.sgbaxj.base.BaseActivityOaToolbarViewBinding
import com.rehome.sgbaxj.bean.MjList
import com.rehome.sgbaxj.bean.MjRequestInfo
import com.rehome.sgbaxj.bean.XsRequestInfo
import com.rehome.sgbaxj.contans.Contans
import com.rehome.sgbaxj.databinding.ActivityBamjBinding
import com.rehome.sgbaxj.utils.GsonUtils
import com.rehome.sgbaxj.utils.HttpListener
import com.rehome.sgbaxj.utils.NetworkUtil
import com.rehome.sgbaxj.utils.NoProgresshttpUtils
import com.rehome.sgbaxj.utils.SPUtils
import com.rehome.sgbaxj.weight.MjEditDialog
import com.rehome.sgbaxj.weight.WaitDialog
import com.yolanda.nohttp.NoHttp
import com.yolanda.nohttp.RequestMethod
import com.yolanda.nohttp.rest.Request
import com.yolanda.nohttp.rest.RequestQueue
import com.yolanda.nohttp.rest.Response
class BamjActivity : BaseActivityOaToolbarViewBinding<ActivityBamjBinding>() {
private val mjList: MutableList<MjList.DataBean> = mutableListOf()
private lateinit var adapter: BamjAdapter
private lateinit var headView: View
private lateinit var head: View
private lateinit var tv_yjzj: TextView
private lateinit var xj_cb: CheckBox
private lateinit var dialog: WaitDialog
private lateinit var queue: RequestQueue
private lateinit var username: String
override fun getViewBinding() = ActivityBamjBinding.inflate(layoutInflater)
override fun getToolbar() = binding.toolbarView.toolbar
override fun initView() {
initToolbar("保安免检管理", "提交", { finish() }, {
if (NetworkUtil.hasNetWorkStatus(context, true)) {
showLog("有wifi网络")
if (mjList.size > 0) {
var isChecked = false
val mjCheckList: MutableList<MjList.DataBean> = mutableListOf()
for (i in mjList.indices) {
if (mjList[i].isChecked) {
isChecked = true
mjCheckList.add(mjList[i])
}
}
if (isChecked) {
val dialog = MjEditDialog(this, object : MjEditDialog.DialogListener {
override fun onYesClick(noCheckReason: String) {
if(!TextUtils.isEmpty(noCheckReason)){
upLoadBaMj(noCheckReason,mjCheckList)
}else{
showToast("免检原因必填")
}
}
override fun onNoClick() {
}
})
dialog.show()
} else {
showToast("请选择要免检的计划")
}
}
} else {
showLog("无网络")
showToast("无wifi网络连接请先连接到wifi网络")
}
})
queue = NoHttp.newRequestQueue(1)
username = SPUtils.get(context, Contans.USERID, "") as String
binding.lv.emptyView = binding.tvNodata
dialog = WaitDialog(context, "上传数据中...请稍等...")
dialog.setCancelable(false)
headView = View.inflate(context, R.layout.scxscb_item, null)
head = headView.findViewById(R.id.head)
tv_yjzj = headView.findViewById(R.id.tv_yjzj)
tv_yjzj.text = "总点数"
xj_cb = headView.findViewById(R.id.xj_cb)
binding.lv.addHeaderView(headView, null, false)
xj_cb.setOnClickListener {
if (xj_cb.isChecked) {
for (i in mjList.indices) {
mjList[i].isChecked = true
adapter.notifyDataSetChanged()
}
} else {
for (i in mjList.indices) {
mjList[i].isChecked = false
adapter.notifyDataSetChanged()
}
}
}
adapter = BamjAdapter(this, mjList) { view: View ->
val checkBox = view as CheckBox
val index = checkBox.tag as Int
mjList[index].isChecked = checkBox.isChecked
var count = 0
for (a in mjList.indices) {
if (mjList[a].isChecked) {
count++
}
}
xj_cb.isChecked = count == mjList.size
adapter.notifyDataSetChanged()
}
binding.lv.adapter = adapter
}
override fun initData() {
if (NetworkUtil.hasNetWorkStatus(context, true)) {
showLog("有wifi网络")
requestData()
} else {
showLog("无网络")
}
}
private fun requestData() { //下载巡检数据
val request: Request<String> =
NoHttp.createStringRequest(Contans.IP + Contans.BA_Download_MJ_URL, RequestMethod.POST)
request.setDefineRequestBodyForJson(createJsonBaMjDown())
NoProgresshttpUtils.getInstance().add(this, 0, request, object : HttpListener<String?> {
override fun onSucceed(what: Int, response: Response<String?>?) {
showLog("----------------")
val result = response?.get()
showLog(result ?: "")
val bean = GsonUtils.GsonToBean(result, MjList::class.java)
if (bean.state == "1") {
if (bean.data != null && bean.data.size > 0) {
mjList.clear()
val list = bean.data //服务器数据
mjList.addAll(list)
adapter.notifyDataSetChanged()
}else{
mjList.clear()
adapter.notifyDataSetChanged()
}
}else{
mjList.clear()
adapter.notifyDataSetChanged()
}
}
override fun onFailed(what: Int, response: Response<String?>?) {
}
})
}
private fun upLoadBaMj(noCheckReason: String?,mjCheckList: MutableList<MjList.DataBean>) {
val request: Request<String> =
NoHttp.createStringRequest(Contans.IP + Contans.BA_UPLOAD_MJ_URL, RequestMethod.POST)
request.setDefineRequestBodyForJson(createJsonBaMjUp(noCheckReason,mjCheckList))
NoProgresshttpUtils.getInstance().add(this, 0, request, object : HttpListener<String?> {
override fun onSucceed(what: Int, response: Response<String?>?) {
showLog("----------------")
val result = response?.get()
showLog(result ?: "")
val bean = GsonUtils.GsonToBean(result, MjList::class.java)
if (bean.state == "1") {
showToast("操作成功")
initData()
}
}
override fun onFailed(what: Int, response: Response<String?>?) {
}
})
}
private fun createJsonBaMjDown(): String {
val info = XsRequestInfo()
info.action = "BA_XJGL_BAKH_GET"
val json = GsonUtils.GsonString(info)
showLog(json)
return json
}
private fun createJsonBaMjUp(noCheckReason: String?,mjCheckList: MutableList<MjList.DataBean>): String {
val info = MjRequestInfo()
info.action = "BA_XJGL_BAKHSC_SET"
if (noCheckReason != null) {
info.bz = noCheckReason
} else {
info.bz = ""
}
info.scr = username
info.data = mjCheckList
val json = GsonUtils.GsonString(info)
showLog(json)
return json
}
}

@ -0,0 +1,93 @@
package com.rehome.sgbaxj.adapter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.TextView;
import com.rehome.sgbaxj.R;
import com.rehome.sgbaxj.bean.MjList;
import com.zhy.autolayout.utils.AutoUtils;
import java.util.List;
/**
* Create By HuangWenFei
* 2023-07-25 14:16
*
*/
public class BamjAdapter extends BaseAdapter {
private Context context;
private List<MjList.DataBean> mjjh;
private CallBack mCallBack;
public BamjAdapter(Context context, List<MjList.DataBean> mjjh, CallBack mCallBack) {
this.context = context;
this.mCallBack = mCallBack;
this.mjjh=mjjh;
}
public interface CallBack {
void Click(View view);
}
@Override
public int getCount() {
return mjjh.size();
}
@Override
public Object getItem(int i) {
return mjjh.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
ViewHolder holder;
if (view == null) {
holder = new ViewHolder();
view = LayoutInflater.from(context).inflate(R.layout.scxscb_item, viewGroup, false);
holder.xj_cb = view.findViewById(R.id.xj_cb);
holder.tv_gwmc = view.findViewById(R.id.tv_gwmc);
holder.tv_yjzj = view.findViewById(R.id.tv_yjzj);
view.setTag(holder);
AutoUtils.autoSize(view);
} else {
holder = (ViewHolder) view.getTag();
}
holder.xj_cb.setChecked(mjjh.get(i).isChecked());
holder.tv_gwmc.setText(mjjh.get(i).getKhmc());
holder.tv_yjzj.setText(mjjh.get(i).getZds());
holder.xj_cb.setTag(i);
holder.xj_cb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mCallBack.Click(view);
}
});
return view;
}
static class ViewHolder {
CheckBox xj_cb;
TextView tv_gwmc;
TextView tv_yjzj;
}
}

@ -16,6 +16,7 @@ import android.nfc.tech.NfcF;
import android.nfc.tech.NfcV;
import android.os.Bundle;
import android.os.Parcelable;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.WindowManager;
@ -222,7 +223,11 @@ public abstract class BaseActivity extends AutoLayoutActivity {
public void showLog(String logText) {
if (BuildConfig.LOG_ERROR) {
Log.i("app", logText);
if(TextUtils.isEmpty(logText)){
Log.i("app", "logText is null");
}else{
Log.i("app", logText);
}
}
}
}

@ -17,6 +17,7 @@ import android.nfc.tech.NfcF;
import android.nfc.tech.NfcV;
import android.os.Bundle;
import android.os.Parcelable;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
@ -239,7 +240,11 @@ public abstract class BaseActivity3 extends AutoLayoutActivity {
public void showLog(String logText) {
if (BuildConfig.LOG_ERROR) {
Log.i("app", logText);
if(TextUtils.isEmpty(logText)){
Log.i("app", "logText is null");
}else{
Log.i("app", logText);
}
}
}

@ -0,0 +1,268 @@
package com.rehome.sgbaxj.base
import android.app.Activity
import android.app.PendingIntent
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.nfc.NdefMessage
import android.nfc.NfcAdapter
import android.nfc.tech.*
import android.os.Build
import android.os.Bundle
import android.text.TextUtils
import android.util.Log
import android.widget.Toast
import androidx.viewbinding.ViewBinding
import com.rehome.sgbaxj.BuildConfig
import com.rehome.sgbaxj.R
import com.rehome.sgbaxj.utils.AutoToolbar
import com.rehome.sgbaxj.utils.ControllerActivity
import com.rehome.sgbaxj.utils.StatusBarUtil
import com.zhy.autolayout.AutoLayoutActivity
import java.nio.charset.StandardCharsets
import java.util.*
/**
* Create By HuangWenFei
* 创建日期2023-07-25 14:04
* 描述基类使用ViewBindingButterKnife已被作者废弃不再维护
*/
abstract class BaseActivityAutoToolbarViewBinding<T : ViewBinding> : AutoLayoutActivity() {
protected lateinit var binding: T
protected lateinit var mToolbar: AutoToolbar
protected lateinit var context: Context
private var nfcAdapter: NfcAdapter? = null
private var readResult = ""
private var pendingIntent: PendingIntent? = null
private lateinit var mFilters: Array<IntentFilter>
private lateinit var mTechLists: Array<Array<String>>
private var isFirst = true
private var ndef: IntentFilter? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = getViewBinding()
mToolbar = getToolbar()
setContentView(binding.root)
context = this
ControllerActivity.getAppManager().addActivity(this)
initView()
initData()
}
protected abstract fun getViewBinding(): T
protected abstract fun getToolbar(): AutoToolbar
//初始化View
protected abstract fun initView()
//初始化数据
protected abstract fun initData()
fun startActivity(cls: Class<out Activity?>?) {
val intent = Intent(this, cls)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP)
startActivity(intent)
}
override fun onPause() {
super.onPause()
if (nfcAdapter != null) {
nfcAdapter!!.disableForegroundDispatch(this)
}
}
/*
* 重写onResume回调函数的意义在于处理多次读取NFC标签时的情况
*/
override fun onResume() {
super.onResume()
// 前台分发系统,这里的作用在于第二次检测NFC标签时该应用有最高的捕获优先权.
if (nfcAdapter != null && pendingIntent != null) {
nfcAdapter!!.enableForegroundDispatch(
this, pendingIntent, mFilters,
mTechLists
)
}
}
override fun onDestroy() {
super.onDestroy()
ControllerActivity.getAppManager().finishActivity(this)
}
/**
* 显示toast
*
* @param text
*/
fun showToast(text: String?) {
if (text != null && text.trim { it <= ' ' } != "") {
Toast.makeText(this, text, Toast.LENGTH_SHORT).show()
}
}
fun showToast(id: Int) {
Toast.makeText(this, id, Toast.LENGTH_SHORT).show()
}
/**
* 检测工作,判断设备的NFC支持情况
*
* @return
*/
private fun ifNFCUse(): Boolean {
if (nfcAdapter == null) {
Toast.makeText(this, "设备不支持NFC", Toast.LENGTH_SHORT).show()
return false
}
if (!nfcAdapter!!.isEnabled) {
Toast.makeText(this, "请在系统设置中先启用NFC功能", Toast.LENGTH_SHORT).show()
return false
}
return true
}
/**
* 初始化过程
*/
fun initNFC() {
//NFC适配器所有的关于NFC的操作从该适配器进行
nfcAdapter = NfcAdapter.getDefaultAdapter(this)
if (!ifNFCUse()) {
return
}
//将被调用的Intent用于重复被Intent触发后将要执行的跳转
pendingIntent = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
PendingIntent.getActivity(
this,
0,
Intent(this, javaClass).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP),
PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT
)
} else {
PendingIntent.getActivity(
this,
0,
Intent(this, javaClass).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP),
PendingIntent.FLAG_UPDATE_CURRENT
)
}
//设定要过滤的标签动作这里只接收ACTION_NDEF_DISCOVERED类型
ndef = IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED)
ndef!!.addCategory("*/*")
mFilters = arrayOf(ndef!!) // 过滤器
mTechLists = arrayOf(
arrayOf(NfcA::class.java.name), arrayOf(
NfcF::class.java.name
), arrayOf(NfcB::class.java.name), arrayOf(
NfcV::class.java.name
), arrayOf(MifareClassic::class.java.name), arrayOf(
MifareUltralight::class.java.name
), arrayOf(IsoDep::class.java.name)
) // 允许扫描的标签类型
if (isFirst) {
if (NfcAdapter.ACTION_NDEF_DISCOVERED == intent
.action
) {
ndef = IntentFilter()
if (readFromTag(intent)) {
Toast.makeText(this, readResult, Toast.LENGTH_SHORT).show()
} else {
Toast.makeText(this, "标签数据为空", Toast.LENGTH_SHORT).show()
}
}
isFirst = false
}
}
/**
* 2进制to 16进制
* @param src
* @return
*/
private fun bytesToHex(src: ByteArray?): String {
val sb = StringBuffer()
if (src == null || src.isEmpty()) {
return ""
}
var sTemp: String
for (i in src.indices) {
sTemp = Integer.toHexString(0xFF and src[i].toInt())
if (sTemp.length < 2) {
sb.append(0)
}
sb.append(sTemp.uppercase(Locale.getDefault()))
}
return sb.toString()
}
/*
* 有必要要了解onNewIntent回调函数的调用时机,请自行上网查询
*/
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
if (NfcAdapter.ACTION_NDEF_DISCOVERED == intent.action || NfcAdapter.ACTION_TECH_DISCOVERED == intent.action) {
val id = bytesToHex(intent.getByteArrayExtra(NfcAdapter.EXTRA_ID))
handleNfc(id)
// if (readFromTag(intent)) {
// Toast.makeText(this, readResult, Toast.LENGTH_SHORT).show();
// handleNfc(readResult);
// } else {
// Toast.makeText(this, "ID:" + id + " 标签数据为空", Toast.LENGTH_SHORT).show();
// }
}
}
/**
* 读取NFC标签数据的操作
*/
private fun readFromTag(intent: Intent): Boolean {
if (NfcAdapter.ACTION_NDEF_DISCOVERED == intent.action) {
val rawArray = intent
.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES)
if (rawArray != null) {
val mNdefMsg = rawArray[0] as NdefMessage
val mNdefRecord = mNdefMsg.records[0]
if (mNdefRecord != null) {
readResult = String(mNdefRecord.payload, StandardCharsets.UTF_8)
return true
}
//return false;
}
return false
}
return false
}
//处理NFC
open fun handleNfc(result: String?) {
//showToast(result);
}
open fun setBack() {
mToolbar.setNavigationIcon(R.mipmap.ac_back_icon)
mToolbar.setNavigationOnClickListener { finish() }
}
protected open fun setStatusBar() {
StatusBarUtil.setColor(this, resources.getColor(R.color.colorPrimary))
}
open fun showLog(logText: String?) {
if (BuildConfig.LOG_ERROR) {
if (TextUtils.isEmpty(logText)) {
Log.i("app", "logText is null")
} else {
Log.i("app", logText!!)
}
}
}
}

@ -0,0 +1,276 @@
package com.rehome.sgbaxj.base
import android.app.Activity
import android.app.PendingIntent
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.nfc.NdefMessage
import android.nfc.NfcAdapter
import android.nfc.tech.*
import android.os.Build
import android.os.Bundle
import android.text.TextUtils
import android.util.Log
import android.view.View
import android.widget.Toast
import androidx.viewbinding.ViewBinding
import com.rehome.sgbaxj.utils.ControllerActivity
import com.rehome.sgbaxj.BuildConfig
import com.rehome.sgbaxj.R
import com.rehome.sgbaxj.utils.OAToolbar
import com.zhy.autolayout.AutoLayoutActivity
import java.nio.charset.StandardCharsets
import java.util.*
/**
* Create By HuangWenFei
* 创建日期2023-07-25 14:09
* 描述基类使用ViewBindingButterKnife已被作者废弃不再维护
*/
abstract class BaseActivityOaToolbarViewBinding<T : ViewBinding> : AutoLayoutActivity() {
protected lateinit var binding: T
protected lateinit var mToolbar: OAToolbar
protected lateinit var context: Context
private var nfcAdapter: NfcAdapter? = null
private var readResult = ""
private var pendingIntent: PendingIntent? = null
private lateinit var mFilters: Array<IntentFilter>
private lateinit var mTechLists: Array<Array<String>>
private var isFirst = true
private var ndef: IntentFilter? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = getViewBinding()
mToolbar = getToolbar()
setContentView(binding.root)
context = this
ControllerActivity.getAppManager().addActivity(this)
initView()
initData()
}
//初始化ViewBinding
protected abstract fun getViewBinding(): T
//初始化OAToolbar
protected abstract fun getToolbar(): OAToolbar
//初始化View
protected abstract fun initView()
//初始化数据
protected abstract fun initData()
fun startActivity(cls: Class<out Activity?>?) {
val intent = Intent(this, cls)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP)
startActivity(intent)
}
override fun onPause() {
super.onPause()
if (nfcAdapter != null) {
nfcAdapter!!.disableForegroundDispatch(this)
}
}
/*
* 重写onResume回调函数的意义在于处理多次读取NFC标签时的情况
*/
override fun onResume() {
super.onResume()
// 前台分发系统,这里的作用在于第二次检测NFC标签时该应用有最高的捕获优先权.
if (nfcAdapter != null && pendingIntent != null) {
nfcAdapter!!.enableForegroundDispatch(
this, pendingIntent, mFilters,
mTechLists
)
}
}
override fun onDestroy() {
super.onDestroy()
ControllerActivity.getAppManager().finishActivity(this)
}
/**
* 显示toast
*
* @param text
*/
fun showToast(text: String?) {
if (text != null && text.trim { it <= ' ' } != "") {
Toast.makeText(this, text, Toast.LENGTH_SHORT).show()
}
}
fun showToast(id: Int) {
Toast.makeText(this, id, Toast.LENGTH_SHORT).show()
}
/**
* 检测工作,判断设备的NFC支持情况
*
* @return
*/
private fun ifNFCUse(): Boolean {
if (nfcAdapter == null) {
Toast.makeText(this, "设备不支持NFC", Toast.LENGTH_SHORT).show()
return false
}
if (!nfcAdapter!!.isEnabled) {
Toast.makeText(this, "请在系统设置中先启用NFC功能", Toast.LENGTH_SHORT).show()
return false
}
return true
}
/**
* 初始化过程
*/
fun initNFC() {
//NFC适配器所有的关于NFC的操作从该适配器进行
nfcAdapter = NfcAdapter.getDefaultAdapter(this)
if (!ifNFCUse()) {
return
}
//将被调用的Intent用于重复被Intent触发后将要执行的跳转
pendingIntent = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
PendingIntent.getActivity(
this,
0,
Intent(this, javaClass).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP),
PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT
)
} else {
PendingIntent.getActivity(
this,
0,
Intent(this, javaClass).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP),
PendingIntent.FLAG_UPDATE_CURRENT
)
}
//设定要过滤的标签动作这里只接收ACTION_NDEF_DISCOVERED类型
ndef = IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED)
ndef!!.addCategory("*/*")
mFilters = arrayOf(ndef!!) // 过滤器
mTechLists = arrayOf(
arrayOf(NfcA::class.java.name), arrayOf(
NfcF::class.java.name
), arrayOf(NfcB::class.java.name), arrayOf(
NfcV::class.java.name
), arrayOf(MifareClassic::class.java.name), arrayOf(
MifareUltralight::class.java.name
), arrayOf(IsoDep::class.java.name)
) // 允许扫描的标签类型
if (isFirst) {
if (NfcAdapter.ACTION_NDEF_DISCOVERED == intent
.action
) {
ndef = IntentFilter()
if (readFromTag(intent)) {
Toast.makeText(this, readResult, Toast.LENGTH_SHORT).show()
} else {
Toast.makeText(this, "标签数据为空", Toast.LENGTH_SHORT).show()
}
}
isFirst = false
}
}
/**
* 2进制to 16进制
* @param src
* @return
*/
private fun bytesToHex(src: ByteArray?): String {
val sb = StringBuffer()
if (src == null || src.isEmpty()) {
return ""
}
var sTemp: String
for (i in src.indices) {
sTemp = Integer.toHexString(0xFF and src[i].toInt())
if (sTemp.length < 2) {
sb.append(0)
}
sb.append(sTemp.uppercase(Locale.getDefault()))
}
return sb.toString()
}
/*
* 有必要要了解onNewIntent回调函数的调用时机,请自行上网查询
*/
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
if (NfcAdapter.ACTION_NDEF_DISCOVERED == intent.action || NfcAdapter.ACTION_TECH_DISCOVERED == intent.action) {
val id = bytesToHex(intent.getByteArrayExtra(NfcAdapter.EXTRA_ID))
handleNfc(id)
}
}
/**
* 读取NFC标签数据的操作
*/
private fun readFromTag(intent: Intent): Boolean {
if (NfcAdapter.ACTION_NDEF_DISCOVERED == intent.action) {
val rawArray = intent
.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES)
if (rawArray != null) {
val mNdefMsg = rawArray[0] as NdefMessage
val mNdefRecord = mNdefMsg.records[0]
if (mNdefRecord != null) {
readResult = String(mNdefRecord.payload, StandardCharsets.UTF_8)
return true
}
}
return false
}
return false
}
//处理NFC
open fun handleNfc(result: String) {
//showToast(result);
}
fun initToolbar(
title: String,
rightText: String,
listenerLeftClick: View.OnClickListener,
listenerRightClick: View.OnClickListener
) {
mToolbar.setTvTitleText(title)
mToolbar.setTvRightText(rightText)
mToolbar.setIvLeftIcon(R.mipmap.ac_back_icon)
mToolbar.setIvLeftOnClickListener(listenerLeftClick)
mToolbar.setTvRightOnClickListener(listenerRightClick)
}
fun initToolbar(
title: String,
rightText: String,
listenerRightClick: View.OnClickListener
) {
mToolbar.setTvTitleText(title)
mToolbar.setTvRightText(rightText)
mToolbar.setIvLeftIcon(R.mipmap.ac_back_icon)
mToolbar.setIvLeftOnClickListener { finish() }
mToolbar.setTvRightOnClickListener(listenerRightClick)
}
open fun showLog(logText: String?) {
if (BuildConfig.LOG_ERROR) {
if (TextUtils.isEmpty(logText)) {
Log.i("app", "logText is null")
} else {
Log.i("app", logText!!)
}
}
}
}

@ -3,6 +3,7 @@ package com.rehome.sgbaxj.base;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
@ -62,7 +63,11 @@ public abstract class BaseFragment extends Fragment {
public void showLog(String logText) {
if (BuildConfig.LOG_ERROR) {
Log.i("app", logText);
if(TextUtils.isEmpty(logText)){
Log.i("app", "logText is null");
}else{
Log.i("app", logText);
}
}
}

@ -0,0 +1,31 @@
package com.rehome.sgbaxj.base
/**
* Create By HuangWenFei
* 创建日期2023-07-25 14:14
* 描述
*/
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.viewbinding.ViewBinding
abstract class BaseFragmentKotlinViewBinding<T : ViewBinding?> : Fragment() {
protected var binding: T? = null
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = getBinding(inflater, container)
return binding!!.root
}
protected abstract fun getBinding(inflater: LayoutInflater?, container: ViewGroup?): T
override fun onDestroyView() {
super.onDestroyView()
binding = null
}
}

@ -0,0 +1,84 @@
package com.rehome.sgbaxj.base;
/**
* Create By HuangWenFei
* 2023-07-25 14:15
*
*/
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.viewbinding.ViewBinding;
/**
* Create By HuangWenFei
* 2023-01-11 15:13
*
*/
public abstract class BaseFragmentViewBinding<T extends ViewBinding> extends Fragment {
protected Context context;
protected T binding;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
binding = getBinding(inflater, container);
return binding.getRoot();
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
initView();
initData();
}
protected abstract T getBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container);
/**
*
*/
protected abstract void initView();
/**
*
*/
protected abstract void initData();
@Override
public void onDestroyView() {
super.onDestroyView();
binding = null;
}
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
this.context = context;
}
@Override
public void onDetach() {
super.onDetach();
this.context = null;
}
public void showToast(String msg) {
Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
}
public void showToast(int strId) {
Toast.makeText(context, strId, Toast.LENGTH_SHORT).show();
}
}

@ -0,0 +1,148 @@
package com.rehome.sgbaxj.bean;
/**
* Create By HuangWenFei
* 2023-07-25 14:17
*
*/
import java.util.List;
/**
* Create By HuangWenFei
* 2023-03-03 15:32
*
*/
public class MjList {
private String state;
private String msg;
private List<DataBean> data;
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public List<DataBean> getData() {
return data;
}
public void setData(List<DataBean> data) {
this.data = data;
}
public static class DataBean {
private String zxid;
private String khmc;
private String st;
private String et;
private String zds;
private String yjds;
private String ljds;
private String mjds;
private String mk;
private boolean checked;//0:未选中,1:已选中
public String getZxid() {
return zxid;
}
public void setZxid(String zxid) {
this.zxid = zxid;
}
public String getKhmc() {
return khmc;
}
public void setKhmc(String khmc) {
this.khmc = khmc;
}
public String getSt() {
return st;
}
public void setSt(String st) {
this.st = st;
}
public String getEt() {
return et;
}
public void setEt(String et) {
this.et = et;
}
public String getZds() {
return zds;
}
public void setZds(String zds) {
this.zds = zds;
}
public String getYjds() {
return yjds;
}
public void setYjds(String yjds) {
this.yjds = yjds;
}
public String getLjds() {
return ljds;
}
public void setLjds(String ljds) {
this.ljds = ljds;
}
public String getMjds() {
return mjds;
}
public void setMjds(String mjds) {
this.mjds = mjds;
}
public String getMk() {
return mk;
}
public void setMk(String mk) {
this.mk = mk;
}
public boolean isChecked() {
return checked;
}
public void setChecked(boolean checked) {
this.checked = checked;
}
}
}

@ -0,0 +1,47 @@
package com.rehome.sgbaxj.bean;
/**
* Create By HuangWenFei
* 2023-07-25 14:38
*
*/
import java.util.List;
public class MjRequestInfo {
private String action;
private String bz;
private String scr;
private List<MjList.DataBean> data;
public String getAction() {
return action;
}
public void setAction(String action) {
this.action = action;
}
public String getBz() {
return bz;
}
public void setBz(String bz) {
this.bz = bz;
}
public String getScr() {
return scr;
}
public void setScr(String scr) {
this.scr = scr;
}
public List<MjList.DataBean> getData() {
return data;
}
public void setData(List<MjList.DataBean> data) {
this.data = data;
}
}

@ -62,6 +62,10 @@ public class Contans {
public final static String GET_STATISTICS_DATA = "XSCB/STATISTICS_CHECKED.ashx";//获取本人上传的巡检数据
public final static String LAST_UPLOAD_POINT_CHECKED = "XSCB/LAST_UPLOAD_POINT_CHECKED.ashx";//获取当前值当前点最后的已巡检人
public final static String XJ_UPLOAD_LOCATION_CHECKED = "XSCB/CURRENT_CHECK_LOCALTION.ashx";//上传巡检人当前位置
//保安获取免检列表
public final static String BA_Download_MJ_URL = "MJGL/BA_MJGL.ashx";
//保安上传免检列表
public final static String BA_UPLOAD_MJ_URL = "MJGL/BA_MJGL.ashx";
// ========================= intent KEY ========================//

@ -4,7 +4,10 @@ package com.rehome.sgbaxj.utils;
import android.app.Activity;
import android.content.Context;
import android.text.TextUtils;
import android.util.Log;
import com.rehome.sgbaxj.BuildConfig;
import com.rehome.sgbaxj.R;
import com.yolanda.nohttp.NoHttp;
import com.yolanda.nohttp.download.DownloadQueue;
@ -63,9 +66,20 @@ public class NoProgresshttpUtils {
public <T> void add(Activity mActivity, int what, Request<T> request, HttpListener<T> callback) {
showLog(request.url());
mQueue.add(what, request, new HttpResponseListenerNoProgress<T>(mActivity, request, callback));
}
public void showLog(String logText) {
if (BuildConfig.LOG_ERROR) {
if(TextUtils.isEmpty(logText)){
Log.i("app", "logText is null");
}else{
Log.i("app", logText);
}
}
}
/**
* sign
*

@ -2,7 +2,10 @@ package com.rehome.sgbaxj.utils;
import android.app.Activity;
import android.content.Context;
import android.text.TextUtils;
import android.util.Log;
import com.rehome.sgbaxj.BuildConfig;
import com.rehome.sgbaxj.R;
import com.yolanda.nohttp.NoHttp;
import com.yolanda.nohttp.download.DownloadQueue;
@ -72,14 +75,26 @@ public class NohttpUtils {
* @param <T>
*/
public <T> void add(Activity mActivity, int what, Request<T> request, HttpListener<T> callback, boolean canCanel, boolean isLoading, String msg) {
showLog(request.url());
mQueue.add(what, request, new HttpResponseListener<T>(mActivity, request, callback, canCanel, isLoading, msg));
}
public <T> void add(Activity mActivity, int what, Request<T> request, HttpListener<T> callback) {
showLog(request.url());
mQueue.add(what, request, new HttpResponseListener<T>(mActivity, request, callback, true, true, "加载中..."));
}
public void showLog(String logText) {
if (BuildConfig.LOG_ERROR) {
if(TextUtils.isEmpty(logText)){
Log.i("app", "logText is null");
}else{
Log.i("app", logText);
}
}
}
/**
* sign
*

@ -0,0 +1,158 @@
package com.rehome.sgbaxj.weight;
/**
* Create By HuangWenFei
* 2023-07-25 14:39
*
*/
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import com.rehome.sgbaxj.R;
/**
* Created by Administrator on 2018/1/31.
*/
public class MjEditDialog extends Dialog {
private Button yes, no;//确定按钮
private TextView titleTv;//消息标题文本
private EditText et_phone;//输入电话
private String titleStr;//从外界设置的title文本
private String messageStr;//从外界设置的消息文本
//确定文本和取消文本的显示内容
private String yesStr, noStr;
private DialogListener listener;//取消,确定按钮被点击了的监听器
public MjEditDialog(Context context, DialogListener listener) {
super(context, R.style.Dialog_Msg);
this.listener = listener;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog_mj_edit);
//按空白处不能取消动画
setCanceledOnTouchOutside(false);
//初始化界面控件
initView();
//初始化界面数据
initData();
//初始化界面控件的事件
initEvent();
}
/**
*
*/
private void initEvent() {
//设置确定按钮被点击后,向外界提供监听
yes.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//dismiss();
if (listener != null) {
if (TextUtils.isEmpty(et_phone.getText().toString().trim())) {
et_phone.setError("免检原因必填");
listener.onYesClick("");
} else {
dismiss();
listener.onYesClick(et_phone.getText().toString().trim());
}
}
}
});
no.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dismiss();
if (listener != null) {
listener.onNoClick();
}
}
});
}
/**
*
*/
private void initData() {
//如果用户自定了title和message
if (titleStr != null) {
titleTv.setText(titleStr);
}
if (messageStr != null) {
et_phone.setText(messageStr);
}
//如果设置按钮的文字
if (yesStr != null) {
yes.setText(yesStr);
}
}
/**
*
*/
private void initView() {
yes = (Button) findViewById(R.id.yes);
no = (Button) findViewById(R.id.no);
titleTv = (TextView) findViewById(R.id.title);
et_phone = (EditText) findViewById(R.id.et_phone);
}
/**
* ActivityDialog
*
* @param title
*/
public void setTitle(String title) {
titleStr = title;
}
/**
* ActivityDialogdialogmessage
*
* @param message
*/
public void setMessage(String message) {
messageStr = message;
}
/**
*
*/
public interface DialogListener {
public void onYesClick(String noCheckReason);
public void onNoClick();
}
@Override
public void show() {
super.show();
/**
* show
*/
WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT;
layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT;
getWindow().getDecorView().setPadding(0, 0, 0, 0);
getWindow().setAttributes(layoutParams);
}
}

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff"
android:orientation="vertical"
tools:context=".activity.sbxj.BamjActivity">
<include
android:id="@+id/toolbarView"
layout="@layout/layout_base" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="@dimen/px_10"
android:divider="#00000000"
android:dividerHeight="0px" />
<TextView
android:id="@+id/tv_nodata"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="暂无保存数据"
android:textColor="@color/viewfinder_mask" />
</FrameLayout>
</LinearLayout>

@ -0,0 +1,82 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#A5000000">
<LinearLayout
android:layout_width="320dp"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:background="@drawable/shape_edit_dialog_bg"
android:orientation="vertical">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="15dp"
android:gravity="center"
android:text="备注"
android:textColor="@color/black"
android:textSize="24sp" />
<EditText
android:id="@+id/et_phone"
android:layout_width="match_parent"
android:layout_height="120dp"
android:layout_gravity="center"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:inputType="textMultiLine"
android:gravity="start|top"
android:ems="10"
android:hint="请输入免检原因"
android:textColor="@color/black"
android:textSize="18sp" />
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginTop="15dp"
android:background="#E4E4E4" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal">
<Button
android:id="@+id/no"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@null"
android:gravity="center"
android:singleLine="true"
android:text="取消"
android:textColor="@color/colorPrimary"
android:textSize="18sp" />
<View
android:layout_width="1px"
android:layout_height="match_parent"
android:background="#E4E4E4" />
<Button
android:id="@+id/yes"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@null"
android:gravity="center"
android:singleLine="true"
android:text="确 定"
android:textColor="@color/red"
android:textSize="18sp" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>

@ -8,6 +8,7 @@ buildscript {
}
dependencies {
classpath 'com.android.tools.build:gradle:8.0.1'
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.20'
}
}

Loading…
Cancel
Save