Compare commits

...

14 Commits

Author SHA1 Message Date
itgaojian
accc88ac4e 更换权限申请框架 2023-11-17 18:00:54 +08:00
itgaojian
6adc0ccc69 替换超图 2023-11-08 17:59:13 +08:00
itgaojian
f6bccd0c5f 常住人口修改 2023-09-22 15:51:50 +08:00
itgaojian
1af15f3958 人口菜单名称、添加新类型 2023-09-07 17:39:25 +08:00
itgaojian
8b66cb3f68 bug修复、App更新方式更换 2023-07-07 16:58:18 +08:00
itgaojian163
2077808f18 更新方式修改 2023-06-23 16:27:24 +08:00
itgaojian
7115f1fe85 流动人口修改 2023-06-21 16:51:06 +08:00
itgaojian
055a41bd30 统计功能、人口房屋页面修改 2023-06-16 09:19:18 +08:00
itgaojian
6e088a2063 人口页面添加总数 2023-06-09 18:00:15 +08:00
itgaojian
bd32655720 事件日志、强制修改密码 2023-06-08 09:29:05 +08:00
itgaojian163
03c98a445e 修改人口库顺序 2023-06-07 19:07:12 +08:00
itgaojian
64eddab2a7 人口基础信息修改 2023-06-06 18:48:03 +08:00
itgaojian163
819aea5751 修改人口 2023-06-03 19:48:56 +08:00
itgaojian
7f3ea23936 事件流程升级 2023-06-01 22:41:53 +08:00
582 changed files with 36879 additions and 12648 deletions

View File

@ -1,7 +1,6 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<option name="RIGHT_MARGIN" value="150" />
<option name="ENABLE_SECOND_REFORMAT" value="true" />
<option name="RIGHT_MARGIN" value="120" />
<JavaCodeStyleSettings>
<option name="FIELD_NAME_PREFIX" value="m" />
</JavaCodeStyleSettings>
@ -126,6 +125,15 @@
</codeStyleSettings>
<codeStyleSettings language="kotlin">
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
<option name="CALL_PARAMETERS_WRAP" value="0" />
<option name="CALL_PARAMETERS_LPAREN_ON_NEXT_LINE" value="false" />
<option name="CALL_PARAMETERS_RPAREN_ON_NEXT_LINE" value="false" />
<option name="METHOD_PARAMETERS_WRAP" value="0" />
<option name="METHOD_PARAMETERS_LPAREN_ON_NEXT_LINE" value="false" />
<option name="METHOD_PARAMETERS_RPAREN_ON_NEXT_LINE" value="false" />
<option name="EXTENDS_LIST_WRAP" value="0" />
<option name="METHOD_CALL_CHAIN_WRAP" value="0" />
<option name="ASSIGNMENT_WRAP" value="0" />
</codeStyleSettings>
</code_scheme>
</component>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetDropDown">
<runningDeviceTargetSelectedWithDropDown>
<Target>
<type value="RUNNING_DEVICE_TARGET" />
<deviceKey>
<Key>
<type value="SERIAL_NUMBER" />
<value value="adb-10HC690BJT0005G-OxQ61P._adb-tls-connect._tcp." />
</Key>
</deviceKey>
</Target>
</runningDeviceTargetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2023-11-08T09:18:44.327257Z" />
</component>
</project>

6
.idea/kotlinc.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="KotlinJpsPluginSettings">
<option name="version" value="1.6.0" />
</component>
</project>

View File

@ -1,4 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CMakeSettings">
<configurations>
@ -35,7 +34,7 @@
</map>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="corretto-1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">

View File

@ -45,6 +45,7 @@
```
1.修复Bug Inconsistency detected(在清除的了mData后续要重新刷新adapter)
2.修复百度定位key Bug
3.事件相关页面添加上报人名字 事件条目布局调整
4.修改融合通信登录时机 修改通信弹窗
```
@ -57,5 +58,16 @@
3.修复Bug Inconsistency detected(在清除的了mData后续要重新刷新adapter)
```
### 2023-6-8 (1.1.3)
```
1.人口 事件
```
### 2023-9-22 (1.1.6)
```
1.常住人口修改为 户籍人口(户在人在)
```

View File

@ -24,6 +24,7 @@ android {
versionName rootProject.ext.gVersionName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
sourceSets {
main {
@ -50,9 +51,9 @@ dependencies {
if (IsModuleDev.toBoolean()) {
implementation project(':mainmodule')
implementation project(':chatmodule')//线
implementation project(':modulemap')//
implementation project(':commonmodule')//
implementation project(':gridmodule')//
implementation project(':modulemap')
}
//ARouter
api "com.alibaba:arouter-api:$rootProject.ext.gRouterApiVersion"

View File

@ -10,8 +10,8 @@
{
"type": "SINGLE",
"filters": [],
"versionCode": 10,
"versionName": "1.0.9",
"versionCode": 17,
"versionName": "1.1.6",
"outputFile": "app-release.apk"
}
]

View File

@ -0,0 +1,8 @@
Trial License
Modules=851967
Version=1100
StartDate=20231010
ExpiredDate=20240110
DeviceIDType=UUID
###
F79DB8786D31A7EEDDFB1A86354BA234

View File

@ -7,17 +7,21 @@ import android.content.res.Configuration;
import android.content.res.Resources;
import android.net.ConnectivityManager;
import androidx.appcompat.app.AppCompatDelegate;
import com.alibaba.android.arouter.launcher.ARouter;
import com.baidu.mapapi.CoordType;
import com.baidu.mapapi.SDKInitializer;
import com.supermap.data.Environment;
import com.tencent.bugly.crashreport.CrashReport;
import com.tengshisoft.chatmodule.hwclud.receiver.NetWorkStateReceiver;
import com.tenlionsoft.baselib.app.BaseAppContext;
import com.tenlionsoft.baselib.utils.AppUtils;
import com.tenlionsoft.baselib.utils.FileUtils;
import com.tenlionsoft.baselib.utils.LogUtils;
import com.tenlionsoft.baselib.utils.ResourceUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.Utils;
import java.io.File;
import java.io.IOException;
import java.util.List;
@ -32,6 +36,7 @@ import cn.leo.magic.screen.MagicScreenAdapter;
public class BaseMyApplication extends BaseAppContext {
private static boolean isLogin = false;
private NetWorkStateReceiver mNetWorkStateReceiver;
private String licenseFileName = "SuperMap iMobile Trial -20231010.slm";
@Override
@ -41,7 +46,8 @@ public class BaseMyApplication extends BaseAppContext {
ARouter.init(BaseMyApplication.this);
CrashReport.initCrashReport(getApplicationContext());
Utils.init(this);
initBaiduMap();//初始化百度地图
doCopyMapLicenseToSdcard();
// initBaiduMap();//初始化百度地图
if (AppUtils.isSupportCall()) {
//判断是否可以视频通话
initCertificate();
@ -50,7 +56,8 @@ public class BaseMyApplication extends BaseAppContext {
filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(mNetWorkStateReceiver, filter);
}
// disableRes();
//暗黑模式-不随系统主题切换
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
}
/**
@ -122,9 +129,47 @@ public class BaseMyApplication extends BaseAppContext {
* 百度地图初始化
*/
private void initBaiduMap() {
//包括BD09LL和GCJ02两种坐标默认是BD09LL坐标
SDKInitializer.initialize(BaseMyApplication.this);
SDKInitializer.setCoordType(CoordType.BD09LL);
// SDKInitializer.initialize(BaseMyApplication.this);
// SDKInitializer.setCoordType(CoordType.BD09LL);
}
/**
* 拷贝超图许可到Sdcard
*/
private void doCopyMapLicenseToSdcard() {
String srcPath = "supermap";
String targetPath =
getExternalFilesDir(null).getAbsolutePath().toString() + File.separator + "SuperMap" + File
.separator + "license";
File file = new File(targetPath + File.separator + licenseFileName);
LogUtils.e("授权文件是否存在:" + file.exists());
if (file.exists()) {
boolean b = initSuperMap(targetPath);
LogUtils.e("初始化超图:" + b);
return;
}
boolean b = ResourceUtils.copyFileFromAssets(srcPath, targetPath, this);
LogUtils.e("许可文件拷贝:" + b);
if (b) {
boolean b1 = initSuperMap(targetPath);
LogUtils.e("地图初始化:" + b1);
} else {
ToastUtils.show("地图许可文件保存失败,请确认授权SD卡读写的权限.");
}
}
private boolean initSuperMap(String dirPath) {
boolean isInit;
try {
Environment.setLicensePath(dirPath + File.separator);
isInit = Environment.initialization(this);
} catch (Exception e) {
e.printStackTrace();
isInit = false;
}
return isInit;
}
public static boolean getIsLoging() {

View File

@ -94,7 +94,7 @@ dependencies {
api 'me.rosuh:AndroidFilePicker:0.8.3'
//toast
api 'com.github.getActivity:ToastUtils:9.5'
api 'com.github.getActivity:Toaster:12.3'
//
api "top.zibin:Luban:$rootProject.ext.lubanVersio"
@ -113,6 +113,8 @@ dependencies {
api 'com.github.MZCretin:ExpandableTextView:v1.6.1-x'
api 'com.jakewharton.rxbinding3:rxbinding-core:3.0.0'
//
api "com.jcodecraeer:xrecyclerview:${rootProject.ext.xRecyclerViewVersion}"
api "com.github.getActivity:XXPermissions:${rootProject.ext.gAskPermissions}"
}

View File

@ -8,7 +8,8 @@ import android.net.NetworkInfo;
import android.os.PowerManager;
import android.view.Gravity;
import com.hjq.toast.ToastUtils;
import com.hjq.toast.Toaster;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.scwang.smart.refresh.footer.ClassicsFooter;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tenlionsoft.baselib.constant.BroadcastConstant;
@ -62,8 +63,8 @@ public class BaseAppContext extends MultiDexApplication {
public void onCreate() {
super.onCreate();
app = this;
ToastUtils.init(this);
ToastUtils.setGravity(Gravity.BOTTOM, 0, 100);
Toaster.init(this);
Toaster.setGravity(Gravity.TOP, 0, 100);
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
isScreenOn = powerManager.isInteractive();
screenTurningOff();

View File

@ -1,5 +1,6 @@
package com.tenlionsoft.baselib.constant;
import android.net.ConnectivityManager;
import android.os.Environment;
import java.io.File;
@ -12,7 +13,8 @@ import java.io.File;
public class PathConfig {
public static final String PROVIDER_URL = "content://com.tengshisoft.gridclient.content_provider";//内容提供者url
public static final String BASE_LAYER = "http://support.supermap.com.cn:8090/iserver/services/map-china400/rest/maps/China";//地图基础图层
public static final String BASE_LAYER = "http://support.supermap.com.cn:8090/iserver/services/map-china400/rest" +
"/maps/China";//地图基础图层
public static final int CRS = 4326;//坐标系
/*===========================================*/
@ -20,19 +22,24 @@ public class PathConfig {
public static final String ACTION_LOGIN_OUT = "com.tengshisoft.city-governace.restart_app";
public static final String ACTION_REGISTER_BROAD = "com.tengshisoft.city-governace.register_broad";
public static final String ACTION_FROM_SOCKET_PUSH_MSG = "com.tengshisoft.city-governace.push_msg";//系统推送来的消息 根据 推送过来的消息 分为三类 系统消息类 通知类 聊天类 根据type来判断
public static final String ACTION_FROM_SOCKET_PUSH_MSG = "com.tengshisoft.city-governace.push_msg";//系统推送来的消息 根据
// 推送过来的消息 分为三类 系统消息类 通知类 聊天类 根据type来判断
public static final String ACTION_SOCKET_RELINK = "com.tenglionsoft.city-governance.socket_relink";//socket重连
public static final String ACTION_MSG_CHAT = "com.tenglionsoft.city-governance.chat_msg";//聊天消息
public static final String ACTION_MSG_CHAT_SEND = "com.tenglion.city-governance.chat_send";//发送聊天信息
public static final String ACTION_MSG_CHAT_REFRESH = "com.tenglionsoft.city-governance.MSG_REFRESH";//刷新聊天信息状态
public static final String ACTION_MSG_SOCKET_FAIL = "com.tenglionsoft.city-governance.chat_socket_fail";//socket连接失败
public static final String ACTION_PUSH_UPCOMING_BY_SYS = "com.tenglionsoft.city-governance.push_sys_upcoming";//系统待办通知
public static final String ACTION_PUSH_UPCOMING_BY_SYS = "com.tenglionsoft.city-governance.push_sys_upcoming";
//系统待办通知
public static final String ACTION_MSG_UPCOMING_BY_USER = "com.tenglionsoft.city-governance.by_user_upcoming";//待办点击
public static final String ACTION_MSG_UPCOMING_INITIATIVE = "com.tenglionsoft.city-governance.by_user_initiative";//用户主动获取待办信息
public static final String ACTION_MSG_UPCOMING_INITIATIVE =
"com.tenglionsoft.city-governance.by_user_initiative";//用户主动获取待办信息
public static final String ACTION_PUSH_RESTART_SOCKET = "com.tengshisoft.city-governance.push_restart";//重新登录socket
public static final String ACTION_MSG_FORCE_LOGIN_OUT = "com.tengshisoft.city-governance.push_force_grid_login_out";//强制下线
public static final String ACTION_MSG_FORCE_LOGIN_OUT = "com.tengshisoft.city-governance" +
".push_force_grid_login_out";//强制下线
public static final String ACTION_PUSH_STOP_SOCKET = "com.tengshisoft.city-governance.push_stop";//关闭socket
public static final String ACTION_ONE_PIXE_FINISH_ACTIVITY = "com.tengshisoft.city-governance.finish_one_pixe_activity";//关闭activity
public static final String ACTION_ONE_PIXE_FINISH_ACTIVITY = "com.tengshisoft.city-governance" +
".finish_one_pixe_activity";//关闭activity
public static final String ACTION_SCREEN_ON = "com.tengshisoft.city-governance.screen_on";//屏幕关闭
public static final String ACTION_SCREEN_OFF = "com.tengshisoft.city-governance.screen_off";//屏幕开启
public static final String ACTION_SYSTEM_MESSAGE = "com.sucstepsoft.hs.message";
@ -43,15 +50,21 @@ public class PathConfig {
public static final String ACTION_START_LOCATION = "com.sucstepsoft.city-governance.start_listener";
public static final String ACTION_CALL_MSG = "com.tenlionsoft.call_msg";
public static final String ACTION_NOTIFY_CONTACT_LOGIN = "com.tengshisoft.city-governance.notify_login";//通知对方登录
public static final String ACTION_NOTIFY_CONTACT_LOGIN_SUCCESS = "com.tengshisoft.city-governance.notify_login_success";//对方登录成功
public static final String ACTION_NOTIFY_CONTACT_LOGIN_FAIL = "com.tengshisoft.city-governance.notify_login_failed";//对方登录不成功
public static final String ACTION_CALL_OTHER_NO_SUPPORT = "com.tengshisoft.city-governance.call_other_no_support";//对方手机不支持视频语音通话
public static final String ACTION_NOTIFY_CONTACT_LOGIN_SUCCESS = "com.tengshisoft.city-governance" +
".notify_login_success";//对方登录成功
public static final String ACTION_NOTIFY_CONTACT_LOGIN_FAIL = "com.tengshisoft.city-governance" +
".notify_login_failed";//对方登录不成功
public static final String ACTION_CALL_OTHER_NO_SUPPORT =
"com.tengshisoft.city-governance.call_other_no_support";//对方手机不支持视频语音通话
public static final String ACTION_USER_OFFLINE = "com.tengshisoft.city-governance.user_offline";//用户不在线
public static final String ACTION_CALL_LOGIN_FAIL = "com.tengshisoft.city-governance.call_login_local_fail";//本地登录失败
public static final String ACTION_CALL_LOGIN_SUCCESS = "com.tengshisoft.city-governance.call_login_local_success";//本地登录成功
public static final String ACTION_CALL_LOGIN_OUT = "com.tengshisoft.city-governance.call_login_local_loginout";//通知本地退出登录
public static final String ACTION_CALL_LOCAL_PHONE_NO_SUPPORT = "com.tengshisoft.city-governance.call_login_local_no.support";//本地通知手机不支持通话
public static final String ACTION_CALL_LOGIN_SUCCESS =
"com.tengshisoft.city-governance.call_login_local_success";//本地登录成功
public static final String ACTION_CALL_LOGIN_OUT = "com.tengshisoft.city-governance.call_login_local_loginout";
//通知本地退出登录
public static final String ACTION_CALL_LOCAL_PHONE_NO_SUPPORT = "com.tengshisoft.city-governance" +
".call_login_local_no.support";//本地通知手机不支持通话
public static final String ACTION_NET_CHANGE = "android.net.conn.CONNECTIVITY_CHANGE";//网络状态变化
public static final String ACTION_LOCAL_LOGIN = "com.tengshisoft.gridclient.login";//本地融合通信手动登录
public static final String ACTION_LOCAL_LOGINOUT = "com.tengshisoft.gridclient.loginout";//本地融合通信手动退出
@ -74,6 +87,7 @@ public class PathConfig {
public static final String DEFAULT_AREA_CODE = "0";//地区
public static final String PLACE_TYPE_ID = "df8b758c-f6d8-465a-9aa8-c451fde47076";//场馆类型字典
public static final String NOTICE_CID = "4197a23f-2cae-480f-8eb1-086956a51736";//通知公告ID
public static final String CITY_DEFAULT_CODE = "640675";
public static final String CITY_DEFAULT_NAME = "日喀则市";
public static final int CITY_DEFAULT_LEVEL = 3;
@ -101,9 +115,14 @@ public class PathConfig {
// N员bc405346-8714-4ded-89ac-9cc4d755f66a
// 巡检25affe67-134c-4a32-ba41-64b0cfedc782
public static final int PATROL_SECTOR_INDEX = 3;//巡更点NFC使用的扇区
public static final String CATCH_PATH = Environment.getExternalStorageDirectory().getPath() + File.separator + PROJECT_NAME + File.separator + "cache" + File.separator;
public static final String VIDEO_PATH = Environment.getExternalStorageDirectory().getPath() + File.separator + PROJECT_NAME + File.separator + "videoCache" + File.separator;
public static final String PROJECT_CATCH_PATH = Environment.getExternalStorageDirectory().getPath() + File.separator + PROJECT_NAME;//项目缓存目录
public static final String CATCH_PATH =
Environment.getExternalStorageDirectory().getPath() + File.separator + PROJECT_NAME + File.separator +
"cache" + File.separator;
public static final String VIDEO_PATH =
Environment.getExternalStorageDirectory().getPath() + File.separator + PROJECT_NAME + File.separator +
"videoCache" + File.separator;
public static final String PROJECT_CATCH_PATH =
Environment.getExternalStorageDirectory().getPath() + File.separator + PROJECT_NAME;//项目缓存目录
public static final String IDENTITY_FILE = VIDEO_PATH + "identity.txt";
/**
* ====================================主模块===================================
@ -161,11 +180,21 @@ public class PathConfig {
public static final String PATH_MODULE_CHAT_ADDRESSLIST = "/modulechat/activity/addresslist";//通讯录
public static final String PATH_MODULE_CHAT_ADDRESSLIST_SEARCH = "/modulechat/activity/addresslistsearch";//通讯录搜索
public static final String PATH_MODULE_CHAT_FRAGMENT_DEPT_CONTACT = "/modulechat/fragment/contactDeptFragment";//按部门显示联系人
public static final String PATH_MODULE_CHAT_FRAGMENT_OFTEN_CONTACT = "/modulechat/fragment/contactOftenFragment";//常用联系人
public static final String PATH_MODULE_CHAT_FRAGMENT_PINYIN_CONTACT = "/modulechat/fragment/contactPinyinFragment";//按拼音
public static final String PATH_MODULE_CHAT_FRAGMENT_DEPT_CONTACT = "/modulechat/fragment/contactDeptFragment";
//按部门显示联系人
public static final String PATH_MODULE_CHAT_FRAGMENT_OFTEN_CONTACT = "/modulechat/fragment/contactOftenFragment";
//常用联系人
public static final String PATH_MODULE_CHAT_FRAGMENT_PINYIN_CONTACT = "/modulechat/fragment/contactPinyinFragment"
;//按拼音
public static final String PATH_MODULE_CHAT_ADDRESSLIST_USER_DETAIL = "/modulechat/activity/contactUserDetail";//联系人详情
public static final String PATH_MODULE_CHAT_ADDRESSLIST_USER_DETAIL = "/modulechat/activity/contactUserDetail";
//联系人详情
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_DISPATCH_INFO = "/modulecommon/activity" +
"/incidentDispatchInfo";//分拨信息
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_HANDLE_INFO = "/modulecommon/activity" +
"/incidentHandleInfo";//处理信息
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_CHECK_INFO = "/modulecommon/activity" +
"/incidentCheckInfo";//核查信息
//==================ModuleMedia====================
public static final String PATH_MODULEMEDIA_CAMERA = "/modulemedia/activity/camera"; //相机
public static final String PATH_MODULEMEDIA_FILEPICKER = "/modulemedia/activity/filepicker";
@ -193,111 +222,179 @@ public class PathConfig {
public static final String PATH_MODULE_COMMON_ACTIVITY_USER_INFO = "/modulecommon/activity/userInfo";//用户信息修改
public static final String PATH_MODULE_COMMON_ACTIVITY_ATTENDANCE = "/modulecommon/activity/attendance";//考勤
public static final String PATH_MODULE_COMMON_DEMO = "/modulecommon/activity/mapdemo";//地图测试
public static final String PATH_MODULE_COMMON_ACTIVITY_USER_CENTER = "/modulecommon/activity/userCenter";//用户中心activity
public static final String PATH_MODULE_COMMON_FRAGMENT_USER_CENTER = "/modulecommon/fragment/userCenter";//用户中心fragment
public static final String PATH_MODULE_COMMON_ACTIVITY_USER_CENTER = "/modulecommon/activity/userCenter";
//用户中心activity
public static final String PATH_MODULE_COMMON_FRAGMENT_USER_CENTER = "/modulecommon/fragment/userCenter";
//用户中心fragment
public static final String PATH_MODULE_BASELIB_SHOW_IMG = "/modulebaselib/activity/showImg";//浏览图片
public static final String PATH_MODULE_BASELIB_TAKE_PHOTO = "/modulebaselib/activity/takePhotoOrVideo";//摄像或拍照
public static final String PATH_MODULE_COMMON_ACTIVITY_SEL_DEPT = "/modulecommon/activity/chooseDept";//部门选择接口
public static final String PATH_MODULE_COMMON_ACTIVITY_SEL_DEPT_KNOW = "/modulecommon/activity/chooseDeptKnowLedge";//部门选择接口
public static final String PATH_MODULE_COMMON_ACTIVITY_SEL_DEPT_KNOW = "/modulecommon/activity" +
"/chooseDeptKnowLedge";//部门选择接口
public static final String PATH_MODULE_COMMON_ACTIVITY_SEL_PERSON = "/modulecommon/activity/choosePerson";//人员选择
public static final String PATH_MODULE_COMMON_ACTIVITY_CHOOSE_ORG_AREA = "/modulecommon/activity/chooseOrgArea";//区域部门选择
public static final String PATH_MODULE_COMMON_ACTIVITY_CHOOSE_GRID_USER = "/modulecommon/activity/chooseGridUser";//网格员选择
public static final String PATH_MODULE_COMMON_ACTIVITY_CHOOSE_ORG_AREA = "/modulecommon/activity/chooseOrgArea";
//区域部门选择
public static final String PATH_MODULE_COMMON_ACTIVITY_CHOOSE_GRID_USER =
"/modulecommon/activity/chooseGridUser";//网格员选择
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_REPORT = "/modulecommon/activity/incidentReport";//事件上报
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_REPORT = "/modulecommon/activity/incidentReport";
//事件上报
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_EDIT = "/modulecommon/activity/incidentEdit";//事件修改
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_LOG = "/modulecommon/activity/incidentLog";//事件日志
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_DONE = "/modulecommon/activity/incidentDone";//已办事件
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_DETAIL = "/modulecommon/activity/incidentDetail";//事件详情
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_SEL_COMPONENT = "/modulecommon/activity/incidentSelComponent";//部件选择
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_MINE_LIST = "/modulecommon/activity/incidentMineList";//我上报的事件列表
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_HANDLE_LIST = "/modulecommon/activity/incidentHandleList";//待处理事件列表
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_HANDLE = "/modulecommon/activity/incidentHandle";//事件处理
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_CHECK_LIST = "/modulecommon/activity/incidentCheckList";//事件核查
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_CHECK_DETAIL = "/modulecommon/activity/incidentCheckDetail";//事件核查详情
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_DETAIL = "/modulecommon/activity/incidentDetail";
//事件详情
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_SEL_COMPONENT = "/modulecommon/activity" +
"/incidentSelComponent";//部件选择
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_MINE_LIST = "/modulecommon/activity" +
"/incidentMineList";//我上报的事件列表
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_HANDLE_LIST = "/modulecommon/activity" +
"/incidentHandleList";//待处理事件列表
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_HANDLE = "/modulecommon/activity/incidentHandle";
//事件处理
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_CHECK_LIST = "/modulecommon/activity" +
"/incidentCheckList";//事件核查
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_CHECK_DETAIL = "/modulecommon/activity" +
"/incidentCheckDetail";//事件核查详情
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_DEFER_EXAMINE = "/modulecommon/activity/incidentDeferExamine";//延期审核
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_DEFER_EXAMINE_DETAIL = "/modulecommon/activity/incidentDeferExamineDetail";//延期审核
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_DEFER_EXAMINE = "/modulecommon/activity" +
"/incidentDeferExamine";//延期审核
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_DEFER_EXAMINE_DETAIL = "/modulecommon/activity" +
"/incidentDeferExamineDetail";//延期审核
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_DEPT_SPECIAL = "/modulecommon/activity/incidentDeptSpecial";//部门端特殊事件 预警和超时
public static final String PATH_MODULE_COMMON_FRAGMENT_INCIDENT_DEPT_TIME_OUT = "/modulecommon/fragment/incidentDeptTimeOut";//部门端超时事件
public static final String PATH_MODULE_COMMON_FRAGMENT_INCIDENT_DEPT_EARLY_WARN = "/modulecommon/fragment/incidentDeptEarlyWarn";//部门端预警事件
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_DEPT_SPECIAL = "/modulecommon/activity" +
"/incidentDeptSpecial";//部门端特殊事件 预警和超时
public static final String PATH_MODULE_COMMON_FRAGMENT_INCIDENT_DEPT_TIME_OUT = "/modulecommon/fragment" +
"/incidentDeptTimeOut";//部门端超时事件
public static final String PATH_MODULE_COMMON_FRAGMENT_INCIDENT_DEPT_EARLY_WARN = "/modulecommon/fragment" +
"/incidentDeptEarlyWarn";//部门端预警事件
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_CENTER_SPECIAL = "/modulecommon/activity/incidentCenterSpecial";//中心端特殊事件 预警和超时
public static final String PATH_MODULE_COMMON_FRAGMENT_INCIDENT_CENTER_TIME_OUT = "/modulecommon/fragment/incidentCenterTimeOut";//中心端超时事件
public static final String PATH_MODULE_COMMON_FRAGMENT_INCIDENT_DEFER = "/modulecommon/fragment/incidentDefer";//事件延期列表
public static final String PATH_MODULE_COMMON_FRAGMENT_INCIDENT_CENTER_EARLY_WARN = "/modulecommon/fragment/incidentCenterEarlyWarn";//中心端预警事件
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_CENTER_CHECK = "/modulecommon/activity/incidentCenterCheck"; //中心端结果核查
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_CENTER_CHECK_DETAIL = "/modulecommon/activity/incidentCenterCheckDetail";//中心端结果核查详情
public static final String PATH_MODULE_COMMON_ACTIVITY_CHOOSE_DEPT_USER = "/modulecommon/activity/chooseDeptUser";//选择部门人员
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_CENTER_SPECIAL = "/modulecommon/activity" +
"/incidentCenterSpecial";//中心端特殊事件 预警和超时
public static final String PATH_MODULE_COMMON_FRAGMENT_INCIDENT_CENTER_TIME_OUT = "/modulecommon/fragment" +
"/incidentCenterTimeOut";//中心端超时事件
public static final String PATH_MODULE_COMMON_FRAGMENT_INCIDENT_DEFER = "/modulecommon/fragment/incidentDefer";
//事件延期列表
public static final String PATH_MODULE_COMMON_FRAGMENT_INCIDENT_CENTER_EARLY_WARN = "/modulecommon/fragment" +
"/incidentCenterEarlyWarn";//中心端预警事件
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_CENTER_CHECK = "/modulecommon/activity" +
"/incidentCenterCheck"; //中心端结果核查
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_CENTER_CHECK_DETAIL = "/modulecommon/activity" +
"/incidentCenterCheckDetail";//中心端结果核查详情
public static final String PATH_MODULE_COMMON_ACTIVITY_CHOOSE_DEPT_USER =
"/modulecommon/activity/chooseDeptUser";//选择部门人员
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_OVERSEE = "/modulecommon/activity/incidentOversee";//事件督办
public static final String PATH_MODULE_COMMON_FRAGMENT_INCIDENT_OVERSEE_MINE = "/modulecommon/fragment/incidentOverseeMine";//我发起的督办消息
public static final String PATH_MODULE_COMMON_FRAGMENT_INCIDENT_OVERSEE_BY = "/modulecommon/fragment/incidentByOversee";//我被督办的消息
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_OVERSEE_DETAIL = "/modulecommon/activity/incidentOverseeDetail";//督办详情
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_OVERSEE = "/modulecommon/activity/incidentOversee"
;//事件督办
public static final String PATH_MODULE_COMMON_FRAGMENT_INCIDENT_OVERSEE_MINE = "/modulecommon/fragment" +
"/incidentOverseeMine";//我发起的督办消息
public static final String PATH_MODULE_COMMON_FRAGMENT_INCIDENT_OVERSEE_BY = "/modulecommon/fragment" +
"/incidentByOversee";//我被督办的消息
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_OVERSEE_DETAIL = "/modulecommon/activity" +
"/incidentOverseeDetail";//督办详情
public static final String PATH_MODULE_COMMON_ACTIVITY_GRID_STATISTICS = "/modulecommon/activity/gridStatistics";//统计分析
public static final String PATH_MODULE_COMMON_ACTIVITY_DEPT_STATISTICS = "/modulecommon/activity/deptStatistics";//统计分析
public static final String PATH_MODULE_COMMON_ACTIVITY_COMMAND_STATISTICS = "/modulecommon/activity/commandStatistics";//统计分析
public static final String PATH_MODULE_COMMON_ACTIVITY_GRID_STATISTICS = "/modulecommon/activity/gridStatistics";
//统计分析
public static final String PATH_MODULE_COMMON_ACTIVITY_GRID_STATISTICS_INCIDENT = "/modulecommon/activity" +
"/gridStatisticsIncident";//事件排名统计
public static final String PATH_MODULE_COMMON_ACTIVITY_DEPT_STATISTICS = "/modulecommon/activity/deptStatistics";
//统计分析
public static final String PATH_MODULE_COMMON_ACTIVITY_COMMAND_STATISTICS = "/modulecommon/activity" +
"/commandStatistics";//统计分析
public static final String PATH_MODULE_COMMON_ACTIVITY_KNOWLEDGE_LIBRARY_LIST = "/modulecommon/activity/knowledgeList";//知识库列表
public static final String PATH_MODULE_COMMON_ACTIVITY_KNOWLEDGE_LIBRARY_DETAIL = "/modulecommon/activity/knowledgeDetail";//知识详情
public static final String PATH_MODULE_COMMON_ACTIVITY_KNOWLEDGE_LIBRARY_LIST = "/modulecommon/activity" +
"/knowledgeList";//知识库列表
public static final String PATH_MODULE_COMMON_ACTIVITY_KNOWLEDGE_LIBRARY_DETAIL = "/modulecommon/activity" +
"/knowledgeDetail";//知识详情
public static final String PATH_MODULE_COMMON_ACTIVITY_MINE_COLLECT = "/modulecommon/activity/mineCollect";//我的收藏
public static final String PATH_MODULE_COMMON_FRAGMENT_MINE_COLLECT_INCIDENT = "/modulecommon/fragment/mineCollectIncident";//我的收藏事件列表
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_ARCHIVE_LIST = "/modulecommon/activity/archiveIncident";//已归档案件
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_RETURN_RECORD = "/modulecommon/activity/returnRecordIncident";//事件回访记录
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_RETURN_RECORD_ADD = "/modulecommon/activity/returnRecordIncidentAdd";//添加回访记录
public static final String PATH_MODULE_COMMON_FRAGMENT_MINE_COLLECT_INCIDENT = "/modulecommon/fragment" +
"/mineCollectIncident";//我的收藏事件列表
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_ARCHIVE_LIST = "/modulecommon/activity" +
"/archiveIncident";//已归档案件
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_RETURN_RECORD = "/modulecommon/activity" +
"/returnRecordIncident";//事件回访记录
public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_RETURN_RECORD_ADD = "/modulecommon/activity" +
"/returnRecordIncidentAdd";//添加回访记录
public static final String PATH_MODULE_COMMON_ACTIVITY_SEL_GRID = "/modulecommon/activity/chooseGrid";//网格选取
public static final String PATH_MODULE_COMMON_ACTIVITY_BIND_GRID = "/modulecommon/activity/bindGrid";//网格绑定
public static final String PATH_MODULE_COMMON_FRAGMENT_KNOW_LEDGE_LIST = "/modulecommon/fragment/knowLedgeList";//知识库列表
public static final String PATH_MODULE_COMMON_FRAGMENT_KNOW_LEDGE_LIST_BY_DEPT = "/modulecommon/fragment/knowLedgeListByDept";//部门黄页
public static final String PATH_MODULE_COMMON_FRAGMENT_KNOW_LEDGE_LIST = "/modulecommon/fragment/knowLedgeList";
public static final String PATH_MODULE_COMMON_FRAGMENT_GRID_INCIDENT_STATISTICS = "/modulecommon/fragment" +
"/gridIncidentStatistics";//网格员事件上报统计
public static final String PATH_MODULE_COMMON_FRAGMENT_GRID_POPULACE_STATISTICS = "/modulecommon/fragment" +
"/gridPopulaceStatistics";//网格员人口统计
//知识库列表
public static final String PATH_MODULE_COMMON_FRAGMENT_KNOW_LEDGE_LIST_BY_DEPT = "/modulecommon/fragment" +
"/knowLedgeListByDept";//部门黄页
public static final String PATH_MODULE_COMMON_FRAGMENT_KNOW_LEDGE_CENTER = "/modulecommon/fragment/knowLedgeCenter";//中心端知识索要
public static final String PATH_MODULE_COMMON_FRAGMENT_KNOW_LEDGE_DEPT = "/modulecommon/fragment/knowLedgeDept";//部门端知识库
public static final String PATH_MODULE_COMMON_FRAGMENT_KNOW_LEDGE_CENTER = "/modulecommon/fragment" +
"/knowLedgeCenter";//中心端知识索要
public static final String PATH_MODULE_COMMON_FRAGMENT_KNOW_LEDGE_DEPT = "/modulecommon/fragment/knowLedgeDept";
//部门端知识库
public static final String PATH_MODULE_COMMON_FRAGMENT_SMART_CONSULT = "/modulecommon/fragment/smartConsult";//智能咨询
public static final String PATH_MODULE_COMMON_ACTIVITY_KNOWLEDGE_LIBRARY_ASK_ADD = "/modulecommon/activity/knowLedgeAskAdd";//知识索要发起
public static final String PATH_MODULE_COMMON_ACTIVITY_KNOWLEDGE_LIBRARY_ASK_EDIT = "/modulecommon/activity/knowLedgeAskEdit";//知识索要编辑
public static final String PATH_MODULE_COMMON_ACTIVITY_KNOWLEDGE_LIBRARY_ASK_DETAIL = "/modulecommon/activity/knowLedgeAskDetail";//知识索要详情
public static final String PATH_MODULE_COMMON_ACTIVITY_KNOWLEDGE_LIBRARY_ASK_LIST = "/modulecommon/activity/knowLedgeAskList";//知识索要列表
public static final String PATH_MODULE_COMMON_ACTIVITY_KNOWLEDGE_LIBRARY_MANAGE_LIST = "/modulecommon/activity/knowLedgeManageList";//知识库上报列表
public static final String PATH_MODULE_COMMON_ACTIVITY_KNOWLEDGE_LIBRARY_MANAGE_ADD = "/modulecommon/activity/knowLedgeManageAdd";//知识库知识上报
public static final String PATH_MODULE_COMMON_ACTIVITY_KNOWLEDGE_LIBRARY_MANAGE_DETAIL = "/modulecommon/activity/knowLedgeManageDetail";//知识库知识详情
public static final String PATH_MODULE_COMMON_ACTIVITY_KNOWLEDGE_LIBRARY_ASK_ADD = "/modulecommon/activity" +
"/knowLedgeAskAdd";//知识索要发起
public static final String PATH_MODULE_COMMON_ACTIVITY_KNOWLEDGE_LIBRARY_ASK_EDIT = "/modulecommon/activity" +
"/knowLedgeAskEdit";//知识索要编辑
public static final String PATH_MODULE_COMMON_ACTIVITY_KNOWLEDGE_LIBRARY_ASK_DETAIL = "/modulecommon/activity" +
"/knowLedgeAskDetail";//知识索要详情
public static final String PATH_MODULE_COMMON_ACTIVITY_KNOWLEDGE_LIBRARY_ASK_LIST = "/modulecommon/activity" +
"/knowLedgeAskList";//知识索要列表
public static final String PATH_MODULE_COMMON_ACTIVITY_KNOWLEDGE_LIBRARY_MANAGE_LIST = "/modulecommon/activity" +
"/knowLedgeManageList";//知识库上报列表
public static final String PATH_MODULE_COMMON_ACTIVITY_KNOWLEDGE_LIBRARY_MANAGE_ADD = "/modulecommon/activity" +
"/knowLedgeManageAdd";//知识库知识上报
public static final String PATH_MODULE_COMMON_ACTIVITY_KNOWLEDGE_LIBRARY_MANAGE_DETAIL = "/modulecommon/activity" +
"/knowLedgeManageDetail";//知识库知识详情
public static final String PATH_MODULE_COMMON_ACTIVITY_TASK_CONVER_CASE = "/modulecommon/activity/taskConverCase";//任务转事件
public static final String PATH_MODULE_COMMON_ACTIVITY_TASK_CONVER_CASE_DETAIL = "/modulecommon/activity/taskConverCaseDetail";//任务转事件详情
public static final String PATH_MODULE_COMMON_ACTIVITY_TASK_CONVER_CASE =
"/modulecommon/activity/taskConverCase";//任务转事件
public static final String PATH_MODULE_COMMON_ACTIVITY_TASK_CONVER_CASE_DETAIL = "/modulecommon/activity" +
"/taskConverCaseDetail";//任务转事件详情
public static final String PATH_MODULE_COMMON_ACTIVITY_FORGET_PWD = "/modulecommon/activity/forgetPassword";//忘记密码
/*======================网格员==================================================*/
//新版人口房屋
public static final String PATH_MODULE_GRID_ACTIVITY_HOUSE_PERSON = "/modulegrid/activity/housePersonList";
public static final String PATH_MODULE_GRID_ACTIVITY_HOUSE_PERSON_NEW = "/modulegrid/activity/housePersonListNew";
//社区
public static final String PATH_MODULE_GRID_ACTIVITY_COMMUNITY_AREA_LIST = "/modulegrid/activity/communityAreaList";//社区管理
public static final String PATH_MODULE_GRID_ACTIVITY_COMMUNITY_AREA_ADD = "/modulegrid/activity/communityAreaAdd";//社区信息天机
public static final String PATH_MODULE_GRID_ACTIVITY_COMMUNITY_AREA_DETAIL = "/modulegrid/activity/communityAreaDetail";//社区信息详情
public static final String PATH_MODULE_GRID_ACTIVITY_COMMUNITY_AREA_EDIT = "/modulegrid/activity/communityAreaEdit";//社区信息编辑
public static final String PATH_MODULE_GRID_ACTIVITY_COMMUNITY_AREA_LIST = "/modulegrid/activity" +
"/communityAreaList";//社区管理
public static final String PATH_MODULE_GRID_ACTIVITY_COMMUNITY_AREA_ADD =
"/modulegrid/activity/communityAreaAdd";//社区信息天机
public static final String PATH_MODULE_GRID_ACTIVITY_COMMUNITY_AREA_DETAIL = "/modulegrid/activity" +
"/communityAreaDetail";//社区信息详情
public static final String PATH_MODULE_GRID_ACTIVITY_COMMUNITY_AREA_EDIT = "/modulegrid/activity" +
"/communityAreaEdit";//社区信息编辑
//社区简介
public static final String PATH_MODULE_GRID_ACTIVITY_COMMUNITY_AREA_DESC_ADD = "/modulegrid/activity/communityAreaDescAdd";//添加社区简介
public static final String PATH_MODULE_GRID_ACTIVITY_COMMUNITY_AREA_DESC_EDIT = "/modulegrid/activity/communityAreaDescEdit";//编辑社区简介
public static final String PATH_MODULE_GRID_ACTIVITY_COMMUNITY_AREA_DESC_ADD = "/modulegrid/activity" +
"/communityAreaDescAdd";//添加社区简介
public static final String PATH_MODULE_GRID_ACTIVITY_COMMUNITY_AREA_DESC_EDIT = "/modulegrid/activity" +
"/communityAreaDescEdit";//编辑社区简介
//小区
public static final String PATH_MODULE_GRID_ACTIVITY_COMMUNITY_MANAGE = "/modulegrid/activity/communityManage";//小区管理
public static final String PATH_MODULE_GRID_ACTIVITY_COMMUNITY_MANAGE = "/modulegrid/activity/communityManage";
//小区管理
public static final String PATH_MODULE_GRID_ACTIVITY_COMMUNITY_ADD = "/modulegrid/activity/communityAdd";//小区添加
public static final String PATH_MODULE_GRID_ACTIVITY_COMMUNITY_DETAIL = "/modulegrid/activity/communityDetail";//小区详情
public static final String PATH_MODULE_GRID_ACTIVITY_COMMUNITY_DETAIL = "/modulegrid/activity/communityDetail";
//小区详情
public static final String PATH_MODULE_GRID_ACTIVITY_COMMUNITY_EDIT = "/modulegrid/activity/communityEdit";//小区编辑
//小区简介
public static final String PATH_MODULE_GRID_ACTIVITY_COMMUNITY_DESC_ADD = "/modulegrid/activity/communityDescAdd";//添加小区简介
public static final String PATH_MODULE_GRID_ACTIVITY_COMMUNITY_DESC_EDIT = "/modulegrid/activity/communityDescEdit";//编辑小区简介
public static final String PATH_MODULE_GRID_ACTIVITY_COMMUNITY_DESC_ADD =
"/modulegrid/activity/communityDescAdd";//添加小区简介
public static final String PATH_MODULE_GRID_ACTIVITY_COMMUNITY_DESC_EDIT = "/modulegrid/activity" +
"/communityDescEdit";//编辑小区简介
//楼宇
public static final String PATH_MODULE_GRID_ACTIVITY_BUILDING_ADD = "/modulegrid/activity/buildingAdd";//楼宇添加
@ -306,77 +403,136 @@ public class PathConfig {
public static final String PATH_MODULE_GRID_ACTIVITY_BUILDING_EDIT = "/modulegrid/activity/buildingEdit";//楼宇编辑
//楼栋长
public static final String PATH_MODULE_GRID_ACTIVITY_BUILDING_MANAGER_ADD = "/modulegrid/activity/buildingManagerAdd";//楼栋长添加
public static final String PATH_MODULE_GRID_ACTIVITY_BUILDING_MANAGER_DETAIL = "/modulegrid/activity/buildingManagerDetail";//楼栋长详情
public static final String PATH_MODULE_GRID_ACTIVITY_BUILDING_MANAGER_EDIT = "/modulegrid/activity/buildingManagerEdit";//楼栋长编辑
public static final String PATH_MODULE_GRID_ACTIVITY_BUILDING_MANAGER_ADD = "/modulegrid/activity" +
"/buildingManagerAdd";//楼栋长添加
public static final String PATH_MODULE_GRID_ACTIVITY_BUILDING_MANAGER_DETAIL = "/modulegrid/activity" +
"/buildingManagerDetail";//楼栋长详情
public static final String PATH_MODULE_GRID_ACTIVITY_BUILDING_MANAGER_EDIT = "/modulegrid/activity" +
"/buildingManagerEdit";//楼栋长编辑
//房屋
public static final String PATH_MODULE_GRID_ACTIVITY_HOUSE_LIST = "/modulegrid/activity/houseList";//房屋列表
public static final String PATH_MODULE_GRID_ACTIVITY_HOUSE_EDIT = "/modulegrid/activity/houseEdit";//房屋编辑
public static final String PATH_MODULE_GRID_ACTIVITY_HOUSE_DETAIL = "/modulegrid/activity/houseDetail";//房屋详情
public static final String PATH_MODULE_GRID_ACTIVITY_HOUSE_BIND_PERSON = "/modulegrid/activity/houseBindPerson";//绑定人员
public static final String PATH_MODULE_GRID_ACTIVITY_HOUSE_BIND_PERSON = "/modulegrid/activity/houseBindPerson";
//绑定人员
public static final String PATH_MODULE_GRID_ACTIVITY_HIRER_EDIT = "/modulegrid/activity/housePersonEdit";//绑定人员编辑
public static final String PATH_MODULE_GRID_ACTIVITY_HIRER_DETAIL = "/modulegrid/activity/hirerDetail";// 绑定人员详情
public static final String PATH_MODULE_GRID_ACTIVITY_MEMBER_ADD = "/modulegrid/activity/familyMemberAdd";//添加家庭成员
public static final String PATH_MODULE_GRID_ACTIVITY_MEMBER_DETAIL = "/modulegrid/activity/familyMemberDetail";//家庭成员详情
public static final String PATH_MODULE_GRID_ACTIVITY_MEMBER_DETAIL = "/modulegrid/activity/familyMemberDetail";
//家庭成员详情
public static final String PATH_MODULE_GRID_ACTIVITY_MEMBER_EDIT = "/modulegrid/activity/familyMemberEdit";//家庭成员编辑
public static final String PATH_MODULE_GRID_ACTIVITY_SEARCH_HOUSE_BY_PERSON = "/modulegrid/activity/searchHouseByPerson";//以人找房
public static final String PATH_MODULE_GRID_ACTIVITY_SEARCH_HOUSE_BY_PERSON = "/modulegrid/activity" +
"/searchHouseByPerson";//以人找房
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_MAIN = "/modulegrid/activity/censusMain";//人口系统主页
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_BASE_LIST = "/modulegrid/activity/censusBaseList";//人口基础信息列表
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_BASE_ADD = "/modulegrid/activity/censusBaseAdd";//人口基础信息录入
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_BASE_DETAIL = "/modulegrid/activity/censusBaseDetail";//人口基础信息详情
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_BASE_EDIT = "/modulegrid/activity/censusBaseEdit";//人口基础信息编辑
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_BASE_LIST = "/modulegrid/activity/censusBaseList";
//人口基础信息列表-户籍
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_RESID_LIST =
"/modulegrid/activity/censusResidList";//人口基础信息列表-常住
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_EXIRT_LIST =
"/modulegrid/activity/censusExirtList";//人口基础信息列表-外来
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_BASE_ADD = "/modulegrid/activity/censusBaseAdd";
//人口基础信息录入
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_BASE_DETAIL = "/modulegrid/activity" +
"/censusBaseDetail";//人口基础信息详情
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_BASE_EDIT = "/modulegrid/activity/censusBaseEdit";
//人口基础信息编辑
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_REAR_LIST = "/modulegrid/activity/censusRearList";//留守人员列表
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_REAR_DETAIL = "/modulegrid/activity/censusRearDetail";//留守人员详情
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_REAR_ADD = "/modulegrid/activity/censusRearAdd";//留守人员添加与编辑
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_MIGRANT_LIST = "/modulegrid/activity/censusMigrantList";//流动人员列表
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_MIGRANT_DETAIL = "/modulegrid/activity/censusMigrantDetail";//流动人员详情
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_MIGRANT_ADD = "/modulegrid/activity/censusMigrantAdd";//流动人员添加
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_REGISTER_LIST = "/modulegrid/activity/censusRegisterList";//户籍人口列表
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_REGISTER_ADD = "/modulegrid/activity/censusRegisterAdd";//户籍人口添加
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_REGISTER_DETAIL = "/modulegrid/activity/censusRegisterDetail";//户籍人口详情
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_OUT_BOUND_LIST = "/modulegrid/activity/censusOutboundList";//境外人员
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_OUT_BOUND_ADD = "/modulegrid/activity/censusOutboundAdd";//境外人员
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_OUT_BOUND_DETAIL = "/modulegrid/activity/censusOutboundDetail";//境外人员
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_REAR_LIST = "/modulegrid/activity/censusRearList";
//留守人员列表
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_REAR_DETAIL = "/modulegrid/activity" +
"/censusRearDetail";//留守人员详情
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_REAR_ADD = "/modulegrid/activity/censusRearAdd";
//涉稳重点
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_CRIMINAL_ATTEN = "/modulegrid/activity" +
"/censusCriminalAtten";
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_CRIMINAL_ATTEN_ADD = "/modulegrid/activity" +
"/censusCriminalAttenAdd";
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_CRIMINAL_ATTEN_DETAIL = "/modulegrid/activity" +
"/censusCriminalAttenDetail";
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_AIDS_LIST = "/modulegrid/activity/censusAidsList";//艾滋病
//信教群众
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_CULT = "/modulegrid/activity/censusCult";
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_CULT_ADD = "/modulegrid/activity/censusCultAdd";
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_CULT_DETAIL = "/modulegrid/activity/censusCultDetail";
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_MIGRANT_LIST = "/modulegrid/activity" +
"/censusMigrantList";//流动人员列表
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_MIGRANT_DETAIL = "/modulegrid/activity" +
"/censusMigrantDetail";//流动人员详情
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_MIGRANT_ADD = "/modulegrid/activity" +
"/censusMigrantAdd";//流动人员添加
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_REGISTER_LIST = "/modulegrid/activity" +
"/censusRegisterList";//户籍人口列表
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_REGISTER_ADD = "/modulegrid/activity" +
"/censusRegisterAdd";//户籍人口添加
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_REGISTER_DETAIL = "/modulegrid/activity" +
"/censusRegisterDetail";//户籍人口详情
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_OUT_BOUND_LIST = "/modulegrid/activity" +
"/censusOutboundList";//境外人员
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_OUT_BOUND_ADD = "/modulegrid/activity" +
"/censusOutboundAdd";//境外人员
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_OUT_BOUND_DETAIL = "/modulegrid/activity" +
"/censusOutboundDetail";//境外人员
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_AIDS_LIST = "/modulegrid/activity/censusAidsList";
//艾滋病
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_AIDS_ADD = "/modulegrid/activity/censusAidsAdd";//艾滋病
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_AIDS_DETAIL = "/modulegrid/activity/censusAidsDetail";//艾滋病
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_AIDS_DETAIL = "/modulegrid/activity" +
"/censusAidsDetail";//艾滋病
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_CORRECT_LIST = "/modulegrid/activity/censusCorrectList";//特殊人群-社区矫正人员
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_CORRECT_ADD = "/modulegrid/activity/censusCorrectAdd";//特殊人群-社区矫正人员
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_CORRECT_DETAIL = "/modulegrid/activity/censusCorrectDetail";//特殊人群-社区矫正人员
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_CORRECT_LIST = "/modulegrid/activity" +
"/censusCorrectList";//特殊人群-社区矫正人员
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_CORRECT_ADD = "/modulegrid/activity" +
"/censusCorrectAdd";//特殊人群-社区矫正人员
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_CORRECT_DETAIL = "/modulegrid/activity" +
"/censusCorrectDetail";//特殊人群-社区矫正人员
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_DRUG_LIST = "/modulegrid/activity/censusDrugList";//吸毒人员
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_DRUG_LIST = "/modulegrid/activity/censusDrugList";
//吸毒人员
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_DRUG_ADD = "/modulegrid/activity/censusDrugAdd";//吸毒人员
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_DRUG_DETAIL = "/modulegrid/activity/censusDrugDetail";//吸毒人员
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_DRUG_DETAIL = "/modulegrid/activity" +
"/censusDrugDetail";//吸毒人员
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_CRIMINAL_LIST = "/modulegrid/activity/censusCriminalList";//罪犯人员
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_CRIMINAL_ADD = "/modulegrid/activity/censusCriminalAdd";//罪犯人员
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_CRIMINAL_DETAIl = "/modulegrid/activity/censusCriminalDetail";//罪犯人员
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_CRIMINAL_LIST = "/modulegrid/activity" +
"/censusCriminalList";//罪犯人员
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_CRIMINAL_ADD = "/modulegrid/activity" +
"/censusCriminalAdd";//罪犯人员
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_CRIMINAL_DETAIl = "/modulegrid/activity" +
"/censusCriminalDetail";//罪犯人员
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_TROUBLE_LIST = "/modulegrid/activity/censusTroubleList";//肇事肇祸列表
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_TROUBLE_ADD = "/modulegrid/activity/censusTroubleAdd";//肇事肇祸列表
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_TROUBLE_DETAIL = "/modulegrid/activity/censusTroubleDetail";//肇事肇祸列表
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_TROUBLE_LIST = "/modulegrid/activity" +
"/censusTroubleList";//肇事肇祸列表
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_TROUBLE_ADD = "/modulegrid/activity" +
"/censusTroubleAdd";//肇事肇祸列表
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_TROUBLE_DETAIL = "/modulegrid/activity" +
"/censusTroubleDetail";//肇事肇祸列表
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_YOUNG_LIST = "/modulegrid/activity/censusYoungList";//重点青少年列表
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_YOUNG_ADD = "/modulegrid/activity/censusYoungAdd";//重点青少年列表添加
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_YOUNG_DETAIL = "/modulegrid/activity/censusYoungDetail";//重点青少年列表详情
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_YOUNG_CASE_LIST = "/modulegrid/activity/youngCaseList";//重点青少年事件列表
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_YOUNG_CASE_ADD = "/modulegrid/activity/youngCaseAdd";//重点青少年事件添加
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_YOUNG_CASE_EDIT = "/modulegrid/activity/youngCaseEdit";//重点青少年事件编辑
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_YOUNG_CASE_DETAIL = "/modulegrid/activity/youngCaseDetail";//重点青少年事件详情
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_YOUNG_LIST =
"/modulegrid/activity/censusYoungList";//重点青少年列表
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_YOUNG_ADD = "/modulegrid/activity/censusYoungAdd";
//重点青少年列表添加
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_YOUNG_DETAIL = "/modulegrid/activity" +
"/censusYoungDetail";//重点青少年列表详情
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_YOUNG_CASE_LIST = "/modulegrid/activity" +
"/youngCaseList";//重点青少年事件列表
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_YOUNG_CASE_ADD = "/modulegrid/activity/youngCaseAdd"
;//重点青少年事件添加
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_YOUNG_CASE_EDIT = "/modulegrid/activity" +
"/youngCaseEdit";//重点青少年事件编辑
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_YOUNG_CASE_DETAIL = "/modulegrid/activity" +
"/youngCaseDetail";//重点青少年事件详情
public static final String PATH_MODULE_GRID_ACTIVITY_TASK_MANAGE = "/modulegrid/activity/taskManage";//任务管理
@ -384,30 +540,41 @@ public class PathConfig {
public static final String PATH_MODULE_GRID_ACTIVITY_TASK_DETAIL = "/modulegrid/activity/taskDetail";//任务详情
public static final String PATH_MODULE_GRID_ACTIVITY_TASK_REPORT = "/modulegrid/activity/taskReport";//任务详情
public static final String PATH_MODULE_GRID_ACTIVITY_INSPECTION_PATROL = "/modulegrid/activity/inspectionPatrol";//巡查巡检
public static final String PATH_MODULE_GRID_ACTIVITY_INSPECTION_PATROL = "/modulegrid/activity/inspectionPatrol";
//巡查巡检
public static final String PATH_MODULE_GRID_ACTIVITY_TASK_BUSINESS_LIST = "/modulegrid/activity/taskBusinessList";//任务业务列表
public static final String PATH_MODULE_GRID_ACTIVITY_TASK_BUSINESS_LIST =
"/modulegrid/activity/taskBusinessList";//任务业务列表
public static final String PATH_MODULE_GRID_ACTIVITY_TASK_REPORT_EDIT = "/modulegrid/activity/taskReportEdit";//任务上报记录详情
public static final String PATH_MODULE_GRID_ACTIVITY_TASK_REPORT_DETAIL = "/modulegrid/activity/taskReportDetail";//任务上报记录详情
public static final String PATH_MODULE_GRID_ACTIVITY_TASK_REPORT_EDIT = "/modulegrid/activity/taskReportEdit";
//任务上报记录详情
public static final String PATH_MODULE_GRID_ACTIVITY_TASK_REPORT_DETAIL =
"/modulegrid/activity/taskReportDetail";//任务上报记录详情
public static final String PATH_MODULE_GRID_ACTIVITY_NON_PUBLIC_ORG_LIST = "/modulegrid/activity/nonPublicOrgList";//非公有经济组织
public static final String PATH_MODULE_GRID_ACTIVITY_NON_PUBLIC_ORG_ADD = "/modulegrid/activity/nonPublicOrgAdd";//非公有经济组织信息采集
public static final String PATH_MODULE_GRID_ACTIVITY_NON_PUBLIC_ORG_EDIT = "/modulegrid/activity/nonPublicOrgEdit";//非公有经济组织信息编辑
public static final String PATH_MODULE_GRID_ACTIVITY_NON_PUBLIC_ORG_DETAIL = "/modulegrid/activity/nonPublicOrgDetail";//非公有经济组织详情
public static final String PATH_MODULE_GRID_ACTIVITY_NON_PUBLIC_ORG_LIST = "/modulegrid/activity/nonPublicOrgList"
;//非公有经济组织
public static final String PATH_MODULE_GRID_ACTIVITY_NON_PUBLIC_ORG_ADD = "/modulegrid/activity/nonPublicOrgAdd";
//非公有经济组织信息采集
public static final String PATH_MODULE_GRID_ACTIVITY_NON_PUBLIC_ORG_EDIT = "/modulegrid/activity/nonPublicOrgEdit"
;//非公有经济组织信息编辑
public static final String PATH_MODULE_GRID_ACTIVITY_NON_PUBLIC_ORG_DETAIL = "/modulegrid/activity" +
"/nonPublicOrgDetail";//非公有经济组织详情
public static final String PATH_MODULE_GRID_ACTIVITY_SOCIAL_ORG_LIST = "/modulegrid/activity/socialOrgList";//社会团体信息
public static final String PATH_MODULE_GRID_ACTIVITY_SOCIAL_ORG_ADD = "/modulegrid/activity/socialOrgAdd";//社会团体信息添加
public static final String PATH_MODULE_GRID_ACTIVITY_SOCIAL_ORG_EDIT = "/modulegrid/activity/socialOrgEdit";//社会团体信息编辑
public static final String PATH_MODULE_GRID_ACTIVITY_SOCIAL_ORG_DETAIL = "/modulegrid/activity/socialOrgDetail";//社会团体详情
public static final String PATH_MODULE_GRID_ACTIVITY_SOCIAL_ORG_EDIT = "/modulegrid/activity/socialOrgEdit";
//社会团体信息编辑
public static final String PATH_MODULE_GRID_ACTIVITY_SOCIAL_ORG_DETAIL = "/modulegrid/activity/socialOrgDetail";
//社会团体详情
public static final String PATH_MODULE_GRID_ACTIVITY_KEY_AREA_LIST = "/modulegrid/activity/keyAreasList";//重点区域
public static final String PATH_MODULE_GRID_ACTIVITY_KEY_AREA_ADD = "/modulegrid/activity/keyAreasAdd";//重点区域信息采集
public static final String PATH_MODULE_GRID_ACTIVITY_KEY_AREA_EDIT = "/modulegrid/activity/keyAreasEdit";//重点区域信息编辑
public static final String PATH_MODULE_GRID_ACTIVITY_KEY_AREA_DETAIL = "/modulegrid/activity/keyAreasDetail";//重点区域详情
public static final String PATH_MODULE_GRID_ACTIVITY_KEY_AREA_DETAIL = "/modulegrid/activity/keyAreasDetail";
//重点区域详情
public static final String PATH_MODULE_GRID_ACTIVITY_PENAL_LIST = "/modulegrid/activity/penalList";//命案防控
@ -415,94 +582,146 @@ public class PathConfig {
public static final String PATH_MODULE_GRID_ACTIVITY_PENAL_ADD = "/modulegrid/activity/penalAdd";//命案防控添加
public static final String PATH_MODULE_GRID_ACTIVITY_PENAL_DETAIL = "/modulegrid/activity/penalDetail";//命案防控详情
public static final String PATH_MODULE_GRID_ACTIVITY_PENAL_SUSPICION_LIST = "/modulegrid/activity/penalSuspicionList";//命案嫌疑人
public static final String PATH_MODULE_GRID_ACTIVITY_PENAL_SUSPICION_ADD = "/modulegrid/activity/penalSuspicionAdd";//命案嫌疑人
public static final String PATH_MODULE_GRID_ACTIVITY_PENAL_SUSPICION_EDIT = "/modulegrid/activity/penalSuspicionEdit";//命案嫌疑人
public static final String PATH_MODULE_GRID_ACTIVITY_PENAL_SUSPICION_DETAIL = "/modulegrid/activity/penalSuspicionDetail";//命案嫌疑人
public static final String PATH_MODULE_GRID_ACTIVITY_PENAL_SUSPICION_LIST = "/modulegrid/activity" +
"/penalSuspicionList";//命案嫌疑人
public static final String PATH_MODULE_GRID_ACTIVITY_PENAL_SUSPICION_ADD = "/modulegrid/activity" +
"/penalSuspicionAdd";//命案嫌疑人
public static final String PATH_MODULE_GRID_ACTIVITY_PENAL_SUSPICION_EDIT = "/modulegrid/activity" +
"/penalSuspicionEdit";//命案嫌疑人
public static final String PATH_MODULE_GRID_ACTIVITY_PENAL_SUSPICION_DETAIL = "/modulegrid/activity" +
"/penalSuspicionDetail";//命案嫌疑人
public static final String PATH_MODULE_GRID_ACTIVITY_PENAL_CASE_SEL = "/modulegrid/activity/penalCaseSel";//案件选择
public static final String PATH_MODULE_GRID_ACTIVITY_PENAL_VICTIM_LIST = "/modulegrid/activity/penalVictimList";//命案受害人
public static final String PATH_MODULE_GRID_ACTIVITY_PENAL_VICTIM_ADD = "/modulegrid/activity/penalVictimAdd";//命案受害人
public static final String PATH_MODULE_GRID_ACTIVITY_PENAL_VICTIM_DETAIL = "/modulegrid/activity/penalVictimDetail";//命案受害人
public static final String PATH_MODULE_GRID_ACTIVITY_PENAL_VICTIM_EDIT = "/modulegrid/activity/penalVictimEdit";//命案受害人
public static final String PATH_MODULE_GRID_ACTIVITY_PENAL_VICTIM_LIST = "/modulegrid/activity/penalVictimList";
//命案受害人
public static final String PATH_MODULE_GRID_ACTIVITY_PENAL_VICTIM_ADD = "/modulegrid/activity/penalVictimAdd";
//命案受害人
public static final String PATH_MODULE_GRID_ACTIVITY_PENAL_VICTIM_DETAIL = "/modulegrid/activity" +
"/penalVictimDetail";//命案受害人
public static final String PATH_MODULE_GRID_ACTIVITY_PENAL_VICTIM_EDIT = "/modulegrid/activity/penalVictimEdit";
//命案受害人
public static final String PATH_MODULE_GRID_ACTIVITY_EXPRESS_POI_LIST = "/modulegrid/activity/expressPoiList";//快递点列表
public static final String PATH_MODULE_GRID_ACTIVITY_EXPRESS_POI_LIST = "/modulegrid/activity/expressPoiList";
//快递点列表
public static final String PATH_MODULE_GRID_ACTIVITY_EXPRESS_POI_ADD = "/modulegrid/activity/expressPoiAdd";//快递点添加
public static final String PATH_MODULE_GRID_ACTIVITY_EXPRESS_POI_EDIT = "/modulegrid/activity/expressPoiEdit";//快递点编辑
public static final String PATH_MODULE_GRID_ACTIVITY_EXPRESS_POI_DETAIL = "/modulegrid/activity/expressPoiDetail";//快递点详情
public static final String PATH_MODULE_GRID_ACTIVITY_EXPRESS_POI_EDIT = "/modulegrid/activity/expressPoiEdit";
//快递点编辑
public static final String PATH_MODULE_GRID_ACTIVITY_EXPRESS_POI_DETAIL =
"/modulegrid/activity/expressPoiDetail";//快递点详情
public static final String PATH_MODULE_GRID_ACTIVITY_SCHOOL_MANAGE_LIST = "/modulegrid/activity/schoolManageList";//学校管理
public static final String PATH_MODULE_GRID_ACTIVITY_SCHOOL_MANAGE_ADD = "/modulegrid/activity/schoolManageAdd";//学校管理添加
public static final String PATH_MODULE_GRID_ACTIVITY_SCHOOL_MANAGE_DETAIL = "/modulegrid/activity/schoolManageDetail";//学校管理详情
public static final String PATH_MODULE_GRID_ACTIVITY_SCHOOL_MANAGE_LIST =
"/modulegrid/activity/schoolManageList";//学校管理
public static final String PATH_MODULE_GRID_ACTIVITY_SCHOOL_MANAGE_ADD = "/modulegrid/activity/schoolManageAdd";
//学校管理添加
public static final String PATH_MODULE_GRID_ACTIVITY_SCHOOL_MANAGE_DETAIL = "/modulegrid/activity" +
"/schoolManageDetail";//学校管理详情
public static final String PATH_MODULE_GRID_ACTIVITY_SCHOOL_EMPHASES_PERSON_LIST = "/modulegrid/activity/schoolEmphasesPersonList";//学校周边重点人员列表
public static final String PATH_MODULE_GRID_ACTIVITY_SCHOOL_EMPHASES_PERSON_ADD = "/modulegrid/activity/schoolEmphasesPersonAdd";//学校周边重点人员列表
public static final String PATH_MODULE_GRID_ACTIVITY_SCHOOL_EMPHASES_PERSON_DETAIL = "/modulegrid/activity/schoolEmphasesPersonDetail";//学校周边重点人员列表
public static final String PATH_MODULE_GRID_ACTIVITY_SCHOOL_EMPHASES_PERSON_LIST = "/modulegrid/activity" +
"/schoolEmphasesPersonList";//学校周边重点人员列表
public static final String PATH_MODULE_GRID_ACTIVITY_SCHOOL_EMPHASES_PERSON_ADD = "/modulegrid/activity" +
"/schoolEmphasesPersonAdd";//学校周边重点人员列表
public static final String PATH_MODULE_GRID_ACTIVITY_SCHOOL_EMPHASES_PERSON_DETAIL = "/modulegrid/activity" +
"/schoolEmphasesPersonDetail";//学校周边重点人员列表
public static final String PATH_MODULE_GRID_ACTIVITY_SCHOOL_CASE_LIST = "/modulegrid/activity/schoolCaseList";//学校案件列表
public static final String PATH_MODULE_GRID_ACTIVITY_SCHOOL_CASE_LIST = "/modulegrid/activity/schoolCaseList";
//学校案件列表
public static final String PATH_MODULE_GRID_ACTIVITY_SCHOOL_CASE_ADD = "/modulegrid/activity/schoolCaseAdd";//学校案件添加
public static final String PATH_MODULE_GRID_ACTIVITY_SCHOOL_CASE_DETAIL = "/modulegrid/activity/schoolCaseDetail";//学校案件详情
public static final String PATH_MODULE_GRID_ACTIVITY_SCHOOL_CASE_DETAIL =
"/modulegrid/activity/schoolCaseDetail";//学校案件详情
public static final String PATH_MODULE_GRID_ACTIVITY_DIC_SEL = "/modulegrid/activity/dicSel";//字典多选单选
//巡查巡检
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_KEY_AREA_LIST = "/modulegrid/activity/patrolKeyAreaList";//重点区域巡查列表
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_KEY_AREA_ADD = "/modulegrid/activity/patrolKeyAreaAdd";//重点区域巡查上报
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_KEY_AREA_DETAIL = "/modulegrid/activity/patrolKeyAreaDetail";//重点区域巡查详情
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_KEY_AREA_EDIT = "/modulegrid/activity/patrolKeyAreaEdit";//重点区域巡查编辑
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_KEY_AREA_LIST = "/modulegrid/activity" +
"/patrolKeyAreaList";//重点区域巡查列表
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_KEY_AREA_ADD = "/modulegrid/activity/patrolKeyAreaAdd"
;//重点区域巡查上报
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_KEY_AREA_DETAIL = "/modulegrid/activity" +
"/patrolKeyAreaDetail";//重点区域巡查详情
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_KEY_AREA_EDIT = "/modulegrid/activity" +
"/patrolKeyAreaEdit";//重点区域巡查编辑
//重点场所
public static final String PATH_MODULE_GRID_ACTIVITY_KEY_PLACE_LIST = "/modulegrid/activity/keyPlaceList";//重点场所列表
public static final String PATH_MODULE_GRID_ACTIVITY_KEY_PLACE_ADD = "/modulegrid/activity/keyPlaceAdd";//重点场所列表
public static final String PATH_MODULE_GRID_ACTIVITY_KEY_PLACE_EDIT = "/modulegrid/activity/keyPlaceEdit";//重点场所列表
public static final String PATH_MODULE_GRID_ACTIVITY_KEY_PLACE_DETAIL = "/modulegrid/activity/keyPlaceDetail";//重点场所列表
public static final String PATH_MODULE_GRID_ACTIVITY_KEY_PLACE_DETAIL = "/modulegrid/activity/keyPlaceDetail";
//重点场所列表
//重点场所巡查
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_KEY_PLACE_LIST = "/modulegrid/activity/patrolKeyPlaceList";//重点场所巡查列表
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_KEY_PLACE_ADD = "/modulegrid/activity/patrolKeyPlaceAdd";//重点区场所查上报
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_KEY_PLACE_DETAIL = "/modulegrid/activity/patrolKeyPlaceDetail";//重点场所巡查详情
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_KEY_PLACE_EDIT = "/modulegrid/activity/patrolKeyPlaceEdit";//重点场所巡查编辑
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_KEY_PLACE_LIST = "/modulegrid/activity" +
"/patrolKeyPlaceList";//重点场所巡查列表
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_KEY_PLACE_ADD = "/modulegrid/activity" +
"/patrolKeyPlaceAdd";//重点区场所查上报
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_KEY_PLACE_DETAIL = "/modulegrid/activity" +
"/patrolKeyPlaceDetail";//重点场所巡查详情
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_KEY_PLACE_EDIT = "/modulegrid/activity" +
"/patrolKeyPlaceEdit";//重点场所巡查编辑
//命案巡查
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_PENAL_LIST = "/modulegrid/activity/patrolPenalList";//命案发生地列表
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_PENAL_ADD = "/modulegrid/activity/patrolPenalAdd";//命案发生地列表
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_PENAL_DETAIL = "/modulegrid/activity/patrolPenalDetail";//命案发生地列表
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_PENAL_EDIT = "/modulegrid/activity/patrolPenalEdit";//命案发生地列表
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_PENAL_LIST = "/modulegrid/activity/patrolPenalList";
//命案发生地列表
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_PENAL_ADD = "/modulegrid/activity/patrolPenalAdd";
//命案发生地列表
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_PENAL_DETAIL = "/modulegrid/activity" +
"/patrolPenalDetail";//命案发生地列表
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_PENAL_EDIT = "/modulegrid/activity/patrolPenalEdit";
//命案发生地列表
//企业巡查
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_ENTERPRISE_LIST = "/modulegrid/activity/patrolEnterpriseList";//企业巡查记录列表
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_ENTERPRISE_ADD = "/modulegrid/activity/patrolEnterpriseAdd";//企业巡查记录上报
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_ENTERPRISE_DETAIL = "/modulegrid/activity/patrolEnterpriseDetail";//企业巡查记录详情
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_ENTERPRISE_EDIT = "/modulegrid/activity/patrolEnterpriseEdit";//企业巡查记录编辑
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_ENTERPRISE_LIST = "/modulegrid/activity" +
"/patrolEnterpriseList";//企业巡查记录列表
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_ENTERPRISE_ADD = "/modulegrid/activity" +
"/patrolEnterpriseAdd";//企业巡查记录上报
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_ENTERPRISE_DETAIL = "/modulegrid/activity" +
"/patrolEnterpriseDetail";//企业巡查记录详情
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_ENTERPRISE_EDIT = "/modulegrid/activity" +
"/patrolEnterpriseEdit";//企业巡查记录编辑
//合租房巡查
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_HIRE_LIST = "/modulegrid/activity/patrolHireList";//合租房巡查记录列表
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_HIRE_ADD = "/modulegrid/activity/patrolHireAdd";//合租房巡查上报
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_HIRE_DETAIL = "/modulegrid/activity/patrolHireDetail";//合租房巡查记录详情
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_HIRE_EDIT = "/modulegrid/activity/patrolHireEdit";//合租房巡查记录编辑
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_HIRE_LIST = "/modulegrid/activity/patrolHireList";
//合租房巡查记录列表
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_HIRE_ADD = "/modulegrid/activity/patrolHireAdd";
//合租房巡查上报
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_HIRE_DETAIL =
"/modulegrid/activity/patrolHireDetail";//合租房巡查记录详情
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_HIRE_EDIT = "/modulegrid/activity/patrolHireEdit";
//合租房巡查记录编辑
//邮递物流
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_EXPRESS_LIST = "/modulegrid/activity/patrolExpressList";//快递物流巡查列表
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_EXPRESS_ADD = "/modulegrid/activity/patrolExpressAdd";//快递物流巡查新增
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_EXPRESS_DETAIL = "/modulegrid/activity/patrolExpressDetail";//快递物流巡查详情
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_EXPRESS_EDIT = "/modulegrid/activity/patrolExpressEdit";//快递物流巡查编辑
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_EXPRESS_LIST = "/modulegrid/activity" +
"/patrolExpressList";//快递物流巡查列表
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_EXPRESS_ADD =
"/modulegrid/activity/patrolExpressAdd";//快递物流巡查新增
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_EXPRESS_DETAIL = "/modulegrid/activity" +
"/patrolExpressDetail";//快递物流巡查详情
public static final String PATH_MODULE_GRID_ACTIVITY_PATROL_EXPRESS_EDIT = "/modulegrid/activity" +
"/patrolExpressEdit";//快递物流巡查编辑
public static final String PATH_MODULE_COMMON_ACTIVITY_NOTICE_LIST = "/modulecommon/activity/noticeList";//通知列表
public static final String PATH_MODULE_COMMON_ACTIVITY_NOTICE_DETAIL = "/modulecommon/activity/noticeDetail";
//通知详情
//部件
public static final String PATH_MODULE_GRID_ACTIVITY_COMPONENT_LIST = "/modulegrid/activity/componentList";//部件列表
public static final String PATH_MODULE_GRID_ACTIVITY_COMPONENT_ADD = "/modulegrid/activity/componentAdd";//部件采集
public static final String PATH_MODULE_GRID_ACTIVITY_COMPONENT_EDIT = "/modulegrid/activity/componentEdit";//部件信息编辑
public static final String PATH_MODULE_GRID_ACTIVITY_COMPONENT_DETAIL = "/modulegrid/activity/componentDetail";//部件信息详情
public static final String PATH_MODULE_GRID_ACTIVITY_COMPONENT_SEL_DEPT = "/modulegrid/activity/componentSelDept";//选择组织机构
public static final String PATH_MODULE_GRID_ACTIVITY_COMPONENT_DETAIL = "/modulegrid/activity/componentDetail";
//部件信息详情
public static final String PATH_MODULE_GRID_ACTIVITY_COMPONENT_SEL_DEPT =
"/modulegrid/activity/componentSelDept";//选择组织机构
//车辆管理
public static final String PATH_MODULE_GRID_ACTIVITY_CAR_MANAGE_LIST = "/modulegrid/activity/carManageList";//车辆管理列表
public static final String PATH_MODULE_GRID_ACTIVITY_CAR_MANAGE_ADD = "/modulegrid/activity/carManageAdd";//车辆信息添加
public static final String PATH_MODULE_GRID_ACTIVITY_CAR_MANAGE_EDIT = "/modulegrid/activity/carManageEdit";//车辆信息编辑
public static final String PATH_MODULE_GRID_ACTIVITY_CAR_MANAGE_DETAIL = "/modulegrid/activity/carManageDetail";//车辆信息详情
public static final String PATH_MODULE_GRID_ACTIVITY_CAR_PERSON_EDIT = "/modulegrid/activity/carPersonEdit";//车辆人员信息编辑
public static final String PATH_MODULE_GRID_ACTIVITY_CAR_MANAGE_DETAIL = "/modulegrid/activity/carManageDetail";
//车辆信息详情
public static final String PATH_MODULE_GRID_ACTIVITY_CAR_PERSON_EDIT = "/modulegrid/activity/carPersonEdit";
//车辆人员信息编辑
public static final String PATH_MODULE_GRID_ACTIVITY_WORK_LOCUS = "/modulegrid/activity/locusWork";//工作轨迹
@ -515,44 +734,70 @@ public class PathConfig {
public static final String PATH_MODULE_GRID_ACTIVITY_KEY_ROAD_DETAIL = "/modulegrid/activity/keyRoadDetail";//护路护线详情
//护路护线涉及案件
public static final String PATH_MODULE_GRID_ACTIVITY_KEY_ROAD_CASE_LIST = "/modulegrid/activity/keyRoadCaseList";//护路护线涉及案件列表
public static final String PATH_MODULE_GRID_ACTIVITY_KEY_ROAD_CASE_EDIT = "/modulegrid/activity/keyRoadCaseEdit";//护路护线涉及案件编辑
public static final String PATH_MODULE_GRID_ACTIVITY_KEY_ROAD_CASE_ADD = "/modulegrid/activity/keyRoadCaseAdd";//护路护线涉及案件添加
public static final String PATH_MODULE_GRID_ACTIVITY_KEY_ROAD_CASE_DETAIL = "/modulegrid/activity/keyRoadCaseDetail";//护路护线涉及案件详情
public static final String PATH_MODULE_GRID_ACTIVITY_KEY_ROAD_CASE_LIST = "/modulegrid/activity/keyRoadCaseList";
//护路护线涉及案件列表
public static final String PATH_MODULE_GRID_ACTIVITY_KEY_ROAD_CASE_EDIT = "/modulegrid/activity/keyRoadCaseEdit";
//护路护线涉及案件编辑
public static final String PATH_MODULE_GRID_ACTIVITY_KEY_ROAD_CASE_ADD = "/modulegrid/activity/keyRoadCaseAdd";
//护路护线涉及案件添加
public static final String PATH_MODULE_GRID_ACTIVITY_KEY_ROAD_CASE_DETAIL = "/modulegrid/activity" +
"/keyRoadCaseDetail";//护路护线涉及案件详情
/*=========================================中心端============================================*/
public static final String PATH_MODULE_COMMAND_ACTIVITY_INCIDENT_ACCEPT_LIST = "/modulecommand/activity/incidentAcceptList";//事件受理列表
public static final String PATH_MODULE_COMMAND_ACTIVITY_INCIDENT_ACCEPT_DETAIL = "/modulecommand/activity/incidentAcceptDetail";//事件受理
public static final String PATH_MODULE_COMMAND_ACTIVITY_INCIDENT_ACCEPT_LIST = "/modulecommand/activity" +
"/incidentAcceptList";//事件受理列表
public static final String PATH_MODULE_COMMAND_ACTIVITY_INCIDENT_ACCEPT_DETAIL = "/modulecommand/activity" +
"/incidentAcceptDetail";//事件受理
public static final String PATH_MODULE_COMMAND_ACTIVITY_INCIDENT_DISPATCH_LIST = "/modulecommand/activity/incidentDispatchList";//事件派遣列表
public static final String PATH_MODULE_COMMAND_ACTIVITY_INCIDENT_DISPATCH_DETAIL = "/modulecommand/activity/incidentDispatchDetail";//事件派遣
public static final String PATH_MODULE_COMMAND_ACTIVITY_INCIDENT_DISPATCH_LIST = "/modulecommand/activity" +
"/incidentDispatchList";//事件派遣列表
public static final String PATH_MODULE_COMMAND_ACTIVITY_INCIDENT_DISPATCH_DETAIL = "/modulecommand/activity" +
"/incidentDispatchDetail";//事件派遣
public static final String PATH_MODULE_COMMAND_ACTIVITY_INCIDENT_SEL_DEPT = "/modulecommand/activity/incidentDeptSel";//选择组织机构
public static final String PATH_MODULE_COMMAND_ACTIVITY_INCIDENT_SEL_DEPT = "/modulecommand/activity" +
"/incidentDeptSel";//选择组织机构
/*=========================================部门端========================================*/
public static final String PATH_MODULE_SUPERVISION_INCIDENT_DISTRIBUTION_LIST_ACTIVITY = "/modulesupervision/activity/incidentDeptDistributionList";//事件分拨列表
public static final String PATH_MODULE_SUPERVISION_INCIDENT_DISTRIBUTION_DETAIL_ACTIVITY = "/modulesupervision/activity/incidentDeptDistributionDetail";//事件分拨详情
public static final String PATH_MODULE_SUPERVISION_INCIDENT_DISTRIBUTION_LIST_ACTIVITY = "/modulesupervision" +
"/activity/incidentDeptDistributionList";//事件分拨列表
public static final String PATH_MODULE_SUPERVISION_INCIDENT_DISTRIBUTION_DETAIL_ACTIVITY = "/modulesupervision" +
"/activity/incidentDeptDistributionDetail";//事件分拨详情
public static final String PATH_MODULE_SUPERVISION_INCIDENT_ACCEPT_LIST_ACTIVITY = "/modulesupervision/activity/incidentDeptAcceptList";//事件受理
public static final String PATH_MODULE_SUPERVISION_INCIDENT_ACCEPT_DETAIL_ACTIVITY = "/modulesupervision/activity/incidentDeptAcceptDetail";//事件受理详情
public static final String PATH_MODULE_SUPERVISION_INCIDENT_ACCEPT_LIST_ACTIVITY = "/modulesupervision/activity" +
"/incidentDeptAcceptList";//事件受理
public static final String PATH_MODULE_SUPERVISION_INCIDENT_ACCEPT_DETAIL_ACTIVITY = "/modulesupervision/activity" +
"/incidentDeptAcceptDetail";//事件受理详情
public static final String PATH_MODULE_SUPERVISION_INCIDENT_CHECK_LIST = "/modulesupervision/activity/incidentDeptList";//事件核查
public static final String PATH_MODULE_SUPERVISION_INCIDENT_CHECK_DETAIL = "/modulesupervision/activity/incidentDeptListDetail";//事件核查详情
public static final String PATH_MODULE_SUPERVISION_INCIDENT_CHECK_LIST = "/modulesupervision/activity" +
"/incidentDeptList";//事件核查
public static final String PATH_MODULE_SUPERVISION_INCIDENT_CHECK_DETAIL = "/modulesupervision/activity" +
"/incidentDeptListDetail";//事件核查详情
public static final String PATH_MODULE_SUPERVISION_ACTIVITY_PETITION_DISPOSE_LIST = "/modulesupervision/activity/petitionDisposeList";//公众信访
public static final String PATH_MODULE_SUPERVISION_FRAGMENT_VISITS_LIST = "/modulesupervision/fragment/visitsList";//公众信访列表
public static final String PATH_MODULE_SUPERVISION_ACTIVITY_VISITS_DISPOSE = "/modulesupervision/activity/visitsDispose";//信访处理
public static final String PATH_MODULE_SUPERVISION_ACTIVITY_VISITS_DISPOSE_LIST = "/modulesupervision/activity/visitsDisposeList";//信访处理列表
public static final String PATH_MODULE_SUPERVISION_ACTIVITY_VISITS_DETAIL = "/modulesupervision/activity/visitsDetail";//信访详情
public static final String PATH_MODULE_SUPERVISION_ACTIVITY_VISITS_DISPOSE_DETAIL = "/modulesupervision/activity/visitsDisposeDetail";//信访处理详情
public static final String PATH_MODULE_SUPERVISION_ACTIVITY_PETITION_DISPOSE_LIST = "/modulesupervision/activity" +
"/petitionDisposeList";//公众信访
public static final String PATH_MODULE_SUPERVISION_FRAGMENT_VISITS_LIST = "/modulesupervision/fragment/visitsList"
;//公众信访列表
public static final String PATH_MODULE_SUPERVISION_ACTIVITY_VISITS_DISPOSE = "/modulesupervision/activity" +
"/visitsDispose";//信访处理
public static final String PATH_MODULE_SUPERVISION_ACTIVITY_VISITS_DISPOSE_LIST = "/modulesupervision/activity" +
"/visitsDisposeList";//信访处理列表
public static final String PATH_MODULE_SUPERVISION_ACTIVITY_VISITS_DETAIL = "/modulesupervision/activity" +
"/visitsDetail";//信访详情
public static final String PATH_MODULE_SUPERVISION_ACTIVITY_VISITS_DISPOSE_DETAIL = "/modulesupervision/activity" +
"/visitsDisposeDetail";//信访处理详情
/*======================================新版房屋人口==================================*/
public static final String PATH_MODULE_GRID_FRAGMENT_BUILDINGAREA_MANAGE = "/modulegrid/fragment/buildingAreaManage";//小区管理
public static final String PATH_MODULE_GRID_FRAGMENT_BUILDINGAREA_MANAGE = "/modulegrid/fragment" +
"/buildingAreaManage";//小区管理
public static final String PATH_MODULE_GRID_FRAGMENT_BUILDING_MANAGE = "/modulegrid/fragment/buildingManage";//楼宇管理
public static final String PATH_MODULE_GRID_FRAGMENT_HOUSE_MANAGE = "/modulegrid/fragment/houseManage";//房屋管理
public static final String PATH_MODULE_GRID_FRAGMENT_COMMUNITY_MANAGE = "/modulegrid/fragment/communityManage";//社区管理
public static final String PATH_MODULE_GRID_FRAGMENT_SEARCH_HOUSE_BY_PERSON = "/modulegrid/fragment/searchHouseByPerson";//以人找房
public static final String PATH_MODULE_GRID_FRAGMENT_COMMUNITY_MANAGE = "/modulegrid/fragment/communityManage";
//社区管理
public static final String PATH_MODULE_GRID_FRAGMENT_SEARCH_HOUSE_BY_PERSON = "/modulegrid/fragment" +
"/searchHouseByPerson";//以人找房
public static final String PATH_MODULE_GRID_FRAGMENT_PERSON_LIB = "/modulegrid/fragment/personLib";//人口库
public static final String PATH_MODULE_GRID_ACTIVITY_POPULACE_BASE_SEARCH = "/modulegrid/activity" +
"/censusBaseSearch";//人口搜索
/*==========================日报===================================*/
public static final String PATH_MODULE_COMMON_ACTIVITY_JOURNAL_LIST = "/modulecommon/activity/journalList";
@ -560,4 +805,12 @@ public class PathConfig {
public static final String PATH_MODULE_COMMON_ACTIVITY_JOURNAL_DETAIL = "/modulecommon/activity/journalDetail";
public static final String PATH_MODULE_COMMON_ACTIVITY_JOURNAL_REPORT = "/modulecommon/activity/journalReport";
public static final String PATH_MODULE_COMMON_ACTIVITY_JOURNAL_CALENDAR = "/modulecommon/activity/journalCalendar";
public static final String DEFAULT_PWD_8 = "88888888";
public static final String DEFAULT_PWD_6 = "888888";
public static final String ACTION_UPDATE_ERROR = "com.tenlionsoft.girdcclient.update_error";
public static final String ACTION_UPDATE_PROGRESS = "com.tenlionsoft.girdcclient.update_progress";
public static final String ACTION_UPDATE_SUCCESS = "com.tenlionsoft.girdcclient.update_success";
public static final String ACTION_UPDATE_STAET = "com.tenlionsoft.girdcclient.update_start";
}

View File

@ -5,6 +5,8 @@ import android.Manifest.permission;
import android.annotation.SuppressLint;
import android.content.Context;
import androidx.annotation.StringDef;
import com.tenlionsoft.baselib.R;
import java.lang.annotation.Retention;
@ -12,8 +14,6 @@ import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.List;
import androidx.annotation.StringDef;
@SuppressLint("InlinedApi")
public final class PermissionConstants {
@ -31,43 +31,44 @@ public final class PermissionConstants {
public static final String DISABLE_KEYGUARD = permission.DISABLE_KEYGUARD;
public static final String[] DISPLAY = {permission.DISABLE_KEYGUARD};
private static final String[] GROUP_CALENDAR = {
permission.READ_CALENDAR, permission.WRITE_CALENDAR
permission.READ_CALENDAR, permission.WRITE_CALENDAR
};
private static final String[] GROUP_CAMERA = {
permission.CAMERA
permission.CAMERA
};
private static final String[] GROUP_CONTACTS = {
permission.READ_CONTACTS, permission.WRITE_CONTACTS, permission.GET_ACCOUNTS
permission.READ_CONTACTS, permission.WRITE_CONTACTS, permission.GET_ACCOUNTS
};
private static final String[] GROUP_LOCATION = {
permission.ACCESS_FINE_LOCATION,
permission.ACCESS_COARSE_LOCATION,
permission.ACCESS_WIFI_STATE,
permission.ACCESS_NETWORK_STATE,
permission.CHANGE_WIFI_STATE,
permission.ACCESS_COARSE_LOCATION
permission.ACCESS_FINE_LOCATION,
permission.ACCESS_COARSE_LOCATION,
permission.ACCESS_WIFI_STATE,
permission.ACCESS_NETWORK_STATE,
permission.CHANGE_WIFI_STATE,
permission.ACCESS_COARSE_LOCATION
};
private static final String[] GROUP_MICROPHONE = {
permission.RECORD_AUDIO
permission.RECORD_AUDIO
};
private static final String[] GROUP_PHONE = {
permission.READ_PHONE_STATE, permission.READ_PHONE_NUMBERS, permission.CALL_PHONE,
permission.ANSWER_PHONE_CALLS, permission.READ_CALL_LOG, permission.WRITE_CALL_LOG,
permission.ADD_VOICEMAIL, permission.USE_SIP, permission.PROCESS_OUTGOING_CALLS,
permission.REORDER_TASKS
permission.READ_PHONE_STATE, permission.READ_PHONE_NUMBERS, permission.CALL_PHONE,
permission.ANSWER_PHONE_CALLS, permission.READ_CALL_LOG, permission.WRITE_CALL_LOG,
permission.ADD_VOICEMAIL, permission.USE_SIP, permission.PROCESS_OUTGOING_CALLS,
permission.REORDER_TASKS
};
private static final String[] GROUP_SENSORS = {
permission.BODY_SENSORS
permission.BODY_SENSORS
};
private static final String[] GROUP_SMS = {
permission.SEND_SMS, permission.RECEIVE_SMS, permission.READ_SMS,
permission.RECEIVE_WAP_PUSH, permission.RECEIVE_MMS,
permission.SEND_SMS, permission.RECEIVE_SMS, permission.READ_SMS,
permission.RECEIVE_WAP_PUSH, permission.RECEIVE_MMS,
};
private static final String[] GROUP_STORAGE = {
permission.READ_EXTERNAL_STORAGE, permission.WRITE_EXTERNAL_STORAGE
permission.READ_EXTERNAL_STORAGE, permission.WRITE_EXTERNAL_STORAGE
};
@StringDef({CALENDAR, CAMERA, CONTACTS, LOCATION, MICROPHONE, PHONE, SENSORS, SMS, STORAGE, ALERT, DISABLE_KEYGUARD})
@StringDef({CALENDAR, CAMERA, CONTACTS, LOCATION, MICROPHONE, PHONE, SENSORS, SMS, STORAGE, ALERT,
DISABLE_KEYGUARD})
@Retention(RetentionPolicy.SOURCE)
public @interface Permission {
}

View File

@ -0,0 +1,428 @@
package com.tenlionsoft.baselib.core.beans;
public class PersonFlowSearchBean {
private String areaCode;
private String areaId;
private String areaNames;
private String birthDate;
private String cardExpireDate;
private String cardNumber;
private String currentResidence;
private String currentResidenceAddr;
private String currentResidenceDictionaryName;
private String education;
private String educationDictionaryName;
private String floatingPopulationId;
private String fullName;
private String gender;
private String genderDictionaryName;
private String gridId;
private String gridName;
private String healthyStatus;
private String idCardNumber;
private String inflowReason;
private String inflowReasonDict;
private String keyOfFollow;
private String maritalStatus;
private String maritalStatusDictionaryName;
private String nameUsedBefore;
private String nation;
private String nationDictionaryName;
private String nativePlace;
private String nativePlaceAddr;
private String nativePlaceDictionaryName;
private String occupation;
private String occupationCategory;
private String occupationCategoryDictionaryName;
private String politicalStatus;
private String politicalStatusDictionaryName;
private String registerDate;
private String registeredResidence;
private String registeredResidenceAddr;
private String registeredResidenceDictionaryName;
private String registrationType;
private String registrationTypeDict;
private String religion;
private String religionDictionaryName;
private String residenceType;
private String residenceTypeDict;
private String serviceSpace;
private String telephone;
public String getAreaCode() {
return areaCode;
}
public void setAreaCode(String areaCode) {
this.areaCode = areaCode;
}
public String getAreaId() {
return areaId;
}
public void setAreaId(String areaId) {
this.areaId = areaId;
}
public String getAreaNames() {
return areaNames;
}
public void setAreaNames(String areaNames) {
this.areaNames = areaNames;
}
public String getBirthDate() {
return birthDate;
}
public void setBirthDate(String birthDate) {
this.birthDate = birthDate;
}
public String getCardExpireDate() {
return cardExpireDate;
}
public void setCardExpireDate(String cardExpireDate) {
this.cardExpireDate = cardExpireDate;
}
public String getCardNumber() {
return cardNumber;
}
public void setCardNumber(String cardNumber) {
this.cardNumber = cardNumber;
}
public String getCurrentResidence() {
return currentResidence;
}
public void setCurrentResidence(String currentResidence) {
this.currentResidence = currentResidence;
}
public String getCurrentResidenceAddr() {
return currentResidenceAddr;
}
public void setCurrentResidenceAddr(String currentResidenceAddr) {
this.currentResidenceAddr = currentResidenceAddr;
}
public String getCurrentResidenceDictionaryName() {
return currentResidenceDictionaryName;
}
public void setCurrentResidenceDictionaryName(String currentResidenceDictionaryName) {
this.currentResidenceDictionaryName = currentResidenceDictionaryName;
}
public String getEducation() {
return education;
}
public void setEducation(String education) {
this.education = education;
}
public String getEducationDictionaryName() {
return educationDictionaryName;
}
public void setEducationDictionaryName(String educationDictionaryName) {
this.educationDictionaryName = educationDictionaryName;
}
public String getFloatingPopulationId() {
return floatingPopulationId;
}
public void setFloatingPopulationId(String floatingPopulationId) {
this.floatingPopulationId = floatingPopulationId;
}
public String getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getGenderDictionaryName() {
return genderDictionaryName;
}
public void setGenderDictionaryName(String genderDictionaryName) {
this.genderDictionaryName = genderDictionaryName;
}
public String getGridId() {
return gridId;
}
public void setGridId(String gridId) {
this.gridId = gridId;
}
public String getGridName() {
return gridName;
}
public void setGridName(String gridName) {
this.gridName = gridName;
}
public String getHealthyStatus() {
return healthyStatus;
}
public void setHealthyStatus(String healthyStatus) {
this.healthyStatus = healthyStatus;
}
public String getIdCardNumber() {
return idCardNumber;
}
public void setIdCardNumber(String idCardNumber) {
this.idCardNumber = idCardNumber;
}
public String getInflowReason() {
return inflowReason;
}
public void setInflowReason(String inflowReason) {
this.inflowReason = inflowReason;
}
public String getInflowReasonDict() {
return inflowReasonDict;
}
public void setInflowReasonDict(String inflowReasonDict) {
this.inflowReasonDict = inflowReasonDict;
}
public String getKeyOfFollow() {
return keyOfFollow;
}
public void setKeyOfFollow(String keyOfFollow) {
this.keyOfFollow = keyOfFollow;
}
public String getMaritalStatus() {
return maritalStatus;
}
public void setMaritalStatus(String maritalStatus) {
this.maritalStatus = maritalStatus;
}
public String getMaritalStatusDictionaryName() {
return maritalStatusDictionaryName;
}
public void setMaritalStatusDictionaryName(String maritalStatusDictionaryName) {
this.maritalStatusDictionaryName = maritalStatusDictionaryName;
}
public String getNameUsedBefore() {
return nameUsedBefore;
}
public void setNameUsedBefore(String nameUsedBefore) {
this.nameUsedBefore = nameUsedBefore;
}
public String getNation() {
return nation;
}
public void setNation(String nation) {
this.nation = nation;
}
public String getNationDictionaryName() {
return nationDictionaryName;
}
public void setNationDictionaryName(String nationDictionaryName) {
this.nationDictionaryName = nationDictionaryName;
}
public String getNativePlace() {
return nativePlace;
}
public void setNativePlace(String nativePlace) {
this.nativePlace = nativePlace;
}
public String getNativePlaceAddr() {
return nativePlaceAddr;
}
public void setNativePlaceAddr(String nativePlaceAddr) {
this.nativePlaceAddr = nativePlaceAddr;
}
public String getNativePlaceDictionaryName() {
return nativePlaceDictionaryName;
}
public void setNativePlaceDictionaryName(String nativePlaceDictionaryName) {
this.nativePlaceDictionaryName = nativePlaceDictionaryName;
}
public String getOccupation() {
return occupation;
}
public void setOccupation(String occupation) {
this.occupation = occupation;
}
public String getOccupationCategory() {
return occupationCategory;
}
public void setOccupationCategory(String occupationCategory) {
this.occupationCategory = occupationCategory;
}
public String getOccupationCategoryDictionaryName() {
return occupationCategoryDictionaryName;
}
public void setOccupationCategoryDictionaryName(String occupationCategoryDictionaryName) {
this.occupationCategoryDictionaryName = occupationCategoryDictionaryName;
}
public String getPoliticalStatus() {
return politicalStatus;
}
public void setPoliticalStatus(String politicalStatus) {
this.politicalStatus = politicalStatus;
}
public String getPoliticalStatusDictionaryName() {
return politicalStatusDictionaryName;
}
public void setPoliticalStatusDictionaryName(String politicalStatusDictionaryName) {
this.politicalStatusDictionaryName = politicalStatusDictionaryName;
}
public String getRegisterDate() {
return registerDate;
}
public void setRegisterDate(String registerDate) {
this.registerDate = registerDate;
}
public String getRegisteredResidence() {
return registeredResidence;
}
public void setRegisteredResidence(String registeredResidence) {
this.registeredResidence = registeredResidence;
}
public String getRegisteredResidenceAddr() {
return registeredResidenceAddr;
}
public void setRegisteredResidenceAddr(String registeredResidenceAddr) {
this.registeredResidenceAddr = registeredResidenceAddr;
}
public String getRegisteredResidenceDictionaryName() {
return registeredResidenceDictionaryName;
}
public void setRegisteredResidenceDictionaryName(String registeredResidenceDictionaryName) {
this.registeredResidenceDictionaryName = registeredResidenceDictionaryName;
}
public String getRegistrationType() {
return registrationType;
}
public void setRegistrationType(String registrationType) {
this.registrationType = registrationType;
}
public String getRegistrationTypeDict() {
return registrationTypeDict;
}
public void setRegistrationTypeDict(String registrationTypeDict) {
this.registrationTypeDict = registrationTypeDict;
}
public String getReligion() {
return religion;
}
public void setReligion(String religion) {
this.religion = religion;
}
public String getReligionDictionaryName() {
return religionDictionaryName;
}
public void setReligionDictionaryName(String religionDictionaryName) {
this.religionDictionaryName = religionDictionaryName;
}
public String getResidenceType() {
return residenceType;
}
public void setResidenceType(String residenceType) {
this.residenceType = residenceType;
}
public String getResidenceTypeDict() {
return residenceTypeDict;
}
public void setResidenceTypeDict(String residenceTypeDict) {
this.residenceTypeDict = residenceTypeDict;
}
public String getServiceSpace() {
return serviceSpace;
}
public void setServiceSpace(String serviceSpace) {
this.serviceSpace = serviceSpace;
}
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
}

View File

@ -1,5 +1,7 @@
package com.tenlionsoft.baselib.core.beans;
import java.util.List;
/**
* 作者: adam
* 日期: 2021/7/12 - 4:17 下午
@ -23,6 +25,7 @@ public class PersonSearchBean {
private String genderDictionaryName;
private String gridId;
private String gridName;
private List<GridPersonListBean> gridPersonList;
private String idCardNumber;
private String maritalStatus;
private String maritalStatusDictionaryName;
@ -43,7 +46,12 @@ public class PersonSearchBean {
private String religion;
private String religionDictionaryName;
private String serviceSpace;
private String subtype;
private String telephone;
private String type;
public String getAreaCode() {
return areaCode;
@ -165,6 +173,14 @@ public class PersonSearchBean {
this.gridName = gridName;
}
public List<GridPersonListBean> getGridPersonList() {
return gridPersonList;
}
public void setGridPersonList(List<GridPersonListBean> gridPersonList) {
this.gridPersonList = gridPersonList;
}
public String getIdCardNumber() {
return idCardNumber;
}
@ -325,6 +341,14 @@ public class PersonSearchBean {
this.serviceSpace = serviceSpace;
}
public String getSubtype() {
return subtype;
}
public void setSubtype(String subtype) {
this.subtype = subtype;
}
public String getTelephone() {
return telephone;
}
@ -332,4 +356,42 @@ public class PersonSearchBean {
public void setTelephone(String telephone) {
this.telephone = telephone;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public static class GridPersonListBean {
private String gridUserId;
private String gridUserName;
private String gridUserPhone;
public String getGridUserId() {
return gridUserId;
}
public void setGridUserId(String gridUserId) {
this.gridUserId = gridUserId;
}
public String getGridUserName() {
return gridUserName;
}
public void setGridUserName(String gridUserName) {
this.gridUserName = gridUserName;
}
public String getGridUserPhone() {
return gridUserPhone;
}
public void setGridUserPhone(String gridUserPhone) {
this.gridUserPhone = gridUserPhone;
}
}
}

View File

@ -1,11 +1,12 @@
package com.tenlionsoft.baselib.core.beans;
import org.jetbrains.annotations.NotNull;
import android.text.TextUtils;
import com.tenlionsoft.baselib.utils.LogUtils;
import com.tenlionsoft.baselib.utils.UserLgUtils;
import java.util.List;
import androidx.annotation.NonNull;
/**
* 作者: adam
* 日期: 2021/11/13 - 3:25 下午
@ -18,7 +19,10 @@ public class UserExpandInfoBean {
private String areaName;
private String departmentIds;
private String departmentNames;
private List<DepartmentsBean> departments;
private String gmtCreate;
private String groupIds;
private String groupNames;
private String lastLoginAddress;
private String lastLoginTime;
private int loginType;
@ -27,6 +31,9 @@ public class UserExpandInfoBean {
private String roleIds;
private String roleNames;
private String userAvatar;
private String userBirth;
private String userEducation;
private String userEducationName;
private String userEmail;
private String userExpiredDate;
private String userId;
@ -35,27 +42,21 @@ public class UserExpandInfoBean {
private String userLongitude;
private String userName;
private String userPhone;
private String userPolitic;
private String userPoliticName;
private String userSex;
private String userSexName;
private int userState;
private int userType;
private String userUKey;
private String userUsername;
private List<DepartmentsBean> departments;
private String smcMeetingId;
private String smcNumber;
private String smcPassword;
private String smcState;
private String smcUsername;
private String smcNumber;//": "04746222025180",
private String smcPassword;//": "tenlion@123",
private String smcState;//": "1",
private String smcUsername;//": "18648051689",
public String getSmcMeetingId() {
return smcMeetingId;
}
public void setSmcMeetingId(String smcMeetingId) {
this.smcMeetingId = smcMeetingId;
}
public String getSmcNumber() {
return smcNumber;
}
@ -120,6 +121,14 @@ public class UserExpandInfoBean {
this.departmentNames = departmentNames;
}
public List<DepartmentsBean> getDepartments() {
return departments;
}
public void setDepartments(List<DepartmentsBean> departments) {
this.departments = departments;
}
public String getGmtCreate() {
return gmtCreate;
}
@ -128,6 +137,22 @@ public class UserExpandInfoBean {
this.gmtCreate = gmtCreate;
}
public String getGroupIds() {
return groupIds;
}
public void setGroupIds(String groupIds) {
this.groupIds = groupIds;
}
public String getGroupNames() {
return groupNames;
}
public void setGroupNames(String groupNames) {
this.groupNames = groupNames;
}
public String getLastLoginAddress() {
return lastLoginAddress;
}
@ -184,6 +209,7 @@ public class UserExpandInfoBean {
this.roleNames = roleNames;
}
public String getUserAvatar() {
return userAvatar;
}
@ -192,6 +218,30 @@ public class UserExpandInfoBean {
this.userAvatar = userAvatar;
}
public String getUserBirth() {
return userBirth;
}
public void setUserBirth(String userBirth) {
this.userBirth = userBirth;
}
public String getUserEducation() {
return userEducation;
}
public void setUserEducation(String userEducation) {
this.userEducation = userEducation;
}
public String getUserEducationName() {
return userEducationName;
}
public void setUserEducationName(String userEducationName) {
this.userEducationName = userEducationName;
}
public String getUserEmail() {
return userEmail;
}
@ -256,6 +306,38 @@ public class UserExpandInfoBean {
this.userPhone = userPhone;
}
public String getUserPolitic() {
return userPolitic;
}
public void setUserPolitic(String userPolitic) {
this.userPolitic = userPolitic;
}
public String getUserPoliticName() {
return userPoliticName;
}
public void setUserPoliticName(String userPoliticName) {
this.userPoliticName = userPoliticName;
}
public String getUserSex() {
return userSex;
}
public void setUserSex(String userSex) {
this.userSex = userSex;
}
public String getUserSexName() {
return userSexName;
}
public void setUserSexName(String userSexName) {
this.userSexName = userSexName;
}
public int getUserState() {
return userState;
}
@ -288,14 +370,6 @@ public class UserExpandInfoBean {
this.userUsername = userUsername;
}
public List<DepartmentsBean> getDepartments() {
return departments;
}
public void setDepartments(List<DepartmentsBean> departments) {
this.departments = departments;
}
public static class DepartmentsBean {
private String departmentAddress;
private String departmentAreaCode;
@ -306,8 +380,6 @@ public class UserExpandInfoBean {
private String departmentId;
private int departmentIntId;
private String departmentLatitude;
private int departmentLogo;
private int departmentLogoHover;
private String departmentLongitude;
private String departmentMaster;
private String departmentMasterName;
@ -396,22 +468,6 @@ public class UserExpandInfoBean {
this.departmentLatitude = departmentLatitude;
}
public int getDepartmentLogo() {
return departmentLogo;
}
public void setDepartmentLogo(int departmentLogo) {
this.departmentLogo = departmentLogo;
}
public int getDepartmentLogoHover() {
return departmentLogoHover;
}
public void setDepartmentLogoHover(int departmentLogoHover) {
this.departmentLogoHover = departmentLogoHover;
}
public String getDepartmentLongitude() {
return departmentLongitude;
}
@ -532,41 +588,4 @@ public class UserExpandInfoBean {
this.subDepartments = subDepartments;
}
}
@Override
public String toString() {
return "UserExpandInfoBean{" +
"areaCode='" + areaCode + '\'' +
", areaName='" + areaName + '\'' +
", departmentIds='" + departmentIds + '\'' +
", departmentNames='" + departmentNames + '\'' +
", gmtCreate='" + gmtCreate + '\'' +
", lastLoginAddress='" + lastLoginAddress + '\'' +
", lastLoginTime='" + lastLoginTime + '\'' +
", loginType=" + loginType +
", positionIds='" + positionIds + '\'' +
", positionNames='" + positionNames + '\'' +
", roleIds='" + roleIds + '\'' +
", roleNames='" + roleNames + '\'' +
", userAvatar='" + userAvatar + '\'' +
", userEmail='" + userEmail + '\'' +
", userExpiredDate='" + userExpiredDate + '\'' +
", userId='" + userId + '\'' +
", userLatitude='" + userLatitude + '\'' +
", userLevel=" + userLevel +
", userLongitude='" + userLongitude + '\'' +
", userName='" + userName + '\'' +
", userPhone='" + userPhone + '\'' +
", userState=" + userState +
", userType=" + userType +
", userUKey='" + userUKey + '\'' +
", userUsername='" + userUsername + '\'' +
", departments=" + departments +
", smcMeetingId='" + smcMeetingId + '\'' +
", smcNumber='" + smcNumber + '\'' +
", smcPassword='" + smcPassword + '\'' +
", smcState='" + smcState + '\'' +
", smcUsername='" + smcUsername + '\'' +
'}';
}
}

View File

@ -381,15 +381,13 @@ public class HttpUtils {
.build();
}
//设置拦截器
client.newBuilder()
.addNetworkInterceptor(new Interceptor() { //设置拦截器
@Override
public Response intercept(Chain chain) throws IOException {
Response originalResponse = chain.proceed(chain.request());
return originalResponse.newBuilder()
.body(new ResponseProgressBody(originalResponse.body(), downloadResponseHandler))
.build();
}
.addNetworkInterceptor(chain -> {
Response originalResponse = chain.proceed(chain.request());
return originalResponse.newBuilder()
.body(new ResponseProgressBody(originalResponse.body(), downloadResponseHandler))
.build();
})
.build()
.newCall(request)

View File

@ -23,7 +23,7 @@ public class DownloadCallback implements Callback {
private String mFilename;
public DownloadCallback(Handler handler, DownloadResponseHandler downloadResponseHandler,
String filedir, String filename) {
String filedir, String filename) {
mHandler = handler;
mDownloadResponseHandler = downloadResponseHandler;
mFileDir = filedir;
@ -44,39 +44,22 @@ public class DownloadCallback implements Callback {
@Override
public void onResponse(Call call, final Response response) throws IOException {
if(response.isSuccessful()) {
if (response.isSuccessful()) {
File file = null;
try {
file = saveFile(response, mFileDir, mFilename);
} catch (final IOException e) {
// LogUtils.e("onResponse saveFile fail", e);
mHandler.post(new Runnable() {
@Override
public void run() {
mDownloadResponseHandler.onFailure("onResponse saveFile fail." + e.toString());
}
});
mHandler.post(() -> mDownloadResponseHandler.onFailure("onResponse saveFile fail." + e.toString()));
}
final File newFile = file;
mHandler.post(new Runnable() {
@Override
public void run() {
mDownloadResponseHandler.onFinish(newFile);
}
});
mHandler.post(() -> mDownloadResponseHandler.onFinish(newFile));
} else {
// LogUtils.e("onResponse fail status=" + response.code());
mHandler.post(new Runnable() {
@Override
public void run() {
mDownloadResponseHandler.onFailure("fail status=" + response.code());
}
});
mHandler.post(() -> mDownloadResponseHandler.onFailure("fail status=" + response.code()));
}
}
//保存文件
private File saveFile(Response response, String filedir, String filename) throws IOException {
InputStream is = null;

View File

@ -4,19 +4,18 @@ import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import com.hjq.toast.ToastUtils;
import androidx.annotation.Nullable;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.network.HttpUtils;
import com.tenlionsoft.baselib.core.network.response.DownloadResponseHandler;
import com.tenlionsoft.baselib.core.network.update.utils.ApkUtils;
import com.tenlionsoft.baselib.core.network.update.utils.Constants;
import com.tenlionsoft.baselib.core.network.update.utils.NotificationBarUtil;
import com.tenlionsoft.baselib.core.network.update.utils.NotificationHelper;
import com.tenlionsoft.baselib.core.network.update.utils.StorageUtils;
import com.tenlionsoft.baselib.utils.LogUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import java.io.File;
import androidx.annotation.Nullable;
/**
* 下载服务
*/
@ -24,13 +23,12 @@ public class DownloadService extends Service {
private DownInfo downInfo;
private int oldProgress = 0;
private NotificationHelper notificationHelper;
private boolean mIsSuccess = true;
@Override
public void onCreate() {
super.onCreate();
downInfo = new DownInfo();
notificationHelper = new NotificationHelper(this);
}
@Override
@ -48,33 +46,47 @@ public class DownloadService extends Service {
private void downLoadFile() {
HttpUtils.getInstance().download(downInfo.getUrl(), downInfo.getSavePath(), downInfo.getApkName(), new DownloadResponseHandler() {
@Override
public void onFinish(File download_file) {
//收起通知栏
NotificationBarUtil.setNotificationBarVisibility(DownloadService.this, false);
//安装
ApkUtils.installAPk(DownloadService.this, download_file);
notificationHelper.cancel();
stopSelf();
}
Intent intent = new Intent();
intent.setAction(PathConfig.ACTION_UPDATE_STAET);
sendBroadcast(intent);
HttpUtils.getInstance().download(downInfo.getUrl(), downInfo.getSavePath(), downInfo.getApkName(),
new DownloadResponseHandler() {
@Override
public void onFinish(File download_file) {
LogUtils.e("下载成功");
if (mIsSuccess) {
//收起通知栏
Intent intent = new Intent();
intent.setAction(PathConfig.ACTION_UPDATE_SUCCESS);
intent.putExtra("apkFile", download_file);
sendBroadcast(intent);
}
stopSelf();
}
@Override
public void onProgress(long currentBytes, long totalBytes) {
int progress = (int) ((currentBytes * 1.0 / totalBytes) * 100);
if (progress != oldProgress) {
notificationHelper.updateProgress(progress);
}
oldProgress = progress;
}
@Override
public void onProgress(long currentBytes, long totalBytes) {
int progress = (int) ((currentBytes * 1.0 / totalBytes) * 100);
if (progress != oldProgress) {
Intent intent = new Intent();
intent.setAction(PathConfig.ACTION_UPDATE_PROGRESS);
intent.putExtra("progress", progress);
sendBroadcast(intent);
}
oldProgress = progress;
}
@Override
public void onFailure(String error_msg) {
ToastUtils.show("App下载失败,请稍后重试");
notificationHelper.cancel();
stopSelf();
}
});
@Override
public void onFailure(String error_msg) {
LogUtils.e("下载失败");
mIsSuccess = false;
ToastUtils.show("App下载失败,请稍后重试");
Intent intent = new Intent();
intent.setAction(PathConfig.ACTION_UPDATE_ERROR);
sendBroadcast(intent);
stopSelf();
}
});
}

View File

@ -7,26 +7,28 @@ package com.tenlionsoft.baselib.core.retrofit_net;
*/
public class BaseUrlApi {
// public static final String IP = "http://192.168.0.120:9000/";/* 测试IP */
// public static final String IP = "http://10.25.242.183:80/";/* 测试IP */
// public static final String IP = "http://192.168.0.15:7011/";/* 测试IP */
// public static final String IP = "http://121.36.71.250:58083/";/* 测试IP */
public static final String IP = "http://www.wlcbsyzl.cn/";/* 正式IP */
public static final String SYS_USERCENTER = "usercenter/";
public static final String SYS_POPULATION = "population/";/*人口系统*/
// public static final String SYS_POPULATION = "population/";/*人口系统*/
public static final String SYS_POPULATION = "populationhouse/";/*人口系统*/
public static final String SYS_CASE = "case/";/*事件部件*/
public static final String SYS_HOUSE = "house/";/*房屋系统*/
// public static final String SYS_HOUSE = "house/";/*房屋系统*/
public static final String SYS_HOUSE = "populationhouse/";/*房屋系统*/
public static final String SYS_SECURITY = "manage/";/*社会治安*/
public static final String SYS_TASK = "task/";/*任务系统*/
public static final String SYS_LIBRARY = "library/";/*知识库系统*/
public static final String SYS_VISITS = "visits/";/*信访系统*/
// public static final String BASE_MAIN_IP = "http://192.168.0.15:7011/usercenter/";
public static final String BASE_MAIN_IP = IP + SYS_USERCENTER;
// public static final String BASE_MAIN_IP = "http://121.36.71.250:58038/usercenter/";
public static final String BASE_MAIN_IP = IP + SYS_USERCENTER;
public static final String BASE_CASE_IP = IP + SYS_CASE;
// public static final String BASE_CASE_IP = IP + SYS_CASE;
public static final String BASE_CASE_LOCAL_IP = "http://49.233.36.36:58099/case/";
// public static final String BASE_CASE_IP = "http://192.168.0.120:9000/" + SYS_CASE;//TODO 测试
public static final String BASE_LIBRARY_IP = IP + SYS_LIBRARY;
public static final String BASE_TASK_IP = IP + SYS_TASK;
public static final String BASE_PERSON_IP = IP + SYS_POPULATION;
// public static final String BASE_PERSON_IP = "http://192.168.0.115:8080/" + SYS_POPULATION;//TODO 测试
public static final String BASE_HOUSE_IP = IP + SYS_HOUSE;
public static final String BASE_SECURITY_IP = IP + SYS_SECURITY;
public static final String BASE_VISITS_IP = IP + SYS_VISITS;
@ -43,6 +45,7 @@ public class BaseUrlApi {
// public static final String BASE_VISITS_IP = "http://192.168.0.111:8084/" + SYS_VISITS;
public static final String BASE_IMG_URL = BASE_URL + "route/file/download/true/";
public static final String BASE_IMG_URL_V2 = BASE_URL + "route/file/v2/download/true/";
public static final String APK_DOWNLOAD_URL = "downloadUrl";
public static final String UPDATE_URL = "version.json";
@ -64,6 +67,12 @@ public class BaseUrlApi {
public static final String CITY_BAIDU_CODE = "168";//乌兰察布市
// public static final String CITY_BAIDU_CODE = "321";//呼和浩特市
public static final String APP_DOWNLOAD_URL = BASE_URL + "app/appversion/download/" + APP_VERSION_ID;
/*========超图========*/
public static final String SUPER_MAP_SERVER = "https://58.18.108.24:8443/0ix3sypi/iserver/services/map" +
"-WulanchabuData/rest/maps/WLCB_MAP";
public static final String SUPER_HEADER_KEY = "c87b5190-a829-4d54-9281-2e8cb461bf5e";
public static final String SUPER_HEADER_VALUE = "KI8.zBi1DCtlnG8Z79-0IoPNHGHQ4LK04s#uQ$1TM/#AA!1K.6$30+-e3/72EWcL";
/*========融合通信========*/

View File

@ -1,14 +1,11 @@
package com.tenlionsoft.baselib.core.retrofit_net;
import com.tenlionsoft.baselib.core.retrofit_net.conver.AreaInterceptor;
import com.tenlionsoft.baselib.core.retrofit_net.conver.BaseUrlInterceptor;
import java.net.ProxySelector;
import java.util.Properties;
import java.util.concurrent.TimeUnit;
import okhttp3.OkHttpClient;
import okhttp3.internal.proxy.NullProxySelector;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava3.RxJava3CallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;
@ -50,11 +47,11 @@ public class RetrofitManager {
OkHttpClient.Builder builder = getOkBuilder();
OkHttpClient client = builder.build();
mRetrofit = new Retrofit.Builder()
.baseUrl(BaseUrlApi.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava3CallAdapterFactory.create())
.client(client)
.build();
.baseUrl(BaseUrlApi.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava3CallAdapterFactory.create())
.client(client)
.build();
}
private OkHttpClient.Builder getOkBuilder() {
@ -65,7 +62,7 @@ public class RetrofitManager {
builder.readTimeout(TIMEOUT, TimeUnit.MINUTES);
builder.writeTimeout(TIMEOUT, TimeUnit.MINUTES);
//封装公共参数
builder.addInterceptor(new AreaInterceptor());
// builder.addInterceptor(new AreaInterceptor());
//builder.addInterceptor(new CommInterceptor());
//多BaseUrl连接器
builder.addInterceptor(new BaseUrlInterceptor());

View File

@ -5,9 +5,9 @@ import com.google.gson.JsonObject;
import com.tenlionsoft.baselib.core.beans.AreaBean;
import com.tenlionsoft.baselib.core.beans.BaseDictionaryBean;
import com.tenlionsoft.baselib.core.beans.BaseSuccessBean;
import com.tenlionsoft.baselib.core.beans.ConfigBean;
import com.tenlionsoft.baselib.core.beans.DicBean;
import com.tenlionsoft.baselib.core.beans.DictionaryBean;
import com.tenlionsoft.baselib.core.beans.PersonFlowSearchBean;
import com.tenlionsoft.baselib.core.beans.PersonSearchBean;
import com.tenlionsoft.baselib.core.beans.UploadBean;
import com.tenlionsoft.baselib.core.beans.UserExpandInfoBean;
@ -16,8 +16,6 @@ import com.tenlionsoft.baselib.core.retrofit_net.bean.BaseResponseBean;
import com.tenlionsoft.baselib.core.retrofit_net.bean.BaseUserInfo;
import com.tenlionsoft.baselib.core.retrofit_net.bean.VersionBean;
import org.json.JSONObject;
import java.util.List;
import java.util.Map;
@ -87,7 +85,8 @@ public interface BaseApiService {
*/
@Headers({"Content-Type: application/json", "Accept: application/json"})
@GET("appversion/getappversionnumber/{appVersionId}")
Observable<VersionBean> doCheckAppVersionByToken(@Path("appVersionId") String appVersionId, @Header("token") String token);
Observable<VersionBean> doCheckAppVersionByToken(@Path("appVersionId") String appVersionId,
@Header("token") String token);
/**
* 获取App版本
@ -114,12 +113,14 @@ public interface BaseApiService {
@Headers({"base_url_name:social"})
@Multipart
@POST("app/file/uploadimage")
Observable<BaseSuccessBean> uploadImageToSocialByMap(@PartMap Map<String, RequestBody> params, @Header("token") String token);
Observable<BaseSuccessBean> uploadImageToSocialByMap(@PartMap Map<String, RequestBody> params,
@Header("token") String token);
@Headers({"base_url_name:social"})
@Multipart
@POST("app/file/uploadimage")
Observable<BaseSuccessBean> uploadImageToSocialBySingle(@Part MultipartBody.Part file, @Header("token") String token);
Observable<BaseSuccessBean> uploadImageToSocialBySingle(@Part MultipartBody.Part file,
@Header("token") String token);
/**
* 上传图片文件
@ -204,7 +205,8 @@ public interface BaseApiService {
*/
@Headers({"base_url_name:volunteer", "Content-Type:application/json", "Accept:application/json"})
@GET("app/datadictionary/listdictionarybyparentid/{dictionaryParentId}")
Observable<List<BaseDictionaryBean>> getDicList(@Path("dictionaryParentId") String id, @Header("token") String token);
Observable<List<BaseDictionaryBean>> getDicList(@Path("dictionaryParentId") String id,
@Header("token") String token);
/**
* 获取字典
@ -214,7 +216,8 @@ public interface BaseApiService {
*/
@Headers({"Content-Type:application/json", "Accept:application/json"})
@GET("app/datadictionary/listdictionarybyparentid/{dictionaryParentId}")
Observable<List<BaseDictionaryBean>> getSystemDictionary(@Path("dictionaryParentId") String id, @Header("token") String token);
Observable<List<BaseDictionaryBean>> getSystemDictionary(@Path("dictionaryParentId") String id,
@Header("token") String token);
/**
* 用户注册
@ -245,6 +248,13 @@ public interface BaseApiService {
@PUT("app/user/updateuserinfo")
Observable<BaseSuccessBean> editUserInfo(@Body RequestBody body, @Header("token") String token);
/**
* 更新用户基本信息
*/
@Headers({"Content-Type:application/json", "Accept:application/json"})
@PUT("app/user/update-info")
Observable<BaseSuccessBean> doEditUserInfo(@Body RequestBody body, @Header("token") String token);
/**
* 获取用户基本信息
*/
@ -263,7 +273,8 @@ public interface BaseApiService {
*/
@Headers({"Content-Type:application/json", "Accept:application/json"})
@PUT("app/user/updatephoneusername/{phone}")
Observable<BaseSuccessBean> doChangePhone(@Body RequestBody body, @Path("phone") String phone, @Header("token") String token);
Observable<BaseSuccessBean> doChangePhone(@Body RequestBody body, @Path("phone") String phone,
@Header("token") String token);
/**
* 修改密码
@ -300,14 +311,16 @@ public interface BaseApiService {
*/
@Headers({"base_url_name:house", "Content-Type: application/json", "Accept: application/json"})
@GET("app/datadictionary/listdictionarybyparentid/{dictionaryParentId}")
Observable<List<DicBean>> getDictListAllByPid(@Path("dictionaryParentId") String pId, @Header("token") String token);
Observable<List<DicBean>> getDictListAllByPid(@Path("dictionaryParentId") String pId,
@Header("token") String token);
/**
* 获取地区
*/
@Headers({"Content-Type: application/json", "Accept: application/json"})
@GET("app/area/listbyparentid/{areaParentId}")
Observable<List<AreaBean>> getAreaListByPid(@Path("areaParentId") String dicParentId, @Header("token") String token);
Observable<List<AreaBean>> getAreaListByPid(@Path("areaParentId") String dicParentId,
@Header("token") String token);
/**
* 获取当前用户是否是志愿者
@ -323,7 +336,8 @@ public interface BaseApiService {
*/
@Headers({"base_url_name:city", "Content-Type: application/json", "Accept: application/json"})
@GET("app/websocket/client/login/{clientName}")
Observable<BaseSuccessBean> getWebsocketSession(@Header("token") String token, @Path("clientName") String clientName);
Observable<BaseSuccessBean> getWebsocketSession(@Header("token") String token,
@Path("clientName") String clientName);
/**
* 根据身份证号码搜索人
@ -331,6 +345,12 @@ public interface BaseApiService {
@Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"})
@GET("app/basepopulationinfo/release/getByIdCardNumber/{idCardNumber}")
Observable<PersonSearchBean> doSearchPerson(@Path("idCardNumber") String card, @Header("token") String token);
/**
* 根据身份证号码搜索人-流动人口
*/
@Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"})
@GET("app/floatingpopulation/getByIdCardNumber/{idCardNumber}")
Observable<PersonFlowSearchBean> doSearchFLowPerson(@Path("idCardNumber") String card, @Header("token") String token);
/**
* 获取当前用户拓展信息
@ -339,5 +359,12 @@ public interface BaseApiService {
@GET("app/user-expand/get-whole/{userId}")
Observable<UserExpandInfoBean> getUserExpandInfo(@Path("userId") String id, @Header("token") String token);
/**
* 修改用户拓展信息
*/
@Headers({"Content-Type: application/json", "Accept: application/json"})
@PUT("app/user-expand/update/{userId}")
Observable<BaseSuccessBean> doEditExpandInfo(@Path("userId") String id, @Body RequestBody body,
@Header("token") String token);
}

View File

@ -11,7 +11,7 @@ import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.target.Target;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.R2;
import com.tenlionsoft.baselib.constant.PathConfig;

View File

@ -8,7 +8,7 @@ import android.util.Log;
import android.view.View;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.luck.picture.lib.tools.BitmapUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.R2;

View File

@ -10,8 +10,6 @@ import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Rect;
import android.os.Build;
import android.os.Bundle;
@ -23,12 +21,16 @@ import android.text.TextUtils;
import android.text.TextWatcher;
import android.util.DisplayMetrics;
import android.view.Display;
import android.view.KeyCharacterMap;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.TouchDelegate;
import android.view.View;
import android.view.ViewConfiguration;
import android.view.WindowManager;
import android.view.animation.LinearInterpolator;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
import android.webkit.WebView;
import android.widget.Button;
@ -45,14 +47,15 @@ import androidx.appcompat.app.AppCompatActivity;
import com.alibaba.android.arouter.launcher.ARouter;
import com.gyf.immersionbar.ImmersionBar;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.widget.views.AfxTextView;
import com.tenlionsoft.baselib.utils.LogUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UserLgUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -104,9 +107,15 @@ public abstract class BaseActivity extends AppCompatActivity {
protected AfxTextView mTvSearchBack;
private boolean mIsExpand;//搜索框是否展开
private LocalBroad mLocalBroad;
private LinearLayout mLlBaseSearch;
protected LinearLayout mLlBaseSearch;
private static final String NAVIGATION = "navigationBarBackground";
protected Object mCurGrid;
protected EditText mEtBaseOnlySearch;
protected LinearLayout mLlBaseOnlySearch;
protected LinearLayout mLlOnlySearchBar;
protected ImageView mIvAppOnlyBack;
protected TextView mTvOnlyControl;
private ImageView mIvOnlyClear;
@SuppressLint("ClickableViewAccessibility")
@Override
@ -145,6 +154,9 @@ public abstract class BaseActivity extends AppCompatActivity {
}
/**
* 判断是否开启虚拟按键
*/
protected boolean isNavBarHasShown(Context ctx) {
String brand = Build.BRAND;
LogUtils.e(brand);
@ -153,7 +165,8 @@ public abstract class BaseActivity extends AppCompatActivity {
deviceInfo = "navigationbar_is_min";
} else if (brand.equalsIgnoreCase("xiaomi") || brand.equalsIgnoreCase("blackshark")) {
deviceInfo = "force_fsg_nav_bar";
} else if (brand.equalsIgnoreCase("VIVO") || brand.equalsIgnoreCase("OnePlus") || brand.equalsIgnoreCase("OPPO")) {
} else if (brand.equalsIgnoreCase("VIVO") || brand.equalsIgnoreCase("OnePlus") || brand.equalsIgnoreCase(
"OPPO")) {
return !ImmersionBar.isGesture(this);
} else {
deviceInfo = "noah_navi_mode_value";
@ -197,6 +210,18 @@ public abstract class BaseActivity extends AppCompatActivity {
}
}
/**
* 判断是否有虚拟按键
*/
protected boolean checkDeviceHasNavigationBar(Context ctx) {
boolean hasMenuKey = ViewConfiguration.get(ctx).hasPermanentMenuKey();
boolean hasBackKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_BACK);
if (!hasMenuKey & !hasBackKey) {
return true;
}
return false;
}
/**
* 非全面屏下 虚拟键高度(无论是否隐藏)
*
@ -232,6 +257,22 @@ public abstract class BaseActivity extends AppCompatActivity {
mLlAppBaseContent.setBackgroundColor(getResources().getColor(R.color.white));
mTvBaseTitle = findViewById(R.id.tv_app_title);//页面标题
mLlBaseSearch = findViewById(R.id.ll_base_search);
mLlBaseOnlySearch = findViewById(R.id.ll_base_only_search);
mEtBaseOnlySearch = findViewById(R.id.et_base_only_search);
mIvOnlyClear = findViewById(R.id.iv_app_only_clear_search);
mIvOnlyClear.setVisibility(View.GONE);
mIvOnlyClear.setOnClickListener(v -> {
hideSoftKeyboard();
mEtBaseOnlySearch.setText("");
mEtBaseOnlySearch.clearFocus();
doSearchByTitle();
});
// ll_only_search_bar
// iv_app_only_back
// tv_only_control
mLlOnlySearchBar = findViewById(R.id.ll_only_search_bar);
mIvAppOnlyBack = findViewById(R.id.iv_app_only_back);
mTvOnlyControl = findViewById(R.id.tv_only_control);
//页面返回
mTvAppBack = findViewById(R.id.tv_app_back);
mRlTitleBar = findViewById(R.id.rl_title_bar);
@ -267,6 +308,10 @@ public abstract class BaseActivity extends AppCompatActivity {
hideSoftKeyboard();
finish();
});
mIvAppOnlyBack.setOnClickListener(v -> {
hideSoftKeyboard();
finish();
});
mTvNotify = findViewById(R.id.tv_notify);
mIvEmptyData.setOnClickListener(v -> reLoadData());
@ -293,6 +338,46 @@ public abstract class BaseActivity extends AppCompatActivity {
}
}
});
mEtBaseOnlySearch.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (!TextUtils.isEmpty(s.toString())) {
mIvOnlyClear.setVisibility(View.VISIBLE);
} else {
mIvOnlyClear.setVisibility(View.GONE);
}
}
});
mEtAppSearchContent.setOnEditorActionListener((v, actionId, event) -> {
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
hideSoftKeyboard();
mEtAppSearchContent.clearFocus();
doSearchByTitle();
return true;
} else {
return false;
}
});
mEtBaseOnlySearch.setOnEditorActionListener((v, actionId, event) -> {
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
hideSoftKeyboard();
mEtAppSearchContent.clearFocus();
doSearchByTitle();
return true;
} else {
return false;
}
});
mIvClearSearch.setOnClickListener(v -> clearSearchContent());
//设置默认title
mIvAppSearchIcon.setVisibility(View.GONE);
@ -538,15 +623,24 @@ public abstract class BaseActivity extends AppCompatActivity {
hideSoftKeyboard(getCurrentFocus());
}
public void hideSoftKeyboard(EditText editText) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (editText != null) {
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
}
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
View v = getCurrentFocus();
if (v instanceof WebView) {
return super.dispatchTouchEvent(ev);
}
if (v != null) {
LogUtils.e("控件ID==" + v.getId());
InputMethodManager im = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (im != null) {
im.hideSoftInputFromWindow(v.getWindowToken(), 0);
@ -746,4 +840,8 @@ public abstract class BaseActivity extends AppCompatActivity {
});
}
public void showUpdate() {
}
}

View File

@ -1,6 +1,5 @@
package com.tenlionsoft.baselib.core.widget.base;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
@ -12,21 +11,21 @@ import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.utils.LogUtils;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tenlionsoft.baselib.R;
public abstract class BaseFragment extends Fragment {
public static final int STATE_LOAD = 1234;//加载中
public static final int STATE_ERROR = 1235;//加载失败
public static final int STATE_SUCCESS = 1236;//加载成功
public static final int STATE_EMPTY = 1237;//无数据
public static final int STATE_SEARCH_EMPTY = 1238;//没有搜索到数据
public static final int STATE_SEARCH_INIT = 1239;//搜索初始化
FrameLayout mFlContent;
TextView mTvFragmentErrorHint;
protected TextView mTvFragmentErrorHint;
ProgressBar mPbFragmentLoading;
ImageView mIvFragmentEmptyData;
LinearLayout mLlHintView;
@ -145,6 +144,16 @@ public abstract class BaseFragment extends Fragment {
mSrlView.setEnableLoadMore(true);
mSrlView.setEnableRefresh(true);
break;
case STATE_SEARCH_INIT:
mLlHintView.setVisibility(View.VISIBLE);
mPbFragmentLoading.setVisibility(View.GONE);
mIvFragmentEmptyData.setVisibility(View.VISIBLE);
mIvFragmentEmptyData.setBackgroundResource(R.drawable.ic_empty_data);
mTvFragmentErrorHint.setText("请输入查询的关键字");
mDataView.setVisibility(View.GONE);
mSrlView.setEnableLoadMore(false);
mSrlView.setEnableRefresh(false);
break;
default:
break;
}
@ -155,7 +164,6 @@ public abstract class BaseFragment extends Fragment {
}
/**
* 刷新视图
*/

View File

@ -3,6 +3,7 @@ package com.tenlionsoft.baselib.core.widget.base;
import android.app.ProgressDialog;
import android.content.Context;
import android.graphics.drawable.ColorDrawable;
import android.os.Build;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.Gravity;
@ -65,6 +66,9 @@ public class CustomDialog extends ProgressDialog {
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
window.setAttributes(params);
window.setBackgroundDrawable(new ColorDrawable());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
window.setType(WindowManager.LayoutParams.LAST_APPLICATION_WINDOW);
}
window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
}

View File

@ -19,7 +19,7 @@ import android.widget.TextView;
import com.bigkoo.pickerview.builder.TimePickerBuilder;
import com.bigkoo.pickerview.view.TimePickerView;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.utils.RegexUtils;
import com.tenlionsoft.baselib.utils.TimeUtils;

View File

@ -21,7 +21,7 @@ import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.ImageView;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.utils.RegexUtils;

View File

@ -16,7 +16,7 @@ import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.RatingBar;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.utils.RegexUtils;

View File

@ -17,7 +17,7 @@ import android.widget.TextView;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.beans.AreaBean;

View File

@ -18,7 +18,7 @@ import android.view.WindowManager;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.core.beans.UserLoginBean;
import com.tenlionsoft.baselib.utils.UserInfoSPUtils;

View File

@ -17,7 +17,7 @@ import android.widget.RelativeLayout;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.core.beans.AddPhotoBean;
import com.tenlionsoft.baselib.core.retrofit_net.BaseUrlApi;

View File

@ -16,7 +16,7 @@ import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import com.bigkoo.pickerview.view.TimePickerView;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import java.text.SimpleDateFormat;
@ -74,7 +74,7 @@ public class CenterBaseInputView extends Dialog {
public void HideSoftKeyBoardDialog(Activity activity) {
try {
InputMethodManager imm = (InputMethodManager) activity.getSystemService(activity.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.HIDE_NOT_ALWAYS, 0);
imm.hideSoftInputFromWindow(mEtContent.getWindowToken(),0);
} catch (Exception ex) {

View File

@ -17,7 +17,7 @@ import android.widget.TextView;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.beans.AreaBean;

View File

@ -0,0 +1,202 @@
package com.tenlionsoft.baselib.core.widget.views;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.ColorDrawable;
import android.net.Uri;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.bigkoo.pickerview.view.TimePickerView;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.core.beans.PersonSearchBean;
import com.tenlionsoft.baselib.core.widget.base.BaseRecyclerAdapter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
/**
* 作者 : Adam on 2018/7/23.
* 邮箱 : itgaojian@163.com
* 描述 : 时间加输入
*/
public class CenterGridPhoneListView extends Dialog {
private boolean iscancelable;
private boolean isBackCancelable;
private View view;
private Context context;
private int gravity;
private OnChoseListener mListener;
private boolean mIsShow;
private boolean mIsShowOther;
private TimePickerView mTimePicker;
private EditText mEtContent;
private SimpleDateFormat mDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
private List<PersonSearchBean.GridPersonListBean> mGridList = new ArrayList<>();
private CenterGridPhoneListView(Context context, boolean isCancelable, boolean isBackCancelable, int gravity,
boolean isShow, boolean isShowOther, List gridList) {
super(context, R.style.dialog_center_alpha);
this.context = context;
this.gravity = gravity;
this.iscancelable = isCancelable;
this.isBackCancelable = isBackCancelable;
this.mIsShow = isShow;
this.mIsShowOther = isShowOther;
this.mGridList = gridList;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
view = LayoutInflater.from(context).inflate(R.layout.dialog_base_grid_list, null);
setContentView(view);
setCancelable(true);
setCanceledOnTouchOutside(true);
RecyclerView mRlvGrid = view.findViewById(R.id.rlv_grids);
GridTextAdapter adapter = new GridTextAdapter(context, mGridList);
mRlvGrid.setLayoutManager(new LinearLayoutManager(context));
mRlvGrid.setAdapter(adapter);
adapter.addOnItemClickListener(gridPersonListBean -> {
if (!TextUtils.isEmpty(gridPersonListBean.getGridUserPhone())) {
this.dismiss();
doCall(gridPersonListBean.getGridUserPhone());
}
});
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
Window window = this.getWindow();
window.setGravity(Gravity.CENTER);
window.setWindowAnimations(R.style.dialog_center_alpha);
WindowManager.LayoutParams params = window.getAttributes();
params.width = (int) (displayMetrics.widthPixels * 0.9);
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
window.setAttributes(params);
window.setBackgroundDrawable(new ColorDrawable());
}
public void HideSoftKeyBoardDialog(Activity activity) {
try {
InputMethodManager imm = (InputMethodManager) activity.getSystemService(activity.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mEtContent.getWindowToken(), 0);
} catch (Exception ex) {
}
}
private void doCall(String gridUserPhone) {
if (!TextUtils.isEmpty(gridUserPhone)) {
Intent intent = new Intent(Intent.ACTION_DIAL);
Uri data = Uri.parse("tel:" + gridUserPhone);
intent.setData(data);
context.startActivity(intent);
}
}
private void doConfirm() {
if (checkParams()) {
String time = "";
String content = mEtContent.getText().toString().trim();
mListener.doConfirm(time, content);
}
}
/**
* 校验参数
*/
private boolean checkParams() {
String content = mEtContent.getText().toString().trim();
if (TextUtils.isEmpty(content)) {
ToastUtils.show("请输入原由");
return false;
}
return true;
}
public void addOnChoseListener(OnChoseListener listener) {
this.mListener = listener;
}
/**
* 选择
*
* @param i
*/
private void choseType(int i) {
this.dismiss();
}
public interface OnChoseListener {
void doConfirm(String list, String ids);
}
public static class DialogBuilder {
private Context mContext;
private boolean isCancelable;
private boolean mIsBackable;
private int mGravity = Gravity.BOTTOM;
private OnChoseListener mListener;
private boolean mIsShowOther;
public DialogBuilder(Context context) {
this.mContext = context;
}
public DialogBuilder setIscancelable(boolean iscancelable) {
this.isCancelable = iscancelable;
return this;
}
public DialogBuilder setIsBackCancelable(boolean isBackCancelable) {
this.mIsBackable = isBackCancelable;
return this;
}
public DialogBuilder setShowLocation(int gravity) {
this.mGravity = gravity;
return this;
}
private boolean mIsShow;
public DialogBuilder setIsShowFile(boolean isShowFile) {
mIsShow = isShowFile;
return this;
}
public DialogBuilder setIsShowOther(boolean isShow) {
mIsShowOther = isShow;
return this;
}
private List<PersonSearchBean.GridPersonListBean> mList;
public DialogBuilder setList(List<PersonSearchBean.GridPersonListBean> list) {
this.mList = list;
return this;
}
public CenterGridPhoneListView build() {
return new CenterGridPhoneListView(this.mContext, this.isCancelable, this.mIsBackable, this.mGravity,
mIsShow, mIsShowOther, mList);
}
}
}

View File

@ -17,7 +17,7 @@ import android.widget.EditText;
import android.widget.RadioGroup;
import com.bigkoo.pickerview.view.TimePickerView;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import java.text.SimpleDateFormat;

View File

@ -12,12 +12,13 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.TextView;
import com.bigkoo.pickerview.builder.TimePickerBuilder;
import com.bigkoo.pickerview.view.TimePickerView;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import java.text.SimpleDateFormat;
@ -99,6 +100,17 @@ public class CenterInputView extends Dialog {
this.mListener = listener;
}
public void hideSoftKeyboard(){
try{
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mEtContent.getWindowToken(), 0);
}
catch (Exception e){
e.printStackTrace();
}
}
/**
* 选择
*

View File

@ -15,7 +15,7 @@ import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import com.bigkoo.pickerview.view.TimePickerView;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import java.text.SimpleDateFormat;

View File

@ -0,0 +1,146 @@
package com.tenlionsoft.baselib.core.widget.views;
import android.app.Dialog;
import android.content.Context;
import android.graphics.Rect;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.TouchDelegate;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.ImageView;
import com.tenlionsoft.baselib.R;
/**
* 作者 : Adam on 2018/7/23.
* 邮箱 : itgaojian@163.com
* 描述 : 升级进度条
*/
public class CenterProgressUpdateView extends Dialog {
private View view;
private Context context;
private OnChoseListener mListener;
public ImageView mIvImg;
private String content;
private CircleProgress mCpProgress;
private CenterProgressUpdateView(Context context, String content) {
super(context, R.style.dialog_center);
this.context = context;
this.content = content;
}
/**
* 将view的点击区域放大
*
* @param view 需要放大的view
* @param expandTouchWidth 放大的宽度
*/
public void setTouchDelegate(final View view, final int expandTouchWidth) {
final View parentView = (View) view.getParent();
parentView.post(() -> {
final Rect rect = new Rect();
view.getHitRect(rect);
rect.top -= expandTouchWidth;
rect.bottom += expandTouchWidth;
rect.left -= expandTouchWidth;
rect.right += expandTouchWidth;
TouchDelegate touchDelegate = new TouchDelegate(rect, view);
parentView.setTouchDelegate(touchDelegate);
});
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
view = LayoutInflater.from(context).inflate(R.layout.dialog_center_update_progress, null);
mCpProgress = view.findViewById(R.id.cp_progress);
setContentView(view);
setCancelable(false);
setCanceledOnTouchOutside(false);
DisplayMetrics dm = new DisplayMetrics();
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
windowManager.getDefaultDisplay().getMetrics(dm);
Window window = this.getWindow();
window.setGravity(Gravity.CENTER);
window.setWindowAnimations(R.style.Dialog_ChoseFile);
WindowManager.LayoutParams params = window.getAttributes();
params.width = (int) (dm.widthPixels * 0.7);
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
window.setAttributes(params);
window.setBackgroundDrawable(new ColorDrawable());
}
/**
* 设置当前进度
*/
public void setCurrentProgress(int progress) {
if (mCpProgress != null) {
mCpProgress.setCurrentProgress(progress);
}
}
private void showSoftKeyBoardDialog(EditText editText) {
if (editText != null) {
editText.setFocusable(true);
editText.setFocusableInTouchMode(true);
//请求获得焦点
editText.requestFocus();
//调用系统输入法
InputMethodManager inputManager =
(InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.showSoftInput(editText, 0);
}
}
public void addOnChoseListener(OnChoseListener listener) {
this.mListener = listener;
}
/**
* 选择
*
* @param i
*/
private void choseType(int i) {
if (mListener != null) {
switch (i) {
case 1:
mListener.doUpdate();
break;
}
}
this.dismiss();
}
public interface OnChoseListener {
void doUpdate();
}
public static class DialogBuilder {
private Context mContext;
private String content;
public DialogBuilder(Context context) {
this.mContext = context;
}
public CenterProgressUpdateView build() {
return new CenterProgressUpdateView(this.mContext, this.content);
}
public DialogBuilder setContent(String content) {
this.content = content;
return this;
}
}
}

View File

@ -15,7 +15,7 @@ import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.TextView;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;

View File

@ -22,7 +22,7 @@ import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.builder.TimePickerBuilder;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.bigkoo.pickerview.view.TimePickerView;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.beans.AreaBean;

View File

@ -2,9 +2,7 @@ package com.tenlionsoft.baselib.core.widget.views;
import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.text.Editable;
@ -23,23 +21,9 @@ import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.beans.AreaBean;
import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.retrofit_net.api.BaseApiService;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
import java.util.List;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.schedulers.Schedulers;
/**
@ -58,10 +42,12 @@ public class ChangePwdDialog extends Dialog {
private boolean isShowNewPwd;
private boolean isShowNewConfirmPwd;
private OnChangeListener mChangeListener;
private boolean mIsShow;
private ChangePwdDialog(Context context) {
private ChangePwdDialog(Context context, boolean isShow) {
super(context, R.style.dialog_center_alpha);
this.context = context;
this.mIsShow = isShow;
}
@Override
@ -78,7 +64,8 @@ public class ChangePwdDialog extends Dialog {
ImageView ivShowOriPwd = view.findViewById(R.id.iv_show_pwd_origin);
ImageView ivShowNewPwd = view.findViewById(R.id.iv_show_new_pwd);
ImageView ivShowNewConfirmPwd = view.findViewById(R.id.iv_pwd_new_confirm);
TextView tvHint = view.findViewById(R.id.tv_hint);
tvHint.setVisibility(mIsShow ? View.VISIBLE : View.GONE);
ivShowOriPwd.setOnClickListener(v -> {
Editable etext = mEtOriginPwd.getText();
@ -123,7 +110,13 @@ public class ChangePwdDialog extends Dialog {
}
});
view.findViewById(R.id.tv_cancel).setOnClickListener(v -> this.dismiss());
view.findViewById(R.id.tv_cancel).setOnClickListener(v -> {
if (mIsShow) {
ToastUtils.show("请修改密码");
} else {
this.dismiss();
}
});
view.findViewById(R.id.tv_confirm).setOnClickListener(v -> doConfirm());
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
Window window = this.getWindow();
@ -155,6 +148,7 @@ public class ChangePwdDialog extends Dialog {
public interface OnChangeListener {
void doChange(String org, String nPwd, String nCPwd);
}
public void HideSoftKeyBoardDialog(Activity activity) {
try {
InputMethodManager imm = (InputMethodManager) activity.getSystemService(activity.INPUT_METHOD_SERVICE);
@ -164,6 +158,7 @@ public class ChangePwdDialog extends Dialog {
}
}
/**
* 校验参数
*/
@ -176,6 +171,11 @@ public class ChangePwdDialog extends Dialog {
String newPwd = mEtNewPwd.getText().toString().trim();
if (TextUtils.isEmpty(newPwd)) {
ToastUtils.show("请输入新密码");
return false;
}
if (PathConfig.DEFAULT_PWD_8.equals(newPwd)) {
ToastUtils.show("新密码过于简单,请修改");
return false;
}
String newConfirmPwd = mEtNewConfirmPwd.getText().toString().trim();
if (TextUtils.isEmpty(newConfirmPwd) || !newPwd.equals(newConfirmPwd)) {
@ -193,9 +193,16 @@ public class ChangePwdDialog extends Dialog {
this.mContext = context;
}
private boolean mIsShow;
public DialogBuilder setShowHint(boolean isShow) {
this.mIsShow = isShow;
return this;
}
public ChangePwdDialog build() {
return new ChangePwdDialog(mContext);
return new ChangePwdDialog(mContext, mIsShow);
}
}
}

View File

@ -0,0 +1,506 @@
package com.tenlionsoft.baselib.core.widget.views; /**
* CircleProgress 2017-10-28
* Copyright (c) 2017 KL Co.Ltd. All right reserved.
*/
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ValueAnimator;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.PointF;
import android.graphics.RectF;
import android.graphics.Shader;
import android.os.Build;
import android.util.AttributeSet;
import android.view.View;
import android.view.animation.LinearInterpolator;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.utils.ConvertUtils;
import java.text.DecimalFormat;
/**
* 圆形进度条
*
* @author Adam
* since 2023 6 23
*/
public class CircleProgress extends View {
private Context mContext;
/**
* 默认进度圆环渐变色值集合
*/
private int[] mDefColors = {Color.rgb(0, 187, 238), Color.rgb(0, 34, 255)};
/**
* 100%进度圆环渐变色值集合
*/
private int[] mEndColors = {Color.rgb(255, 196, 0), Color.rgb(255, 110, 77)};
private int mStartColor = Color.rgb(101, 226, 175);
private int mEndColor = Color.rgb(88, 181, 250);
// 圆心x坐标
private float centerX, centerY;
// 圆的半径
private float radius;
// 进度
private float mProgress;
// 当前进度
private float currentProgress;
// 圆形进度条底色画笔
private Paint circleBgPaint;
// 圆形进度条进度画笔
private Paint progressPaint;
// 进度条背景颜色
private int circleBgColor = Color.rgb(225, 229, 232);
// 进度条颜色
private int progressColor = Color.RED;
// 默认圆环的宽度
private int defaultStrokeWidth = 10;
// 圆形背景画笔宽度
private int circleBgStrokeWidth = defaultStrokeWidth;
// 圆形进度画笔宽度
private int progressStrokeWidth = defaultStrokeWidth;
private int lineWidth;
private boolean isDrawCenterProgressText;
private int centerProgressTextSize = 23;
private int centerProgressTextColor = Color.BLACK;
private int targetTextSize = 10;
private int targetTextColor = Color.GRAY;
private int targetNumSize = 20;
private int targetNumColor = Color.BLACK;
private int lineColor = Color.GRAY;
// 各种画笔
private Paint centerProgressTextPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
private Paint trainPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
private Paint linePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
private Paint targetTextPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
// private Paint targetNumPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
// 扇形所在矩形
private RectF rectF = new RectF();
// 进度动画
private ValueAnimator progressAnimator;
// 动画执行时间
private int duration = 1000;
// 动画延时启动时间
private int startDelay = 500;
private ProgressListener progressListener;
private String targetText;
private String targetNum = "0";
private int dp1, dp2, dp4, dp5, dp6, dp7, dp8, dp30;
public CircleProgress(Context context) {
this(context, null);
}
public CircleProgress(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
mContext = context;
dp1 = ConvertUtils.dp2px(1);
dp2 = ConvertUtils.dp2px(2);
dp4 = ConvertUtils.dp2px(4);
dp5 = ConvertUtils.dp2px(5);
dp6 = ConvertUtils.dp2px(6);
dp7 = ConvertUtils.dp2px(7);
dp8 = ConvertUtils.dp2px(8);
dp30 = ConvertUtils.dp2px(30);
getAttr(attrs);
initPaint();
}
private void getAttr(AttributeSet attrs) {
TypedArray typedArray = mContext.obtainStyledAttributes(attrs, R.styleable.CircleProgressBarView);
circleBgStrokeWidth =
typedArray.getDimensionPixelOffset(R.styleable.CircleProgressBarView_circleBgStrokeWidth,
defaultStrokeWidth);
progressStrokeWidth =
typedArray.getDimensionPixelOffset(R.styleable.CircleProgressBarView_progressStrokeWidth,
defaultStrokeWidth);
circleBgColor = typedArray.getColor(R.styleable.CircleProgressBarView_circleBgColor, circleBgColor);
progressColor = typedArray.getColor(R.styleable.CircleProgressBarView_progressColor, progressColor);
duration = typedArray.getColor(R.styleable.CircleProgressBarView_circleAnimationDuration, duration);
isDrawCenterProgressText = typedArray.getBoolean(R.styleable.CircleProgressBarView_isDrawCenterProgressText,
false);
centerProgressTextColor = typedArray.getColor(R.styleable.CircleProgressBarView_centerProgressTextColor,
mEndColor);
centerProgressTextSize =
typedArray.getDimensionPixelOffset(R.styleable.CircleProgressBarView_centerProgressTextSize,
ConvertUtils.sp2px(centerProgressTextSize));
lineWidth = typedArray.getDimensionPixelOffset(R.styleable.CircleProgressBarView_lineWidth,
ConvertUtils.dp2px(1));
lineColor = typedArray.getColor(R.styleable.CircleProgressBarView_lineColor, circleBgColor);
targetNumColor = typedArray.getColor(R.styleable.CircleProgressBarView_targetNumColor, targetNumColor);
targetNumSize = typedArray.getDimensionPixelSize(R.styleable.CircleProgressBarView_targetNumSize,
ConvertUtils.sp2px(20));
targetTextSize = typedArray.getDimensionPixelSize(R.styleable.CircleProgressBarView_targetTextSize,
ConvertUtils.sp2px(12));
targetTextColor = typedArray.getColor(R.styleable.CircleProgressBarView_targetTextColor, targetTextColor);
targetText = typedArray.getString(R.styleable.CircleProgressBarView_target_text);
typedArray.recycle();
}
public void setCenterProgressTextColor(int color) {
this.centerProgressTextColor = color;
centerProgressTextPaint.setColor(color);
}
private void initPaint() {
circleBgPaint = getPaint(circleBgStrokeWidth, circleBgColor);
progressPaint = getPaint(progressStrokeWidth, progressColor);
trainPaint = getPaint(ConvertUtils.dp2px(1), progressColor);
trainPaint.setStyle(Paint.Style.FILL);
linePaint = getPaint(lineWidth, lineColor);
// 目标文本画笔配置
targetTextPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
targetTextPaint.setTextSize(targetTextSize);
targetTextPaint.setColor(targetTextColor);
targetTextPaint.setTextAlign(Paint.Align.CENTER);
// 目标数字画笔配置
// targetNumPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
// targetNumPaint.setTextSize(targetNumSize);
// targetNumPaint.setColor(targetNumColor);
// targetNumPaint.setTextAlign(Paint.Align.CENTER);
// 中间文本画笔配置
centerProgressTextPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
centerProgressTextPaint.setTextSize(centerProgressTextSize);
centerProgressTextPaint.setColor(centerProgressTextColor);
centerProgressTextPaint.setTextAlign(Paint.Align.CENTER);
}
private Paint getPaint(int strokeWidth, int color) {
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setStrokeWidth(strokeWidth);
paint.setColor(color);
paint.setAntiAlias(true);
paint.setStrokeCap(Paint.Cap.ROUND);
paint.setStyle(Paint.Style.STROKE);
return paint;
}
private LinearGradient mShader;
private void configShader() {
// Log.d("201801251336", "progress = " + mProgress);
// int colors[] = {
// Color.rgb(97, 212, 198), Color.rgb(100, 225, 176),
// Color.rgb(93, 198, 221), Color.rgb(90, 187, 239)
// };
// float positions[] = {
// 0.2f, 0.3f, 0.3f, 0.2f
// };
// 清空画笔
progressPaint.setShader(null);
if (mProgress >= 100) {
mShader = new LinearGradient(centerX, 0, centerX, getHeight(),
mEndColors, null, Shader.TileMode.CLAMP);
} else {
mShader = new LinearGradient(centerX, 0, centerX, getHeight(),
mDefColors, null, Shader.TileMode.CLAMP);
}
// 圆内纵向直径为着色路径圆环的左半边和右半边的色值有点对称的感觉
// mShader = new LinearGradient(centerX, centerY - radius, centerX, centerY + radius,
// mColors,
// null, Shader.TileMode.CLAMP);
// 圆内横向直径为着色路径可以达到首尾渐变效果但进度不超过50%看不出渐变后的效果
// mShader = new LinearGradient(centerX + radius, centerY, centerX - radius, centerY,
// mColors,
// null, Shader.TileMode.CLAMP);
// mShader = new SweepGradient(centerX,centerY,mColors,new float[]{0.5f,0.5f});
// mShader = new SweepGradient(centerX,centerY,colors,null);
// mShader = new SweepGradient(centerX,centerY,mEndColor,mStartColor);
// mShader = new RadialGradient(centerX,centerY,radius,mColors,null, Shader.TileMode.CLAMP);
progressPaint.setShader(mShader);
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
if (progressAnimator != null) {
progressAnimator.cancel();
}
}
private boolean proAnimIsEnd = false;
private void initAnimation() {
proAnimIsEnd = false;
progressAnimator = ValueAnimator.ofFloat(0, mProgress);
progressAnimator.setDuration(duration);
progressAnimator.setStartDelay(startDelay);
progressAnimator.setInterpolator(new LinearInterpolator());
progressAnimator.addUpdateListener(valueAnimator -> {
float value = (float) valueAnimator.getAnimatedValue();
mProgress = value;
currentProgress = value * 360 / 100;
if (progressListener != null) {
progressListener.currentProgressListener(value);
}
invalidate();
});
progressAnimator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
proAnimIsEnd = true;
invalidate();
}
});
}
public void setTargetNum(String num) {
targetNum = num;
}
@Override
protected void onSizeChanged(int w, int h, int oldW, int oldH) {
super.onSizeChanged(w, h, oldW, oldH);
centerX = w / 2;
centerY = h / 2;
// 半径再缩小点给小三角形空出距离
radius = Math.min(w, h) / 2 - Math.max(circleBgStrokeWidth, progressStrokeWidth) - dp4;
rectF.set(centerX - radius,
centerY - radius,
centerX + radius,
centerY + radius);
trainPaint.setColor(circleBgColor);
configShader();
}
public void setColors(int[] colors) {
mDefColors = colors;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// LogUtil.logD("201801251106", "centerX = " + centerX + "->centerY = "
// + centerY + "->mProgress = " + mProgress);
canvas.drawCircle(centerX, centerY, radius, circleBgPaint);
canvas.drawArc(rectF, -90, currentProgress, false, progressPaint);
if (isDrawCenterProgressText) {
drawCenterProgressText(canvas, formatNum(mProgress) + "%");
}
if (proAnimIsEnd) {
drawTriangle(canvas);
}
}
private void drawCenterProgressText(Canvas canvas, String currentProgress) {
Paint.FontMetricsInt fontMetrics1 = centerProgressTextPaint.getFontMetricsInt();
int baseline = (int) ((rectF.bottom + rectF.top - fontMetrics1.bottom - fontMetrics1.top) / 2);
//文字绘制到整个布局的中心位置
// canvas.drawLine(centerX - dp30, centerY, centerX + dp30, centerY, linePaint);
// canvas.drawText(currentProgress, rectF.centerX(), centerY - dp5, centerProgressTextPaint);
canvas.drawText(currentProgress, rectF.centerX(), rectF.centerY()+dp5, centerProgressTextPaint);
// Paint.FontMetricsInt fontMetrics2 = targetNumPaint.getFontMetricsInt();
// int baseline2 = baseline + (fontMetrics2.bottom - fontMetrics2.top);
// canvas.drawText("升级中...", rectF.centerX(), baseline + dp7, targetTextPaint);
// canvas.drawText(targetNum, rectF.centerX(), baseline2 + dp5, targetNumPaint);
}
/**
* 绘制三角形
*
* @param canvas
*/
private void drawTriangle(Canvas canvas) {
Path path = new Path();
PointF pf1, pf2, pf3;
// LogUtil.logD("20190124", "绘制小三角 mProgress = " + mProgress);
if (mProgress < 49) {
trainPaint.setColor(circleBgColor);
pf1 = new PointF(centerX - dp8, centerY * 2 - progressStrokeWidth - dp2);
pf2 = new PointF(centerX - dp1, getHeight() - dp2);
pf3 = new PointF(centerX + dp6, centerY * 2 - progressStrokeWidth - dp2);
} else if (mProgress >= 49 && mProgress < 51) {
float[] positions;
int pro = (int) (mProgress * 100);
if (mProgress >= 49 && pro < 49.2 * 100) {
positions = new float[]{0.39f, 0.39f};
// LogUtil.logD("20190124", "阶段1 -> pro = " + pro);
} else if (pro >= 49.2 * 100 && pro < 49.4 * 100) {
positions = new float[]{0.46f, 0.46f};
// LogUtil.logD("20190124", "阶段2");
} else if (pro >= 49.4 * 100 && pro < 49.6 * 100) {
positions = new float[]{0.5f, 0.5f};
// LogUtil.logD("20190124", "阶段3 -> pro = " + pro);
} else if (pro >= 49.6 * 100 && pro < 49.8 * 100) {
positions = new float[]{0.62f, 0.38f};
// LogUtil.logD("20190124", "阶段4 -> pro = " + pro);
} else if (pro >= 49.8 * 100 && pro < 50 * 100) {
positions = new float[]{0.64f, 0.36f};
// LogUtil.logD("20190124", "阶段5 -> pro = " + pro);
} else if (pro >= 50 * 100 && pro < 50.2 * 100) {
positions = new float[]{0.7f, 0.3f};
// LogUtil.logD("20190124", "阶段6 -> pro = " + pro);
} else if (pro >= 50.2 * 100 && pro < 50.4 * 100) {
positions = new float[]{0.75f, 0.25f};
// LogUtil.logD("20190124", "阶段7 -> pro = " + pro);
} else if (pro >= 50.4 * 100 && pro < 50.6 * 100) {
positions = new float[]{0.8f, 0.2f};
// LogUtil.logD("20190124", "阶段8 -> pro = " + pro);
} else if (pro >= 50.6 * 100 && pro <= 50.8 * 100) {
positions = new float[]{0.9f, 0.1f};
// LogUtil.logD("20190124", "阶段9 -> pro = " + pro);
} else {
positions = new float[]{1.0f, 0.f};
// LogUtil.logD("20190124", "阶段 else");
}
LinearGradient triangleGdt = new LinearGradient(
centerX + dp6,
0,
centerX - dp8,
0,
new int[]{Color.rgb(88, 181, 250), Color.rgb(225, 229, 232)},
positions, Shader.TileMode.CLAMP);
trainPaint.setShader(triangleGdt);
pf1 = new PointF(centerX - dp8, centerY * 2 - progressStrokeWidth - dp2);
pf2 = new PointF(centerX - dp1, getHeight() - dp2);
pf3 = new PointF(centerX + dp6, centerY * 2 - progressStrokeWidth - dp2);
} else {
trainPaint.setShader(null); // 不要忘记清空着色器不能设置的color没有效果会优先显示shader
if (mProgress >= 100) {
trainPaint.setColor(mEndColors[mEndColors.length - 1]);
} else {
trainPaint.setColor(mDefColors[mDefColors.length - 1]);
}
pf1 = new PointF(centerX - dp8, centerY * 2 - progressStrokeWidth - dp2);
pf2 = new PointF(centerX - dp1, getHeight());
pf3 = new PointF(centerX + dp6, centerY * 2 - progressStrokeWidth - dp2);
}
path.moveTo(pf1.x, pf1.y);
path.lineTo(pf2.x, pf2.y);
path.lineTo(pf3.x, pf3.y);
canvas.drawPath(path, trainPaint);
path.reset();
}
public void startProgressAnimation() {
progressAnimator.start();
}
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
public void pauseProgressAnimation() {
progressAnimator.pause();
}
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
public void resumeProgressAnimation() {
progressAnimator.resume();
}
public void stopProgressAnimation() {
progressAnimator.end();
}
/**
* 传入一个进度值从0到progress动画变化
*
* @param progress
* @return
*/
public CircleProgress setProgressWithAnimation(float progress) {
// if (progress <= 0f || String.valueOf(progress).equals(String.valueOf(Float.NaN))) {
if (progress <= 0f || Float.isNaN(progress)) {
setCurrentProgress(0f, true);
return this;
}
mProgress = progress;
// if (progress >= 100) {
// configShader();
// }else{
configShader();
// }
initAnimation();
startProgressAnimation();
return this;
}
/**
* 实时进度适用于下载进度回调时候之类的场景
*
* @param progress
* @return
*/
public CircleProgress setCurrentProgress(float progress) {
mProgress = progress;
currentProgress = progress * 360 / 100;
if (progress >= 100) {
configShader();
}
invalidate();
return this;
}
/**
* 实时进度适用于下载进度回调时候之类的场景
*
* @param progress
* @param isArrow 是否有小箭头
* @return
*/
public CircleProgress setCurrentProgress(float progress, boolean isArrow) {
proAnimIsEnd = isArrow;
setCurrentProgress(progress);
return this;
}
/**
* 格式化数字(保留两位小数)
*
* @param money
* @return
*/
public static String formatNum(float money) {
if (((int) money * 100) == (int) (money * 100)) {
//如果是一个整数
return String.valueOf((int) money);
}
DecimalFormat format = new DecimalFormat("0.00");
return format.format(money);
}
public interface ProgressListener {
void currentProgressListener(float currentProgress);
}
public CircleProgress setProgressListener(ProgressListener listener) {
progressListener = listener;
return this;
}
}

View File

@ -15,7 +15,7 @@ import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import androidx.appcompat.widget.AppCompatRatingBar;

View File

@ -0,0 +1,87 @@
package com.tenlionsoft.baselib.core.widget.views;
import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.jcodecraeer.xrecyclerview.progressindicator.AVLoadingIndicatorView;
import com.tenlionsoft.baselib.R;
import androidx.annotation.Nullable;
/**
* 作者: adam
* 日期: 2022/4/27 - 16:40
* 邮箱: itgaojian@163.com
* 描述: 加载状态view
*/
public class CustomStateView extends LinearLayout {
public static final int STATE_LOAD = 0x123;//加载中
public static final int STATE_EMPTY = 0x124;//空数据
public static final int STATE_ERROR = 0x125;//加载失败
public static final int STATE_SUCCESS = 0x126;//加载成功
public static final int STATE_ERROR_NET = 0x127;//加载失败,网络错误
public static final int STATE_SEARCH = 0x128;//搜索默认状态
private AVLoadingIndicatorView mPbStateLoading;
private ImageView mIvStateDate;
private TextView mTvStateHint;
public CustomStateView(Context context) {
super(context);
}
public CustomStateView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
View view = LayoutInflater.from(context).inflate(R.layout.layout_state_view, this, true);
mPbStateLoading = view.findViewById(R.id.pb_state_loading);
mIvStateDate = view.findViewById(R.id.iv_state_data);
mTvStateHint = view.findViewById(R.id.tv_state_hint);
setState(STATE_LOAD);
}
public CustomStateView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public void setState(int state) {
switch (state) {
case STATE_LOAD://加载中
mIvStateDate.setVisibility(View.GONE);
mPbStateLoading.setVisibility(View.VISIBLE);
mTvStateHint.setVisibility(View.VISIBLE);
mTvStateHint.setText("加载中...");
break;
case STATE_EMPTY://没有数据
mIvStateDate.setVisibility(View.VISIBLE);
mIvStateDate.setBackgroundResource(R.drawable.ic_empty_data);
mPbStateLoading.setVisibility(View.GONE);
mTvStateHint.setVisibility(View.VISIBLE);
mTvStateHint.setText("暂无数据");
break;
case STATE_ERROR:
mIvStateDate.setVisibility(View.VISIBLE);
mIvStateDate.setBackgroundResource(R.drawable.ic_load_error);
mPbStateLoading.setVisibility(View.GONE);
mTvStateHint.setVisibility(View.VISIBLE);
mTvStateHint.setText("加载失败");
break;
case STATE_SUCCESS:
mIvStateDate.setVisibility(GONE);
mPbStateLoading.setVisibility(GONE);
mTvStateHint.setVisibility(GONE);
break;
case STATE_SEARCH://搜索默认
mIvStateDate.setVisibility(View.VISIBLE);
mIvStateDate.setBackgroundResource(R.drawable.ic_empty_data);
mPbStateLoading.setVisibility(View.GONE);
mTvStateHint.setVisibility(View.VISIBLE);
mTvStateHint.setText("请输入要搜索的内容");
break;
}
}
}

View File

@ -0,0 +1,31 @@
package com.tenlionsoft.baselib.core.widget.views;
import android.content.Context;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.core.beans.PersonSearchBean;
import com.tenlionsoft.baselib.core.widget.base.BaseRecyclerAdapter;
import java.util.List;
public class GridTextAdapter extends BaseRecyclerAdapter<PersonSearchBean.GridPersonListBean, GridTextViewHolder> {
public GridTextAdapter(Context ctx, List<PersonSearchBean.GridPersonListBean> list) {
super(ctx, list);
}
@Override
public GridTextViewHolder createHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_grid_phone, parent, false);
return new GridTextViewHolder(itemView);
}
@Override
public void bindHolder(GridTextViewHolder gridTextViewHolder, int i) {
gridTextViewHolder.mTvName.setText(mData.get(i).getGridUserName());
gridTextViewHolder.mTvPhone.setText(TextUtils.isEmpty(mData.get(i).getGridUserPhone())?"未录入":mData.get(i).getGridUserPhone());
}
}

View File

@ -0,0 +1,22 @@
package com.tenlionsoft.baselib.core.widget.views;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.tenlionsoft.baselib.R;
public class GridTextViewHolder extends RecyclerView.ViewHolder {
public TextView mTvName;
public TextView mTvPhone;
public LinearLayout mLlGrid;
public GridTextViewHolder(@NonNull View itemView) {
super(itemView);
mTvName=itemView.findViewById(R.id.tv_name);
mTvPhone= itemView.findViewById(R.id.tv_phone);
mLlGrid=itemView.findViewById(R.id.ll_grid);
}
}

View File

@ -0,0 +1,587 @@
package com.tenlionsoft.baselib.core.widget.views;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.RectF;
import android.graphics.Typeface;
import android.text.Layout;
import android.text.SpannableString;
import android.text.StaticLayout;
import android.text.TextPaint;
import android.text.style.ForegroundColorSpan;
import android.text.style.RelativeSizeSpan;
import android.text.style.StyleSpan;
import android.util.AttributeSet;
import android.view.View;
import androidx.annotation.Nullable;
import com.tenlionsoft.baselib.utils.ConvertUtils;
import com.tenlionsoft.baselib.utils.LogUtils;
public class HalfCircleChartView extends View {
private Path mPath;
private Paint mPaintProgress;
private Paint mPaintProgressColor;
private Paint mColorPaint;
private Paint mPercentPaint;
private TextPaint mTextPaint;
private Paint mGrayPaint;
private int mPadding = 60;
private int mPaintWidth = 60;//画笔线宽
private RectF mRectF;
private int mWidth;
private int mHeight;
private Paint mBlackPaint;
public HalfCircleChartView(Context context) {
super(context, null);
}
public HalfCircleChartView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
initView();
}
private void initView() {
mPath = new Path();
mPath.reset();
mRectF = new RectF();
mPaintProgress = new Paint(Paint.ANTI_ALIAS_FLAG);
mPaintProgress.setStrokeWidth(mPaintWidth);
mPaintProgress.setColor(Color.parseColor("#EBF0F6"));
mPaintProgress.setStyle(Paint.Style.STROKE);
mPaintProgress.setStrokeCap(Paint.Cap.ROUND);
// mPaintProgress.setAlpha(40);
mPaintProgress.setShadowLayer(6, 0, 6, Color.parseColor("#E0E0E0"));
mPaintProgressColor = new Paint(Paint.ANTI_ALIAS_FLAG);
mPaintProgressColor.setStrokeWidth(mPaintWidth);
mPaintProgressColor.setColor(Color.parseColor("#305DFD"));
mPaintProgressColor.setStyle(Paint.Style.STROKE);
mPaintProgressColor.setStrokeCap(Paint.Cap.ROUND);
// mPaintProgressColor.setShadowLayer(6, -5, 5, Color.parseColor("#C2C9E3"));
mColorPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mColorPaint.setColor(Color.parseColor("#305DFD"));
mColorPaint.setStyle(Paint.Style.FILL);
mColorPaint.setTextAlign(Paint.Align.CENTER);
mColorPaint.setFakeBoldText(true);
mColorPaint.setTextSize(ConvertUtils.sp2px(20));
mColorPaint.setTextAlign(Paint.Align.CENTER);
mPercentPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mPercentPaint.setColor(Color.parseColor("#305DFD"));
mPercentPaint.setStyle(Paint.Style.FILL);
mPercentPaint.setTextAlign(Paint.Align.CENTER);
mPercentPaint.setFakeBoldText(true);
mPercentPaint.setTextSize(ConvertUtils.sp2px(12));
mPercentPaint.setTextAlign(Paint.Align.CENTER);
mGrayPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mGrayPaint.setColor(Color.parseColor("#8F8F8F"));
mGrayPaint.setStyle(Paint.Style.FILL);
mGrayPaint.setTextAlign(Paint.Align.CENTER);
mGrayPaint.setTextSize(ConvertUtils.sp2px(12));
mBlackPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mBlackPaint.setColor(Color.BLACK);
mBlackPaint.setStyle(Paint.Style.FILL);
mBlackPaint.setStrokeWidth(10);
mTextPaint = new TextPaint();
mTextPaint.setColor(Color.parseColor("#305DFD"));
mTextPaint.setTextSize(ConvertUtils.sp2px(14));
mTextPaint.setTextAlign(Paint.Align.CENTER);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
mWidth = resolveSize(400, widthMeasureSpec);
mHeight = resolveSize(400, heightMeasureSpec);
setMeasuredDimension(
Math.max(getSuggestedMinimumWidth(),
resolveSize(mWidth,
widthMeasureSpec)),
Math.max(getSuggestedMinimumHeight(),
resolveSize(mHeight,
heightMeasureSpec)));
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//获取最小一边
int min = Math.min(mWidth, mHeight);
//中心点
int centerX = mWidth / 2;
int centerY = mHeight / 2;
int startY = centerY - min / 2;
int startX = centerX - min / 2;
int endY = centerY + min / 2;
int endX = centerX + min / 2;
LogUtils.e("矩形:(" + startX + ".." + startY + ")(" + endX + ".." + endY + ")");
// Rect path = new Rect(startX, startY, endX, endY);
// canvas.drawRect(path, mGrayPaint);
mRectF.set(startX + mPaintWidth, startY + mPaintWidth, endX - mPaintWidth, endY - mPaintWidth);
int offsetY = centerY - mPaintWidth;
LogUtils.e("中心点Y:" + mRectF.centerY() + "==" + centerY);
mRectF.offset(0, offsetY);
//绘制第一个环形背景
mPath.arcTo(mRectF, 180, 180);
canvas.drawPath(mPath, mPaintProgress);
//添加进度
addProgress(canvas);
//绘制文字
drawText(canvas, "70", offsetY);
}
private void drawText(Canvas canvas, String percent, int offsetY) {
//中心点
canvas.save();
int centerX = mWidth / 2;
int centerY = mHeight / 2;
SpannableString s = makeTxt("60");
StaticLayout textLayout = new StaticLayout(s, mTextPaint, canvas.getWidth(),
Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false);
canvas.translate(centerX, centerY + offsetY - mPaintWidth);
textLayout.draw(canvas);
canvas.restore();
//计算文字所占大小
// Rect perRect = new Rect();
// mColorPaint.getTextBounds(percent, 0, percent.length(), perRect);
//
// Rect centRect = new Rect();
// mPercentPaint.getTextBounds("%", 0, "%".length(), centRect);
// //文字所占长宽
// int strWidth = perRect.width() + centRect.width();
// LogUtils.e("文字所占宽度:" + strWidth);
// int strHeight = perRect.height();
//
// canvas.drawText(percent, centerX - strWidth / 2, centerY + perRect.height() / 2 + offsetY - mPaintWidth,
// mColorPaint);//绘制占比数字
//
// canvas.drawText("%", centerX + perRect.width() / 2, centerY + centRect.height() + offsetY - mPaintWidth,
// mPercentPaint);//绘制百分号
// canvas.drawPoint(centerX, centerY + offsetY - mPaintWidth, mBlackPaint);
//
// Rect re = new Rect();
// String s = "重点青少年占比";
// mGrayPaint.getTextBounds(s, 0, s.length(), re);
// canvas.drawText(s, centerX - re.width() / 2,
// centerY + strHeight + re.height() / 2 + 10 + offsetY - mPaintWidth, mGrayPaint);
}
private SpannableString makeTxt(String str) {
String content = str + "%\n重点青少年占比";
SpannableString s = new SpannableString(content);
s.setSpan(new StyleSpan(Typeface.BOLD), 0, content.indexOf(""), 0);
s.setSpan(new ForegroundColorSpan(Color.parseColor("#2F5CFB")), 0, content.indexOf(""), 0);
s.setSpan(new RelativeSizeSpan(1.3f), 0, content.indexOf(""), 0);
return s;
}
private void addProgress(Canvas canvas) {
Path mPathProgress = new Path();
mPathProgress.reset();
//70%的进度
float progress = 0.7f;
float sweepAngle = progress * 180;
mPathProgress.arcTo(mRectF, 180, sweepAngle);
canvas.drawPath(mPathProgress, mPaintProgressColor);
}
//Android Canvas沿着Path绘制文字
// private void addTextPath(Canvas canvas) {
//
// int startAngle = 135; //开始角度
// int sweepAngle = 45; //总共 270度角分6次则为 45度
//
// String[] content = {"0-10W", "10-20W", "20-30W", "30-40W", "40-50W", "50W+"};
// Paint mTextPaint = new Paint();
// mTextPaint.setColor(Color.BLACK);
// mTextPaint.setTextSize(40);
// Path path = null;
//
//
// for (int i = 0; i < 6; i++) {
// path = new Path();
// path.addArc(mRectF2, startAngle, sweepAngle);
// float textLength = mTextPaint.measureText(content[i]);//获得字体长度
// float hOffset = (float) (mDiam2 * Math.PI * (sweepAngle * 1.0 / 360) / 2 - textLength / 2);//The
// distance along the path
// float vOffset = (float) (mDiam2 / 2 / 6); //垂直路径方向上的偏移
// canvas.drawTextOnPath(content[i], path, hOffset, vOffset, mTextPaint);
//
//// Log.d("Circle", "hOffset:" + hOffset + " vOffset: " + vOffset);
// startAngle += sweepAngle;
// }
//
// }
//
//
// private void addKeDu1(Canvas canvas) {
//
// int pointX = 500;
// int pointY = 500;
//
//
// Paint paintLine = new Paint(Paint.ANTI_ALIAS_FLAG);
// paintLine.setColor(0xff454545);
// paintLine.setStrokeWidth(12);
//
// Paint paintLine2 = new Paint(Paint.ANTI_ALIAS_FLAG);
// paintLine.setColor(0xff454545);
// paintLine.setStrokeWidth(4);
//
//
// float angle = 45;
// //刻度直径
// int radius = 800 - 40;
// int length = 80; //刻度线长度
//
// int px_a1 = (int) (radius / 2 * Math.cos(Math.PI * angle / 180));
// int py_a1 = (int) (radius / 2 * Math.sin(Math.PI * angle / 180));
// int px_a_1 = pointX - px_a1;
// int py_a_1 = pointY + py_a1;
//
// int radius2 = radius - length;
// int px_a2 = (int) (radius2 / 2 * Math.cos(Math.PI * angle / 180));
// int py_a2 = (int) (radius2 / 2 * Math.sin(Math.PI * angle / 180));
// int px_a_2 = pointX - px_a2;
// int py_a_2 = pointY + py_a2;
//
// //绘制粗刻度线
// canvas.drawLine(px_a_1, py_a_1, px_a_2, py_a_2, paintLine);
//
// //绘制细刻度线
// int length2 = 50;
// for (int i = 1; i < 9; i++) {
//
// float angle2 = 45 - (i * 45 / 9);
// int px_a3 = (int) (radius / 2 * Math.cos(Math.PI * angle2 / 180));
// int py_a3 = (int) (radius / 2 * Math.sin(Math.PI * angle2 / 180));
// int px_a_3 = pointX - px_a3;
// int py_a_3 = pointY + py_a3;
//
// int radius3 = radius - length2;
// int px_a4 = (int) (radius3 / 2 * Math.cos(Math.PI * angle2 / 180));
// int py_a4 = (int) (radius3 / 2 * Math.sin(Math.PI * angle2 / 180));
// int px_a_4 = pointX - px_a4;
// int py_a_4 = pointY + py_a4;
//
// canvas.drawLine(px_a_3, py_a_3, px_a_4, py_a_4, paintLine2);
// }
//
// }
//
// private void addKeDu2(Canvas canvas) {
//
// int pointX = 500;
// int pointY = 500;
//
//
// Paint paintLine = new Paint(Paint.ANTI_ALIAS_FLAG);
// paintLine.setColor(0xff454545);
// paintLine.setStrokeWidth(12);
//
// Paint paintLine2 = new Paint(Paint.ANTI_ALIAS_FLAG);
// paintLine.setColor(0xff454545);
// paintLine.setStrokeWidth(4);
//
//
// float angle = 0;
// int radius = 800 - 40;
// int length = 80;
//
// int px_a1 = (int) (radius / 2 * Math.cos(Math.PI * angle / 180));
// int py_a1 = (int) (radius / 2 * Math.sin(Math.PI * angle / 180));
// int px_a_1 = pointX - px_a1;
// int py_a_1 = pointY + py_a1;
//
// int radius2 = radius - length;
// int px_a2 = (int) (radius2 / 2 * Math.cos(Math.PI * angle / 180));
// int py_a2 = (int) (radius2 / 2 * Math.sin(Math.PI * angle / 180));
// int px_a_2 = pointX - px_a2;
// int py_a_2 = pointY + py_a2;
//
// canvas.drawLine(px_a_1, py_a_1, px_a_2, py_a_2, paintLine);
//
// int length2 = 50;
// for (int i = 1; i < 9; i++) {
//
// float angle2 = angle + (i * 45 / 9);
// int px_a3 = (int) (radius / 2 * Math.cos(Math.PI * angle2 / 180));
// int py_a3 = (int) (radius / 2 * Math.sin(Math.PI * angle2 / 180));
// int px_a_3 = pointX - px_a3;
// int py_a_3 = pointY - py_a3;
//
// int radius3 = radius - length2;
// int px_a4 = (int) (radius3 / 2 * Math.cos(Math.PI * angle2 / 180));
// int py_a4 = (int) (radius3 / 2 * Math.sin(Math.PI * angle2 / 180));
// int px_a_4 = pointX - px_a4;
// int py_a_4 = pointY - py_a4;
//
// canvas.drawLine(px_a_3, py_a_3, px_a_4, py_a_4, paintLine2);
// }
//
// }
//
// private void addKeDu3(Canvas canvas) {
//
// int pointX = 500;
// int pointY = 500;
//
//
// Paint paintLine = new Paint(Paint.ANTI_ALIAS_FLAG);
// paintLine.setColor(0xff454545);
// paintLine.setStrokeWidth(12);
//
// Paint paintLine2 = new Paint(Paint.ANTI_ALIAS_FLAG);
// paintLine.setColor(0xff454545);
// paintLine.setStrokeWidth(4);
//
//
// float angle = 45;
// int radius = 800 - 40;
// int length = 80;
//
// int px_a1 = (int) (radius / 2 * Math.cos(Math.PI * angle / 180));
// int py_a1 = (int) (radius / 2 * Math.sin(Math.PI * angle / 180));
// int px_a_1 = pointX - px_a1;
// int py_a_1 = pointY - py_a1;
//
// int radius2 = radius - length;
// int px_a2 = (int) (radius2 / 2 * Math.cos(Math.PI * angle / 180));
// int py_a2 = (int) (radius2 / 2 * Math.sin(Math.PI * angle / 180));
// int px_a_2 = pointX - px_a2;
// int py_a_2 = pointY - py_a2;
//
// canvas.drawLine(px_a_1, py_a_1, px_a_2, py_a_2, paintLine);
//
// int length2 = 50;
// for (int i = 1; i < 9; i++) {
//
// float angle2 = angle + (i * 45 / 9);
// int px_a3 = (int) (radius / 2 * Math.cos(Math.PI * angle2 / 180));
// int py_a3 = (int) (radius / 2 * Math.sin(Math.PI * angle2 / 180));
// int px_a_3 = pointX - px_a3;
// int py_a_3 = pointY - py_a3;
//
// int radius3 = radius - length2;
// int px_a4 = (int) (radius3 / 2 * Math.cos(Math.PI * angle2 / 180));
// int py_a4 = (int) (radius3 / 2 * Math.sin(Math.PI * angle2 / 180));
// int px_a_4 = pointX - px_a4;
// int py_a_4 = pointY - py_a4;
//
// canvas.drawLine(px_a_3, py_a_3, px_a_4, py_a_4, paintLine2);
// }
//
// }
//
// private void addKeDu4(Canvas canvas) {
//
// int pointX = 500;
// int pointY = 500;
//
//
// Paint paintLine = new Paint(Paint.ANTI_ALIAS_FLAG);
// paintLine.setColor(0xff454545);
// paintLine.setStrokeWidth(12);
//
// Paint paintLine2 = new Paint(Paint.ANTI_ALIAS_FLAG);
// paintLine.setColor(0xff454545);
// paintLine.setStrokeWidth(4);
//
//
// float angle = 90;
// int radius = 800 - 40;
// int length = 80;
//
// int px_a1 = (int) (radius / 2 * Math.cos(Math.PI * angle / 180));
// int py_a1 = (int) (radius / 2 * Math.sin(Math.PI * angle / 180));
// int px_a_1 = pointX - px_a1;
// int py_a_1 = pointY - py_a1;
//
// int radius2 = radius - length;
// int px_a2 = (int) (radius2 / 2 * Math.cos(Math.PI * angle / 180));
// int py_a2 = (int) (radius2 / 2 * Math.sin(Math.PI * angle / 180));
// int px_a_2 = pointX - px_a2;
// int py_a_2 = pointY - py_a2;
//
// canvas.drawLine(px_a_1, py_a_1, px_a_2, py_a_2, paintLine);
//
// int length2 = 50;
// for (int i = 1; i < 9; i++) {
//
// float angle2 = angle + (i * 45 / 9);
// int px_a3 = (int) (radius / 2 * Math.cos(Math.PI * angle2 / 180));
// int py_a3 = (int) (radius / 2 * Math.sin(Math.PI * angle2 / 180));
// int px_a_3 = pointX - px_a3;
// int py_a_3 = pointY - py_a3;
//
// int radius3 = radius - length2;
// int px_a4 = (int) (radius3 / 2 * Math.cos(Math.PI * angle2 / 180));
// int py_a4 = (int) (radius3 / 2 * Math.sin(Math.PI * angle2 / 180));
// int px_a_4 = pointX - px_a4;
// int py_a_4 = pointY - py_a4;
//
// canvas.drawLine(px_a_3, py_a_3, px_a_4, py_a_4, paintLine2);
// }
//
// }
//
// private void addKeDu5(Canvas canvas) {
//
// int pointX = 500;
// int pointY = 500;
//
//
// Paint paintLine = new Paint(Paint.ANTI_ALIAS_FLAG);
// paintLine.setColor(0xff454545);
// paintLine.setStrokeWidth(12);
//
// Paint paintLine2 = new Paint(Paint.ANTI_ALIAS_FLAG);
// paintLine.setColor(0xff454545);
// paintLine.setStrokeWidth(4);
//
//
// float angle = 135;
// int radius = 800 - 40;
// int length = 80;
//
// int px_a1 = (int) (radius / 2 * Math.cos(Math.PI * angle / 180));
// int py_a1 = (int) (radius / 2 * Math.sin(Math.PI * angle / 180));
// int px_a_1 = pointX - px_a1;
// int py_a_1 = pointY - py_a1;
//
// int radius2 = radius - length;
// int px_a2 = (int) (radius2 / 2 * Math.cos(Math.PI * angle / 180));
// int py_a2 = (int) (radius2 / 2 * Math.sin(Math.PI * angle / 180));
// int px_a_2 = pointX - px_a2;
// int py_a_2 = pointY - py_a2;
//
// canvas.drawLine(px_a_1, py_a_1, px_a_2, py_a_2, paintLine);
//
// int length2 = 50;
// for (int i = 1; i < 9; i++) {
//
// float angle2 = angle + (i * 45 / 9);
// int px_a3 = (int) (radius / 2 * Math.cos(Math.PI * angle2 / 180));
// int py_a3 = (int) (radius / 2 * Math.sin(Math.PI * angle2 / 180));
// int px_a_3 = pointX - px_a3;
// int py_a_3 = pointY - py_a3;
//
// int radius3 = radius - length2;
// int px_a4 = (int) (radius3 / 2 * Math.cos(Math.PI * angle2 / 180));
// int py_a4 = (int) (radius3 / 2 * Math.sin(Math.PI * angle2 / 180));
// int px_a_4 = pointX - px_a4;
// int py_a_4 = pointY - py_a4;
//
// canvas.drawLine(px_a_3, py_a_3, px_a_4, py_a_4, paintLine2);
// }
//
// }
//
// private void addKeDu6(Canvas canvas) {
//
// int pointX = 500;
// int pointY = 500;
//
//
// Paint paintLine = new Paint(Paint.ANTI_ALIAS_FLAG);
// paintLine.setColor(0xff454545);
// paintLine.setStrokeWidth(12);
//
// Paint paintLine2 = new Paint(Paint.ANTI_ALIAS_FLAG);
// paintLine.setColor(0xff454545);
// paintLine.setStrokeWidth(4);
//
//
// float angle = 180;
// int radius = 800 - 40;
// int length = 80;
//
// int px_a1 = (int) (radius / 2 * Math.cos(Math.PI * angle / 180));
// int py_a1 = (int) (radius / 2 * Math.sin(Math.PI * angle / 180));
// int px_a_1 = pointX - px_a1;
// int py_a_1 = pointY - py_a1;
//
// int radius2 = radius - length;
// int px_a2 = (int) (radius2 / 2 * Math.cos(Math.PI * angle / 180));
// int py_a2 = (int) (radius2 / 2 * Math.sin(Math.PI * angle / 180));
// int px_a_2 = pointX - px_a2;
// int py_a_2 = pointY - py_a2;
//
// canvas.drawLine(px_a_1, py_a_1, px_a_2, py_a_2, paintLine);
//
// int length2 = 50;
// for (int i = 1; i < 9; i++) {
//
// float angle2 = angle + (i * 45 / 9);
// int px_a3 = (int) (radius / 2 * Math.cos(Math.PI * angle2 / 180));
// int py_a3 = (int) (radius / 2 * Math.sin(Math.PI * angle2 / 180));
// int px_a_3 = pointX - px_a3;
// int py_a_3 = pointY - py_a3;
//
// int radius3 = radius - length2;
// int px_a4 = (int) (radius3 / 2 * Math.cos(Math.PI * angle2 / 180));
// int py_a4 = (int) (radius3 / 2 * Math.sin(Math.PI * angle2 / 180));
// int px_a_4 = pointX - px_a4;
// int py_a_4 = pointY - py_a4;
//
// canvas.drawLine(px_a_3, py_a_3, px_a_4, py_a_4, paintLine2);
// }
//
// }
//
// private void addEndKeDu(Canvas canvas) {
// int pointX = 500;
// int pointY = 500;
//
// Paint paintLine = new Paint(Paint.ANTI_ALIAS_FLAG);
// paintLine.setColor(0xff454545);
// paintLine.setStrokeWidth(12);
//
// Paint paintLine2 = new Paint(Paint.ANTI_ALIAS_FLAG);
// paintLine.setColor(0xff454545);
// paintLine.setStrokeWidth(4);
//
//
// float angle = 225;
// int radius = 800 - 40;
// int length = 80;
//
// int px_a1 = (int) (radius / 2 * Math.cos(Math.PI * angle / 180));
// int py_a1 = (int) (radius / 2 * Math.sin(Math.PI * angle / 180));
// int px_a_1 = pointX - px_a1;
// int py_a_1 = pointY - py_a1;
//
// int radius2 = radius - length;
// int px_a2 = (int) (radius2 / 2 * Math.cos(Math.PI * angle / 180));
// int py_a2 = (int) (radius2 / 2 * Math.sin(Math.PI * angle / 180));
// int px_a_2 = pointX - px_a2;
// int py_a_2 = pointY - py_a2;
//
// canvas.drawLine(px_a_1, py_a_1, px_a_2, py_a_2, paintLine);
// }
}

View File

@ -7,7 +7,7 @@ import android.util.AttributeSet;
import android.view.inputmethod.EditorInfo;
import android.widget.EditText;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.utils.LogUtils;

View File

@ -0,0 +1,50 @@
package com.tenlionsoft.baselib.core.widget.views;
import android.content.Context;
import android.graphics.PointF;
import android.util.AttributeSet;
import android.view.MotionEvent;
import com.github.mikephil.charting.charts.CombinedChart;
import com.github.mikephil.charting.charts.HorizontalBarChart;
/**
* 滑动冲突
*/
public class MPAndroidChartView extends HorizontalBarChart {
private PointF mPointF = new PointF();
public MPAndroidChartView(Context context) {
super(context);
}
public MPAndroidChartView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MPAndroidChartView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
getParent().requestDisallowInterceptTouchEvent(true);
return super.dispatchTouchEvent(ev);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
mPointF.x = event.getX();
mPointF.y = event.getY();
break;
case MotionEvent.ACTION_MOVE:
if (getScaleX() > 1 && Math.abs(event.getX() - mPointF.x) > 5) {
getParent().requestDisallowInterceptTouchEvent(true);
}
break;
}
return super.onTouchEvent(event);
}
}

View File

@ -20,7 +20,7 @@ import android.widget.TextView;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.core.beans.DictionaryBean;
import com.tenlionsoft.baselib.core.beans.PersonSearchBean;

View File

@ -0,0 +1,269 @@
package com.tenlionsoft.baselib.core.widget.views;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.TextView;
import androidx.exifinterface.media.ExifInterface;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.core.Observable;
import io.reactivex.rxjava3.core.ObservableOnSubscribe;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.schedulers.Schedulers;
/**
* 作者 : Adam on 2018/7/23.
* 邮箱 : itgaojian@163.com
* 描述 : ping
*/
public class TopPingView extends Dialog {
public String appType;
private Context context;
private OnChoseListener mListener;
private TextView mTvInfo;
private TextView mTvStart;
private TextView mTvCancel;
private EditText mEtUrl;
private ProgressDialog mDialog;
public interface OnChoseListener {
void checkUpdate();
void shareQQ();
void shareWeChart();
void shareWeibo();
void showPing();
}
private TopPingView(Context context2) {
super(context2, R.style.Dialog_ChoseFile);
this.appType = ExifInterface.GPS_MEASUREMENT_2D;
this.context = context2;
}
/* access modifiers changed from: protected */
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
View view = LayoutInflater.from(this.context).inflate(R.layout.dialog_top_ping, null);
setContentView(view);
setCancelable(false);
setCanceledOnTouchOutside(false);
mTvInfo = view.findViewById(R.id.tv_info);
mEtUrl = view.findViewById(R.id.et_ip);
mTvStart = view.findViewById(R.id.tv_confirm);
mTvCancel = view.findViewById(R.id.tv_cancel);
mTvStart.setOnClickListener(v -> {
String url = mEtUrl.getText().toString().trim();
if (!TextUtils.isEmpty(url)) {
ping(url);
} else {
ToastUtils.show("请输入要ping的网络地址");
}
});
mTvCancel.setOnClickListener(v -> {
hideSoftKeyboard(mEtUrl);
this.dismiss();
});
mDialog = UIUtil.initDialog(context, "执行中...");
Window window = getWindow();
window.setGravity(Gravity.TOP);
window.setWindowAnimations(R.style.Dialog_ChoseFile);
WindowManager.LayoutParams attributes = window.getAttributes();
attributes.width = -1;
attributes.height = -2;
window.setAttributes(attributes);
window.setBackgroundDrawable(new ColorDrawable());
window.setSoftInputMode(4);
}
public void hideSoftKeyboard(View view) {
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
if (view != null) {
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}
private void showSoftKeyBoardDialog(EditText editText) {
if (editText != null) {
editText.setFocusable(true);
editText.setFocusableInTouchMode(true);
editText.requestFocus();
((InputMethodManager) this.context.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(editText
, 0);
}
}
public void addOnChoseListener(OnChoseListener onChoseListener) {
this.mListener = onChoseListener;
}
public void show() {
super.show();
getWindow().clearFlags(131080);
}
public void ping(String url) {
Observable.create((ObservableOnSubscribe<String>) emitter -> {
StringBuilder buffer = new StringBuilder();
String result = ""; // 结果集
Process ping;
try {
ping = Runtime.getRuntime().exec(
"ping -c 4 " + url);
int status = ping.waitFor(); // 状态
InputStream input = ping.getInputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(input));
String line = ""; // 长度
while ((line = in.readLine()) != null) {
buffer.append(line).append("\n");
}
if (status == 0) {
result = buffer.toString();
} else {
result = "网络不通";
}
emitter.onNext(result);
} catch (IOException | InterruptedException e) {
e.printStackTrace();
emitter.onError(new Throwable("程序错误"));
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<String>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
mTvStart.setEnabled(false);
mTvStart.setText("执行中...");
mTvInfo.setText("运行中...");
}
@Override
public void onNext(@NonNull String result) {
mTvInfo.setText(result);
mTvStart.setText("执行");
mTvStart.setEnabled(true);
}
@Override
public void onError(@NonNull Throwable e) {
mTvInfo.setText(e.getMessage());
mTvStart.setText("执行");
mTvStart.setEnabled(true);
}
@Override
public void onComplete() {
mTvInfo.setText("");
mTvStart.setText("执行");
mTvStart.setEnabled(true);
}
});
}
private void choseType(int i) {
OnChoseListener onChoseListener = this.mListener;
if (onChoseListener == null) {
return;
}
if (i == 1) {
onChoseListener.shareWeChart();
} else if (i == 2) {
onChoseListener.shareWeibo();
} else if (i == 3) {
onChoseListener.shareQQ();
} else if (i == 4) {
onChoseListener.checkUpdate();
} else if (i == 5) {
onChoseListener.showPing();
}
}
public static class DialogBuilder {
private boolean isCancelable;
private boolean isCommentImg;
private Context mContext;
private int mGravity = 80;
private boolean mIsBackable;
private boolean mIsShow;
private boolean mIsShowOther;
private OnChoseListener mListener;
public DialogBuilder(Context context) {
this.mContext = context;
}
public DialogBuilder setIscancelable(boolean z) {
this.isCancelable = z;
return this;
}
public DialogBuilder setIsBackCancelable(boolean z) {
this.mIsBackable = z;
return this;
}
public DialogBuilder setShowLocation(int i) {
this.mGravity = i;
return this;
}
public DialogBuilder setIsShowFile(boolean z) {
this.mIsShow = z;
return this;
}
public DialogBuilder setIsShowOther(boolean z) {
this.mIsShowOther = z;
return this;
}
public TopPingView build() {
return new TopPingView(this.mContext);
}
public DialogBuilder setIsShowPhoto(String str) {
if ("0".equals(str)) {
this.isCommentImg = false;
} else {
this.isCommentImg = true;
}
return this;
}
}
}

View File

@ -0,0 +1,47 @@
package com.tenlionsoft.baselib.core.widget.views;
import android.content.Context;
import android.content.res.TypedArray;
import android.text.TextPaint;
import android.util.AttributeSet;
import androidx.annotation.Nullable;
import com.tenlionsoft.baselib.R;
/**
* 作者: adam
* 日期: 2020/6/3 - 4:58 PM
* 邮箱: itgaojian@163.com
* 描述: 字体加粗
*/
public class TypeBoldTextView extends androidx.appcompat.widget.AppCompatTextView {
public TypeBoldTextView(Context context) {
this(context, null);
}
public TypeBoldTextView(Context context, @Nullable AttributeSet attrs) {
this(context, attrs, 0);
}
public TypeBoldTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.TypeBoldTextView, defStyleAttr, 0);
int type = a.getInteger(R.styleable.TypeBoldTextView_txt_is_bold, 0);
if (type == 0) {
setTextBold();
}
}
private void setTextBold() {
try {
TextPaint paint = this.getPaint();
if (paint != null) {
paint.setFakeBoldText(true);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

View File

@ -1,11 +1,9 @@
package com.tenlionsoft.baselib.utils;
import android.text.TextUtils;
import android.view.TextureView;
import com.google.gson.Gson;
import com.google.gson.JsonParseException;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.core.beans.ErrorBean;
import java.net.SocketTimeoutException;
@ -23,20 +21,27 @@ public class ExceptionHandler {
public static void handleException(Throwable throwable) {
if (throwable instanceof HttpException) {
HttpException ex = (HttpException) throwable;
ex.printStackTrace();
try {
String errBody = ex.response().errorBody().string();
LogUtils.e(ex.getMessage());
LogUtils.e(errBody);
if (!TextUtils.isEmpty(errBody)) {
ErrorBean errorBean = new Gson().fromJson(errBody, ErrorBean.class);
if (!TextUtils.isEmpty(errorBean.getMsg())) {
ToastUtils.show(errorBean.getMsg());
ToastUtils.show(errorBean.getMsg() + "(" + errorBean.getCode() + ")");
} else if (!TextUtils.isEmpty(errorBean.getMessage())) {
ToastUtils.show(errorBean.getMessage());
ToastUtils.show(errorBean.getMessage() + "(" + errorBean.getCode() + ")");
} else if (errBody.contains("404")) {
ToastUtils.show("无法连接到服务器,请检查网络连接后再试(404)");
} else if (errBody.contains("500")) {
ToastUtils.show("系统错误(500)");
} else {
ToastUtils.show("网络错误,请稍后重试");
ToastUtils.show("系统错误");
}
}
} catch (Exception e1) {
ToastUtils.show("网络错误,请稍后重试");
ToastUtils.show("网络错误,请稍后重试(500)");
e1.printStackTrace();
}
} else if (throwable instanceof JsonParseException) {
@ -44,7 +49,7 @@ public class ExceptionHandler {
} else if (throwable instanceof SocketTimeoutException) {
ToastUtils.show("网络连接超时");
} else {
ToastUtils.show("网络错误,请稍后重试");
ToastUtils.show("系统错误(500)");
}
}

View File

@ -1,5 +1,7 @@
package com.tenlionsoft.baselib.utils;
import android.content.Context;
import androidx.annotation.RawRes;
import java.io.BufferedOutputStream;
@ -33,18 +35,20 @@ public final class ResourceUtils {
* @param destFilePath The path of destination file.
* @return {@code true}: success<br>{@code false}: fail
*/
public static boolean copyFileFromAssets(final String assetsFilePath, final String destFilePath) {
public static boolean copyFileFromAssets(final String assetsFilePath, final String destFilePath, Context ctx) {
boolean res = true;
try {
String[] assets = Utils.getApp().getAssets().list(assetsFilePath);
String[] assets = ctx.getAssets().list(assetsFilePath);
if (assets.length > 0) {
for (String asset : assets) {
res &= copyFileFromAssets(assetsFilePath + "/" + asset, destFilePath + "/" + asset);
LogUtils.e("AssetsFile:" + asset);
res &= copyFileFromAssets(assetsFilePath + "/" + asset, destFilePath + "/" + asset, ctx);
}
} else {
LogUtils.e("开始拷贝:" + destFilePath + "====" + assetsFilePath);
res = writeFileFromIS(
destFilePath,
Utils.getApp().getAssets().open(assetsFilePath),
ctx.getAssets().open(assetsFilePath),
false
);
}

View File

@ -1,6 +1,31 @@
package com.tenlionsoft.baselib.utils;
import android.text.SpannableString;
import android.text.style.RelativeSizeSpan;
import java.math.BigDecimal;
import java.text.DecimalFormat;
public final class StringUtils {
/**
* 中文数字
*/
private static final String[] CN_NUM = {"", "", "", "", "", "", "", "", "", ""};
/**
* 中文数字单位
*/
private static final String[] CN_UNIT = {"", "", "", "", "", "", "", "", "亿", "", "", ""};
/**
* 特殊字符
*/
private static final String CN_NEGATIVE = "";
/**
* 特殊字符
*/
private static final String CN_POINT = "";
private StringUtils() {
throw new UnsupportedOperationException("u can't instantiate me...");
@ -182,4 +207,113 @@ public final class StringUtils {
}
return new String(chars);
}
/**
* int 中文数字
* 支持到int最大值
*
* @param intNum 要转换的整型数
* @return 中文数字
*/
public static String int2chineseNum(int intNum) {
StringBuffer sb = new StringBuffer();
boolean isNegative = false;
if (intNum < 0) {
isNegative = true;
intNum *= -1;
}
int count = 0;
while (intNum > 0) {
sb.insert(0, CN_NUM[intNum % 10] + CN_UNIT[count]);
intNum = intNum / 10;
count++;
}
if (isNegative)
sb.insert(0, CN_NEGATIVE);
return sb.toString().replaceAll("零[千百十]", "").replaceAll("零+万", "")
.replaceAll("零+亿", "亿").replaceAll("亿万", "亿零")
.replaceAll("零+", "").replaceAll("零$", "");
}
/**
* bigDecimal 中文数字
* 整数部分只支持到int的最大值
*
* @param bigDecimalNum 要转换的BigDecimal数
* @return 中文数字
*/
public static String bigDecimal2chineseNum(BigDecimal bigDecimalNum) {
if (bigDecimalNum == null)
return CN_NUM[0];
StringBuffer sb = new StringBuffer();
//将小数点后面的零给去除
String numStr = bigDecimalNum.abs().stripTrailingZeros().toPlainString();
String[] split = numStr.split("\\.");
String integerStr = int2chineseNum(Integer.parseInt(split[0]));
sb.append(integerStr);
//如果传入的数有小数则进行切割将整数与小数部分分离
if (split.length == 2) {
//有小数部分
sb.append(CN_POINT);
String decimalStr = split[1];
char[] chars = decimalStr.toCharArray();
for (int i = 0; i < chars.length; i++) {
int index = Integer.parseInt(String.valueOf(chars[i]));
sb.append(CN_NUM[index]);
}
}
//判断传入数字为正数还是负数
int signum = bigDecimalNum.signum();
if (signum == -1) {
sb.insert(0, CN_NEGATIVE);
}
return sb.toString();
}
/**
* 三位逗号分隔
*
* @return
*/
public static String intFenGeNumber(String number) {
StringBuffer sb = new StringBuffer(number);
for (int i = number.length() - 3; i >= 0; i -= 3) {
sb.insert(i, ",");
}
return sb.toString();
}
public static String numAddSepar(int num) {
DecimalFormat mFormat = new DecimalFormat("###,###,###,###");
String format = mFormat.format(num);
return format;
}
public static CharSequence numAddUnit(int num) {
if (num > 9999) {
//
DecimalFormat df2 = new DecimalFormat("0.00");
String format = df2.format((float) num / 10000);
String content = format + "";
SpannableString s = new SpannableString(content);
s.setSpan(new RelativeSizeSpan(0.6f), content.indexOf(""), content.length(),
0);
return s;
} else {
DecimalFormat mFormat = new DecimalFormat("###,###,###,###");
String format = mFormat.format(num);
return format;
}
}
}

View File

@ -89,6 +89,7 @@ public final class TimeUtils {
}
return result;
}
public static int getMonthDay(String time) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
try {
@ -107,6 +108,7 @@ public final class TimeUtils {
SimpleDateFormat format = new SimpleDateFormat("yyyy");
return format.format(date);
}
public static int getDayOfString(String time) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
try {
@ -120,6 +122,7 @@ public final class TimeUtils {
return -1;
}
}
/**
* Milliseconds to the formatted time string.
*
@ -130,6 +133,7 @@ public final class TimeUtils {
public static String millis2String(final long millis, @NonNull final DateFormat format) {
return format.format(new Date(millis));
}
/**
* 获取某年某月的最后天
*
@ -144,6 +148,7 @@ public final class TimeUtils {
int dayOfMonth = cal.getActualMaximum(Calendar.DATE);
return dayOfMonth;
}
/**
* Formatted time string to the milliseconds.
* <p>The pattern is {@code yyyy-MM-dd HH:mm:ss}.</p>
@ -160,6 +165,7 @@ public final class TimeUtils {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return format.format(date);
}
public static String dateToStringMonth(final Date date) {
SimpleDateFormat format = new SimpleDateFormat("MM");
return format.format(date);
@ -171,6 +177,12 @@ public final class TimeUtils {
return format.format(date);
}
public static String getCurrentChineseDate() {
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日");
return format.format(date);
}
public static String getCurrentMonth() {
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
@ -1802,7 +1814,7 @@ public final class TimeUtils {
}
private static final String[] CHINESE_ZODIAC =
{"", "", "", "", "", "", "", "", "", "", "", ""};
{"", "", "", "", "", "", "", "", "", "", "", ""};
/**
* Return the Chinese zodiac.
@ -1860,8 +1872,8 @@ public final class TimeUtils {
private static final int[] ZODIAC_FLAGS = {20, 19, 21, 21, 21, 22, 23, 23, 23, 24, 23, 22};
private static final String[] ZODIAC = {
"水瓶座", "双鱼座", "白羊座", "金牛座", "双子座", "巨蟹座",
"狮子座", "处女座", "天秤座", "天蝎座", "射手座", "魔羯座"
"水瓶座", "双鱼座", "白羊座", "金牛座", "双子座", "巨蟹座",
"狮子座", "处女座", "天秤座", "天蝎座", "射手座", "魔羯座"
};
/**
@ -1919,8 +1931,8 @@ public final class TimeUtils {
*/
public static String getZodiac(final int month, final int day) {
return ZODIAC[day >= ZODIAC_FLAGS[month - 1]
? month - 1
: (month + 10) % 12];
? month - 1
: (month + 10) % 12];
}
private static long timeSpan2Millis(final long timeSpan,

View File

@ -0,0 +1,17 @@
package com.tenlionsoft.baselib.utils;
import com.hjq.toast.Toaster;
public class ToastUtils {
public static void show(String content) {
Toaster.show(content);
}
public static void show(int content) {
Toaster.show(content);
}
public static void showLong(String content) {
Toaster.showLong(content);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 770 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 280 KiB

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/text_blue1" />
<corners android:radius="5dp" />
</shape>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#FFF0F4FD" />
<corners android:radius="5dp" />
</shape>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/gray_f6" />
<corners android:radius="3dp" />
</shape>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#16FF001E" />
<corners android:radius="3dp" />
</shape>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/transparent" />
</shape>

View File

@ -6,184 +6,265 @@
android:layout_height="match_parent"
android:orientation="vertical">
<!-- ===========标题============= -->
<RelativeLayout
android:id="@+id/rl_title_bar"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@color/main_theme"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingLeft="5dp"
android:paddingRight="5dp">
<ImageView
android:id="@+id/tv_app_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="5dp"
android:clickable="true"
android:focusable="true"
android:maxLength="8"
android:paddingLeft="5dp"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:scaleType="fitXY"
android:textColor="@color/white"
android:textSize="13sp"
android:visibility="visible"
tools:background="@drawable/ic_back_white"
tools:text=""
tools:visibility="visible" />
<RelativeLayout
android:id="@+id/rl_title_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_centerVertical="true">
android:layout_height="50dp"
android:background="@color/main_theme"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingLeft="5dp"
android:paddingRight="5dp"
tools:background="@color/white"
tools:visibility="visible">
<TextView
android:id="@+id/tv_app_title"
<ImageView
android:id="@+id/tv_app_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_centerVertical="true"
android:layout_marginLeft="5dp"
android:clickable="true"
android:ellipsize="end"
android:maxEms="12"
android:maxLines="1"
android:focusable="true"
android:maxLength="8"
android:paddingLeft="5dp"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:scaleType="fitXY"
android:textColor="@color/white"
android:textSize="18sp"
tools:text="页面标题" />
android:textSize="13sp"
android:visibility="visible"
tools:background="@drawable/ic_back_white"
tools:text=""
tools:visibility="visible" />
<LinearLayout
android:id="@+id/ll_app_search_content"
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:orientation="horizontal"
tools:visibility="visible">
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_centerVertical="true">
<RelativeLayout
<TextView
android:id="@+id/tv_app_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@color/transparent">
android:layout_centerInParent="true"
android:clickable="true"
android:ellipsize="end"
android:maxEms="12"
android:maxLines="1"
android:textColor="@color/white"
android:textSize="18sp"
tools:text="页面标题" />
<TextView
android:id="@+id/tv_app_options"
<LinearLayout
android:id="@+id/ll_only_search_bar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:orientation="horizontal"
android:visibility="gone">
<ImageView
android:id="@+id/iv_app_only_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_centerVertical="true"
android:layout_marginLeft="5dp"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_cir_down_white_16"
android:drawablePadding="5dp"
android:focusable="true"
android:maxLength="8"
android:paddingLeft="5dp"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:text="筛选"
android:scaleType="fitXY"
android:textColor="@color/white"
android:textSize="14sp"
android:visibility="visible" />
<com.tenlionsoft.baselib.core.widget.views.AfxTextView
android:id="@+id/tv_search_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:clickable="true"
android:focusable="true"
android:visibility="visible"
tools:text="" />
tools:background="@drawable/ic_back_black"
tools:text=""
tools:visibility="visible" />
</RelativeLayout>
<LinearLayout
android:id="@+id/ll_base_search"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_weight="1"
android:background="@drawable/shp_rectangle_white_5">
<EditText
android:id="@+id/et_base_search_content"
<LinearLayout
android:id="@+id/ll_base_only_search"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_weight="1"
android:background="@null"
android:drawableLeft="@drawable/ic_search_icon_gray"
android:drawablePadding="5dp"
android:hint="请输入查询的内容"
android:imeOptions="actionSearch"
android:padding="8dp"
android:singleLine="true"
android:textSize="12sp" />
android:background="@drawable/shp_rectangle_gray_f5_radius">
<EditText
android:id="@+id/et_base_only_search"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@null"
android:drawableLeft="@drawable/ic_search_icon_gray"
android:drawablePadding="5dp"
android:hint="请输入查询的关键字"
android:imeOptions="actionSearch"
android:padding="8dp"
android:singleLine="true"
android:textSize="12sp" />
<ImageView
android:id="@+id/iv_app_only_clear_search"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_gravity="center_vertical"
android:layout_marginRight="5dp"
android:src="@drawable/ic_clear_cir_gray" />
</LinearLayout>
<TextView
android:id="@+id/tv_only_control"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:clickable="true"
android:focusable="true"
android:textColor="@color/black"
android:textSize="15sp"
tools:text="操作" />
<ImageView
android:id="@+id/iv_app_clear_search"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_gravity="center_vertical"
android:layout_marginRight="5dp"
android:src="@drawable/ic_clear_cir_gray" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_app_search_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:orientation="horizontal"
tools:visibility="visible">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@color/transparent">
<TextView
android:id="@+id/tv_app_options"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:clickable="true"
android:drawableRight="@drawable/ic_arrow_cir_down_white_16"
android:drawablePadding="5dp"
android:focusable="true"
android:maxLength="8"
android:paddingLeft="5dp"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:text="筛选"
android:textColor="@color/white"
android:textSize="14sp"
android:visibility="visible" />
<com.tenlionsoft.baselib.core.widget.views.AfxTextView
android:id="@+id/tv_search_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:clickable="true"
android:focusable="true"
android:visibility="visible"
tools:text="" />
</RelativeLayout>
<LinearLayout
android:id="@+id/ll_base_search"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_weight="1"
android:background="@drawable/shp_rectangle_white_5"
tools:visibility="gone">
<EditText
android:id="@+id/et_base_search_content"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@null"
android:drawableLeft="@drawable/ic_search_icon_gray"
android:drawablePadding="5dp"
android:hint="请输入查询的关键字"
android:imeOptions="actionSearch"
android:padding="8dp"
android:singleLine="true"
android:textSize="12sp" />
<ImageView
android:id="@+id/iv_app_clear_search"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_gravity="center_vertical"
android:layout_marginRight="5dp"
android:src="@drawable/ic_clear_cir_gray" />
</LinearLayout>
<TextView
android:id="@+id/tv_do_search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:clickable="true"
android:focusable="true"
android:text="搜索"
android:textColor="@color/col_white_gray_press" />
<TextView
android:id="@+id/tv_cancel_search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:text="取消"
android:textColor="@color/col_white_gray_press" />
</LinearLayout>
</RelativeLayout>
<LinearLayout
android:id="@+id/ll_options"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:id="@+id/iv_app_search_icon"
android:layout_width="18dp"
android:layout_height="18dp"
android:scaleType="fitXY"
android:src="@drawable/ic_search_white" />
<TextView
android:id="@+id/tv_do_search"
android:id="@+id/tv_app_publish"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginLeft="10dp"
android:clickable="true"
android:focusable="true"
android:text="搜索"
android:textColor="@color/col_white_gray_press" />
<TextView
android:id="@+id/tv_cancel_search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:text="取消"
android:textColor="@color/col_white_gray_press" />
android:textColor="@color/col_white_gray_press"
android:textSize="15sp"
tools:text="操作" />
</LinearLayout>
</RelativeLayout>
<LinearLayout
android:id="@+id/ll_options"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:id="@+id/iv_app_search_icon"
android:layout_width="18dp"
android:layout_height="18dp"
android:scaleType="fitXY"
android:src="@drawable/ic_search_white" />
<TextView
android:id="@+id/tv_app_publish"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:clickable="true"
android:focusable="true"
android:textColor="@color/col_white_gray_press"
android:textSize="15sp"
tools:text="操作" />
</LinearLayout>
</RelativeLayout>
<!-- ===========内容============= -->
<RelativeLayout

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
@ -15,6 +14,17 @@
android:textColor="@color/black"
android:textSize="18sp" />
<TextView
android:id="@+id/tv_hint"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="检测到您的密码过于简单,请修改密码。"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:visibility="gone"
android:textColor="@color/red_ff"
android:textSize="@dimen/text_14" />
<LinearLayout
style="@style/item_gray"

View File

@ -89,7 +89,7 @@
<TextView
style="@style/item_title"
android:layout_weight="0.6"
android:text="是否重点青少年" />
android:text="是否重点青少年" />
<View style="@style/vertical_line" />

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:background="@drawable/shp_rectangle_white"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp"
android:text="网格员"
android:textColor="@color/black"
android:textSize="18sp" />
<LinearLayout style="@style/item_gray_vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_grids"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>

View File

@ -0,0 +1,43 @@
<?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="wrap_content"
android:background="@color/transparent"
android:orientation="vertical"
tools:background="@color/black"
tools:layout_margin="20dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/shape_rectangle_white_rim"
android:orientation="vertical">
<com.tenlionsoft.baselib.core.widget.views.CircleProgress
android:id="@+id/cp_progress"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_gravity="center"
android:layout_marginTop="20dp"
app:centerProgressTextColor="#FF6953"
app:centerProgressTextSize="20dp"
app:circleBgStrokeWidth="5dp"
app:isDrawCenterProgressText="true"
app:progressStrokeWidth="8dp"
app:targetTextColor="#999999"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="10dp"
android:text="软件正在升级中..."
android:textColor="@color/black"
android:textSize="@dimen/text_14" />
</LinearLayout>
</LinearLayout>

View File

@ -0,0 +1,132 @@
<?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"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/transparent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/shape_rectangle_white_rim"
android:orientation="vertical">
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="none">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:layout_marginRight="20dp"
android:orientation="vertical">
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="130dp"
android:background="@drawable/shape_rectangle_gray_border">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="10dp"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_info"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="left"
android:hint="运行结果"
android:padding="5dp"
android:textColor="@color/text_detail_24"
android:textColorHint="@color/hint_color"
android:textSize="12dp" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<com.tenlionsoft.baselib.core.widget.views.TypeFaceTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="网络地址:"
android:textColor="@color/app_title_9f_no"
android:textSize="16sp"
app:text_type_cus="3" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/shape_bottom_line"
android:minHeight="25dp">
<EditText
android:id="@+id/et_ip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/shape_bottom_line"
android:hint="请输入网络地址"
android:padding="5dp"
android:textColor="@color/text_detail_24"
android:textColorHint="@color/hint_color"
android:textSize="15sp" />
</LinearLayout>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="5dp"
android:background="@color/gray_line" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<com.tenlionsoft.baselib.core.widget.views.TypeFaceTextView
android:id="@+id/tv_cancel"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:clickable="true"
android:focusable="true"
android:gravity="center"
android:paddingTop="15dp"
android:paddingBottom="20dp"
android:text="结束"
android:textColor="@color/app_title_9f_no"
android:textSize="16sp"
app:text_type_cus="3" />
<com.tenlionsoft.baselib.core.widget.views.TypeFaceTextView
android:id="@+id/tv_confirm"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:clickable="true"
android:focusable="true"
android:gravity="center"
android:paddingTop="15dp"
android:paddingBottom="20dp"
android:text="开始"
android:textColor="@color/app_title_9f_no"
android:textSize="16sp"
app:text_type_cus="3" />
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</LinearLayout>
</LinearLayout>

View File

@ -19,7 +19,7 @@
android:layout_weight="1"
android:padding="10dp"
android:textColor="@color/black"
android:textSize="15sp"
android:textSize="14dp"
tools:text="测试" />
<CheckBox

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/ll_grid"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingLeft="10dp"
android:paddingTop="3dp"
android:paddingRight="10dp"
android:paddingBottom="3dp">
<TextView
android:id="@+id/tv_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="@color/black"
android:textSize="@dimen/text_14"
tools:text="姓名" />
<TextView
android:id="@+id/tv_phone"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="未录入"
android:textColor="@color/black"
android:textSize="@dimen/text_14" />
<ImageView
android:layout_width="15dp"
android:layout_height="15dp"
android:src="@drawable/ic_call_answer" />
</LinearLayout>

View File

@ -29,8 +29,10 @@
android:gravity="left|center"
android:hint="请输入人员身份证号码"
android:inputType="text"
android:imeOptions="actionSearch"
android:paddingLeft="5dp"
android:textColor="@color/black"
android:maxLines="1"
android:textSize="12sp"
tools:text="" />

View File

@ -146,7 +146,7 @@
<TextView
style="@style/item_title_23"
android:layout_gravity="center_vertical"
android:text="族" />
android:text="族" />
<TextView

View File

@ -0,0 +1,39 @@
<?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:id="@+id/ll_state_hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center"
android:orientation="vertical"
android:padding="20dp">
<com.jcodecraeer.xrecyclerview.progressindicator.AVLoadingIndicatorView
android:id="@+id/pb_state_loading"
android:layout_width="40dp"
android:layout_height="40dp"
app:indicator="BallSpinFadeLoader"
app:indicator_color="@color/text_blue" />
<ImageView
android:id="@+id/iv_state_data"
android:layout_width="80dp"
android:layout_height="60dp"
android:scaleType="fitXY"
tools:src="@drawable/ic_empty_data" />
<com.tenlionsoft.baselib.core.widget.views.TypeFaceTextView
android:id="@+id/tv_state_hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:clickable="true"
android:textColor="@color/gray_text"
android:textSize="@dimen/text_14"
tools:text="加载数据失败" />
</LinearLayout>

View File

@ -453,7 +453,7 @@
<item name="android:textColor">@color/black</item>
<item name="android:gravity">center_vertical</item>
<item name="android:textSize">14sp</item>
<item name="android:drawableRight">@drawable/ic_arrow_right_file_picker</item>
<item name="android:drawableRight">@drawable/ic_arrow_sort_gray</item>
</style>
<style name="item_title">
@ -508,7 +508,7 @@
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_weight">1</item>
<item name="android:drawablePadding">5dp</item>
<item name="android:drawableRight">@drawable/ic_arrow_gray_down</item>
<item name="android:drawableRight">@drawable/ic_arrow_sort_gray</item>
<item name="android:gravity">right</item>
<item name="android:padding">5dp</item>
<item name="android:layout_gravity">center_vertical</item>

View File

@ -453,7 +453,7 @@
<item name="android:textColor">@color/black</item>
<item name="android:gravity">center_vertical</item>
<item name="android:textSize">14sp</item>
<item name="android:drawableRight">@drawable/ic_arrow_right_file_picker</item>
<item name="android:drawableRight">@drawable/ic_arrow_sort_gray</item>
</style>
<style name="item_title">
@ -508,7 +508,7 @@
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_weight">1</item>
<item name="android:drawablePadding">5dp</item>
<item name="android:drawableRight">@drawable/ic_arrow_gray_down</item>
<item name="android:drawableRight">@drawable/ic_arrow_sort_gray</item>
<item name="android:gravity">right</item>
<item name="android:padding">5dp</item>
<item name="android:layout_gravity">center_vertical</item>

View File

@ -21,6 +21,7 @@
<attr name="iconRight" format="reference" />
<attr name="duration_max" format="integer" />
<attr name="text_type_cus" format="integer" />
<attr name="txt_is_bold" format="integer" />
<declare-styleable name="JCameraView">
<attr name="iconSize" />
<attr name="iconMargin" />
@ -32,6 +33,11 @@
<!--属性集合-->
<declare-styleable name="TypeFaceTextView">
<attr name="text_type_cus" />
</declare-styleable>
<declare-styleable name="TypeBoldTextView">
<attr name="txt_is_bold" />
</declare-styleable>
<declare-styleable name="DiffuseView">
<attr name="diffuse_color" />
@ -187,7 +193,73 @@
</declare-styleable>
<declare-styleable name="PageNavigationView">
<attr name="NavigationPaddingTop" format="dimension"/>
<attr name="NavigationPaddingBottom" format="dimension"/>
<attr name="NavigationPaddingTop" format="dimension" />
<attr name="NavigationPaddingBottom" format="dimension" />
</declare-styleable>
<!-- <declare-styleable name="TopBar">-->
<!-- &lt;!&ndash;中间title的自定义属性&ndash;&gt;-->
<!-- <attr name="mTitle" format="string"></attr>-->
<!-- <attr name="mTitleSize" format="dimension"></attr>-->
<!-- <attr name="mTitleColor" format="color"></attr>-->
<!-- &lt;!&ndash;左边图片的自发定义属性&ndash;&gt;-->
<!-- <attr name="mLeftBackGround" format="reference"></attr>-->
<!-- &lt;!&ndash;右边TextView的自定义属性&ndash;&gt;-->
<!-- <attr name="rightTitle" format="string"></attr>-->
<!-- <attr name="rightTitleSize" format="dimension"></attr>-->
<!-- <attr name="rightTextColor" format="color"></attr>-->
<!-- </declare-styleable>-->
<!-- &lt;!&ndash;Xiaomi&ndash;&gt;-->
<!-- <declare-styleable name="XiaoMiStep">-->
<!-- &lt;!&ndash;背景&ndash;&gt;-->
<!-- <attr name="backGroundColor" format="color"></attr>-->
<!-- &lt;!&ndash;最外层圆&ndash;&gt;-->
<!-- <attr name="outerCircleColor" format="color"></attr>-->
<!-- &lt;!&ndash;外层圆上的小圆点颜色&ndash;&gt;-->
<!-- <attr name="outerDotColor" format="color"></attr>-->
<!-- &lt;!&ndash;竖线的颜色&ndash;&gt;-->
<!-- <attr name="lineColor" format="color"></attr>-->
<!-- &lt;!&ndash;圆环的颜色&ndash;&gt;-->
<!-- <attr name="ringColor" format="color"></attr>-->
<!-- &lt;!&ndash;步数颜色&ndash;&gt;-->
<!-- <attr name="stepNumColor" format="color"></attr>-->
<!-- &lt;!&ndash;其他字的颜色&ndash;&gt;-->
<!-- <attr name="othetTextColor" format="color"></attr>-->
<!-- </declare-styleable>-->
<!--CircleProgress-->
<declare-styleable name="CircleProgressBarView">
<attr name="circleBgStrokeWidth" format="dimension" />
<attr name="progressStrokeWidth" format="dimension" />
<attr name="circleBgColor" format="color" />
<attr name="progressColor" format="color" />
<attr name="circleAnimationDuration" format="integer" />
<attr name="isDrawCenterProgressText" format="boolean" />
<attr name="centerProgressTextColor" format="color" />
<attr name="centerProgressTextSize" format="dimension" />
<attr name="targetNumColor" format="color" />
<attr name="targetNumSize" format="dimension" />
<attr name="targetTextColor" format="color" />
<attr name="targetTextSize" format="integer" />
<attr name="lineWidth" format="integer" />
<attr name="lineColor" format="color" />
<attr name="target_text" format="string" />
<attr name="round_color" format="color" />
<attr name="round_progress_color" format="color" />
<attr name="round_width" format="dimension" />
<attr name="max_" format="integer" />
<attr name="text_isDisplayable" format="boolean" />
<attr name="style_">
<enum name="STROKE" value="0" />
<enum name="FILL" value="1" />
</attr>
</declare-styleable>
</resources>

View File

@ -38,12 +38,14 @@
<!--textColor-->
<color name="text_detail_24">#242424</color>
<color name="text_yellow">#CA5500</color>
<color name="text_yellow_F1">#F1C600</color>
<color name="text_green">#27BA0D</color>
<color name="text_gray">#8E8E8E</color>
<color name="text_gray_tr">#bb8E8E8E</color>
<color name="text_gray01">#535353</color>
<color name="text_gray02">#7C7C7C</color>
<color name="text_blue">#00A6FE</color>
<color name="blue_shallow_30">#BDCBF1</color>
<color name="text_blue_tr">#3300A6FE</color>
<color name="blue_line">#00BEF7</color>
<color name="text_80_gray">#808080</color>
@ -71,6 +73,7 @@
<color name="black">#000000</color>
<!--考勤详情表格颜色-->
<color name="gray_line">#FBFBFB</color>
<color name="gray_6f">#6F6F6F</color>
<color name="gray_line_deep">#EBEBEB</color>
<color name="gray_line_shallow">#F3F1F1</color>
<!-- 透明颜色 -->
@ -121,9 +124,13 @@
<color name="gray_dd">#E7E7E7</color>
<color name="gray_db">#D8D8D8</color>
<color name="red_ff">#FF0000</color>
<color name="red_1E">#82FF001E</color>
<color name="red_37">#F37575</color>
<color name="orange">#FF6300</color>
<color name="home_background">#f5f5f5</color>
<color name="gray_text">#777777</color>
<color name="gray_text_8A">#8A8A8A</color>
<color name="gray_text_89">#898989</color>
<color name="my_blue_bg">#ff7271</color>
<color name="button_bg">#8bc6f7</color>
<color name="sifazhuanti_bg">#f4f4f4</color>
@ -162,6 +169,7 @@
<color name="gray_ef">#efeff4</color>
<color name="line">#efefef</color>
<color name="gray_f5">#F5F5F5</color>
<color name="gray_f6">#F6F6F6</color>
<color name="gray_f7">#F7F7F7</color>
<color name="gray_tr_hint">#aa000000</color>
@ -202,11 +210,16 @@
<!--学习考试-->
<!-- 白色 -->
<color name="blue">#99B1DC</color>
<color name="text_blue_52">#527FFF</color>
<color name="text_blue_79">#79D4FF</color>
<color name="btn_yellow">#AAFD9521</color>
<color name="btn_blue">#AA1BAAE2</color>
<color name="btn_green">#AA37B54A</color>
<color name="btn_purple">#AA6B6FD2</color>
<color name="col_main_theme">#216cd8</color>
<color name="label_green">#03C591</color>
<color name="label_blue">#2579FB</color>
<color name="label_yellow">#FF9A05</color>
<color name="colorDarkOrange">#d84315</color>
</resources>

View File

@ -7,6 +7,7 @@
<dimen name="text_21">21dp</dimen>
<dimen name="text_22">22dp</dimen>
<dimen name="text_14">14dp</dimen>
<dimen name="text_12">12dp</dimen>
<dimen name="text_15">15dp</dimen>
<dimen name="text_16">16dp</dimen>
<dimen name="material_bottom_navigation_active_item_max_width">168dp</dimen>
@ -25,10 +26,10 @@
<dimen name="margin_padding_small">8dp</dimen>
<dimen name="margin_padding_min">4dp</dimen>
<dimen name="text_primary">16sp</dimen>
<dimen name="text_small">14sp</dimen>
<dimen name="text_big">20sp</dimen>
<dimen name="text_min">12sp</dimen>
<dimen name="text_primary">16dp</dimen>
<dimen name="text_small">14dp</dimen>
<dimen name="text_big">20dp</dimen>
<dimen name="text_min">12dp</dimen>
<dimen name="divider_height">0.5dp</dimen>

View File

@ -344,6 +344,20 @@
<item name="android:padding">2dp</item>
</style>
<style name="item_container_ver">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_marginLeft">18dp</item>
<item name="android:layout_marginTop">5dp</item>
<item name="android:layout_marginRight">18dp</item>
<item name="android:layout_marginBottom">5dp</item>
<item name="android:background">@drawable/shape_rectangle_white</item>
<item name="android:orientation">vertical</item>
<item name="android:padding">2dp</item>
</style>
<style name="item_gray_vertical">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
@ -453,7 +467,7 @@
<item name="android:textColor">@color/black</item>
<item name="android:gravity">center_vertical</item>
<item name="android:textSize">14sp</item>
<item name="android:drawableRight">@drawable/ic_arrow_right_file_picker</item>
<item name="android:drawableRight">@drawable/ic_arrow_sort_gray</item>
</style>
<style name="item_title">
@ -508,7 +522,7 @@
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_weight">1</item>
<item name="android:drawablePadding">5dp</item>
<item name="android:drawableRight">@drawable/ic_arrow_gray_down</item>
<item name="android:drawableRight">@drawable/ic_arrow_sort_gray</item>
<item name="android:gravity">right</item>
<item name="android:padding">5dp</item>
<item name="android:layout_gravity">center_vertical</item>

View File

@ -1,7 +1,7 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext.kotlin_version = '1.4.0-rc'
ext.kotlin_version = '1.6.0'
repositories {
google()
jcenter()
@ -13,7 +13,7 @@ buildscript {
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'
classpath "com.alibaba:arouter-register:1.0.2"
classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.6'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
@ -45,6 +45,9 @@ allprojects {
maven {
url "https://jitpack.io"
}
maven{
url "https://repo1.maven.org/maven2"
}
}
}
@ -55,8 +58,8 @@ ext {
gCompileSdkVersion = 30
gMinSdkVersion = 21
gTargetSdkVersion = 30
gVersionCode = 10
gVersionName = '1.0.9'
gVersionCode = 17
gVersionName = '1.1.6'
gBuildToolsVersion = "29.0.2"
// gVersionCode=26
// gVersionName='1.3.0'
@ -128,4 +131,5 @@ ext {
magicIndicator = '1.7.0'
//
mpAndroidChart = 'v3.1.0'
gAskPermissions='18.5'
}

View File

@ -39,8 +39,8 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'com.google.android.material:material:1.2.1'
implementation project(':baselib')
implementation project(':modulemap')
implementation project(':commonmodule')
implementation project(':modulemap')
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'//
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'

View File

@ -15,7 +15,7 @@ import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.github.promeg.pinyinhelper.Pinyin;
import com.gyf.immersionbar.ImmersionBar;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tengshisoft.chatmodule.R;
import com.tengshisoft.chatmodule.R2;
import com.tengshisoft.chatmodule.fragments.OftenContactFragment;

View File

@ -11,7 +11,7 @@ import android.widget.ProgressBar;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.gyf.immersionbar.ImmersionBar;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tengshisoft.chatmodule.R;
import com.tengshisoft.chatmodule.R2;

View File

@ -16,9 +16,10 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.RequiresApi;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.hjq.toast.ToastUtils;
import com.huawei.ecterminalsdk.base.TsdkCallInfo;
import com.huawei.ecterminalsdk.models.TsdkCommonResult;
import com.huawei.ecterminalsdk.models.call.TsdkCall;
@ -57,6 +58,7 @@ import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.utils.AppUtils;
import com.tenlionsoft.baselib.utils.EncryptedSPTool;
import com.tenlionsoft.baselib.utils.LogUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
@ -65,7 +67,6 @@ import org.jetbrains.annotations.NotNull;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import androidx.annotation.RequiresApi;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.Unbinder;
@ -134,12 +135,12 @@ public class AddressUserDetailActivity extends BaseActivity implements LoginView
private long mVoiceTime;
private long mVideoTime;
private String[] mActions = new String[]{BroadcastConstant.ACTION_GET_TEMP_USER_RESULT,
BroadcastConstant.ACTION_CALL_END, BroadcastConstant.ACTION_LOGIN_SUCCESS,
BroadcastConstant.ACTION_LOGIN_FAILED, BroadcastConstant.ACTION_AUTH_FAILED,
BroadcastConstant.ACTION_FIRST_CHANGE_PWD,
BroadcastConstant.ACTION_CONF_CALL_FAILED,
BroadcastConstant.ACTION_CLOSE_ACTIVITY,
BroadcastConstant.ACTION_NET_WORK_IS_CONNECT};
BroadcastConstant.ACTION_CALL_END, BroadcastConstant.ACTION_LOGIN_SUCCESS,
BroadcastConstant.ACTION_LOGIN_FAILED, BroadcastConstant.ACTION_AUTH_FAILED,
BroadcastConstant.ACTION_FIRST_CHANGE_PWD,
BroadcastConstant.ACTION_CONF_CALL_FAILED,
BroadcastConstant.ACTION_CLOSE_ACTIVITY,
BroadcastConstant.ACTION_NET_WORK_IS_CONNECT};
private MsgHandler mMsgHandler;
private MsgReceiver mMsgReceiver;
private long mClickTime;
@ -159,46 +160,46 @@ public class AddressUserDetailActivity extends BaseActivity implements LoginView
mDeptId = getIntent().getStringExtra("deptId");
mFullScreenDialog = new FullScreenDialog(mActivity);
Observable.create((ObservableOnSubscribe<Integer>) emitter -> {
try {
mDatabase = AppDatabase.getInstance(mActivity);
mDeptDao = mDatabase.getDeptDao();
mUserDao = mDatabase.getUserDao();
mOftenContactDao = mDatabase.getOftenContactDao();
mUserByUserId = mUserDao.getUserByUserId(mId);
mDeptById = mDeptDao.getDeptById(mDeptId);
mOftenContactByUserId = mOftenContactDao.getOftenContactByUserId(mId);
emitter.onNext(1);
} catch (Exception e) {
emitter.onError(new Exception("load err"));
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<Integer>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull Integer integer) {
if (mUserByUserId != null) {
setDataToView();
} else {
refreshView(STATE_LOAD_EMPTY);
try {
mDatabase = AppDatabase.getInstance(mActivity);
mDeptDao = mDatabase.getDeptDao();
mUserDao = mDatabase.getUserDao();
mOftenContactDao = mDatabase.getOftenContactDao();
mUserByUserId = mUserDao.getUserByUserId(mId);
mDeptById = mDeptDao.getDeptById(mDeptId);
mOftenContactByUserId = mOftenContactDao.getOftenContactByUserId(mId);
emitter.onNext(1);
} catch (Exception e) {
emitter.onError(new Exception("load err"));
}
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<Integer>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
@Override
public void onError(@NonNull Throwable e) {
refreshView(STATE_LOAD_ERROR);
}
}
@Override
public void onComplete() {
@Override
public void onNext(@NonNull Integer integer) {
if (mUserByUserId != null) {
setDataToView();
} else {
refreshView(STATE_LOAD_EMPTY);
}
}
}
});
@Override
public void onError(@NonNull Throwable e) {
refreshView(STATE_LOAD_ERROR);
}
@Override
public void onComplete() {
}
});
mLlAddContact.setOnClickListener(v -> {
if (mOftenContactByUserId == null) {
@ -228,10 +229,10 @@ public class AddressUserDetailActivity extends BaseActivity implements LoginView
}
});
mLlMsg.setOnClickListener(v -> ARouter.getInstance()
.build(PathConfig.PATH_MODULE_CHAT_CHAT)
.withString("to", mUserByUserId.getUserId())
.withString("toName", mUserByUserId.getUserName())
.navigation());
.build(PathConfig.PATH_MODULE_CHAT_CHAT)
.withString("to", mUserByUserId.getUserId())
.withString("toName", mUserByUserId.getUserName())
.navigation());
initViews();
}
@ -256,7 +257,8 @@ public class AddressUserDetailActivity extends BaseActivity implements LoginView
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (!TextUtils.isEmpty(UserLgUtils.getHwAccount())) {
doShowCallDialog();
LoginMangerV2.getInstance().checkLogin(UserLgUtils.getHwAccount(), UserLgUtils.getHwPwd(), AddressUserDetailActivity.this);
LoginMangerV2.getInstance().checkLogin(UserLgUtils.getHwAccount(),
UserLgUtils.getHwPwd(), AddressUserDetailActivity.this);
sendNotifyLogin();
} else {
// 通知对方,手机不支持通话
@ -292,7 +294,8 @@ public class AddressUserDetailActivity extends BaseActivity implements LoginView
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (!TextUtils.isEmpty(UserLgUtils.getHwAccount())) {
doShowCallDialog();
LoginMangerV2.getInstance().checkLogin(UserLgUtils.getHwAccount(), UserLgUtils.getHwPwd(), AddressUserDetailActivity.this);
LoginMangerV2.getInstance().checkLogin(UserLgUtils.getHwAccount(),
UserLgUtils.getHwPwd(), AddressUserDetailActivity.this);
sendNotifyLogin();
} else {
// 通知对方,手机不支持通话
@ -318,7 +321,9 @@ public class AddressUserDetailActivity extends BaseActivity implements LoginView
//主动拨打
LogUtils.d("通知对方登录");
Intent intent = new Intent();
MessageBean msgBean = buildMsgBean("", mUserByUserId.getUserId(), UserLgUtils.getUserId(), UserLgUtils.getUserId(), MsgTypeStateEnum.MSG_TO_OTHER_VOICE, UserLgUtils.getName() + "想要与您进行通话", StatusCode.MSG_TYPE_NOTIFY_LOGIN);
MessageBean msgBean = buildMsgBean("", mUserByUserId.getUserId(), UserLgUtils.getUserId(),
UserLgUtils.getUserId(), MsgTypeStateEnum.MSG_TO_OTHER_VOICE, UserLgUtils.getName() + "想要与您进行通话",
StatusCode.MSG_TYPE_NOTIFY_LOGIN);
intent.putExtra("bean", msgBean);
intent.setAction(PathConfig.ACTION_NOTIFY_CONTACT_LOGIN);
sendBroadcast(intent);
@ -341,7 +346,8 @@ public class AddressUserDetailActivity extends BaseActivity implements LoginView
/**
* 构建
*/
private MessageBean buildMsgBean(String id, String toId, String formId, String formName, int msgType, String msg, int type) {
private MessageBean buildMsgBean(String id, String toId, String formId, String formName, int msgType, String msg,
int type) {
MessageBean bean = new MessageBean();
String uuid = "";
if (!TextUtils.isEmpty(id)) {
@ -374,12 +380,16 @@ public class AddressUserDetailActivity extends BaseActivity implements LoginView
}
mTvUserName.setText(mUserByUserId.getUserName());
mTvPhone.setText("联系电话:" + mUserByUserId.getUserPhone());
mTvEmail.setText("邮箱:" + (TextUtils.isEmpty(mUserByUserId.getUserEmail()) ? "未录入" : mUserByUserId.getUserEmail()));
mTvEmail.setText("邮箱:" + (TextUtils.isEmpty(mUserByUserId.getUserEmail()) ? "未录入" :
mUserByUserId.getUserEmail()));
if (mDeptById != null) {
mTvDeptDept.setText("部门:" + (TextUtils.isEmpty(mDeptById.getDepartmentName()) ? "未录入" : mDeptById.getDepartmentName()));
mTvDeptDept.setText("部门:" + (TextUtils.isEmpty(mDeptById.getDepartmentName()) ? "未录入" :
mDeptById.getDepartmentName()));
mTvDept.setText((TextUtils.isEmpty(mDeptById.getDepartmentName()) ? "未录入" : mDeptById.getDepartmentName()));
mTvDeptPhone.setText("部门电话:" + (TextUtils.isEmpty(mDeptById.getDepartmentTel()) ? "未录入" : mDeptById.getDepartmentTel()));
mTvDeptAddress.setText("部门地址:" + (TextUtils.isEmpty(mDeptById.getDepartmentAddress()) ? "未录入" : mDeptById.getDepartmentAddress()));
mTvDeptPhone.setText("部门电话:" + (TextUtils.isEmpty(mDeptById.getDepartmentTel()) ? "未录入" :
mDeptById.getDepartmentTel()));
mTvDeptAddress.setText("部门地址:" + (TextUtils.isEmpty(mDeptById.getDepartmentAddress()) ? "未录入" :
mDeptById.getDepartmentAddress()));
}
}
@ -563,7 +573,7 @@ public class AddressUserDetailActivity extends BaseActivity implements LoginView
mDialog.dismiss();
}
DialogUtil.tipsDialog(mActivity, getString(R.string.cloudLink_contacts_networkError),
getString(R.string.cloudLink_meeting_iKnow));
getString(R.string.cloudLink_meeting_iKnow));
}
@Override
@ -691,7 +701,7 @@ public class AddressUserDetailActivity extends BaseActivity implements LoginView
CloudLinkDialog hintDialog = new CloudLinkDialog(mActivity);
hintDialog.setOnlyYes(true);
hintDialog.setYes(getString(R.string.cloudLink_sure), null,
hintDialog::dismiss);
hintDialog::dismiss);
hintDialog.setStr_message(hintMsg, null);
hintDialog.show();
}
@ -805,91 +815,93 @@ public class AddressUserDetailActivity extends BaseActivity implements LoginView
* @param obj 状态值
*/
private void handlerLoginFailed(Object obj) {
this.loginFail();
String str = (String) obj;
int code = Integer.parseInt(str.split("-")[0]);
String index = str.split("-")[1];
String msgHint = "";
switch (code) {
case TSDKErrorConstant.CALL_ERROR_CODE_50331749:
// 服务器返回禁止
runOnUiThread(() -> {
AddressUserDetailActivity.this.loginFail();
String str = (String) obj;
int code = Integer.parseInt(str.split("-")[0]);
String index = str.split("-")[1];
String msgHint = "";
switch (code) {
case TSDKErrorConstant.CALL_ERROR_CODE_50331749:
// 服务器返回禁止
// if (LoginActivityV2.isFirstChangePwd) {
// msgHint = getString(R.string.cloudLink_login_changePwdSuccessToLogin);
// LoginActivityV2.isFirstChangePwd = false;
// } else {
msgHint = getString(R.string.cloudLink_login_loginPassError);
msgHint = getString(R.string.cloudLink_login_loginPassError);
// }
break;
case TSDKErrorConstant.CALL_ERROR_CODE_50331659:
// 网络接入错误
case TSDKErrorConstant.CALL_ERROR_CODE_50331754:
// 请求超时
case TSDKErrorConstant.LOGIN_ERROR_CODE_33554441:
// 超时
msgHint = getString(R.string.cloudLink_login_loginTimeOut);
break;
case TSDKErrorConstant.CALL_ERROR_CODE_50331762:
// 临时失效
msgHint = getString(R.string.cloudLink_login_loginRepeat);
break;
case TSDKErrorConstant.LOGIN_ERROR_CODE_33554448:
// 服务器异常
msgHint = getString(R.string.cloudLink_login_serviceError);
break;
case TSDKErrorConstant.LOGIN_ERROR_CODE_33554449:
// 账号被锁定
case TSDKErrorConstant.LOGIN_ERROR_CODE_33554467:
// 用户已被锁定
msgHint = getString(R.string.cloudLink_login_accountLocked);
break;
case TSDKErrorConstant.LOGIN_ERROR_CODE_33554457:
// 老密码错误
if (index.equals(ConstantsV2.LOGIN_STATUS_CODE_0)) {
break;
case TSDKErrorConstant.CALL_ERROR_CODE_50331659:
// 网络接入错误
case TSDKErrorConstant.CALL_ERROR_CODE_50331754:
// 请求超时
case TSDKErrorConstant.LOGIN_ERROR_CODE_33554441:
// 超时
msgHint = getString(R.string.cloudLink_login_loginTimeOut);
break;
case TSDKErrorConstant.CALL_ERROR_CODE_50331762:
// 临时失效
msgHint = getString(R.string.cloudLink_login_loginRepeat);
break;
case TSDKErrorConstant.LOGIN_ERROR_CODE_33554448:
// 服务器异常
msgHint = getString(R.string.cloudLink_login_serviceError);
break;
case TSDKErrorConstant.LOGIN_ERROR_CODE_33554449:
// 账号被锁定
case TSDKErrorConstant.LOGIN_ERROR_CODE_33554467:
// 用户已被锁定
msgHint = getString(R.string.cloudLink_login_accountLocked);
}
break;
case TSDKErrorConstant.LOGIN_ERROR_CODE_33554454:
// 查询服务器地址失败
msgHint = getString(R.string.cloudLink_login_searchServerFail);
break;
case TSDKErrorConstant.LOGIN_ERROR_CODE_33554466:
// 用户名或者密码错误
if (index.equals(ConstantsV2.LOGIN_STATUS_CODE_0)) {
msgHint = getString(R.string.cloudLink_mine_loginFailZero);
} else {
msgHint = getString(R.string.cloudLink_mine_loginFailIndex1) +
index + getString(R.string.cloudLink_mine_loginFailIndex2);
}
break;
case TSDKErrorConstant.LOGIN_ERROR_CODE_33554482:
// 账号未激活
msgHint = getString(R.string.cloudLink_login_err_32);
break;
case TSDKErrorConstant.LOGIN_ERROR_CODE_33554444:
// DNS解析异常
msgHint = getString(R.string.cloudLink_dnsError);
break;
case TSDKErrorConstant.LOGIN_ERROR_CODE_33554487:
// 账号已过期
msgHint = getString(R.string.cloudLink_login_error_2037);
break;
case TSDKErrorConstant.LOGIN_ERROR_CODE_33554470:
// 网络异常
case TSDKErrorConstant.CALL_ERROR_CODE_50331817:
// SIP TCP建立失败
case TSDKErrorConstant.LOGIN_ERROR_CODE_33554446:
// 鉴权失败
default:
msgHint = getString(R.string.cloudLink_login_loginFail);
break;
}
if (!TextUtils.isEmpty(msgHint)) {
CloudLinkDialog dialogHint = new CloudLinkDialog(mActivity);
dialogHint.setOnlyYes(true);
dialogHint.setYes(getString(R.string.cloudLink_sure), null, dialogHint::dismiss);
dialogHint.setStr_message(msgHint, null);
dialogHint.show();
}
break;
case TSDKErrorConstant.LOGIN_ERROR_CODE_33554457:
// 老密码错误
if (index.equals(ConstantsV2.LOGIN_STATUS_CODE_0)) {
msgHint = getString(R.string.cloudLink_login_accountLocked);
}
break;
case TSDKErrorConstant.LOGIN_ERROR_CODE_33554454:
// 查询服务器地址失败
msgHint = getString(R.string.cloudLink_login_searchServerFail);
break;
case TSDKErrorConstant.LOGIN_ERROR_CODE_33554466:
// 用户名或者密码错误
if (index.equals(ConstantsV2.LOGIN_STATUS_CODE_0)) {
msgHint = getString(R.string.cloudLink_mine_loginFailZero);
} else {
msgHint = getString(R.string.cloudLink_mine_loginFailIndex1) +
index + getString(R.string.cloudLink_mine_loginFailIndex2);
}
break;
case TSDKErrorConstant.LOGIN_ERROR_CODE_33554482:
// 账号未激活
msgHint = getString(R.string.cloudLink_login_err_32);
break;
case TSDKErrorConstant.LOGIN_ERROR_CODE_33554444:
// DNS解析异常
msgHint = getString(R.string.cloudLink_dnsError);
break;
case TSDKErrorConstant.LOGIN_ERROR_CODE_33554487:
// 账号已过期
msgHint = getString(R.string.cloudLink_login_error_2037);
break;
case TSDKErrorConstant.LOGIN_ERROR_CODE_33554470:
// 网络异常
case TSDKErrorConstant.CALL_ERROR_CODE_50331817:
// SIP TCP建立失败
case TSDKErrorConstant.LOGIN_ERROR_CODE_33554446:
// 鉴权失败
default:
msgHint = getString(R.string.cloudLink_login_loginFail);
break;
}
if (!TextUtils.isEmpty(msgHint)) {
CloudLinkDialog dialogHint = new CloudLinkDialog(mActivity);
dialogHint.setOnlyYes(true);
dialogHint.setYes(getString(R.string.cloudLink_sure), null, dialogHint::dismiss);
dialogHint.setStr_message(msgHint, null);
dialogHint.show();
}
});
}
/**
@ -905,7 +917,7 @@ public class AddressUserDetailActivity extends BaseActivity implements LoginView
ToastUtils.show(getString(R.string.cloudLink_login_pwd_expire));
} else if (number != ConstantsV2.LOGIN_STATUS_CODE_255) {
ToastUtils.show(getString(R.string.cloudLink_login_pwd_data)
+ number + getString(R.string.cloudLink_login_pwd_data_2));
+ number + getString(R.string.cloudLink_login_pwd_data_2));
}
}
}
@ -965,34 +977,34 @@ public class AddressUserDetailActivity extends BaseActivity implements LoginView
private void startListenerTel() {
LogUtils.e("监听是否为空===" + mTelListener);
Observable.interval(1, TimeUnit.SECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<Long>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
LogUtils.e("开始监听对方");
mTelListener = d;
}
@Override
public void onNext(@NonNull Long aLong) {
if (!TextUtils.isEmpty(BaseAppContext.getInstance().getOtherUserTel())) {
LogUtils.e("监听获取到对方号码===" + BaseAppContext.getInstance().getOtherUserTel());
mTelListener.dispose();
mTelListener = null;
doCall();
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<Long>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
LogUtils.e("开始监听对方");
mTelListener = d;
}
}
@Override
public void onError(@NonNull Throwable e) {
@Override
public void onNext(@NonNull Long aLong) {
if (!TextUtils.isEmpty(BaseAppContext.getInstance().getOtherUserTel())) {
LogUtils.e("监听获取到对方号码===" + BaseAppContext.getInstance().getOtherUserTel());
mTelListener.dispose();
mTelListener = null;
doCall();
}
}
}
@Override
public void onError(@NonNull Throwable e) {
@Override
public void onComplete() {
LogUtils.e("结束监听对方");
}
});
}
@Override
public void onComplete() {
LogUtils.e("结束监听对方");
}
});
}
/**
@ -1023,7 +1035,9 @@ public class AddressUserDetailActivity extends BaseActivity implements LoginView
private void sendNotifyLogout() {
BaseAppContext.getInstance().setOtherUserTel("");
if (isRunning()) {
MessageBean bean = buildMsgBean("", mUserByUserId.getUserId(), UserLgUtils.getUserId(), UserLgUtils.getUserId(), MsgTypeStateEnum.MSG_TO_OTHER_IMG, "退出登录", StatusCode.MSG_TYPE_NOTIFY_LOGOUT);
MessageBean bean = buildMsgBean("", mUserByUserId.getUserId(), UserLgUtils.getUserId(),
UserLgUtils.getUserId(), MsgTypeStateEnum.MSG_TO_OTHER_IMG, "退出登录",
StatusCode.MSG_TYPE_NOTIFY_LOGOUT);
Intent intent = new Intent();
intent.setAction(PathConfig.ACTION_MSG_CHAT_SEND);
intent.putExtra("bean", bean);
@ -1036,7 +1050,7 @@ public class AddressUserDetailActivity extends BaseActivity implements LoginView
LogUtils.e("广播返回拨打指令=" + System.currentTimeMillis());
if (!MeetingController.getInstance().isHaveNet()) {
DialogUtil.tipsDialog(this, getString(R.string.cloudLink_contacts_networkError),
getString(R.string.cloudLink_meeting_iKnow));
getString(R.string.cloudLink_meeting_iKnow));
// LoginMangerV2.getInstance().logout();
if (mDialog != null && mDialog.isShowing()) {
mDialog.dismiss();

View File

@ -8,7 +8,7 @@ import android.view.WindowManager;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.gyf.immersionbar.ImmersionBar;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tengshisoft.chatmodule.CallSessionCallback;
import com.tengshisoft.chatmodule.R;
import com.tengshisoft.chatmodule.beans.EnumType;

View File

@ -22,7 +22,7 @@ import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.huawei.ecterminalsdk.base.TsdkCallInfo;
import com.huawei.ecterminalsdk.models.TsdkCommonResult;
import com.huawei.ecterminalsdk.models.call.TsdkCall;

View File

@ -22,7 +22,7 @@ import android.widget.TextView;
import com.allen.library.SuperTextView;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.huawei.ecterminalsdk.base.TsdkConfRole;
import com.huawei.ecterminalsdk.base.TsdkLdapContactsInfo;
import com.huawei.ecterminalsdk.base.TsdkMobileAuidoRoute;

View File

@ -17,7 +17,7 @@ import android.widget.LinearLayout;
import android.widget.TextView;
import com.google.android.material.bottomsheet.BottomSheetDialog;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.huawei.ecterminalsdk.base.TsdkConfAttendeeInfo;
import com.huawei.ecterminalsdk.base.TsdkConfSpeaker;
import com.huawei.ecterminalsdk.base.TsdkConfTerminalType;

View File

@ -31,7 +31,7 @@ import android.widget.TextView;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.huawei.ecterminalsdk.base.TsdkConfRole;
import com.huawei.ecterminalsdk.base.TsdkMobileAuidoRoute;
import com.huawei.ecterminalsdk.base.TsdkNotifyHandUpAttendee;

View File

@ -4,7 +4,7 @@ package com.tengshisoft.chatmodule.hwclud.manager;
import android.os.Build;
import android.text.TextUtils;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.huawei.ecterminalsdk.base.TsdkAuthType;
import com.huawei.ecterminalsdk.base.TsdkFailedInfo;
import com.huawei.ecterminalsdk.base.TsdkForceLogoutInfo;

View File

@ -20,7 +20,7 @@ import android.view.ViewConfiguration;
import android.view.WindowManager;
import android.widget.LinearLayout;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.huawei.ecterminalsdk.models.call.TsdkCall;
import com.tengshisoft.chatmodule.R;
import com.tengshisoft.chatmodule.activity.SponsorMeetingActivity;

View File

@ -17,7 +17,7 @@ import android.widget.Chronometer;
import android.widget.FrameLayout;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tengshisoft.chatmodule.R;
import com.tengshisoft.chatmodule.activity.SponsorMeetingActivity;
import com.tengshisoft.chatmodule.hwclud.listener.FloatingViewListener;

View File

@ -20,7 +20,7 @@ import android.view.WindowManager;
import android.widget.FrameLayout;
import android.widget.TextView;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.huawei.ecterminalsdk.base.TsdkWatchSvcAttendees;
import com.huawei.ecterminalsdk.models.call.TsdkCall;
import com.tengshisoft.chatmodule.R;

View File

@ -6,7 +6,7 @@ import android.os.Build;
import android.text.TextUtils;
import android.util.Log;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.huawei.ecterminalsdk.base.TsdkAttendee;
import com.huawei.ecterminalsdk.base.TsdkAudioNetQuality;
import com.huawei.ecterminalsdk.base.TsdkAuxTokenOwnerInd;

View File

@ -9,7 +9,7 @@ import android.os.Looper;
import android.util.Log;
import android.widget.FrameLayout;
import com.hjq.toast.ToastUtils;
import com.tenlionsoft.baselib.utils.ToastUtils;
import com.huawei.ecterminalsdk.base.TsdkWatchSvcAttendees;
import com.tengshisoft.chatmodule.R;
import com.tengshisoft.chatmodule.R2;

Some files were not shown because too many files have changed in this diff Show More