From fd06c8c69e54ecec854eeffcdf4a2038abd7162f Mon Sep 17 00:00:00 2001 From: itgaojian Date: Mon, 30 Oct 2023 18:03:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=BA=E5=8F=A3=E9=A1=B5=E9=9D=A2=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 9 +- .../activitys/base/MainActivity.java | 532 +++---- .../activitys/census/CensusEnterActivity.java | 2 +- .../normal/CensusRegisterAddActivity.java | 1384 ++++++++++++----- .../outbound/CensusOutBoundAddActivity.java | 3 +- .../activitys/common/WorkSignActivity.java | 805 +++++++++- .../adapters/FunctionNumAdapter.java | 2 +- .../realtimelocation/beans/CheckSignBean.java | 35 +- .../services/LocationService.java | 10 +- .../drawable-xhdpi/ic_address_list_icon.png | Bin 0 -> 757 bytes .../res/drawable-xhdpi/ic_case_recod_icon.png | Bin 0 -> 405 bytes .../res/drawable-xhdpi/ic_hose_person.png | Bin 0 -> 6515 bytes .../main/res/drawable-xhdpi/ic_issue_disp.png | Bin 0 -> 7131 bytes .../res/drawable-xhdpi/ic_issue_report.png | Bin 0 -> 7163 bytes .../res/drawable-xhdpi/ic_item_title_icon.png | Bin 0 -> 240 bytes .../drawable-xhdpi/ic_item_title_icon_rec.png | Bin 0 -> 83 bytes .../res/drawable-xhdpi/ic_main_title_bg.png | Bin 42915 -> 0 bytes .../drawable-xhdpi/ic_main_title_shadow.png | Bin 0 -> 22088 bytes .../ic_maint_title_btn_left.png | Bin 0 -> 1609 bytes .../ic_maint_title_btn_right.png | Bin 0 -> 1579 bytes .../res/drawable-xhdpi/ic_reload_refresh.png | Bin 0 -> 1336 bytes .../main/res/drawable-xhdpi/ic_sign_late.png | Bin 0 -> 908 bytes .../res/drawable-xhdpi/ic_sign_normal.png | Bin 0 -> 589 bytes .../main/res/drawable-xhdpi/ic_start_hint.png | Bin 487 -> 511 bytes .../main/res/drawable-xhdpi/ic_work_log.png | Bin 0 -> 7683 bytes .../main/res/drawable-xhdpi/ic_work_path.png | Bin 0 -> 6204 bytes .../res/drawable/sel_cir_btn_blue_gray.xml | 6 + .../res/drawable/shp_circle_main_theme.xml | 13 + .../layout/activity_census_register_add.xml | 1240 +++++++++++++-- app/src/main/res/layout/activity_main.xml | 2 + app/src/main/res/layout/activity_main_new.xml | 331 ++++ .../main/res/layout/activity_work_sign.xml | 218 ++- .../main/res/layout/item_main_func_ver.xml | 52 + app/src/main/res/values/styles.xml | 51 +- .../cm_utils/constant/PathConfig.java | 26 +- .../core/retrofit_net/BaseUrlApi.java | 9 +- .../core/widget/views/CustomStateView.java | 93 ++ .../sucstepsoft/cm_utils/utils/TimeUtils.java | 49 +- .../src/main/res/color/col_black_gray.xml | 5 + .../main/res/drawable-xhdpi/ic_issue_disp.png | Bin 2086 -> 0 bytes .../res/drawable-xhdpi/ic_issue_record.png | Bin 2032 -> 0 bytes .../res/drawable-xhdpi/ic_issue_report.png | Bin 2475 -> 0 bytes .../main/res/drawable-xhdpi/ic_load_error.png | Bin 0 -> 32467 bytes .../main/res/drawable-xhdpi/ic_work_path.png | Bin 1944 -> 0 bytes .../sel_rectangle_btn_yellow_gray.xml | 5 + .../res/drawable/shape_rectangle_gray_5.xml | 6 + .../drawable/shape_rectangle_round_gray.xml | 6 + .../drawable/shape_rectangle_round_yellow.xml | 6 + .../res/drawable/shape_rectangle_white_20.xml | 6 + .../drawable/shp_rectangle_bottom_border.xml | 15 + .../src/main/res/layout/layout_state_view.xml | 40 + cm_utils/src/main/res/values/colors.xml | 3 + 52 files changed, 4100 insertions(+), 864 deletions(-) create mode 100644 app/src/main/res/drawable-xhdpi/ic_address_list_icon.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_case_recod_icon.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_hose_person.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_issue_disp.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_issue_report.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_item_title_icon.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_item_title_icon_rec.png delete mode 100755 app/src/main/res/drawable-xhdpi/ic_main_title_bg.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_main_title_shadow.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_maint_title_btn_left.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_maint_title_btn_right.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_reload_refresh.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_sign_late.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_sign_normal.png mode change 100755 => 100644 app/src/main/res/drawable-xhdpi/ic_start_hint.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_work_log.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_work_path.png create mode 100644 app/src/main/res/drawable/sel_cir_btn_blue_gray.xml create mode 100644 app/src/main/res/drawable/shp_circle_main_theme.xml create mode 100755 app/src/main/res/layout/activity_main_new.xml create mode 100755 app/src/main/res/layout/item_main_func_ver.xml create mode 100644 cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/widget/views/CustomStateView.java create mode 100755 cm_utils/src/main/res/color/col_black_gray.xml delete mode 100755 cm_utils/src/main/res/drawable-xhdpi/ic_issue_disp.png delete mode 100755 cm_utils/src/main/res/drawable-xhdpi/ic_issue_record.png delete mode 100755 cm_utils/src/main/res/drawable-xhdpi/ic_issue_report.png create mode 100644 cm_utils/src/main/res/drawable-xhdpi/ic_load_error.png delete mode 100755 cm_utils/src/main/res/drawable-xhdpi/ic_work_path.png create mode 100755 cm_utils/src/main/res/drawable/sel_rectangle_btn_yellow_gray.xml create mode 100755 cm_utils/src/main/res/drawable/shape_rectangle_gray_5.xml create mode 100755 cm_utils/src/main/res/drawable/shape_rectangle_round_gray.xml create mode 100755 cm_utils/src/main/res/drawable/shape_rectangle_round_yellow.xml create mode 100755 cm_utils/src/main/res/drawable/shape_rectangle_white_20.xml create mode 100755 cm_utils/src/main/res/drawable/shp_rectangle_bottom_border.xml create mode 100644 cm_utils/src/main/res/layout/layout_state_view.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 62b5e6d..b3f7be9 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -50,11 +50,10 @@ tools:ignore="GoogleAppIndexingWarning"> - - + android:screenOrientation="portrait" + android:windowSoftInputMode="adjustPan|stateHidden" + tools:ignore="LockedOrientationActivity" /> + mFuncs = new ArrayList<>(); //TODO "特殊案件\n上报", "特殊案件\n处理", "特殊案件\n记录", - private String[] mBtnStrs = new String[]{"案件上报", "案件记录", "案件处理", "工作路径", "通讯录", "通知公告", "人口房屋", "工作日志"}; - private int[] mBtnIds = new int[]{R.drawable.ic_issue_report, - R.drawable.ic_issue_record, + private String[] mBtnStrs = new String[]{"案件上报", "案件处理", "工作路径", "人口房屋", "工作日志"}; + private int[] mBtnIds = new int[]{ + R.drawable.ic_issue_report, R.drawable.ic_issue_disp, R.drawable.ic_work_path, - R.drawable.ic_address_list, - R.drawable.ic_notice, - R.drawable.ic_address_list, - R.drawable.ic_issue_record}; + R.drawable.ic_hose_person, + R.drawable.ic_work_log}; private Gson mGson = null; private boolean isSgin = false;//是否签到 private boolean isSignOff = false;//是否签退 @@ -206,9 +195,12 @@ public class MainActivity extends BaseActivity { private long mCurrentLongTime; private LocationClient mLocationClient; + private List mDatas; + private NoticeAdapter mAdapter; + @Override protected int setLayoutId() { - return R.layout.activity_main; + return R.layout.activity_main_new; } @Override @@ -217,8 +209,6 @@ public class MainActivity extends BaseActivity { refreshView(STATE_LOAD_SUCCESS); mRlTitleBar.setVisibility(View.GONE); initMainFuncs(); - //TODO 一像素保活 -// initScreenListener(); mCurrentLongTime = 0; PermissionUtils.permission(permissions).callback(new PermissionUtils.SimpleCallback() { @Override @@ -226,7 +216,6 @@ public class MainActivity extends BaseActivity { registerMessageReceiver(); createCacheFile(); startListenLocation(); - startSignLocation(); } @Override @@ -235,14 +224,10 @@ public class MainActivity extends BaseActivity { } }).request(); initBaseView(); - //TODO - getPunchTime(123); - setSignText(); - getUserPenList(); - interval(); +// getUserPenList(); registerGpsSignal(); -// checkLocalText(); registerGpsState(); + getNoticeList(); String page = getIntent().getStringExtra("page"); if (!TextUtils.isEmpty(page) && "uncheck".equals(page)) { startActivity(new Intent(MainActivity.this, IssueCheckActivity.class)); @@ -410,8 +395,8 @@ public class MainActivity extends BaseActivity { mFuncs.add(bean); } FunctionNumAdapter adapter = new FunctionNumAdapter(mActivity, mFuncs); - mRlvBtns.setLayoutManager(new GridLayoutManager(mActivity, 2)); - mRlvBtns.setAdapter(adapter); + mRlvFuncs.setLayoutManager(new GridLayoutManager(mActivity, 4)); + mRlvFuncs.setAdapter(adapter); adapter.addOnItemClickListener(this::chosePage); } @@ -463,7 +448,6 @@ public class MainActivity extends BaseActivity { case "工作日志": startActivity(new Intent(mActivity, WorkLogActivity.class)); break; - } } @@ -486,7 +470,10 @@ public class MainActivity extends BaseActivity { @Override public void choseAlbum() { //户籍人口 - startActivity(new Intent(mActivity, CensusExpandableMainActivity.class)); +// startActivity(new Intent(mActivity, CensusExpandableMainActivity.class)); + Intent intent = new Intent(mActivity, CensusRegisterAddActivity.class); + intent.putExtra("title", "基础人口信息录入"); + startActivity(intent); build.dismiss(); } @@ -561,13 +548,16 @@ public class MainActivity extends BaseActivity { .error(R.drawable.ic_user_default) .placeholder(R.drawable.ic_user_default)) .into(mIvUserIcon); - mTvCurrentTime.setText("当前地址:定位中..."); - Glide.with(mActivity) - .load(R.drawable.ic_nomal) - .into(mIvState); - mTvState.setText("正常"); - mTvState.setTextColor(Color.WHITE); -// checkAmSign(); + mDatas = new ArrayList<>(); + mAdapter = new NoticeAdapter(mActivity, mDatas); + mRlvNotice.setLayoutManager(new LinearLayoutManager(mActivity)); + mRlvNotice.setAdapter(mAdapter); + mCsvNotice.setOnClickListener(v -> { + if (mCsvNotice.getState() == CustomStateView.STATE_ERROR) { + mCsvNotice.setState(CustomStateView.STATE_LOAD); + getNoticeList(); + } + }); checkPermission(); } @@ -735,33 +725,10 @@ public class MainActivity extends BaseActivity { @Override public void onNext(CheckSignBean checkSignBean) { - if (checkSignBean != null && !TextUtils.isEmpty(checkSignBean.getData().getIsSign())) { - boolean b = Boolean.parseBoolean(checkSignBean.getData().getIsSign()); - if (!TextUtils.isEmpty(checkSignBean.getData().getStatus())) { - boolean late = Boolean.parseBoolean(checkSignBean.getData().getStatus()); - if (late) { - //迟到了 - Glide.with(mActivity) - .load(R.drawable.ic_late) - .into(mIvState); - mTvState.setText("迟到"); - mTvState.setTextColor(Color.RED); - } else { - //正常 - Glide.with(mActivity) - .load(R.drawable.ic_nomal) - .into(mIvState); - mTvState.setText("正常"); - mTvState.setTextColor(Color.WHITE); - } - } else { - //正常 - Glide.with(mActivity) - .load(R.drawable.ic_nomal) - .into(mIvState); - mTvState.setText("正常"); - mTvState.setTextColor(Color.WHITE); - } + if (checkSignBean != null) { + boolean b = checkSignBean.getData().isSignIn(); + boolean late = checkSignBean.getData().isLate(); + if (b) { isSgin = true; mBtnSign.setTextColor(Color.WHITE); @@ -789,6 +756,47 @@ public class MainActivity extends BaseActivity { }); } + /** + * 获取通知公告 + */ + private void getNoticeList() { + mDatas.clear(); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .getNewsList("notice", "20", "1", UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(NewsListBean newsListBean) { + if (newsListBean != null && newsListBean.getRows() != null && newsListBean.getRows().size() > 0) { + mDatas = newsListBean.getRows(); + mAdapter.setData(mDatas); + mCsvNotice.setState(CustomStateView.STATE_SUCCESS); + } else { + mRlvNotice.setVisibility(View.GONE); + mCsvNotice.setState(CustomStateView.STATE_EMPTY); + } + } + + @Override + public void onError(Throwable e) { + e.printStackTrace(); + mCsvNotice.setState(CustomStateView.STATE_ERROR); + } + + @Override + public void onComplete() { + + } + }); + } + /** * 校验是否签退 */ @@ -891,60 +899,32 @@ public class MainActivity extends BaseActivity { * 显示N员签到签退 */ private void showN() { - String nowHour = TimeUtils.getNowHourHHmmSS(); - if (mSignTimeBean != null) { - if (isSgin) { - //已经签到,显示签退 - if (isSignOff) { - ToastUtils.showShort("今日打卡已完成"); - } else { - boolean isTimeLegal = false; - if (!TextUtils.isEmpty(mSignTimeBean.getCustomSignOutStr())) { -// isTimeLegal = TimeUtils.isInTimeHHmmSS(mSignTimeBean.getGaSignOutStr() + "-" + mSignTimeBean.getGaSignOutEnd(), nowHour); - isTimeLegal = TimeUtils.isInTimeHHmmSS(mSignTimeBean.getCustomSignOutStr() + "-" + mSignTimeBean.getCustomSignOutEnd(), nowHour); - } else { - isTimeLegal = TimeUtils.isInTimeHHmmSS(mSignTimeBean.getNSignOutStr() + "-" + mSignTimeBean.getNSignOutEnd(), nowHour); - } - if (isTimeLegal) { - if (mPenLineList != null && mPenLineList.size() > 0) { - if (checkCurrenPointIsBeyond(mCurrentLocation)) { - showSignOffDialog(); - } else { - ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); - } - } else { - getPenList(); - } - } else { - //获取当前时间判断在哪个时间范围内 - ToastUtils.showLong("请按照签退规则进行签退."); - } - } + if (isSgin) { + //已经签到,显示签退 + if (isSignOff) { + ToastUtils.showShort("今日打卡已完成"); } else { - //未签到 - boolean isLegalTime = false; - if (!TextUtils.isEmpty(mSignTimeBean.getCustomSignInStr())) { -// isLegalTime = TimeUtils.isInTimeHHmmSS(mSignTimeBean.getGaSignInStr() + "-" + mSignTimeBean.getGaSignOutStr(), nowHour); - isLegalTime = TimeUtils.isInTimeHHmmSS(mSignTimeBean.getCustomSignInStr() + "-" + mSignTimeBean.getCustomSignOutStr(), nowHour); - } else { - isLegalTime = TimeUtils.isInTimeHHmmSS(mSignTimeBean.getNSignInStr() + "-" + mSignTimeBean.getNSignOutStr(), nowHour); - } - if (isLegalTime) { - if (mPenLineList != null && mPenLineList.size() > 0) { - if (checkCurrenPointIsBeyond(mCurrentLocation)) { - showSDialog(); - } else { - ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); - } + if (mPenLineList != null && mPenLineList.size() > 0) { + if (checkCurrenPointIsBeyond(mCurrentLocation)) { + showSignOffDialog(); } else { - getPenList(); + ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); } } else { - ToastUtils.showLong("请按照签到规则进行签到."); + getPenList(); } } } else { - getPunchTime(2); + //未签到 + if (mPenLineList != null && mPenLineList.size() > 0) { + if (checkCurrenPointIsBeyond(mCurrentLocation)) { + showSDialog(); + } else { + ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); + } + } else { + getPenList(); + } } } @@ -952,48 +932,32 @@ public class MainActivity extends BaseActivity { * 显示片长签到签退 */ private void show() { - String nowHour = TimeUtils.getNowHourHHmmSS(); - if (mSignTimeBean != null) { - if (isSgin) { - //已经签到,显示签退 - if (isSignOff) { - ToastUtils.showShort("今日打卡已完成"); - } else { - boolean isTimeLegal = TimeUtils.isInTimeHHmmSS(mSignTimeBean.getSignOutStr() + "-" + mSignTimeBean.getSignOutEnd(), nowHour); - if (isTimeLegal) { - if (mPenLineList != null && mPenLineList.size() > 0) { - if (checkCurrenPointIsBeyond(mCurrentLocation)) { - showSignOffDialog(); - } else { - ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); - } - } else { - getPenList(); - } - } else { - //获取当前时间判断在哪个时间范围内 - ToastUtils.showLong("请按照签退规则进行签退."); - } - } + if (isSgin) { + //已经签到,显示签退 + if (isSignOff) { + ToastUtils.showShort("今日打卡已完成"); } else { - //未签到 - boolean isLegalTime = TimeUtils.isInTimeHHmmSS(mSignTimeBean.getSignInStr() + "-" + mSignTimeBean.getSignOutStr(), nowHour); - if (isLegalTime) { - if (mPenLineList != null && mPenLineList.size() > 0) { - if (checkCurrenPointIsBeyond(mCurrentLocation)) { - showSDialog(); - } else { - ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); - } + if (mPenLineList != null && mPenLineList.size() > 0) { + if (checkCurrenPointIsBeyond(mCurrentLocation)) { + showSignOffDialog(); } else { - getPenList(); + ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); } } else { - ToastUtils.showLong("请按照签到规则进行签到."); + getPenList(); } } } else { - getPunchTime(2); + //未签到 + if (mPenLineList != null && mPenLineList.size() > 0) { + if (checkCurrenPointIsBeyond(mCurrentLocation)) { + showSDialog(); + } else { + ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); + } + } else { + getPenList(); + } } } @@ -1222,23 +1186,9 @@ public class MainActivity extends BaseActivity { @Override public void onNext(SignDataBean successBean) { -// LogUtils.e(successBean); -// uploadPoint(); isSgin = true; isSignOff = false; - if (successBean.isData()) { - Glide.with(mActivity) - .load(R.drawable.ic_late) - .into(mIvState); - mTvState.setText("迟到"); - mTvState.setTextColor(Color.RED); - } else { - Glide.with(mActivity) - .load(R.drawable.ic_nomal) - .into(mIvState); - mTvState.setText("正常"); - mTvState.setTextColor(Color.WHITE); - } + dialog.dismiss(); GlobalProvider.save(mActivity, "isUpload", "13"); setSignOffText(); @@ -1304,40 +1254,7 @@ public class MainActivity extends BaseActivity { * 设置签到完成文字 */ private void setSignCompleteText() { - mBtnSign.setText("打卡\n完成"); - Glide.with(mActivity) - .load(R.drawable.ic_nomal) - .into(mIvState); - mTvState.setText("正常"); - mTvState.setTextColor(Color.WHITE); -// if (userType == 2) { -// mBtnSign.setText("打卡\n完成"); -// Glide.with(mActivity) -// .load(R.drawable.ic_nomal) -// .into(mIvState); -// mTvState.setText("正常"); -// mTvState.setTextColor(Color.WHITE); -// boolean amOrPm = TimeUtils.isAmOrPm(); -// if (amOrPm) { -// //未签到 -// mBtnSign.setText("下午\n签到"); -// } else { -// //下午 -// mBtnSign.setText("打卡\n完成"); -// Glide.with(mActivity) -// .load(R.drawable.ic_nomal) -// .into(mIvState); -// mTvState.setText("正常"); -// mTvState.setTextColor(Color.WHITE); -// } -// } else { -// mBtnSign.setText("打卡\n完成"); -// Glide.with(mActivity) -// .load(R.drawable.ic_nomal) -// .into(mIvState); -// mTvState.setText("正常"); -// mTvState.setTextColor(Color.WHITE); -// } + } /** @@ -1378,19 +1295,14 @@ public class MainActivity extends BaseActivity { *

* R.id.ll_mine_issue, */ - @OnClick({/**R.id.rl_issue_report, - R.id.rl_issue_record, - R.id.rl_issue_dispose, - R.id.rl_address_list, - R.id.rl_notice, - R.id.rl_work_iocus,*/ -// R.id.ll_issue_dis, + @OnClick({ R.id.ll_history, R.id.btn_sign, R.id.ll_plan, - R.id.tv_rule, R.id.ll_user_center, - R.id.ll_day_aviso}) + R.id.ll_day_aviso, + R.id.ll_address_list, + R.id.ll_case_record}) public void onViewClicked(View view) { switch (view.getId()) { case R.id.ll_history://待办案件 @@ -1400,7 +1312,8 @@ public class MainActivity extends BaseActivity { startActivity(new Intent(mActivity, IssueMineActivity.class)); break; case R.id.btn_sign://签到 - showSignDialog(); +// showSignDialog(); + startActivity(new Intent(mActivity, WorkSignActivity.class)); break; case R.id.ll_day_aviso://每日通报 Intent intent = new Intent(MainActivity.this, NoticeActivity.class); @@ -1410,12 +1323,13 @@ public class MainActivity extends BaseActivity { case R.id.ll_user_center://个人中心 startActivity(new Intent(MainActivity.this, UserActivity.class)); break; - case R.id.tv_rule://签到规则 - if (2 == userType) { - showRuleDialog(); - } else { - showNRuleDialog(); - } + case R.id.ll_address_list://通讯录 + Intent intent2 = new Intent(mActivity, AddressListMainActivity.class); + intent2.putExtra("uType", userType); + startActivity(intent2); + break; + case R.id.ll_case_record://案件记录 + startActivity(new Intent(mActivity, IssueRecordActivity.class)); break; } } @@ -1732,76 +1646,76 @@ public class MainActivity extends BaseActivity { } private void checkPointIsLegal(BDLocation bdLocation) { - LogUtils.e("城市码==" + bdLocation.getCityCode() + "===" + bdLocation.getLatitude() + "===" + bdLocation.getLongitude()); - if (PathConfig.IS_LIMIT) { - if (PathConfig.mDefaultCityCode.equals(bdLocation.getCityCode())) { - if (bdLocation.getLatitude() != 0 && bdLocation.getLongitude() != 0) { - if (mPrecision >= mPrecMax) { - mPrecision = mPrecisionDefault; - if (mGpsWeakDialog == null) { - AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); - builder.setMessage("当前GPS信号较弱,请调整当前所在位置,或检查手机GPS是否开启,将Wifi与蓝牙打开会提高定位精度.") - .setTitle("提示") - .setNegativeButton("确定", (dialog, which) -> dialog.dismiss()); - mGpsWeakDialog = builder.create(); - } - if (!mGpsWeakDialog.isShowing()) { - mGpsWeakDialog.show(); - } - } else { - if (bdLocation.getRadius() <= mPrecision) { - mPrecision = mPrecisionDefault; - if (bdLocation.getLatitude() != Double.MIN_VALUE && bdLocation.getLongitude() != Double.MIN_VALUE) { - mCurrentLocation = bdLocation; - if (mGpsDis != null && !mGpsDis.isDisposed()) { - mGpsDis.dispose(); - } - if (TextUtils.isEmpty(mCurrentLocation.getAddrStr())) { - mTvCurrentTime.setText("当前地址:未知"); - } else { - mTvCurrentTime.setText("当前地址:" + mCurrentLocation.getAddrStr()); - } - } - } else { - mPrecision += 10; - } - } - } - } - } else { - if (bdLocation.getLatitude() != 0 && bdLocation.getLongitude() != 0) { - if (mPrecision >= mPrecMax) { - mPrecision = mPrecisionDefault; - if (mGpsWeakDialog == null) { - AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); - builder.setMessage("当前GPS信号较弱,请调整当前所在位置,或检查手机GPS是否开启,将Wifi与蓝牙打开会提高定位精度.") - .setTitle("提示") - .setNegativeButton("确定", (dialog, which) -> dialog.dismiss()); - mGpsWeakDialog = builder.create(); - } - if (!mGpsWeakDialog.isShowing()) { - mGpsWeakDialog.show(); - } - } else { - if (bdLocation.getRadius() <= mPrecision) { - mPrecision = mPrecisionDefault; - if (bdLocation.getLatitude() != Double.MIN_VALUE && bdLocation.getLongitude() != Double.MIN_VALUE) { - mCurrentLocation = bdLocation; - if (mGpsDis != null && !mGpsDis.isDisposed()) { - mGpsDis.dispose(); - } - if (TextUtils.isEmpty(mCurrentLocation.getAddrStr())) { - mTvCurrentTime.setText("当前地址:未知"); - } else { - mTvCurrentTime.setText("当前地址:" + mCurrentLocation.getAddrStr()); - } - } - } else { - mPrecision += 10; - } - } - } - } +// LogUtils.e("城市码==" + bdLocation.getCityCode() + "===" + bdLocation.getLatitude() + "===" + bdLocation.getLongitude()); +// if (PathConfig.IS_LIMIT) { +// if (PathConfig.mDefaultCityCode.equals(bdLocation.getCityCode())) { +// if (bdLocation.getLatitude() != 0 && bdLocation.getLongitude() != 0) { +// if (mPrecision >= mPrecMax) { +// mPrecision = mPrecisionDefault; +// if (mGpsWeakDialog == null) { +// AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); +// builder.setMessage("当前GPS信号较弱,请调整当前所在位置,或检查手机GPS是否开启,将Wifi与蓝牙打开会提高定位精度.") +// .setTitle("提示") +// .setNegativeButton("确定", (dialog, which) -> dialog.dismiss()); +// mGpsWeakDialog = builder.create(); +// } +// if (!mGpsWeakDialog.isShowing()) { +// mGpsWeakDialog.show(); +// } +// } else { +// if (bdLocation.getRadius() <= mPrecision) { +// mPrecision = mPrecisionDefault; +// if (bdLocation.getLatitude() != Double.MIN_VALUE && bdLocation.getLongitude() != Double.MIN_VALUE) { +// mCurrentLocation = bdLocation; +// if (mGpsDis != null && !mGpsDis.isDisposed()) { +// mGpsDis.dispose(); +// } +// if (TextUtils.isEmpty(mCurrentLocation.getAddrStr())) { +// mTvCurrentTime.setText("当前地址:未知"); +// } else { +// mTvCurrentTime.setText("当前地址:" + mCurrentLocation.getAddrStr()); +// } +// } +// } else { +// mPrecision += 10; +// } +// } +// } +// } +// } else { +// if (bdLocation.getLatitude() != 0 && bdLocation.getLongitude() != 0) { +// if (mPrecision >= mPrecMax) { +// mPrecision = mPrecisionDefault; +// if (mGpsWeakDialog == null) { +// AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); +// builder.setMessage("当前GPS信号较弱,请调整当前所在位置,或检查手机GPS是否开启,将Wifi与蓝牙打开会提高定位精度.") +// .setTitle("提示") +// .setNegativeButton("确定", (dialog, which) -> dialog.dismiss()); +// mGpsWeakDialog = builder.create(); +// } +// if (!mGpsWeakDialog.isShowing()) { +// mGpsWeakDialog.show(); +// } +// } else { +// if (bdLocation.getRadius() <= mPrecision) { +// mPrecision = mPrecisionDefault; +// if (bdLocation.getLatitude() != Double.MIN_VALUE && bdLocation.getLongitude() != Double.MIN_VALUE) { +// mCurrentLocation = bdLocation; +// if (mGpsDis != null && !mGpsDis.isDisposed()) { +// mGpsDis.dispose(); +// } +// if (TextUtils.isEmpty(mCurrentLocation.getAddrStr())) { +// mTvCurrentTime.setText("当前地址:未知"); +// } else { +// mTvCurrentTime.setText("当前地址:" + mCurrentLocation.getAddrStr()); +// } +// } +// } else { +// mPrecision += 10; +// } +// } +// } +// } } @Override diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/CensusEnterActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/CensusEnterActivity.java index aae99c7..059a33e 100644 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/CensusEnterActivity.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/CensusEnterActivity.java @@ -875,7 +875,7 @@ public class CensusEnterActivity extends BaseActivity { } mReligionPicker.show(); } else { - getDicListByType(PathConfig.DIC_FAITH, 6); + getDicListByType(PathConfig.DIC_RELIGION, 6); } } diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/normal/CensusRegisterAddActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/normal/CensusRegisterAddActivity.java index 6b0f67b..1cb597a 100644 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/normal/CensusRegisterAddActivity.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/normal/CensusRegisterAddActivity.java @@ -2,41 +2,39 @@ package com.sucstepsoft.realtimelocation.activitys.census.normal; import android.app.ProgressDialog; import android.graphics.Color; -import android.support.v7.widget.CardView; import android.text.TextUtils; -import android.view.View; import android.widget.Button; import android.widget.EditText; -import android.widget.ImageView; -import android.widget.LinearLayout; +import android.widget.RadioButton; +import android.widget.RadioGroup; import android.widget.Switch; import android.widget.TextView; 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.google.gson.Gson; import com.sucstepsoft.cm_utils.constant.PathConfig; import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager; import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; -import com.sucstepsoft.cm_utils.utils.RegexUtils; import com.sucstepsoft.cm_utils.utils.ToastUtils; import com.sucstepsoft.cm_utils.utils.UIUtil; import com.sucstepsoft.cm_utils.utils.UserLgUtils; import com.sucstepsoft.realtimelocation.R; import com.sucstepsoft.realtimelocation.beans.DicBean; -import com.sucstepsoft.realtimelocation.beans.SearchBaseInfoBean; import com.sucstepsoft.realtimelocation.beans.SuccessBean; import com.sucstepsoft.realtimelocation.beans.person.CensusRegisterDetailBean; import com.sucstepsoft.realtimelocation.beans.person.CensusmsgBean; import com.sucstepsoft.realtimelocation.net.LocationApiService; import com.sucstepsoft.realtimelocation.utils.ExceptionHandler; +import java.text.SimpleDateFormat; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.Unbinder; -import io.reactivex.Observable; import io.reactivex.Observer; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.annotations.NonNull; @@ -49,50 +47,285 @@ import okhttp3.RequestBody; * 正常人群-户籍信息录入 */ public class CensusRegisterAddActivity extends BaseActivity { - @BindView(R.id.ll_into_content) - LinearLayout mLlContent; - @BindView(R.id.sw_accord) - Switch mSwAccord;//人户一致 * 01 一致 02 不一致 - @BindView(R.id.et_house_number) - EditText mEtHouseNumber;//户号 * - @BindView(R.id.et_id_card) - EditText mEtIdCard;//户主身份证号 - @BindView(R.id.et_house_name) - EditText mEtHouseName;//户主姓名 + @BindView(R.id.tv_issue_base_info) + TextView mTvIssueBaseInfo; + @BindView(R.id.et_name) + EditText mEtName; + @BindView(R.id.tv_card_type) + TextView mTvCardType; + @BindView(R.id.et_card_number) + EditText mEtCardNumber; + @BindView(R.id.tv_birth) + TextView mTvBirth; + @BindView(R.id.tv_gender) + TextView mTvGender; + @BindView(R.id.tv_nation) + TextView mTvNation; + @BindView(R.id.tv_degree) + TextView mTvDegree; @BindView(R.id.tv_relation) - TextView mTvRelation;//与户主关系 * + TextView mTvRelation; @BindView(R.id.et_phone) - EditText mEtPhone;//户主联系方式 + EditText mEtPhone; + @BindView(R.id.et_academy) + EditText mEtAcademy; + @BindView(R.id.tv_political) + TextView mTvPolitical; + @BindView(R.id.tv_religion) + TextView mTvReligion; + @BindView(R.id.tv_marriage) + TextView mTvMarriage; + @BindView(R.id.tv_marriage_change_date) + TextView mTvMarriageChangeDate; + @BindView(R.id.tv_marriage_date) + TextView mTvMarriageDate; + @BindView(R.id.tv_insure) + TextView mTvInsure; + @BindView(R.id.tv_health) + TextView mTvHealth; + @BindView(R.id.rb_diss_1) + RadioButton mRbDiss1; + @BindView(R.id.rb_diss_2) + RadioButton mRbDiss2; + @BindView(R.id.rb_so) + RadioButton mRbSo; + @BindView(R.id.rg_get_job) + RadioGroup mRgGetJob; + @BindView(R.id.et_workplace) + EditText mEtWorkplace; + @BindView(R.id.et_job_title) + EditText mEtJobTitle; + @BindView(R.id.et_work_post) + EditText mEtWorkPost; + @BindView(R.id.et_work_good) + EditText mEtWorkGood; + @BindView(R.id.et_father) + EditText mEtFather; + @BindView(R.id.et_father_card_number) + EditText mEtFatherCardNumber; + @BindView(R.id.et_father_phone) + EditText mEtFatherPhone; + @BindView(R.id.et_mather) + EditText mEtMather; + @BindView(R.id.et_mather_card_number) + EditText mEtMatherCardNumber; + @BindView(R.id.et_mather_phone) + EditText mEtMatherPhone; + @BindView(R.id.tv_register_address) + TextView mTvRegisterAddress; + @BindView(R.id.et_register_address_detail) + EditText mEtRegisterAddressDetail; + @BindView(R.id.et_native_place) + EditText mEtNativePlace; + @BindView(R.id.tv_flow_date) + TextView mTvFlowDate; + @BindView(R.id.tv_flow_cause) + TextView mTvFlowCause; + @BindView(R.id.et_flow_other_cause) + EditText mEtFlowOtherCause; + @BindView(R.id.sw_is_old) + Switch mSwIsOld; + @BindView(R.id.tv_old_type) + TextView mTvOldType; + @BindView(R.id.et_old_work) + EditText mEtOldWork; + @BindView(R.id.tv_live_care) + TextView mTvOldLiveCare; + @BindView(R.id.tv_old_health) + TextView mTvOldHealth; + @BindView(R.id.tv_old_live_ability) + TextView mTvOldLiveAbility; + @BindView(R.id.tv_old_live_house) + TextView mTvOldLiveHouse; + @BindView(R.id.sw_is_deformity) + Switch mSwIsDeformity; + @BindView(R.id.tv_deformity_type) + TextView mTvDeformityType; + @BindView(R.id.tv_deformity_level) + TextView mTvDeformityLevel; + @BindView(R.id.et_deformity_card_number) + EditText mEtDeformityCardNumber; + @BindView(R.id.et_deformity_car_number) + EditText mEtDeformityCarNumber; + @BindView(R.id.et_deformity_address) + EditText mEtDeformityAddress; + @BindView(R.id.tv_deformity_earing) + TextView mTvDeformityEaring; + @BindView(R.id.tv_deformity_house_source) + TextView mTvDeformityHouseSource; + @BindView(R.id.tv_deformity_card_date) + TextView mTvDeformityCardDate; + @BindView(R.id.et_deformity_spouse) + EditText mEtDeformitySpouse; + @BindView(R.id.et_deformity_phone) + EditText mEtDeformityPhone; + @BindView(R.id.tv_deformity_guarder_relation) + TextView mTvDeformityGuarderRelation; + @BindView(R.id.sw_is_soldier) + Switch mSwIsSoldier; + @BindView(R.id.tv_soldier_out_date) + TextView mTvSoldierOutDate; + @BindView(R.id.tv_soldier_level) + TextView mTvSoldierLevel; + @BindView(R.id.sw_is_salvation) + Switch mSwIsSalvation; + @BindView(R.id.sw_is_low) + Switch mSwIsLow; + @BindView(R.id.sw_is_yiliao) + Switch mSwIsYiliao; + @BindView(R.id.sw_is_kongnan) + Switch mSwIsKongnan; + @BindView(R.id.sw_is_laoling) + Switch mSwIsLaoling; + @BindView(R.id.sw_is_dangyuan) + Switch mSwIsDangyuan; + @BindView(R.id.et_dangzhuzhi) + EditText mEtDangzhuzhi; + @BindView(R.id.tv_rudangshijian) + TextView mTvRudangshijian; + @BindView(R.id.et_dangqitashuoming) + EditText mEtDangqitashuoming; @BindView(R.id.btn_confirm) Button mBtnConfirm; - //搜索布局 - @BindView(R.id.ll_search_content) - LinearLayout mLlSearchContent; - @BindView(R.id.et_search_id_card) - EditText mEtSearchIdCard;//搜索框 - @BindView(R.id.btn_search) - Button mBtnSearch;//收搜按钮 - @BindView(R.id.iv_clear) - ImageView mIvClear; - //基础信息 - @BindView(R.id.cv_base_info) - CardView mCvBaseInfo;//基础信息 - @BindView(R.id.tv_base_name) - TextView mTvBaseName; - @BindView(R.id.tv_base_gender) - TextView mTvBaseGender; - @BindView(R.id.tv_base_native) - TextView mTvBaseNative; - @BindView(R.id.tv_base_phone) - TextView mTvBasePhone; - @BindView(R.id.tv_base_cur_loc) - TextView mTvBaseCurLoc; private Unbinder mBind; - private boolean isAccord = false;//人户一致标识 - private OptionsPickerView mRelationPicker; - private List mRelationList; - private String mSelRelation; - private SearchBaseInfoBean mBaseInfoBean; + private SimpleDateFormat mDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + private int mCurrentHealthType = -1;//当前选择的那个健康状况 + /** + * 证件类型 + */ + private OptionsPickerView mCardTypePicker; + private List mCardTypeList; + private DicBean mSelCardType; + /** + * 性别 + */ + private OptionsPickerView mGenderPicker; + private List mGenderList; + private DicBean mSelGender; + /** + * 民族 + */ + private OptionsPickerView mNationPicker; + private List mNationList; + private DicBean mSelNation; + /** + * 文化程度 + */ + private OptionsPickerView mDegreePicker; + private List mDegreeList; + private DicBean mSelDegree; + /** + * 与户主关系 + */ + private OptionsPickerView mHeadRelationPicker; + private List mHeadRelationList; + private DicBean mSelHeadRelation; + /** + * 所属党派 + */ + private OptionsPickerView mPoliticalPicker; + private List mPoliticalList; + private DicBean mSelPolitical; + /** + * 宗教信仰 + */ + private OptionsPickerView mReligionPicker; + private List mReligionList; + private DicBean mSelReligion; + /** + * 婚姻状况 + */ + private OptionsPickerView mMarriagePicker; + private List mMarriageList; + private DicBean mSelMarriage; + /** + * 社会保险情况 + */ + private OptionsPickerView mInsurePicker; + private List mInsureList; + private DicBean mSelInsure; + /** + * 健康状况 + */ + private OptionsPickerView mHealthPicker; + private List mHealthList; + private DicBean mSelHealth; + private DicBean mSelOldHealth; + /** + * 流动原因 + */ + private OptionsPickerView mFlowPicker; + private List mFlowList; + private DicBean mSelFlow; + + /** + * 老人类别 + */ + private OptionsPickerView mOldTypePicker; + private List mOldTypeList; + private DicBean mSelOldType; + /** + * 生活照料情况 + */ + private OptionsPickerView mOldLiveCarePicker; + private List mOldLiveCareList; + private DicBean mSelOldLiveCare; + /** + * 生活自理能力 + */ + private OptionsPickerView mOldLiveAbilityPicker; + private List mOldLiveAbilityList; + private DicBean mSelOldLiveAbility; + /** + * 居住状况 + */ + private OptionsPickerView mLiveStatePicker; + private List mLiveStateList; + private DicBean mSelLiveState; + + /** + * 残疾类别 + */ + private OptionsPickerView mDeformityTypePicker; + private List mDeformityTypeList; + private DicBean mSelDeformityType; + /** + * 残疾等级 + */ + private OptionsPickerView mDeformityLevelPicker; + private List mDeformityLevelList; + private DicBean mSelDeformityLevel; + /** + * 收入情况 + */ + private OptionsPickerView mEarningPicker; + private List mEarningList; + private DicBean mSelEarning; + /** + * 住房来源 + */ + private OptionsPickerView mHouseSourcePicker; + private List mHouseSourceList; + private DicBean mSelHouseSource; + /** + * 与监护人关系 + */ + private OptionsPickerView mGuarderRelationPicker; + private List mGuarderRelationList; + private DicBean mSelGuarderRelation; + /** + * 退出现役职级 + */ + private OptionsPickerView mSoldierLevelPicker; + private List mSoldierLevelList; + private DicBean mSelSoldierLevel; + /** + * 公共 + */ + private OptionsPickerView mDicPicker; + private List mDicBeanList; + + private String mId; @Override @@ -103,30 +336,519 @@ public class CensusRegisterAddActivity extends BaseActivity { @Override public void initData() { mBind = ButterKnife.bind(this); - - - mLlContent.setVisibility(View.INVISIBLE); - //主键 mId = getIntent().getStringExtra("id"); String title = getIntent().getStringExtra("title"); if (!TextUtils.isEmpty(mId)) { //编辑 - mLlSearchContent.setVisibility(View.GONE); refreshView(STATE_LOAD_LOADING); getDetialById(mId); } else { //新增 - mLlSearchContent.setVisibility(View.VISIBLE); refreshView(STATE_LOAD_SUCCESS); } mTvBaseTitle.setText(title); - mBtnSearch.setOnClickListener(v -> doSearchPerson()); - mIvClear.setOnClickListener(v -> mEtSearchIdCard.setText("")); - mSwAccord.setOnCheckedChangeListener((buttonView, isChecked) -> isAccord = isChecked); - mTvRelation.setOnClickListener(v -> onShowRelation()); + initContentView(); + } + + /** + * 初始化控件 + */ + private void initContentView() { + mTvCardType.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_CARD_TYPE, 2, 1));//证件类别 + mTvBirth.setOnClickListener(v -> onShowDate(mTvBirth));//出生日期 + mTvGender.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_GENDER, 2, 2));//性别 + mTvNation.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_NATION, 2, 3));//民族 + mTvDegree.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_EDU, 2, 4));//文化程度 + mTvRelation.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_RELATION, 2, 5));//户主关系 + mTvPolitical.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_POLITICS, 2, 6));//所属党派 + mTvReligion.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_RELIGION, 2, 7));//宗教信仰 + mTvMarriage.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_MARRIAGE, 2, 8));//婚姻状况 + mTvMarriageChangeDate.setOnClickListener(v -> onShowDate(mTvMarriageChangeDate));//婚变日期 + mTvMarriageDate.setOnClickListener(v -> onShowDate(mTvMarriageDate));//初婚日期 + mTvInsure.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_INSURE, 2, 9));//社会保险情况 + mTvHealth.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_HEALTH, 2, 10));//健康状况 + mTvRegisterAddress.setOnClickListener(v -> onShowAllArea());//户籍地址 + mTvFlowDate.setOnClickListener(v -> onShowDate(mTvFlowDate));//流动日期 + mTvFlowCause.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_FLOW_CAUSE, 2, 11));//流动原因 + mTvOldType.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_OLD_TYPE, 2, 12));//老人类别 + mTvOldLiveCare.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_OLD_LIVE_CARE, 2, 13));//生活照料情况 + mTvOldHealth.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_HEALTH, 2, 14));//老人健康状况 + mTvOldLiveAbility.setOnClickListener(v -> onShowDicPicker(PathConfig.DIC_OLD_LIVE_ABILITY, 2, 15));//生活自理能力 mBtnConfirm.setOnClickListener(v -> doSubmit()); } + /** + * 显示字典选项 + */ + private void onShowDicPicker(String id, int type, int source) { + hideSoftKeyboard(); + if (type == 1) { + mDicPicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { + DicBean dicBean = mDicBeanList.get(o1); + chooseDicBean(dicBean, source); + }) + .setTitleText("请选择") + .setCancelColor(Color.parseColor("#1189FF")) + .setSubmitColor(Color.parseColor("#1189FF")) + .setTitleColor(Color.parseColor("#1189FF")) + .build(); + mDicPicker.setPicker(mDicBeanList); + mDicPicker.show(); + } else { + getDicListByType(id, type, source); + } + } + + private void chooseDicBean(DicBean dicBean, int source) { + switch (source) { + case 1: + //证件类型 + mSelCardType = dicBean; + mTvCardType.setText(mSelCardType.getDictionaryName()); + break; + case 2: + //性别 + mSelGender = dicBean; + mTvGender.setText(mSelGender.getDictionaryName()); + break; + case 3: + //民族 + mSelNation = dicBean; + mTvNation.setText(mSelNation.getDictionaryName()); + case 4: + //文化程度 + mSelDegree = dicBean; + mTvDegree.setText(mSelDegree.getDictionaryName()); + break; + case 5: + //户主关系 + mSelHeadRelation = dicBean; + mTvRelation.setText(mSelHeadRelation.getDictionaryName()); + break; + case 6: + //所属党派 + mSelPolitical = dicBean; + mTvPolitical.setText(mSelPolitical.getDictionaryName()); + break; + case 7: + //宗教信仰 + mSelReligion = dicBean; + mTvReligion.setText(mSelReligion.getDictionaryName()); + break; + case 8: + //婚姻状况 + mSelMarriage = dicBean; + mTvMarriage.setText(mSelMarriage.getDictionaryName()); + break; + case 9: + //社会保险情况 + mSelInsure = dicBean; + mTvInsure.setText(mSelInsure.getDictionaryName()); + break; + case 10: + //健康状况 + mSelHealth = dicBean; + mTvHealth.setText(mSelHealth.getDictionaryName()); + break; + case 11: + //流动原因 + mSelFlow = dicBean; + mTvFlowCause.setText(mSelFlow.getDictionaryName()); + break; + case 12: + //老年类别 + mSelOldType = dicBean; + mTvOldType.setText(mSelOldType.getDictionaryName()); + break; + case 13: + //生活照料情况 + mSelOldLiveCare = dicBean; + mTvOldLiveCare.setText(mSelOldLiveCare.getDictionaryName()); + break; + case 14: + //老年健康状况 + mSelOldHealth = dicBean; + mTvOldHealth.setText(mSelOldHealth.getDictionaryName()); + break; + case 15: + //生活自理能力 + mSelOldLiveAbility = dicBean; + mTvOldLiveAbility.setText(mSelOldLiveAbility.getDictionaryName()); + break; + } + } + + /** + * TODO 户籍地址 + */ + private void onShowAllArea() { + + } + + /** + * 显示日期选择 + * + * @param tv + */ + private void onShowDate(TextView tv) { + hideSoftKeyboard(); + TimePickerView mTimePickerView = new TimePickerBuilder(mActivity, (date, v) -> tv.setText(mDateFormat.format(date))) + .setTitleText("请选日期") + .setCancelColor(Color.parseColor("#1189FF")) + .setSubmitColor(Color.parseColor("#1189FF")) + .setType(new boolean[]{true, true, true, false, false, false}) + .setTitleColor(Color.parseColor("#1189FF")) + .build(); + mTimePickerView.show(); + } +// +// /** +// * 生活自理能力 +// */ +// private void onShowOldLiveAbility() { +// hideSoftKeyboard(); +// if (mOldLiveAbilityList != null && mOldLiveAbilityList.size() > 0) { +// if (mOldLiveAbilityPicker == null) { +// mOldLiveAbilityPicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { +// mSelOldLiveAbility = mOldLiveAbilityList.get(o1); +// mTvOldLiveAbility.setText(mSelOldLiveAbility.getDictionaryName()); +// }) +// .setTitleText("请选择") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mOldLiveAbilityPicker.setPicker(mOldLiveAbilityList); +// } +// mOldLiveAbilityPicker.show(); +// } else { +// getDicListByType(PathConfig.DIC_OLD_LIVE_ABILITY, 14); +// } +// } +// +// /** +// * 生活照料情况 +// */ +// private void onShowOldLiveCare() { +// hideSoftKeyboard(); +// if (mOldLiveCareList != null && mOldLiveCareList.size() > 0) { +// if (mOldLiveCarePicker == null) { +// mOldLiveCarePicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { +// mSelOldLiveCare = mOldLiveCareList.get(o1); +// mTvOldLiveCare.setText(mSelOldLiveCare.getDictionaryName()); +// }) +// .setTitleText("请选择") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mOldLiveCarePicker.setPicker(mOldLiveCareList); +// } +// mOldLiveCarePicker.show(); +// } else { +// getDicListByType(PathConfig.DIC_OLD_LIVE_CARE, 13); +// } +// } +// +// /** +// * 老人类别 +// */ +// private void onShowOldType() { +// hideSoftKeyboard(); +// if (mOldTypeList != null && mOldTypeList.size() > 0) { +// if (mOldTypePicker == null) { +// mOldTypePicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { +// mSelOldType = mOldTypeList.get(o1); +// mTvOldType.setText(mSelOldType.getDictionaryName()); +// }) +// .setTitleText("请选择") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mOldTypePicker.setPicker(mOldTypeList); +// } +// mOldTypePicker.show(); +// } else { +// getDicListByType(PathConfig.DIC_OLD_TYPE, 12); +// } +// } +// +// /** +// * 流动原因 +// */ +// private void onShowFlowCause() { +// hideSoftKeyboard(); +// if (mFlowList != null && mFlowList.size() > 0) { +// if (mFlowPicker == null) { +// mFlowPicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { +// mSelFlow = mFlowList.get(o1); +// mTvFlowCause.setText(mSelFlow.getDictionaryName()); +// }) +// .setTitleText("请选择") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mFlowPicker.setPicker(mFlowList); +// } +// mFlowPicker.show(); +// } else { +// getDicListByType(PathConfig.DIC_FLOW_CAUSE, 11); +// } +// } +// +// +// +// +// /** +// * 健康状况 +// */ +// private void onShowHealth(int i) { +// mCurrentHealthType = i; +// hideSoftKeyboard(); +// if (mHealthList != null && mHealthList.size() > 0) { +// if (mHealthPicker == null) { +// mHealthPicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { +// if (i == 1) { +// mSelHealth = mHealthList.get(o1); +// mTvHealth.setText(mSelHealth.getDictionaryName()); +// } else { +// mSelOldHealth = mHealthList.get(o1); +// mTvOldHealth.setText(mSelOldHealth.getDictionaryName()); +// } +// }) +// .setTitleText("请选择") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mHealthPicker.setPicker(mHealthList); +// } +// mHealthPicker.show(); +// } else { +// getDicListByType(PathConfig.DIC_HEALTH, 10); +// } +// } +// +// /** +// * 社会保险情况 +// */ +// private void onShowInSure() { +// hideSoftKeyboard(); +// if (mInsureList != null && mInsureList.size() > 0) { +// if (mInsurePicker == null) { +// mInsurePicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { +// mSelInsure = mInsureList.get(o1); +// mTvInsure.setText(mSelInsure.getDictionaryName()); +// }) +// .setTitleText("请选择") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mInsurePicker.setPicker(mInsureList); +// } +// mInsurePicker.show(); +// } else { +// getDicListByType(PathConfig.DIC_INSURE, 9); +// } +// } +// +// /** +// * 婚姻状况 +// */ +// private void onShowMarriage() { +// hideSoftKeyboard(); +// if (mMarriageList != null && mMarriageList.size() > 0) { +// if (mMarriagePicker == null) { +// mMarriagePicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { +// mSelMarriage = mMarriageList.get(o1); +// mTvMarriage.setText(mSelMarriage.getDictionaryName()); +// }) +// .setTitleText("请选择") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mMarriagePicker.setPicker(mMarriageList); +// } +// mMarriagePicker.show(); +// } else { +// getDicListByType(PathConfig.DIC_MARRIAGE, 8); +// } +// } +// +// /** +// * 宗教信仰 +// */ +// private void onShowReligion() { +// hideSoftKeyboard(); +// if (mReligionList != null && mReligionList.size() > 0) { +// if (mReligionPicker == null) { +// mReligionPicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { +// mSelReligion = mReligionList.get(o1); +// mTvReligion.setText(mSelReligion.getDictionaryName()); +// }) +// .setTitleText("请选择") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mReligionPicker.setPicker(mReligionList); +// } +// mReligionPicker.show(); +// } else { +// getDicListByType(PathConfig.DIC_RELIGION, 7); +// } +// } +// +// /** +// * 所属党派 +// */ +// private void onShowPolitical() { +// hideSoftKeyboard(); +// if (mPoliticalList != null && mPoliticalList.size() > 0) { +// if (mPoliticalPicker == null) { +// mPoliticalPicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { +// mSelPolitical = mPoliticalList.get(o1); +// mTvPolitical.setText(mSelPolitical.getDictionaryName()); +// }) +// .setTitleText("请选择") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mPoliticalPicker.setPicker(mPoliticalList); +// } +// mPoliticalPicker.show(); +// } else { +// getDicListByType(PathConfig.DIC_POLITICS, 6); +// } +// } +// +// /** +// * 户主关系 +// */ +// private void onShowRelation() { +// hideSoftKeyboard(); +// if (mHeadRelationList != null && mHeadRelationList.size() > 0) { +// if (mHeadRelationPicker == null) { +// mHeadRelationPicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { +// mSelHeadRelation = mHeadRelationList.get(o1); +// mTvRelation.setText(mSelHeadRelation.getDictionaryName()); +// }) +// .setTitleText("请选择") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mHeadRelationPicker.setPicker(mHeadRelationList); +// } +// mHeadRelationPicker.show(); +// } else { +// getDicListByType(PathConfig.DIC_RELATION, 5); +// } +// } +// +// /** +// * 文化程度 +// */ +// private void onShowDegree() { +// hideSoftKeyboard(); +// if (mDegreeList != null && mDegreeList.size() > 0) { +// if (mDegreePicker == null) { +// mDegreePicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { +// mSelDegree = mDegreeList.get(o1); +// mTvDegree.setText(mSelDegree.getDictionaryName()); +// }) +// .setTitleText("请选择") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mDegreePicker.setPicker(mDegreeList); +// } +// mDegreePicker.show(); +// } else { +// getDicListByType(PathConfig.DIC_EDU, 4); +// } +// } +// +// /** +// * 民族 +// */ +// private void onShowNation() { +// hideSoftKeyboard(); +// if (mNationList != null && mNationList.size() > 0) { +// if (mNationPicker == null) { +// mNationPicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { +// mSelNation = mNationList.get(o1); +// mTvNation.setText(mSelNation.getDictionaryName()); +// }) +// .setTitleText("请选择") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mNationPicker.setPicker(mNationList); +// } +// mNationPicker.show(); +// } else { +// getDicListByType(PathConfig.DIC_NATION, 3); +// } +// } +// +// /** +// * 性别 +// */ +// private void onShowGender() { +// hideSoftKeyboard(); +// if (mGenderList != null && mGenderList.size() > 0) { +// if (mGenderPicker == null) { +// mGenderPicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { +// mSelGender = mGenderList.get(o1); +// mTvGender.setText(mSelGender.getDictionaryName()); +// }) +// .setTitleText("请选择") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mGenderPicker.setPicker(mGenderList); +// } +// mGenderPicker.show(); +// } else { +// getDicListByType(PathConfig.DIC_GENDER, 2); +// } +// } +// + +// +// /** +// * 基础信息-证件类型 +// */ +// private void onShowCardType() { +// hideSoftKeyboard(); +// if (mCardTypeList != null && mCardTypeList.size() > 0) { +// if (mCardTypePicker == null) { +// mCardTypePicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { +// mSelCardType = mCardTypeList.get(o1); +// mTvCardType.setText(mSelCardType.getDictionaryName()); +// }) +// .setTitleText("请选择") +// .setCancelColor(Color.parseColor("#1189FF")) +// .setSubmitColor(Color.parseColor("#1189FF")) +// .setTitleColor(Color.parseColor("#1189FF")) +// .build(); +// mCardTypePicker.setPicker(mCardTypeList); +// } +// mCardTypePicker.show(); +// } else { +// getDicListByType(PathConfig.DIC_CARD_TYPE, 1); +// } +// } + /** * 获取详情 * @@ -134,31 +856,31 @@ public class CensusRegisterAddActivity extends BaseActivity { */ private void getDetialById(String id) { RetrofitManager.getInstance() - .create(LocationApiService.class) - .getCensusRegisterDetail(id, UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { + .create(LocationApiService.class) + .getCensusRegisterDetail(id, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { - } + } - @Override - public void onNext(@NonNull CensusRegisterDetailBean censusRegisterDetailBean) { - setDataToView(censusRegisterDetailBean, 0); - } + @Override + public void onNext(@NonNull CensusRegisterDetailBean censusRegisterDetailBean) { + setDataToView(censusRegisterDetailBean, 0); + } - @Override - public void onError(@NonNull Throwable e) { - refreshView(STATE_LOAD_ERROR); - } + @Override + public void onError(@NonNull Throwable e) { + refreshView(STATE_LOAD_ERROR); + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } /** @@ -166,45 +888,21 @@ public class CensusRegisterAddActivity extends BaseActivity { */ private void setDataToView(CensusRegisterDetailBean bean, int type) { mId = bean.getCensusMsgId(); - isAccord = bean.getPeopleSameCensus().equals("一致");//人户一致标识 - mSelRelation = bean.getRelationshipWithHouseholder(); - mSwAccord.setChecked(isAccord); - mEtPhone.setText(bean.getContact()); - mEtHouseNumber.setText(bean.getCensusNumber()); - mEtHouseName.setText(bean.getNameOfHouseholder()); - mEtIdCard.setText(bean.getIdCardOfHouseholder()); - mTvRelation.setText(bean.getRelationshipWithHouseholder()); - if (type == 0) { - mEtSearchIdCard.setText(bean.getIdCardNumber()); - doSearchPerson(); - } - refreshView(STATE_LOAD_SUCCESS); +// isAccord = bean.getPeopleSameCensus().equals("一致");//人户一致标识 +// mSelRelation = bean.getRelationshipWithHouseholder(); +// mSwAccord.setChecked(isAccord); +// mEtPhone.setText(bean.getContact()); +// mEtHouseNumber.setText(bean.getCensusNumber()); +// mEtHouseName.setText(bean.getNameOfHouseholder()); +// mEtIdCard.setText(bean.getIdCardOfHouseholder()); +// mTvRelation.setText(bean.getRelationshipWithHouseholder()); +// if (type == 0) { +// mEtSearchIdCard.setText(bean.getIdCardNumber()); +// doSearchPerson(); +// } +// refreshView(STATE_LOAD_SUCCESS); } - /** - * 户主关系 - */ - private void onShowRelation() { - hideSoftKeyboard(); - if (mRelationList != null && mRelationList.size() > 0) { - if (mRelationPicker == null) { - mRelationPicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { - DicBean bean = mRelationList.get(o1); - mTvRelation.setText(bean.getDictionaryName()); - mSelRelation = bean.getDictionaryName(); - }) - .setTitleText("请选择") - .setCancelColor(Color.parseColor("#1189FF")) - .setSubmitColor(Color.parseColor("#1189FF")) - .setTitleColor(Color.parseColor("#1189FF")) - .build(); - mRelationPicker.setPicker(mRelationList); - } - mRelationPicker.show(); - } else { - getDicListByType(PathConfig.DIC_RELATION, 3); - } - } /** * 提交 @@ -224,227 +922,21 @@ public class CensusRegisterAddActivity extends BaseActivity { dialog.show(); RequestBody body = buildParams(); RetrofitManager.getInstance() - .create(LocationApiService.class) - .doSaveCensusRegister(body, UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - - } - - @Override - public void onNext(@NonNull SuccessBean successBean) { - dialog.dismiss(); - ToastUtils.showShort("录入成功"); - finish(); - } - - @Override - public void onError(@NonNull Throwable e) { - dialog.dismiss(); - ExceptionHandler.handleException(e); - } - - @Override - public void onComplete() { - - } - }); - } - - private void doEdit() { - ProgressDialog dialog = UIUtil.initDialog(mActivity, "修改中..."); - dialog.show(); - RequestBody body = buildParams(); - RetrofitManager.getInstance() - .create(LocationApiService.class) - .doEditRegister(mId, body, UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - - } - - @Override - public void onNext(@NonNull SuccessBean successBean) { - dialog.dismiss(); - ToastUtils.showShort("修改成功"); - finish(); - } - - @Override - public void onError(@NonNull Throwable e) { - dialog.dismiss(); - ExceptionHandler.handleException(e); - } - - @Override - public void onComplete() { - - } - }); - } - - /** - * 校验参数合法 - */ - private boolean checkParams() { - String houseNumber = mEtHouseNumber.getText().toString().trim(); - if (TextUtils.isEmpty(houseNumber)) { - ToastUtils.showShort("请输入户号"); - return false; - } - String idCard = mEtIdCard.getText().toString().trim(); - if (!TextUtils.isEmpty(idCard) && !RegexUtils.isIDNumber(idCard)) { - ToastUtils.showShort("请输入合法的户主身份证号码"); - return false; - } - if (TextUtils.isEmpty(mSelRelation)) { - ToastUtils.showShort("请选择与户主关系"); - return false; - } - String phone = mEtPhone.getText().toString().trim(); - if (!TextUtils.isEmpty(phone) && !RegexUtils.isPhone(phone)) { - ToastUtils.showShort("请输入合法的户主联系方式"); - return false; - } - return true; - } - - private RequestBody buildParams() { - - CensusmsgBean bean = new CensusmsgBean(); - bean.setBaseId(mBaseInfoBean.getBasePopulationInfoId()); - //人户一致 - if (isAccord) { - bean.setPeopleSameCensus("一致"); - } else { - bean.setPeopleSameCensus("不一致"); - } - //户号 - String houseNumber = mEtHouseNumber.getText().toString().trim(); - bean.setCensusNumber(houseNumber); - //户主身份证号码 - String idCard = mEtIdCard.getText().toString().trim(); - if (!TextUtils.isEmpty(idCard)) { - bean.setIdCardOfHouseholder(idCard); - } - //户主姓名 - String name = mEtHouseName.getText().toString().trim(); - if (!TextUtils.isEmpty(name)) { - bean.setNameOfHouseholder(name); - } - //与户主关系 - bean.setRelationshipWithHouseholder(mSelRelation); - //户主联系方式 - String phone = mEtPhone.getText().toString().trim(); - bean.setContact(phone); - Gson gson = new Gson(); - String obj = gson.toJson(bean); - RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj); - return requestBody; - } - - /** - * 获取字典 - * - * @param i - */ - private void getDicListByType(String pId, int i) { - ProgressDialog dialog = UIUtil.initDialog(mActivity, "获取中..."); - dialog.show(); - RetrofitManager.getInstance() - .create(LocationApiService.class) - .getDictListAllByPid(pId, UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer>() { - @Override - public void onSubscribe(@NonNull Disposable d) { - - } - - @Override - public void onNext(@NonNull List typeListBeans) { - dialog.dismiss(); - if (typeListBeans != null && typeListBeans.size() > 0) { - switch (i) { - case 3: - mRelationList = typeListBeans; - onShowRelation(); - break; - } - } else { - ToastUtils.showShort("暂无数据"); - } - } - - @Override - public void onError(@NonNull Throwable e) { - dialog.dismiss(); - ExceptionHandler.handleException(e); - } - - @Override - public void onComplete() { - - } - }); - - } - - private void doSearchPerson() { - String searchIdCard = mEtSearchIdCard.getText().toString().trim(); - if (TextUtils.isEmpty(searchIdCard) || !RegexUtils.isIDNumber(searchIdCard)) { - ToastUtils.showShort("请输入合法的身份证号码"); - return; - } else { - hideSoftKeyboard(); - ProgressDialog dialog = UIUtil.initDialog(mActivity, "查询中..."); - dialog.show(); - Observable detailBeanObservable = RetrofitManager.getInstance().create(LocationApiService.class).getCensusRegisterDetailByIdCard(searchIdCard, UserLgUtils.getToken()); - Observable infoBean = RetrofitManager.getInstance() .create(LocationApiService.class) - .doSearchBaseInfoByIdCard(searchIdCard, UserLgUtils.getToken()); - Observable.merge(detailBeanObservable, infoBean) + .doSaveCensusRegister(body, UserLgUtils.getToken()) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { + .subscribe(new Observer() { @Override public void onSubscribe(@NonNull Disposable d) { } @Override - public void onNext(@NonNull Object o) { - if (o instanceof SearchBaseInfoBean) { - SearchBaseInfoBean infoBean1 = (SearchBaseInfoBean) o; - if (!TextUtils.isEmpty(infoBean1.getIdCardNumber())) { - //设置基础信息 - setBaseInfo(infoBean1); - } else { - ToastUtils.showLong("未查询到改人员的基础信息,请完善基础信息"); - mTvBaseName.setText(""); - mTvBaseGender.setText(""); - mTvBasePhone.setText(""); - mTvBaseNative.setText(""); - mTvBaseCurLoc.setText(""); - mLlContent.setVisibility(View.GONE); - } - } else if (o instanceof CensusRegisterDetailBean) { - CensusRegisterDetailBean bean = (CensusRegisterDetailBean) o; - if (!TextUtils.isEmpty(bean.getCensusMsgId())) { - mTvBaseTitle.setText("户籍信息编辑"); - } else { - mTvBaseTitle.setText("户籍信息录入"); - } - setDataToView(bean, 1); - } + public void onNext(@NonNull SuccessBean successBean) { dialog.dismiss(); + ToastUtils.showShort("录入成功"); + finish(); } @Override @@ -458,40 +950,234 @@ public class CensusRegisterAddActivity extends BaseActivity { } }); - } } + private void doEdit() { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "修改中..."); + dialog.show(); + RequestBody body = buildParams(); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .doEditRegister(mId, body, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + + } + + @Override + public void onNext(@NonNull SuccessBean successBean) { + dialog.dismiss(); + ToastUtils.showShort("修改成功"); + finish(); + } + + @Override + public void onError(@NonNull Throwable e) { + dialog.dismiss(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + } + + /** + * 校验参数合法 + */ + private boolean checkParams() { + String name = mEtName.getText().toString().trim(); + if (TextUtils.isEmpty(name)) { + ToastUtils.showShort("请输入姓名"); + return false; + } + +// String houseNumber = mEtHouseNumber.getText().toString().trim(); +// if (TextUtils.isEmpty(houseNumber)) { +// ToastUtils.showShort("请输入户号"); +// return false; +// } +// String idCard = mEtIdCard.getText().toString().trim(); +// if (!TextUtils.isEmpty(idCard) && !RegexUtils.isIDNumber(idCard)) { +// ToastUtils.showShort("请输入合法的户主身份证号码"); +// return false; +// } +// if (TextUtils.isEmpty(mSelRelation)) { +// ToastUtils.showShort("请选择与户主关系"); +// return false; +// } +// String phone = mEtPhone.getText().toString().trim(); +// if (!TextUtils.isEmpty(phone) && !RegexUtils.isPhone(phone)) { +// ToastUtils.showShort("请输入合法的户主联系方式"); +// return false; +// } + return true; + } + + private RequestBody buildParams() { + + CensusmsgBean bean = new CensusmsgBean(); + + Gson gson = new Gson(); + String obj = gson.toJson(bean); + RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj); + return requestBody; + } + + /** + * 获取字典 + * + * @param i + */ + private void getDicListByType(String pId, int i) { +// ProgressDialog dialog = UIUtil.initDialog(mActivity, "获取中..."); +// dialog.show(); +// RetrofitManager.getInstance() +// .create(LocationApiService.class) +// .getDictListAllByPid(pId, UserLgUtils.getToken()) +// .subscribeOn(Schedulers.io()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(new Observer>() { +// @Override +// public void onSubscribe(@NonNull Disposable d) { +// +// } +// +// @Override +// public void onNext(@NonNull List l) { +// dialog.dismiss(); +// if (l != null && l.size() > 0) { +// switch (i) { +// case 1://证件类型 +// mCardTypeList = l; +// onShowCardType(); +// break; +// case 2://性别 +// mGenderList = l; +// onShowGender(); +// break; +// case 3://民族 +// mNationList = l; +// onShowNation(); +// break; +// case 4://学历 +// mDegreeList = l; +// onShowDegree(); +// break; +// case 5://与户主关系 +// mReligionList = l; +// onShowRelation(); +// break; +// case 6://所属党派 +// mPoliticalList = l; +// onShowPolitical(); +// break; +// case 7://宗教信仰 +// mReligionList = l; +// onShowReligion(); +// break; +// case 8://婚姻状况 +// mMarriageList = l; +// onShowMarriage(); +// break; +// case 9://社保情况 +// mInsureList = l; +// onShowInSure(); +// break; +// case 10://健康状况 +// mHealthList = l; +// onShowHealth(mCurrentHealthType); +// break; +// case 11://流动原因 +// mFlowList = l; +// onShowFlowCause(); +// break; +// case 12://老人类别 +// mOldTypeList = l; +// onShowOldType(); +// break; +// case 13://生活照料情况 +// mOldLiveCareList = l; +// onShowOldLiveCare(); +// break; +// case 14://生活自理能力 +// mOldLiveAbilityList = l; +// onShowOldLiveAbility(); +// break; +// +// } +// } else { +// ToastUtils.showShort("暂无数据"); +// } +// } +// +// @Override +// public void onError(@NonNull Throwable e) { +// dialog.dismiss(); +// ExceptionHandler.handleException(e); +// } +// +// @Override +// public void onComplete() { +// +// } +// }); + + } + + private void getDicListByType(String pId, int i, int source) { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "获取中..."); + dialog.show(); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .getDictListAllByPid(pId, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + + } + + @Override + public void onNext(@NonNull List l) { + dialog.dismiss(); + if (l != null && l.size() > 0) { + mDicBeanList = l; + onShowDicPicker(pId, 1, source); + } else { + ToastUtils.showShort("暂无数据"); + } + } + + @Override + public void onError(@NonNull Throwable e) { + dialog.dismiss(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + + } + + /** * 初始化页面 */ private void setDefault() { - isAccord = false;//人户一致标识 - mRelationList = null; - mSelRelation = ""; - mBaseInfoBean = null; - mSwAccord.setChecked(isAccord); - - mEtPhone.setText(""); - mEtHouseNumber.setText(""); - mEtHouseName.setText(""); - mEtIdCard.setText(""); - mTvRelation.setText(""); - } - - /** - * 设置基础信息 - */ - private void setBaseInfo(SearchBaseInfoBean o) { - mBaseInfoBean = o; - mLlContent.setVisibility(View.VISIBLE); - mTvBaseName.setText(o.getFullName()); - mTvBaseGender.setText(o.getGenderDictionaryName()); - mTvBasePhone.setText(o.getTelephone()); - mTvBaseNative.setText(o.getNativePlaceAddr()); - mTvBaseCurLoc.setText(o.getAreaNames() + "/" + o.getCurrentResidenceAddr()); } + @Override protected void onDestroy() { super.onDestroy(); diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/outbound/CensusOutBoundAddActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/outbound/CensusOutBoundAddActivity.java index 8a4f69c..b54a1d0 100644 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/outbound/CensusOutBoundAddActivity.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/census/outbound/CensusOutBoundAddActivity.java @@ -19,7 +19,6 @@ import com.sucstepsoft.cm_utils.constant.PathConfig; import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager; import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; import com.sucstepsoft.cm_utils.core.widget.views.CenterChooseAreaDialogView; -import com.sucstepsoft.cm_utils.utils.IDCard; import com.sucstepsoft.cm_utils.utils.ToastUtils; import com.sucstepsoft.cm_utils.utils.UIUtil; import com.sucstepsoft.cm_utils.utils.UserLgUtils; @@ -242,7 +241,7 @@ public class CensusOutBoundAddActivity extends BaseActivity { } mFaithPicker.show(); } else { - getDicListByType(PathConfig.DIC_FAITH, 4); + getDicListByType(PathConfig.DIC_RELIGION, 4); } } diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/common/WorkSignActivity.java b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/common/WorkSignActivity.java index 4ed79a4..c7a1ba5 100644 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/common/WorkSignActivity.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/activitys/common/WorkSignActivity.java @@ -1,15 +1,119 @@ package com.sucstepsoft.realtimelocation.activitys.common; -import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; -import com.sucstepsoft.realtimelocation.R; +import android.app.ProgressDialog; +import android.content.Intent; +import android.graphics.Color; +import android.support.v7.app.AlertDialog; +import android.text.TextUtils; +import android.view.View; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; +import android.widget.ZoomControls; +import com.baidu.location.BDAbstractLocationListener; +import com.baidu.location.BDLocation; +import com.baidu.location.LocationClient; +import com.baidu.location.LocationClientOption; +import com.baidu.mapapi.map.BaiduMap; +import com.baidu.mapapi.map.MapStatus; +import com.baidu.mapapi.map.MapStatusUpdate; +import com.baidu.mapapi.map.MapStatusUpdateFactory; +import com.baidu.mapapi.map.MyLocationData; +import com.baidu.mapapi.map.OverlayOptions; +import com.baidu.mapapi.map.PolygonOptions; +import com.baidu.mapapi.map.Stroke; +import com.baidu.mapapi.map.TextureMapView; +import com.baidu.mapapi.model.LatLng; +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.resource.bitmap.CircleCrop; +import com.bumptech.glide.request.RequestOptions; +import com.google.gson.Gson; +import com.sucstepsoft.cm_utils.constant.PathConfig; +import com.sucstepsoft.cm_utils.core.retrofit_net.BaseUrlApi; +import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager; +import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; +import com.sucstepsoft.cm_utils.utils.ConvertUtils; +import com.sucstepsoft.cm_utils.utils.TimeUtils; +import com.sucstepsoft.cm_utils.utils.ToastUtils; +import com.sucstepsoft.cm_utils.utils.UIUtil; +import com.sucstepsoft.cm_utils.utils.UserLgUtils; +import com.sucstepsoft.realtimelocation.R; +import com.sucstepsoft.realtimelocation.beans.AppTokenUser; +import com.sucstepsoft.realtimelocation.beans.CheckSignBean; +import com.sucstepsoft.realtimelocation.beans.CheckSignOffBean; +import com.sucstepsoft.realtimelocation.beans.PenNewLineBean; +import com.sucstepsoft.realtimelocation.beans.SignBean; +import com.sucstepsoft.realtimelocation.beans.SignDataBean; +import com.sucstepsoft.realtimelocation.beans.SignOffBean; +import com.sucstepsoft.realtimelocation.beans.SignTimeBean; +import com.sucstepsoft.realtimelocation.beans.SuccessBean; +import com.sucstepsoft.realtimelocation.net.LocationApiService; +import com.sucstepsoft.realtimelocation.services.GlobalProvider; +import com.sucstepsoft.realtimelocation.utils.ExceptionHandler; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; + +import butterknife.BindView; import butterknife.ButterKnife; +import io.reactivex.Observable; +import io.reactivex.Observer; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.disposables.Disposable; +import io.reactivex.schedulers.Schedulers; +import okhttp3.RequestBody; /** * 签到 */ public class WorkSignActivity extends BaseActivity { + @BindView(R.id.iv_user_icon) + ImageView mIvUserIcon; + @BindView(R.id.tv_user_name) + TextView mTvUserName; + @BindView(R.id.tv_user_department) + TextView mTvUserDepartment; + @BindView(R.id.tv_cur_location) + TextView mTvCurLocation; + @BindView(R.id.tmv_map) + TextureMapView mTmvMap; + @BindView(R.id.btn_reset_loc) + Button mBtnResetLoc; + @BindView(R.id.tv_state) + TextView mTvState; + @BindView(R.id.ll_sign) + LinearLayout mLlSign; + @BindView(R.id.tv_in_time) + TextView mTvInTime; + @BindView(R.id.tv_cur_time) + TextView mTvCurTime; + @BindView(R.id.tv_out_time) + TextView mTvOutTime; + @BindView(R.id.iv_state) + ImageView mIvState; + @BindView(R.id.iv_sign_in_state) + ImageView mIvSignInState; + @BindView(R.id.iv_sign_out_state) + ImageView mIvSignOutState; + private List> mPenLineList; + private BaiduMap mBaiduMap; + private BDLocation mCurrent; + private LatLng mDefaultLocation = new LatLng(PathConfig.LA, PathConfig.LO); + private LocationClient mLocationClient; + private ProgressDialog mProgressDialog; + private SignTimeBean mSignTimeBean; + private Gson mGson; + private int userType = 2;//1专管员 2是网格员 + private Disposable mTimeDisposable; + private ProgressDialog mCheckSignDialog; + private boolean isSign = false;//是否签到 + private boolean isSignOff = false;//是否签退 + private boolean mCanSign = false;//能否签到、签退 + @Override protected int setLayoutId() { return R.layout.activity_work_sign; @@ -19,5 +123,702 @@ public class WorkSignActivity extends BaseActivity { public void initData() { super.initData(); ButterKnife.bind(this); + refreshView(STATE_LOAD_LOADING); + initMap(); + getSignRule(123); + } + + private void initMap() { + mBaiduMap = mTmvMap.getMap(); + MapStatus ms = new MapStatus.Builder().zoom(16).target(mDefaultLocation).build(); + MapStatusUpdate u = MapStatusUpdateFactory.newMapStatus(ms); + mBaiduMap.animateMapStatus(u); + mTvUserName.setText(UserLgUtils.getName()); + Glide.with(mActivity) + .load(BaseUrlApi.BASE_IMG_URL + UserLgUtils.getAvatar()) + .apply(RequestOptions.bitmapTransform(new CircleCrop()) + .error(R.drawable.ic_user_default) + .placeholder(R.drawable.ic_user_default)) + .into(mIvUserIcon); + + mBtnResetLoc.setOnClickListener(v -> { + if (mCurrent != null && mCurrent.getLatitude() != 0 && mCurrent.getLongitude() != 0) { + MapStatus cur = new MapStatus.Builder().zoom(16).target(new LatLng(mCurrent.getLatitude(), mCurrent.getLongitude())).build(); + MapStatusUpdate curUpdate = MapStatusUpdateFactory.newMapStatus(cur); + mBaiduMap.animateMapStatus(curUpdate); + } + }); + View child = mTmvMap.getChildAt(1); + if (child != null && (child instanceof ImageView || child instanceof ZoomControls)) { + child.setVisibility(View.GONE); + } + mTmvMap.showZoomControls(false); + getUserGrid(); + startLocation(); + getCurrentTime(); + checkSign(); + mLlSign.setOnClickListener(v -> doSign()); + refreshView(STATE_LOAD_SUCCESS); + } + + /** + * 签到或签退 + */ + private void doSign() { + if (mCanSign) { + if (isSign) { + //已经签到,显示签退 + if (isSignOff) { + ToastUtils.showShort("今日打卡已完成"); + } else { + if (mPenLineList != null && mPenLineList.size() > 0) { + if (checkCurrentPointIsBeyond(mCurrent)) { + showSignOffDialog(); + } else { + ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); + } + } else { + getUserGrid(); + } + } + } else { + //未签到 + if (mPenLineList != null && mPenLineList.size() > 0) { + if (checkCurrentPointIsBeyond(mCurrent)) { + showSDialog(); + } else { + ToastUtils.showShort("当前位置不在所管辖片区内,请前往片区内进行签到或签退操作."); + } + } else { + getUserGrid(); + } + } + } else { + checkSign(); + } + } + + + /** + * 显示签到 + */ + private void showSDialog() { + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setMessage("确认要签到吗?"); + builder.setTitle("提示") + .setMessage("确认要签到吗?") + .setPositiveButton("确定", (dialog, which) -> { + dialog.dismiss(); + doSignNet(); + }) + .setNegativeButton("取消", (dialog, which) -> dialog.dismiss()); + builder.create().show(); + } + + + /** + * 显示签退 + */ + private void showSignOffDialog() { + if (mSignTimeBean == null) { + getSignRule(2); + } else { + String hintMsg; + boolean legal; + //判断是那个时间 + if (!TextUtils.isEmpty(mSignTimeBean.getCustomSignInStr())) { + legal = TimeUtils.compareToCurrent(mSignTimeBean.getCustomSignOutStr()); + } else { + if (userType == 1) { + //专管员 + legal = TimeUtils.compareToCurrent(mSignTimeBean.getNSignOutStr()); + } else { + //网格员 + legal = TimeUtils.compareToCurrent(mSignTimeBean.getSignOutStr()); + } + } + + if (legal) { + hintMsg = "确定要签退吗?"; + } else { + hintMsg = "未到签退时间,提前签退属早退,您确定要早退吗?"; + } + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle("提示") + .setMessage(hintMsg) + .setPositiveButton("确定", (dialog, which) -> { + dialog.dismiss(); + doSignOff(); + }) + .setNegativeButton("取消", (dialog, which) -> dialog.dismiss()); + builder.create().show(); + } + + } + + /** + * 进行签到 + */ + private void doSignNet() { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "签到中..."); + dialog.show(); + SignBean bean = new SignBean(); + bean.setSigninLatitude(mCurrent.getLatitude() + ""); + bean.setSigninLongitude(mCurrent.getLongitude() + ""); + Gson gson = new Gson(); + String obj = gson.toJson(bean); + RequestBody body = RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), obj); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .doSign(body, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(SignDataBean successBean) { + if (successBean.isData()) { + mIvSignInState.setBackground(getResources().getDrawable(R.drawable.ic_sign_late)); + } else { + mIvSignInState.setBackground(getResources().getDrawable(R.drawable.ic_sign_normal)); + Glide.with(mActivity) + .load(R.drawable.ic_nomal) + .into(mIvState); + mTvState.setText("正常"); + mTvState.setTextColor(Color.WHITE); + } + + + isSign = true; + isSignOff = false; + dialog.dismiss(); + GlobalProvider.save(mActivity, "isUpload", "13"); + mTvState.setText("签退"); + mTvState.setTextColor(Color.WHITE); + ToastUtils.showLong("签到成功"); + } + + @Override + public void onError(Throwable e) { + e.printStackTrace(); + dialog.dismiss(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + } + + /** + * 签退 + */ + private void doSignOff() { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "签退中..."); + dialog.show(); + SignOffBean bean = new SignOffBean(); + bean.setSignoutLatitude(mCurrent.getLatitude() + ""); + bean.setSignoutLongitude(mCurrent.getLongitude() + ""); + Gson gson = new Gson(); + String obj = gson.toJson(bean); + RequestBody body = RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), obj); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .doSignOff(body, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + } + + @Override + public void onNext(SuccessBean successBean) { + dialog.dismiss(); + isSignOff = true; + mTvState.setText("今日完成"); + mIvSignOutState.setBackground(getResources().getDrawable(R.drawable.ic_sign_normal)); + mTvState.setTextColor(Color.WHITE); + ToastUtils.showLong("签退成功"); + GlobalProvider.save(mActivity, "isUpload", "12"); + } + + @Override + public void onError(Throwable e) { + dialog.dismiss(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + } + + /** + * 判断是否越界 + * + * @param bdLocation + */ + private boolean checkCurrentPointIsBeyond(BDLocation bdLocation) { +// if (mPenLineList != null && mPenLineList.size() > 0) { +// for (int i = 0; i < mPenLineList.size(); i++) { +// LatLng latLng = new LatLng(bdLocation.getLatitude(), bdLocation.getLongitude()); +// boolean inPolygon = PointUtils.isInPolygon(latLng, mPenLineList.get(i)); +// if (inPolygon) { +// return true; +// } +// } +// return false; +// } else { +// return false; +// } + return true; + } + + private void checkSign() { + mCheckSignDialog = UIUtil.initDialog(mActivity, "获取中..."); + mCheckSignDialog.show(); + RetrofitManager.getInstance() + .create(LocationApiService.class) + .checkSign(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(CheckSignBean checkSignBean) { + if (checkSignBean != null) { + mTvState.setBackground(null); + if (checkSignBean.getData().isSignIn()) { + if (checkSignBean.getData().isLate()) { + mIvSignInState.setBackground(getResources().getDrawable(R.drawable.ic_sign_late)); + } else { + mIvSignInState.setBackground(getResources().getDrawable(R.drawable.ic_sign_normal)); + } + isSign = true; + mTvState.setTextColor(Color.WHITE); + mTvState.setText("签退"); + checkSignOff(); + GlobalProvider.save(mActivity, "isUpload", "13"); + } else { + if (mCheckSignDialog != null && mCheckSignDialog.isShowing()) { + mCheckSignDialog.dismiss(); + } + mIvSignInState.setBackground(null); + mCanSign = true; + isSign = false; + mTvState.setTextColor(Color.WHITE); + mTvState.setText("签到"); + GlobalProvider.save(mActivity, "isUpload", "12"); + } + } else { + if (mCheckSignDialog != null && mCheckSignDialog.isShowing()) { + mCheckSignDialog.dismiss(); + } + ToastUtils.showShort("签到状态获取失败,点击重试"); + mTvState.setBackground(getResources().getDrawable(R.drawable.ic_reload_refresh)); + } + } + + @Override + public void onError(Throwable e) { + if (mCheckSignDialog != null && mCheckSignDialog.isShowing()) { + mCheckSignDialog.dismiss(); + } + ToastUtils.showShort("签到状态获取失败,点击重试"); + mTvState.setBackground(getResources().getDrawable(R.drawable.ic_reload_refresh)); + } + + @Override + public void onComplete() { + + } + }); + } + + /** + * 获取是否签退 + */ + private void checkSignOff() { + RetrofitManager.getInstance() + .create(LocationApiService.class) + .checkSignOff(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(CheckSignOffBean checkSignBean) { + if (checkSignBean != null && !TextUtils.isEmpty(checkSignBean.getData())) { + boolean b = Boolean.parseBoolean(checkSignBean.getData()); + mTvState.setBackground(null); + if (mCheckSignDialog != null && mCheckSignDialog.isShowing()) { + mCheckSignDialog.dismiss(); + } + if (b) { + //已经签退 + mCanSign = false; + isSignOff = true; + mTvState.setTextColor(Color.WHITE); + mTvState.setText("今日完成"); + mIvSignOutState.setBackground(getResources().getDrawable(R.drawable.ic_sign_normal)); + GlobalProvider.save(mActivity, "isUpload", "12"); + } else { + mCanSign = true; + //没有签退 + isSignOff = false; + mTvState.setTextColor(Color.WHITE); + mTvState.setText("签退"); + mIvSignOutState.setBackground(null); + GlobalProvider.save(mActivity, "isUpload", "13"); + } + } else { + //加载失败了 + if (mCheckSignDialog != null && mCheckSignDialog.isShowing()) { + mCheckSignDialog.dismiss(); + } + mCanSign = false; + mIvSignOutState.setBackground(null); + ToastUtils.showShort("签到状态获取失败,点击重试"); + mTvState.setBackground(getResources().getDrawable(R.drawable.ic_reload_refresh)); + + } + } + + @Override + public void onError(Throwable e) { + if (mCheckSignDialog != null && mCheckSignDialog.isShowing()) { + mCheckSignDialog.dismiss(); + } + mIvSignOutState.setBackground(null); + mCanSign = false; + ToastUtils.showShort("签到状态获取失败,点击重试"); + mTvState.setBackground(getResources().getDrawable(R.drawable.ic_reload_refresh)); + GlobalProvider.save(mActivity, "isUpload", "13"); + } + + @Override + public void onComplete() { + } + }); + } + + /** + * 显示当前日期和时间 + */ + private void getCurrentTime() { + Observable.interval(1, TimeUnit.SECONDS) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + mTimeDisposable = d; + } + + @Override + public void onNext(Long aLong) { + String curTime = TimeUtils.getCurDate() + "\n" + TimeUtils.getCurTime(); + mTvCurTime.setText(curTime); + } + + @Override + public void onError(Throwable e) { + + } + + @Override + public void onComplete() { + + } + }); + } + + /** + * 获取签到规则 + */ + private void getSignRule(int i) { + if (i == 2) { + mProgressDialog = UIUtil.initDialog(WorkSignActivity.this, "获取中..."); + mProgressDialog.show(); + } + RetrofitManager.getInstance() + .create(LocationApiService.class) + .getpunchTime(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(SignTimeBean signTimeBean) { + if (mProgressDialog != null && mProgressDialog.isShowing() && i == 2) { + mProgressDialog.dismiss(); + if (signTimeBean == null) { + ToastUtils.showShort("获取签到规则失败"); + } else { + mSignTimeBean = signTimeBean; + ToastUtils.showShort("获取签到规则成功,请重新签到或签退"); + } + } + if (signTimeBean != null) { + mSignTimeBean = signTimeBean; + //保存签到时间 + mGson = new Gson(); + String loginInfo = UserLgUtils.getLoginInfo(); + if (!TextUtils.isEmpty(loginInfo)) { + AppTokenUser appTokenUser = mGson.fromJson(loginInfo, AppTokenUser.class); + if (appTokenUser.getRoles() != null && appTokenUser.getRoles().size() > 0) { + for (int i = 0; i < appTokenUser.getRoles().size(); i++) { + if (!TextUtils.isEmpty(appTokenUser.getRoles().get(i).getRoleName())) { + mTvUserDepartment.setText(appTokenUser.getRoles().get(i).getRoleName()); + break; + } + } + } + if (appTokenUser.getRoles() != null && appTokenUser.getRoles().size() > 0) { + for (int i = 0; i < appTokenUser.getRoles().size(); i++) { + if (PathConfig.USER_TYPE_N.equals(appTokenUser.getRoles().get(i).getRoleId())) { + GlobalProvider.save(mActivity, "userType", "N"); + mTvUserDepartment.setText(appTokenUser.getRoles().get(i).getRoleName()); + userType = 1; + break; + } + } + } else { + GlobalProvider.save(mActivity, "userType", "P"); + userType = 2; + } + } else { + GlobalProvider.save(mActivity, "userType", "P"); + userType = 2; + } + Intent intent = new Intent(); + intent.setAction(PathConfig.ACTION_PUNCH_TIME_MESSAGE); + intent.putExtra("timeBean", mSignTimeBean); + sendBroadcast(intent); + setSignRuleTimeText(); + } + + } + + @Override + public void onError(Throwable e) { + e.printStackTrace(); + if (mProgressDialog != null && mProgressDialog.isShowing() && i == 2) { + mProgressDialog.dismiss(); + } + ToastUtils.showShort("获取签到规则失败,请稍后重试"); + } + + @Override + public void onComplete() { + + } + }); + } + + /** + * 判断显示签到时间 + */ + private void setSignRuleTimeText() { + if (mSignTimeBean == null) return; + if (!TextUtils.isEmpty(mSignTimeBean.getCustomSignInStr())) { + mTvInTime.setText(mSignTimeBean.getCustomSignInStr() + " - " + mSignTimeBean.getCustomSignInEnd()); + mTvOutTime.setText(mSignTimeBean.getCustomSignOutStr() + " - " + mSignTimeBean.getCustomSignOutEnd()); + } else { + if (userType == 1) { + //专管员 + mTvInTime.setText(mSignTimeBean.getNSignInStr() + " - " + mSignTimeBean.getNSignInEnd()); + mTvOutTime.setText(mSignTimeBean.getNSignOutStr() + "-" + mSignTimeBean.getNSignOutEnd()); + } else { + //网格员 + mTvInTime.setText(mSignTimeBean.getSignInStr() + " - " + mSignTimeBean.getSignInEnd()); + mTvOutTime.setText(mSignTimeBean.getSignOutStr() + "-" + mSignTimeBean.getSignOutEnd()); + } + } + } + + /** + * 获取电子网格 + */ + private void getUserGrid() { + RetrofitManager.getInstance() + .create(LocationApiService.class) + .getUserNewPenList(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer>() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(List penLineBeans) { + if (penLineBeans != null && penLineBeans.size() > 0) { + buildPenList(penLineBeans); + } else { + ToastUtils.showShort("您未画所属网格,请联系管理员"); + } + } + + @Override + public void onError(Throwable e) { + ToastUtils.showShort("获取电子网格识别,请稍后重试"); + } + + @Override + public void onComplete() { + + } + }); + } + + private void buildPenList(List penLineBeans) { + mPenLineList = new ArrayList<>(); + for (int i = 0; i < penLineBeans.size(); i++) { + List areaPoints = penLineBeans.get(i).getPointArray(); + if (areaPoints != null && areaPoints.size() > 0) { + List tempList = new ArrayList<>(); + for (int j = 0; j < areaPoints.size(); j++) { + LatLng latLng = new LatLng(Double.parseDouble(areaPoints.get(j).getLat()), Double.parseDouble(areaPoints.get(j).getLng())); + tempList.add(latLng); + } + LatLng latLng = new LatLng(Double.parseDouble(areaPoints.get(0).getLat()), Double.parseDouble(areaPoints.get(0).getLng())); + tempList.add(latLng); + mPenLineList.add(tempList); + } + } + //绘制电子网格 + drawPenToMap(penLineBeans); + } + + + /** + * 画电子围栏 + */ + private void drawPenToMap(List penLineBeans) { + mBaiduMap.clear(); + for (int i = 0; i < penLineBeans.size(); i++) { + List areaPoints = penLineBeans.get(i).getPointArray(); + if (areaPoints != null && areaPoints.size() >= 4) { + List pts = new ArrayList<>(); + for (int j = 0; j < areaPoints.size(); j++) { + double la = Double.parseDouble(areaPoints.get(j).getLat()); + double lo = Double.parseDouble(areaPoints.get(j).getLng()); + pts.add(new LatLng(la, lo)); + } + double laend = Double.parseDouble(areaPoints.get(0).getLat()); + double loend = Double.parseDouble(areaPoints.get(0).getLng()); + pts.add(new LatLng(laend, loend)); + PenNewLineBean bean = penLineBeans.get(i); + int borderColor = TextUtils.isEmpty(bean.getFillColor()) ? Color.WHITE : Color.parseColor(bean.getFillColor()); + int colorWithAlpha = ConvertUtils.getColorWithAlpha(0.3f, borderColor); + OverlayOptions polygonOption = new PolygonOptions() + .points(pts) + .stroke(new Stroke(3, colorWithAlpha)) + .fillColor(colorWithAlpha); + mBaiduMap.addOverlay(polygonOption); + moveMapToCenter(pts.get(0)); + } + } + } + + /** + * 移动地图到指定中心点 + * + * @param latLng + */ + private void moveMapToCenter(LatLng latLng) { + MapStatus cur = new MapStatus.Builder().zoom(16).target(latLng).build(); + MapStatusUpdate curUpdate = MapStatusUpdateFactory.newMapStatus(cur); + mBaiduMap.animateMapStatus(curUpdate); + } + + /** + * 开启定位 + */ + private void startLocation() { + stopLocation(); + mLocationClient = new LocationClient(getApplicationContext()); + LocationClientOption locationOption = new LocationClientOption(); + SignLocationListener myLocationListener = new SignLocationListener(); + mLocationClient.registerLocationListener(myLocationListener); + locationOption.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy); + locationOption.setCoorType("bd09ll"); + locationOption.setScanSpan(30 * 1000); + locationOption.setIsNeedAddress(true); + locationOption.setNeedDeviceDirect(false); + locationOption.setLocationNotify(false); + locationOption.setIgnoreKillProcess(true); + locationOption.setIsNeedLocationDescribe(true); + locationOption.setIsNeedLocationPoiList(true); + locationOption.SetIgnoreCacheException(false); + locationOption.setOpenGps(true); + locationOption.setIsNeedAltitude(false); + mLocationClient.setLocOption(locationOption); + //开始定位 + mLocationClient.start(); + } + + private void stopLocation() { + if (null != mLocationClient) { + mLocationClient.stop(); + } + } + + private class SignLocationListener extends BDAbstractLocationListener { + @Override + public void onReceiveLocation(BDLocation bdLocation) { + if (bdLocation != null && bdLocation.getLatitude() != Double.MIN_VALUE && bdLocation.getLongitude() != Double.MIN_VALUE) { + mCurrent = bdLocation; + if (TextUtils.isEmpty(mCurrent.getAddrStr())) { + mTvCurLocation.setText("当前地址:未知"); + } else { + mTvCurLocation.setText("当前地址:" + mCurrent.getAddrStr()); + } + mBaiduMap.setMyLocationEnabled(true); + MyLocationData locData = new MyLocationData.Builder() + .accuracy(bdLocation.getRadius()) + .latitude(bdLocation.getLatitude()) + .longitude(bdLocation.getLongitude()).build(); + mBaiduMap.setMyLocationData(locData); + } + + } + } + + + @Override + protected void onDestroy() { + if (mLocationClient != null) { + stopLocation(); + mLocationClient = null; + } + + if (mTimeDisposable != null) { + mTimeDisposable.dispose(); + } + super.onDestroy(); } } \ No newline at end of file diff --git a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/FunctionNumAdapter.java b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/FunctionNumAdapter.java index 24796f5..db325bf 100755 --- a/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/FunctionNumAdapter.java +++ b/app/src/main/java/com/sucstepsoft/realtimelocation/adapters/FunctionNumAdapter.java @@ -25,7 +25,7 @@ public class FunctionNumAdapter extends BaseRecyclerAdapter= 25) { checkPoints(); diff --git a/app/src/main/res/drawable-xhdpi/ic_address_list_icon.png b/app/src/main/res/drawable-xhdpi/ic_address_list_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..48396d59e82a1373a574ef4cc5312e5ea1a43397 GIT binary patch literal 757 zcmeAS@N?(olHy`uVBq!ia0vp^>LAR)3?z5gE@TH%X99deT!Hle;R38CJ>&rT$E765 zFPP!~fd&U&&eh+Px;?k{SDYHwAmnGI#bs&AB*I> znG02KR$uT4RbM~l^sH@-?XtP)b{VTy9Asc%oZ{)?7*a83@09fFCIf-vmQyr$1l$od zk6In}`bFIR|JGlH+?ZH?+tgnCFFk2@{IOnzzn)(C&&y`*4?N2mF!P*MU&Yhc*Mw_Z=zKpK!C!kg&mhk3k&AG#kwY)5m)ZUf17_LKyju(v!iA+z zmfhLIo6xyK>%heM^^80&b7n`?A9`@|`ZVX(Z@dQ-OZ#t3McKj~$8J9UJ zOg08NtC)3Mo_n#Lk=NFGc0R_e6@D|b#eGjc zUD6-vGBZ7EhWHGjl#Qt~t6W#N&(__+{Av6CQx<<*~vsP>X8Vtn<- z0l&;Gc|{siw-~5@_Un**^0wh=)wWxuf23w!ah=oJchDlvm5W_Yc6wJxV{+>=vv?+U zWvL6+NzF$pHG3JM2(bfCU&-x!}zx9`B#S|IFbHMm!@O1Ta JS?83{1OTJ?xDWsU literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_case_recod_icon.png b/app/src/main/res/drawable-xhdpi/ic_case_recod_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d11e69657eeb3fff42b50cfac475ad1495f08e61 GIT binary patch literal 405 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 ZUjZB4r;8x?ASeI;002ovPDHLkV1k#IZ;=21 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_issue_disp.png b/app/src/main/res/drawable-xhdpi/ic_issue_disp.png new file mode 100644 index 0000000000000000000000000000000000000000..ecd7fe44e81b81311853275266282354661933a0 GIT binary patch literal 7131 zcmV<18zkh3P)o000}JNkl zd30RWea8(+NhyoNN&X{;CHN%NCkGNnLKI>!t2Yc5#_=L!2!@hkpd~bP3$0t))8peF z4DyU*7h9HO$y!X4xTP)uoRl>QCWQuL7Mnl9f z@0{-m0cn=^KDzIBf7_j8EYFlWBC%fmmgsj{+ST!AC)MZ9O{$ZdlVj)0KVO?jS$8!j zt@TYwdt1}m%+pOt>*c1k)~NiiDyr;%m!IS3?QQ%%ufyx{y1YK`!~5~Ryg#2q_oXlv zLtFBoI$`PX!6}Od(oOSvGP5pNZ{60M%yc#T2mo zCnl{_N9w)@#!A?Ao78VF-l9IgXdtuvnql>H5MY*r78fA~?!g3!tFWV~T`eZUVEo${ znXICdmky*`1fcI;Gi>h)Y6Y!SvU;n_do1_35R9>N^DO;|ggZXs_ti4rUpjR+0`$YX#90 z-S@cW4Zn2pu)3&iC=>ebJ}g}=VJXIRAwcPNJbOYyCY`!kMKeldxBk^ZHl0T@sn>y5&rw*&5bTd#BcEv_@T-%VkzHQKc zQf~A?-Jk^}GGLcTA|cMeiX^#^`7x>7si}95)y+bzZQ-CgjiM6S<-e&Lt}w*L>(Y(# z*o`-^NGi?7)+FvdaFT8&Vrk#lqUOpCeW{*S(?VJ-z_P-|0LZedtP|==s!MgV5i46f zXx%Ei=l6Ak6qSe+;KRlM$VxPFRw{F&Zbr1)N-4IG-TtWpYP;OPn%_iK3v8UD1UdR3 zvDR9hxL2LjkVP`&^Ch^y&1<<{JqaIn+IsCER;skr8fz?uk=T;K%(6HXp2S5|ZO!Sn)HxlxA@l_7ZfUbwsGFtGjFjGz zLHp)<4NLh2wnjo)ha}y(uO~Xx4U_6ERV$z#wPe7$y^(hOUPVZ&wpLe1BTZ}5w@zL8 zVtr)1$nVoZYCtV7{MVRgxC*6d-)TyvZ>ssa0#?*u&C5uP%;{_4eM ztA^6C6QTq)6V@W&Z{n!_#b&DpqXXlTIBc8~2juz%)N`Wf*>41qimlbv)y;G{so6Nz z5-_HRT)*y{Tu+)S^9WjMc6D`t-Rcy-#LdJ{UE9b-DPaiTm5DFXv`YsO`2W`TE!Fu`TRrfCt=2qg8{f5nDAKM2R{%-Zth9MY zIhTL|6ytsUzHY)dw_57&|J_zwe_^Zd?XuO-f7Ka*b~DJf+3lw7>3 z!&EnjU;5XN+76`dikdI}JsYk+{#Q#~JFFj+IEZe7->a!!t>SV<70GO^P(fvyU$u>X z*NZO-q^X}|VZ=u*1ZuAMncn}f)t^129~RxhZ>@)@fGf`Y3UzuRV<&^S@a+2kW{0i% z1jItn0`tb5Sx8H*tbgzW%UOMi(f-vV^(&$!-`SqcXw`Q5HBarho;VX9kJo-01YdgMev7fy|R^p%i+Ey7$H!^yS zCkfYqn%5Wr=Sz%?=Zu3uKqXX_J!~Sp@#weyb2fx^%eK-`v)M{FIH<1Kwo>;$V{3;k zkkwTVjf<>=0; z&YI=W-tn_gV*%@PZyQ((*@p*%gSF7gOCK2Uvho6MxGS#x9ET%&hSfP;Iwl9C8CZ*3 zn6T!rx~|(m+Bc*+g$$>8djgf5t*(}8$^-L@unnxmEh<K{L4e!Rk*<8BCFN)XIzXj{m11mk`-7hp zVH;SBn{HThMR*JsA%NAk%fqmW=toonD+MZ4P*IU}o2;+~*78;iR<5TjCKE=v(&E<= z&#ihIqKwcyvs0Z|feT>WB!C>y;RYaT1Avx9fN=xLTOnAfNPA`E6YYGEvXk6EbRgetFHag=yzy3fu z#Y5D^Mg=S)L&heoY->5A-=%H4AgB^sJz79b#c{ZrS6KN;K>NXq*-qJ&kCYch-9#bq z_b8fKE5gU4bP=DA)u@mGH~t_U5ByFgqO|XkJ$4{fWYxlok*cLeI7(PuvC2{{Rw8OJ z+MFD_uVDIh@s`ok#b4c_8_XbJWu*hOQia^P!hfUci*OmePWi&edtTl@e}(-`S~*4I z^okYwy;8bU#1xtlS!Mm0A6PN|FlqDF0W7O58?a)ltRx5?D%keYwpAuphtv%aHLN_& zD;<=5)z~YjuKrS*0iXJnKVRH0tUNic?$-k=a(&q%M}ofG z+@UThFkanSAvZ5pQGjY;rAMoh*CnmXW3Upi{^4;;jfiWJYk)=rU$wBZB0u<&URbGS zqkvl%tgZ-i6*zR+lJf~}K0FHWpgLiE$eMOAgMbx(u+;1E*e8}-DX55!+k9AmBCwLg zs1{a!_sKW(!ur~KvdM}tX;5yJb&j<^%#R&gBP}nJ55c;0_~4Yd`l~_1ihF>6>IKwd zu(CnIJ*Wm)d{#DEe!Fz*307Cs(jM|-*V^09=~Sm2f_2eAx+%z+0C9zt4Ob=pX{E4Y z0L!DC4IQpRC0hTpY?OiBxL>PBSP>On<9_VkruOvL98l%+9qp4WPNnJw+= z_^+?CALU=_hB9bagIG}wtok)?v;Fu2A_6pMi4*%K4lQF9b%PlctbTn|18aQL+GoGr z+9QpG=O)$3ga|0%qNqVPm_a24f&|sTs(WRX%~roUd6E#Z?ZN`l94Uja$%+Nh1vDG0j&jCpLx@EX8u?EnpAAzKKQXl zf%Wokd;26gMCrcF$j}*(YqUAjHdF0ua()7?gdb}ZSS2yAM^;vAv`|X{kpbP1 zRtqa_$9`)~b47m@JO2E(7MlKWIdBoYz9yS2KBM2p!9uWZ+g*RKUb)#CWo0cgZ^&}m z9dv{0r@NI}Q6AMiYO4{MFj`mgSJZr?QxyNT(%0oP<+~KsS|M0zV64 zgwq*&HLw=9MuD}Wl@)R9jLyuKfwj09Sc?Fw%N_6wE58{x1!au_Yc?8CB+gn$On~Ey zMGY%mslWJdZ?~8cLImyUJk38MJ`Uoul?#bgVvPc;8)u!6!73$=U5vU&n}HO&-}ROh z;COcmMS@Pd1|_PmIIi9=u#E!i++HVxHL*6J+=h$zYgE88J%xc3USK8Q9%oPye}KRL zy=)fCk2MUe+1h}^tF9{bUzz?E1+d)EKb6`~FRV~l#sQCZXU-Ws%;}^0@yuykfNJW!wFbjdoit63~W^TRY;d>RbMuFAo6v*wts#f^0L6;Qbt8%;$H`yz! zR7brgV|o~r%S3Amq;-nwFZ^!W!+Bb`Gq?QKvSJMbD?M0lcdK8~%1xD4P^&DnQ*R$1 zpym};*O=W;AvRS`Iz@vZ?cr2$AvRUa#tOn31y-lK)twvQS5#?HM?mn_Z>5%d+MxUR ztQOWruttE@8Pdkw0Cyrw5Wphl4=~-u53oEYbI1M|Sc_XDz&fwj%1&fq)|DJI@Muu5 zx}hy57*`Y8!dGQumAf%9uokz5fYqIK#T3EjWTrDnSaYGJ`Ou3WiwkheHUn#=))=sk zPZ4D9Wg=0kn`{_;%Qk_4|oVJ1!y$%YxNGRL;_x)*PTur zIsk*yFgO(>Y*_Q5rQMsA)`b>-wb0=dUSXxZnRaA9XH*pu5enkJxHGw#sA|ObX6AsY zx+*Q%Ts?eMzxv`KSUG2i^M;~=H5Xc%5{Vp830}wrs0LOZwbdL^SxEfxFzXdxn&?K5 zM@RCSlrs9UdWZGOUaNijCiU6F4sPQlHv!0s8rWQsP#`6VE5IhpU1hz(>Sxv!?}>PS zs-sx-!#dlPf|gCs8dyunk{IiX3CCe_My3GcsSrCz5$19~q#HQ^T;~8_0f%7|l^T=z z0K5`7fs)r}^(17*>JFe$oM%eK8U@&Xte#tVzM+-rs)`tE*K~AnTY=eVf6~DBm&-@)1$60 z2r4#h-RRV&l=VW?urgwk%~g=FHj33NtfF1hH;jIzD6G!vnz9B3ph%+v)WQjiF}I!0O!!!AgO5r500I56tP#EH4Y|nVssyDE(Ia zRcZ!GeRujZXoSGuKQSSPJiM@oWVM-;F!KdV&O z%D`IMf`*kO39(>zwn5aALxrDMsnn5`!|Id`s>K3RCTv*AT$Ku28CXkO(6Ex-W99-Y ztOi)E);@KuCs46$Bcc6V*szuhTNzkOTad8guToao{d3z%MMn4(tB@gqLB$BeM`*)qEgID(GN8j?js);fWq=YDXyWgJgjQ7;;^be zpS8V6dbOOL)u9s7pY>vxure>J+?T-Fr{dq(L}R=s2fqO*0zNOPTn?jSMFm)<*9<(L zg_VJE)K5ePYQOc$Reh?tDp0ZWR*f8&NR6!y3sm>Kf=a#&$4(jx-T;&pliDW*#adG8Lh)U9hXE@!tfi{0a>ZYHP$PGYWsQ9RZ90@v^5n_| z)fH|5?nRiON(A8Ld3|G-`2rPVu7K1FY!J8tj|`9yD3`r*#bb)Ye%VkM^KV?o%TCWBT>p21|ovxLBF$$*XSj8tZ z9&B~Sb>sRGF(|g077{K3QyF=}-5{$mp)EQc{3j3Wy{%iuE(!!xj6oOzS9{Q_E7_}Z zsn&cE2jt=fb@pka8JjR#Y09mprJ%(%ppgAKIYq~3m#-x&b!T>fMSw=zivSkrYyn{9 zd@ZkEl5`-U722)Y{W5HV$C?-MJ9HBSDFy=vDZX1!<2Hel$3C4BTt6P`Ttkj~_W~-v zgAWU+{#^k3jnAM9s-`xZT*7%5BJ!#wA2mztO5I`Ljt-7XH9TPgNSW}1kvK;pIV_h38 zqj1E=i*Q9_^_@Wko>4qV!st08E-yT?|%Bv;rJ#dnrsw^+* zR-c0Tq~%q zot4VmDDZvY6;>}Lf=1DZf+4?yl5-{VAU-TOwo<1h)>_oPro94NNvD8O%_`m6Yu%@t z%?XycSDhqvuUoys%GB#p(^!mZSpD|*7xb!Ab+b9qqu3E5JtJV0Y)_@>8EPlJT_A|ixruiPp~kNvR)5rB8yQi z$$n#ApIWM$K~I+GP&ZT((jt6ivRL&Y*?YV%?bP4W&7OCYazcS|g(MB$DF>{Hwbp@% zrOL6D+;`pRRb@^)Oe%d-xe=O#uS`UscEyNFxqmAHZ%>KZC@BQkQY-AV^(G=vvtmWf zf~qIyAGA$f`QlMcYty$D^I<7yDL0(WD1O36{p7^zdNT24*mM<(5}3NyT9Y*UWmnYN z^ieA@!divmuqN$VLy|aZ&4s6`weiHkVVN$H1KMwbQ3bM}s+oX)P&S^LrIx@cej(m! zHd(P&np{6ARNd@EZ;~^n_+`9W%PB83h1l^FWqwpoQIrzvTz?ccUJpA$2ut^kG0GF6 zsor$F>QQxDw&TFwEf+|7bz*Rnj1JI>5}OMDxLIQTfs;51nJ&l}+^oixbNyAj_MWM@ z8<`N=b>*!2$IU7mxkjD7e!2d2laUJB=qqpSRj13vTP6B91~;)0#C2Z90E)=_`s=|M zF~dwG{@P=3GwW7dU#@dxBYo=Gm^R0FL{fZmaV_09w@xJ2k?X1M2z{DgBN~HenUu_E zZv(9_NcVCbLmT94ENfKwFoT{$69}!u;O5tioa-gmO-@F+c$OT>r~6(ujImqgI2z7R z${zToABNaUt`FCV>t%NN8jXX#IGK*46gm4-ZjNyeva+1(!F7@AvtaoB$-3{Av2i2Z z!XdSss?0IqF@Qyz`2Ji6u7?Rj#oQx#?wI>7hj`_Ar4 zw|G9U-&j2Cs(y8{qz`YrdW*ePZtAXac+)X}%#YIJ-(%MmJ@(c)-I?Xn?^j>YeXWfJ zXp6U~GXPh@Hc1KJJSr*OJvFrAT6|v7!_-gA=~35D-!S?W-PhDu$hP1fbu{VR*3D`r zeMIy7v+&A4zb;U4K!a{D(I}tCg_E(7b9&W`85`7;DJJaHxVEHUoiMLkoi?vKotWRB znN7#0bS-S8m_{}$Z-+h8fY%oo-{$>zU*4b3!RHY-=8Mxesn6=ZM#kc3N*zJs;WFwH z)~m^_J?e7{dJmj>^}yK0jK-1G`0oU;URFE-`B}0-S8ldO^ILNG|A-cI{`=fsd(Ye+ zd*|id_V(GEtW7h!th;A+tL2w=ja@KX{A%ZYo000}pNkl zdyrJsoyWmsO|r%iEBVh#(2~+xDy7k$aa@gW1q2laLkKW{yFN=a>uxsIZc0;ZxsP(G z4RNMtMqC(RhQVPl4>m4wSy@+?n2mY32`XXHDA8CLk!Uo)O!vJfzt8Qy&~xYZ``&v_ z_ncqVw?>(szPHc$_V51A?>WgzK$M!CTBH6*@W*YP>SO1p)h8}YtEsK&%q8;Q%TwLX zeJyEcO-tI{*3y-IM*e$GOP4buKUGoWelM@%_40S}_q-49$NTdBT!-s%U9Qi4=w1pd z2Fl{c)F~YUN2e_wR;l)Z%&be-IA1!yJKNiucApSpy;hQl(cv}kdR^IG`R}`0yEC&| zI!DjFpjVwHjjU*r1;gqi9mDFZB}3|(#ao;e9b24q#};>|{M`S=N1Ty)1CE;6 z=cvmbcGREtI;u4pvW98neJx$?cDeq8t=;O5)*f|Ls`Ka>(>m3Mbg!Y6m_;<_XFGQN!!9wF*m@-tJ6pka`|@rZkUzoV{LtCg^MxMw9$*xAyl7U5yA z_N_s(VEE7!u|>}p0^PfG*nK`K4O)$+y>_FcKKGDuq|J)C@SJGed(P`osf*UBlXdUa zgcW(ze{}Jd%*>@*GOI<)?MsrNVfeykN6nIh*oERfFo38*P5Xkl!d9ia)#dncb?@DT z5h3Y`iw84T2|@doZgKbOCTY+#!0m<0%P=kLAtj`h1KC>9v=@7U2P^T(vLSV*5aOY7 zE+^fD#dCm`HIcA6^FaK!X}1%ft?oT-I=O76`e4V9`U*~aQ%M>|T3lTQkh7Fc`;uS< z-V@z>-0*^3D*n+ck~rPRh0lwd>moUP8RF&&1z}!t6s$d4gIu#+eQ3$Bnl7QxRkGpl z=_Xvg;P7?%zZz>6cu1w4_v8z8e@l-#Yr32ZbaS8~*{d+1jN#&hA$y>E?pbvT#V9v1G{U5_|90y2%w6VXs~%k6p6~D{%L> zq%*6}O&^)6n-fOL7dETwWJC7|2#sndR$N$=*Rc8tSzgO}uCBDYS~oY0l0`$#U7}47 z=_XQAz*B$?YXBiD!NK#ov$yExh*nuC$rf_jKb^UdC$Rrs_e7-=O``cvWs!G>uCSb#o2x9;lE5WGPvRm6E&peX2FBuGGz;L}c+$c9{u@C#Ha`tvMSUbwQ7A5>^flUQ%YWP&b!i6GD3V zdM84r+DT#(AZ%l}vdIygCVNDJk5bO6ss5UYc39wxoRlDZkKIMgGP0S^r zO;0}7uYIGN1=mSGf=1P@dBSe>l3z@deD>6YO-hLa*scwf=n{revbA(`bBvIWDvMiJ zn%_;2>L-VZpo3w9dIo&FV@y6Q8U9hYsJ{9i`iWs8C^l?tQ^13SWi?kEP%|Y9N-0WR z8?s`Xqq?4PwG+csn9*jlKHwqHR?~I8H2TWhsdd*(-Sa(1ZTyL=ZvLizVwi|_=~k$l zY!N^zXEUo4ubQQn4b4V8(%dvPFUHlQhyugs8bz zlU}Ekx*Aa2CK?rDZh9_9R3DrF&sG2Yl%wwWj(&oegd3W}6aa_m{E|qkB6?5B;??Y? z!Y*C;pE;8H8Z`+1odefjZ+F!4Vf{og0aOz(ImQ68)s0-MqRb_+5|wU#wKhrnbFoGL zZl|ky#6E?L*r;JdEd;L__^GS@_Hq4W(GBd@X7CF5pc!1O-3w_u8O6e*UGLxNcti{% zEoAQdagL-`vmPfag@w9F7AZQNJ7XbgzL9TaX@ARvgn#*%qt^atEMXz)s;6DgOQ4$| zrh$PQjZ{=v9_~w#H#DX^g^ts*V39WRMQi?z_*l`f{$u|ipENi0`WN4I)Yo>nk%2F3 zHNIt{S&h|Wpe$%;+&O(^gs!Yy4}Y&UdgKHsbYE?dzyP+bZc-NFOaJD0_x7XLUG@J5 zmHO2?(Si5leK~CMr7dUjG*}0hO0h4p!xpZp+^~uG+N0kogurFRPu=7!1TM4}-gMPS zRw>6-u?X*bB%{>p?<(~#5)>(QKV)Gw(;@4ac9o$Vk+`yQ<9p(rio#tfNiXk32sZ-C$PIx@Dfb3F(-Ol$?Y;ktZrSr5R|23r~X7QgeY-^v}dDh1^+6d>YBfasKZ zQ-J`nv408U`lQxMSeesR*I+p&_f52VDk5vxk#RltE0I?ZPNJt@$>l9@a<2sU?#M;$_#1%#7_8ovi{w4|vg;kLg2KOTd$BlKnaUjpS;I6h zbzqPe&5PEJSL3?RF&w#ivPue|Y+geQNQ)8>D9i--*&9lI`QOX`JqID|O6*KtkDVDt zI)G1k&u_+Gi|aop*MscAzadc_e`^wC4QgHAY``NCQ_5nNY2H;4)tlF^X;2z|SDi`N zPyI67SVhwnyDtcee;BO?L5qq9>r>so`Le6i4?1P-bpXfu$tkhGWyxX#eFQ4qJSXSDKz zmZYOSqJyYx1gBttt42o>b|qv*i*hRGi&g3|KM}}U2;5_s2oY%8zABnkB;TSEvf?(P z%9V^Pw3TUOjgqAGkX47xT8*Z~uH`^ha~^}V&^)JComx@%KiM>GgVTIM_)(m41n>NQ zt{euN^6|a(gRp0qJb%DdJLT{Nnehrl1rAtY2f73ADfRtV$G@I?c#exC+do~7C zeZ3k!6YGOtm-QmEjVD&pUIcu$Rgl$@e1V~I5v$J%5$f&(5U18fla_PZTPZDQZOVpt zG9^h`y315N&c4gp-PSoWy(n2bhMZeXZK;l}hE^cDW2Js!9Z7ve0VHYD5+SS5PkSJh z&Mprns`yqvB1BCKF^p@jh7Ai*e|tpt7B`ppkuuH)NfH*IWl5$f?lo{nL<2t<8h-5< zR%c0q^-kTy3FfAal%)?Q*wY(5p@>^slB&8wEsez}~lXZ{NfcqIX}Dk{;b;1ynEO z?bv-SoulV^M3sA-+%cS;BLu0d(OT3XKcHCX(@H!-u!ZDs-9#7`4ZZh{tquG%c3C2 z-Xhb9PAOq&dr1gMCzwBERu$eG>*3dMq5XEq=ioj`Ziz}vCF|S)=jjD_1Srsw6t34W zXlbILo1}4(l~g=7y3#yTqGmYDlN7E834`~-VKZzK$@#@&64ia0O4jyG?i=kJrI7H# zw3>>GfD|rzDd{F@9Aw4zWnMwGiP1m#b+UdlG-cR*lyWDLu)hDd(OlnDvXWvrdr(cC zL{lutN@D|)Oo1rLO4ACGkE#TL^rb#j%{yv|qG%=vQ zM>kQUCM#)hL9)_xf)Wt|50s09nF(}fA-g^);mZ-c2kw(E8+`;wle}ZwSTfP@f-d1v zh|y&2bMBucBwbUOJV1q_2?s5T@~C$rhZVw<0v%L{ZHIwG7&3~28Z#IjLx4T6wHRcVA5itt%?mB zbfNL(gVco^$$rtjh5oL!!k?Y1o0P?H?FMK2q?WGiGr>GU(zSFGwNh|WhSXJ+KmXJT zEssHyM^RoK1!#52<3A{9KuiPOY{qD1v0egaEC4s;sH&!u_nT5GfEfGv7D_WJZ zX>4sv)*R*yxcfx2IwN5v1q2Cnld&AoKDCg+bh6^?=b&rJdK_~H+z~Wuk$yutmx*pd z76Z=kTFGECS^cSsY>*}EaZs;Sl&sWtQ_N+G-!=I7ueMuXqmUK9s=q;&tj9qVt0-B0 z?P`iE%LiJg*2ll;WX1k2Y`SL2S_N5sR~C+E-6RE+3-kD|N2{7jRz6d(9NLogI7kI3 zOIC`vnDC*)_sZ;6()LK}14NvNHsQRk1dxyUS~&L$i4o>!r6&~ED104$Pa<2y-YdOk zEuh;r#gVLW;Rf;9gBex$S&6I_zK*{mSsilY?y3d&dhsb^_UR^O&6*X^1ukiGfL{Eh z_2CpB(`c-Ure|z4(IL9%6*}DMMG!2RL1Xc{Lb5_~T2GQ=8b?#M!uupr73}f{0fT+L zSd+q(L8?)S$PwxD8`RYT)|vMvIG~%Db&=I4EDMtqS>w(PfUppeYp_XZ;NYV<=|mRV zBn3B#FA!fW$V~f6o;HQQpD4KjId4D_KWiB10LKBK(a1^|wU(?aY{Mj_mdaB0Bh0p~ zMNB5E?`Its!72rkw3Eopiju6@g|+0fV#g&Z*saxWA~q%&Sy70|WWBE6A%ZnNH=x{s z3;%1}gpHD{yid>`EeBepGhi)AArp+xUd<+A*9MbaY88{on$Hawn{`#G{Yv}oIP(Xh zuEFAJz_Ljy{xN1K5I1^HcppT9HrRgrE*vy zM>P!04dD0qVDUWY5Wfl+EsN_d3=o>StEd|*n@m+1#b~lpgXLGZ)(gA@WNAgEWvKw*acCtuF`2Ahb*tYupk9!r zMIHgp+j=v#NLIm(V`m5?E2fgwYtlyF06MY=*ypByQJ3SPJ5Z%2=`{E2ffl zUcZy;$U?6x88q-jRAlvCTXZn4#TV;mR?*+dk~LW|m8{2lUC~8Q0t3BKlC_Yum<83? zv3|a)C2R6xDp`+p5v1>>5bLfu$XXcjA_=Av(*P5I+)hi@bhvMKorT6HF+_VtRpw{XJ>nzuMv8-3!(PKNmgIW(xQmDN5$M+RCZdj z>JbykDxQE>=WQ5G9UFkbGz_L<#7)*h(vogSxEAxkCoP45{v3Zx*5t)RvP!>z9rFj( z>Bq>*oFV27B}LXk(o&R&=YUM`!t!cM*5t)RvWh35bKZLO@iBwjnB*n|a*`%&A@Cef z+Ch~k8B&(4$%=twb;QTIV%#`PW@HLs_Ua-kZZ7{OF%2lxv$+AuifLq}Wzd{{HFF$U znLf-EVqIiqZfD_*(p4{5EN3NNF_5e~X0BD!#*vk|?#y>*&btn>(skRCRj(LE)=}(L zcsY)&o_0-VNf$hjG*L-{q0Ocxt6njQtnCBNZ{}=}w7_E0);Tg=f&;sgCMzvAIb2z? z>J^j7I)9V9`?9qopD9XKq@~*#5&|Xa6(AQD*Oeu!UNMNQ&fJae){;cckyR}d0v%40 ztdz!(vuMexR}3QSk&-5WFX!~CQ^gcW%x=YAC1)Ub!?X{wgNBn8T!qXR&`nnC)fs*2 zQ)S8OY1g#VmlRovU@@vYc*BHUUp=II`zDr9*~@T^QggSG!1WuQfr^NVwDpXpk|HbF zSd8fo-Z1He4E?1v*-A3|{!}*Pnv9T# zL5CNrH0b|YNk^C%;Iwa2%c~+Pk}D*1pNpHUVQ#BJZ2h_G^&Pbmuh2-D_L&TSYBuI>` zgU;Uhn^bE}L`5!Ir%smotW|Ll)o<=r?t}0Rhp=c^d*F&rPyjskSzn4YnSTpWebBoh ztQ&V6xM9%w`hwv@Q)(tF($=jmk4w9f!y3%CDn(e_D!8+(4O_p^U>PE^uC#vlHEIx; z1=PjGTW96|V&10AjJk-5czp%BowY))$UOrD1j3?M<-h{c5|ZH-)(=~`@Khoy$g~>j z-2f;5Vnp@9>roUm-;2SHb;JbdlTz!C)=gF<-@GmI>emZ|tW>(z@*(-Q(-xC{rSw(h zkYF($4EJDtFrgqGb|@N^&fbu)6iEw#4a<7-_jn3$ZPA-Ig5beR?VHsVkq{M`zEYhi zZmiCzwJXu9uuyBYVBzlA=30b+5%)x-a7*!%u|%BoaZgoB)Iwm_KJ-J^3x}hbdEYv< zYEQ0#MTA1xixBpusL9HFtvKx=i?QI;4{3R2&UllB^_MhvfxW#1CvwY)}RpbLuZgR8j{aDSs2$eMnoNScr;d2tN|^;TcIGwF9KYU&vN>HGw6oIp9?952_1l)QGQjMDW1UesxmpWJOwf)LAX*?34C@)m-4< zg(mfVt1%Fj0Kn7j{pwE=Au2LmTn(*Vszba3`%Q3NSwsUrtc`n$e1XUV00YkJ?E~3A zt2tSvRykYLc)poi&E`NoK>>?+K)`?j%kez^RcB<8s%quj^pUBlI`Rf;4Yyjv2U0Tq z&}zi*{o=wQb%qwA`qGkCR}1kD)D6zA<~PR-*cHUU&8u zA>TXIlC{zlL5t)-gsaXF>KI5rh<8KVR_c^gmzVcCS}kGARSH-%G)5)+|3Tf{94D!7 zs85S`U~9ExrR#OD8;eDgV9@>cg8qUQ>&A$bZ?{Pqj1cyzYRF1;YpH@ki$;aJYi_@4 zTPeKIP0gaxnpRg<;~`*rOR>HI77Yrir)nR_%+k%pibUoUEKGGfuhi3##iB9cjRM-3 z?a~O4t4X}Mu-&7#m207i`^tI*8W*&v#FrX*c}mi9_NoIXLD*6n_G0T1Xk6qp>WT&3 znqvM@OK$SEyP}v4OO8OX=4=+`0vnY_f5U6kaU!-1hpu8?0-M*`Sm4ypVTw{G-PDRr zJhxVeAGVU7R~Cjq{HP7*o~l&{90Vg>1P8Qlf<*;zcQuT|KPt(GX2~V+l3&QcvWG0A zF-okT5UOtOBrg&(Cix|wt>vW`+C*$KL7E@gQzWGr9qUg*^7*g_abfA+7>fW%obDer zD<4(2P;o$OO<5pHb@gwO1^e)#F&X}*2{m0zLZ%ARfX$k?@YY{-YOk3xU8sJfT$lQC zt7Q|%5wEUa)?Zr{YNH8tTz5$y!5x_b>z`7@1*WV06iy3+%;oCD{Gn*LV zJC$`#tffyg3*F{uk4QgHSzJf|<~9YSk*}<$tZVGu{3fE%c$QAdvd}MC($+yzTBC2u z_Qux8*Gf*v@Sz7iLlcVsqh2`)6N#^rMz;d5TU(HWTCH`-S9ynZWY$oxTdy0~X5 zDx3OZp1h+5kgOiiLrOk}yPMB7XM?(FMxXkW?zOfOp)A_0&W5;h*yxgtenK|Akz8QT zya9KgU8`rB3w{KKu%E99r$<)+6yo$cL^m@)I#tB>nmBP#}q43D0S!+eIs$>rx1(ZHXOpQnF*Q|3ylImK4| z2O(HL8c+WJ$Cwgx2i%chNe=%HC^6^v*Y!L5uI+c9y>^4MUD_qBpVjBwKWm-3>FS3w xm(CtkQ@!h~QB!90AKl+ke-Vf37Y6 zfn2xdzb?)HU7G)yznC!vD92e6_O=^86_oO#cCEg+=s{S9k!tJV z@&(@m>|`ZGzcK7Qu$A!zopr0R4Ah00000 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_item_title_icon_rec.png b/app/src/main/res/drawable-xhdpi/ic_item_title_icon_rec.png new file mode 100644 index 0000000000000000000000000000000000000000..f33013263571df943fde9bb639835678b9e20b6e GIT binary patch literal 83 zcmeAS@N?(olHy`uVBq!ia0vp^JV30%$P6UgT|EB-Ddqs55Legcf3q9Xl7L)pPZ!6K diaE&(l!2Ta2F5SR^VR}c44$rjF6*2UngFhh6K((i literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_main_title_bg.png b/app/src/main/res/drawable-xhdpi/ic_main_title_bg.png deleted file mode 100755 index 5a9a614f7672a74f5773d584433c71bbc6782a98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42915 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 XN>2W)7_H!80Ut$qHMt5|SjhhYKaU2` diff --git a/app/src/main/res/drawable-xhdpi/ic_main_title_shadow.png b/app/src/main/res/drawable-xhdpi/ic_main_title_shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..019421d23f2cbcf367910e10cb31c89ca28be2c9 GIT binary patch literal 22088 zcmeFZ`#;nF|36Nv9!hOGp|s6<(#au}qHTnwNTQ>2AstX-8Ri(Rj40AU4l$DCOb&Cl zoKlqI$Yz#_AuQ)Z^0`m1_b=bS;kzHY*!I}taKGQ~x7+o0y;FbzVq#)(AAkP*0iT1v!C}+W)8H-mHZ3g;3@P|~c6N4VW~Q;Rka6C8?oF9Aw-j0ln{QKd* zPkMWM!RO#_aM-_}jE#+fx8Mcdf+Gh828M@+g+k%K8~FG6`1m;Z3cOYhTpS%81!w;E z^WVRJFMLtk1D@mq`TW@nV(@)BdlaQMtXJ4{9E;G@l{l|uhQ@Eaup5Ij(f)7mxl0!> zuaiU?shi8mo9^0vR^!;}RceP$K|9wN%I=UpY;f|(i32L9&m2^SZQHz6MoC;xm7u?6 zzwz3mD2pxn1XU%Ot=p8P51u%D;N%&VBeFYA8^FX3Q9IW_hfb+!9NR80w|duE(^YFF zkE$cr85!@z{HJZQf8*|RxXTh3@o4i42rb?73hOs)(!?IWB&E1VM-RTw!fdm{M~C-f zVi%MQPv~Bx#Qo}7EJB`g-y>AIW|Zgf{Za1qFDH-6Z~xCC&+ocb$;*BX^Ks`ddDnlh zUmK(&|G;9kTDZ_!N9Z8G<<)}++am)XsBMV03#xQIo8Yz(H#VHs-BVE6JDld@gjTgw znlw7(+;MZX+vZYl!TGnRU+lk>c5&b3OqWv1+>@nKvsaIMkl0-QwPlwJX&2u=b?SxP zbn)uTLZ}b-Aj-#!Jvj^Qk{V;jeQzv&oz7jBQ3k($j`bhTOHJ?6EPYvxkn|7*BnOYF5}v<-M# zBjiG3_3~)>hpVm|$B^2>ET4q3yNmxl%dCCcCNsMeuQ9W{=Q%iAT6JmEml6;0Olmvs zVz2tu?@NLU2RNQn{n4Y>ozJDUYZm++E_b>5vN#8Wr3^&E(cHyTmh{9V!L??je=;22 zpSN>g2=T168qsMjukK^?J2;^tLeFN(7)u=2h+s>CvQ zA2-R*Iu8uR^{e4c$JF+}geP+Y6R8xF58(J0KFEsRvA_gc3Vc0U*;$T9P)9v*iFuZ( ze@xY4f4XJmTN#KiFlEyxFfZY)izLy#O^pbaeFuNNOKtRlmQG3D9Oq@-wa&YE-`(ER z&93ukKOL6tDL=%UO~k4m`)>IhJZ4?y(zxYiPe&LzSUakHPHKdaY$`ev$!Rh^2paut z0U3--U4X{9N#K^Yy?=7-n3Q{}pTSj{N(ZjJUU83AD7e5@2KU!UU?cSk4UUjPo8n|1UatE#`^6420q6R(I+w2kavF} zy^;Sn&F8h;&EAwK$t6->L+RN-rc>UvTMOIIY1};KtDW+t> zTWTxB?!H`UbzESbu1Z}9`}O~g;ECbu zBg4CeV$GOV>&SH20z)C`d#&?`m`kKb;t0{q6HE`pBOkAJpbNlcmlKw@nU257&DQYhgFIt#q4-P$T)?Px@I^id9Gv! zs>li%RR+%fp!0<|YN}0l5KN8?QWh)4_pr#7{^}C*lcA6rU$I+eb>?Q$LCxg+ecrs*N^!$*{@wO#R==OTM@VP`s zX%RgYpBRm4bWXR@8Y=an4ES)K@|`*@V~_EGumW3T)YddV>$_iWtBh3?*{p@X;wDzZ zPC(DV`u)@Z*8k?=VWOGYL9&>>y?%#o zm!*TZ^~Aw!=nB#aeevj4DIZY&_JlS3pJ40%yj8*=%oHw`cvvsEm`Vl+?9o1+6o#m*SK=YzZ__UGK(DVAC zakJf+-VtxHS$F|LpSH8reL!d4w*+jO#R6_j%}I z9Z1#_4TaFjV)y1b+xe9DEofQEXgI7~5uN6#lLw`u4A!NgP2ZIGe!!H>9IG-F50Lo5{^L?Z2~*YHXH# zM|G&KF4FQR%Y3AcBJK_1o-McEV``Eqw}$CLrX%$;G%{SLfp{*Hbeeu6gk7*8oEeNi zo-(%OYvm2)k+&Q7qwNJ%aYoX}yjEQsuttqI#I_)%r~?AL=8R=2RuUJ>wOh3+-Lv^# zevYrz~5}7|ultImT@ANBn6bv<2l4M$);MR+8cQ-IrVJ^!q%P1@Cz_)#Ee@Zyc%S z6WZ0Qenk63yROalkt%OSd~P4yx+4$lF8KXc-Mi*j8bWk2KhTQoQ0<3Pv>YJp|0vR z)KeP})>whB+DrFz&#EJc=cUq_T+Hu1wmN|^g$0?2c4a%xOowqOdx`cz+$RWEjxwiI zjhHUd^FUph;)>6^`klnup1n}Njz3UmDdtWQHrpbIa(&|Z(1`WQ=)0Eg4h<7@b){4`i&k&y{ar`d|Pr9g_<`6^J9Yd~G%i$Xq zduJ0;rsIbp<*%&!Z(vTU+pjBI^m!O@#%z&SevLAF#t%Ey!PIdTvXz?Mi4}!*z(139=s!n zKOhRK+vyCOFRh@g^;b`;Bd4OxC8gs9UT1!f+{+SUromXWWOt#qF*1Wt_6hGd9zo)$ z8qlm)9XT*N$(z};Tn0)=f2HFMP_oDdCun;-rY3lA_pm!y;iTD0HS7RF9+`r#a;G0b#QDVh;)-u~)_pvD^C34G z9ZhRVbm5G#7fxurp1a>m{e%_sGq9xX&6Pgb=kd&>Q3KS2I11KUx_wdUNaKF zwp6}N9}3`Ds&T`s8x{E{r=u7)F>pGFqMhgebRIC5l9&u^$E%US^K&#%=AyZ;%S)-X zyr}=EMz6Q+%w^i1na`-WdkaGcE>8FVLR=?oK)PxR$*&gZ8GC!x|En1dlDRJA#o-0} zPttFs!nMwG&K|$h-nte%Y^MHdB;87q0Z%p$bbVTnbR@B^Pv)*4!ZiJW}q4IP7V z9VgUYtZ6LdG!8~$iW^9>J_JK*YUFaXf4$Vwl&3UzFxzme7o>EdR|tzcDr)7RWc2JO zmCk;4+%UUwqAG5sxXyfvVXL?{#r!*?XM+!P zg_D&=+^R+S9kNHecYg%jeNuiQLT@sn#|+%#D^25XT1|1@(Cv&hM~I%bTB_c{Ut3O| za}Ve?B?oT-MZ`EmB3IgK4{_F`g=%#MEEn4%>09W}8pf@5!(n|MhP~=VkKiW3s6Tb% zx{U*NHwXp^Qqx)bXM5ERpPEacm5p#wss5KU)(kQn4j&x9GIY9a;6=m!<aWWQEtu$2D4p_Z2~z0~{T9qwdJ5Uzi?1ZT`lBzMs8XiA!R!sECP_=2@R;3kDJ=DG zje7+5#P|8e!&jp-78_hvRsR|+w2MHL4cL+5c1#&QqddkX#F_&Du*Es>UNlzk;ynf; zXOHd7I@E2Sx{U6JLzSuAKr986JAK;bqF6J|m>4qo)TL|>yqf#1IotGBoWi2NbvO1o zqvs$w0T6o7+8P$1Z@ed;N}+QG0$5I5drWpZeS)X zKa$17MQu3n2+n2n2*D!O_O%xBQp~Q*lS^H(%Dw?jNJ_7IxwgXe>N96Uyo&XwtN9*Q zq?q++Q!HM^HOHe`>Bc$ot*?rsN?OUD@<$M>u2)sL)su}L%qj%u|~Ud3T}M|fHhxtlXGB?rK`Iwrv?Py z4z#ij^E}N;5rK-%nnbAh^G8fgPQqR2Nf^T0PWUR`;68+VzbaxHaVZgsY9v zHlaT-vHI>+j6kgh8Z&R*NYJyAJUMO}AD~;VHS*dhNJbyJ#~Itlq}o*D1ygWi^j>TY zRyDedb)QG@S{3vLwkHjgErQt^g!b;Z zMq zb2liwo|Qb9qf^&We_lMCUa#y-{gHgjLvldlg&lFlpzfU)dilhSkn< zvMA-hzdnJak$CNP?1ss}r4IX50WL02t5`_|+4B1K%p&P#hRt8&j13izbx+tYvNTZ3 zo=n&qX;pc5x&~sVxWAE>cxfQ=xk1L=&ih~uDQz|?;Zl+;`%idpi>UfEV2b6D0GXUChb`~$3}GApa2yW3 z51Eys=G-NIA;XFl44}U}%%?zyF~^swf0JQHPBq(w^O*Y@V5i50=bguR9d^M8aFr|; zCYnij!037LxIn&AOHPsK`HshIutNpoAIyl5=t<}+$*}V&?ZjFH$X*gARaJc+-|aZX zL&8qE`_QSEp^FKZ)SCw)<&kxOK0tdJBzws>B2V6n!9E?pgrCXSvl`AK`m@>G6i@(g z0J;wBGC2!pW)LH0-h6RWrKQM;O`9^xJ|6%gZAAPJ(IV4Mvt_*51APbcSSj zI&QbK^QJ^kF&gO_Nut-1qw3{aI1-pzef%(4Vi+ln|K!%NH3sq;Q!De4JwnuYoT*QA zYuHpI4Z^fu0pUGFpJI04Rto}-BaXC^8j?|7<_`A9b{YucZ{Ua;)8?UFSP(VGagEem zvcwotdht<>i+zE;im%CqJ$VHI^`m(emO>whBCBz5>SP&rPT=df?88UYSD%4iBgFka z3MWlNhMIA#U9Sf)i;Nx~H_+dDvw5YAW>=Zp>{!o0$;qw=2E5Mt&{C}Vv0BSU?OQJy zJ*yEHdX*_T2Y*zhj(z@`>1i6KI6AA28LvNQuaeio93>pW_D>rhK10K;M!-F^gp(k5 zikkfw2u5!Iedvqz=82ix&&?$x;9X1@mZ$;R#dhnvQ)**v_o2lThzA4Wc}2k~gb2h& z)J}=jf+{Bzo>a;dRUnluMLt)AJVfPoiI0qO&=>zA8O~ZC+K2S6w^Z0vH>w4ak$Gzm zZuO!Rfi`*{x;gxIDRv(53FfG}u0`D6y7gdG+glfr$|uHo{2xaHsRgBq2yY>s#rz1Pd#ZU=3B-I?rI`IPUN3s|%*{ng zS6u$E15sf~Fp%kuM7I#nj|5SF$zFv)Dy@8pr+8K5E#LS{9igj!X|0=u#{mFs9y&$- z^fUg3f3EZx7gIw!{uEF7J!1%3|IC#p@djXJqK$UNhf`}uBhgv3y3xAe0^Sr{P=mid zE`P=ejk>BfAitrS>Y3-p7f~wWHm`Ya6JiN>O2{fSC!} zSP^TU!3As7YCmfi25Db2S{FK;4N?q4l_dW=r(Ks1(}#Q}=`)yC8_5$H562yc9~6pG z7FWagk9DNKbsnEeE+>s2@A+#&FqAchrbvb-^jiWCM{VdxtQqwljAWJ*9`GYgPItMbc@rMTfniJqShvp#yG)^912>`3h7VDLnl2i1F4BMN(u?Q^r4beEWAiaMah z;gjKtjxJR^KIq&*(~Z26A8Y<#GLoKItIDLNzkp7wqg2!0m?4|~)nGzx_Nx+N2 z2YAurQtAX!BaXw*`#hYHIi%9Y%!h4IFq}slxw&>jaJiTD1n+vND4OSOZ8+(fFlSZJ zvaNG#&_RL%vlI*vQxc?4Q|ZJhY%gMGCX;RP=u=;7@~S}m{9$U{)0lsF`2>qU_@O_A_jG6<>>mN->(}a=+wCP?vPJ!)lW39hWX+dxn z%WjOY8PVx;O=Z^u(p4!uL*B=f+;s>G2n9S+9T2#jEMuDAeQ0p`&Rz+9$O3Y=cn@bilMXfNvzZhWM#H=^Eb8Y?4NJ3sw@qh*%7sA__kf$Zz+{J9pgv%hi19 zWp#vDbi`9Qs#3Ar%QZp3)NF$3iHPK{{0}ucO`D74x^VqyQLZWbGo5{WLC}9Z@OnWY z9nkuKu;F{mm%|PbHI&s3eAF`j?aiNTyS_Ais#2Sj_?Ive@b}iiPF=I#D+>*Fly(0w zrI{_YFHCN0kz|RJZi_CcKy#Uw0H1vWPp`q3j8!!XSh>HS5j$Nvz$FgRf%Ok#pt;MAPxHc=e+!N*k&K-A>!Cbz%k=H zSs-!&;`1YG0$l4j9C&Uk5^E*-Rl|5?=|>*Qod{vq3UVHiN=J(c_mD?dBhIq%!P$T& zi7tl^ckjaXOF2KajMERe*%7?|7j25B&rs1( z)lZ@HjR5TossK=atBXFtEMc@*Nj7tn1ax=XFGCTIoGefcM)!S(-J5LgwxZWZo<=vi zmrse$uRha~xWA5df5PATEU8qOF5Nm^H;pd4vULATO&|-$bHCNCL*WO$gZ&pKC+D2o zC!*TKkZ0GU;wT=Lhqn!bY?Fd8KuJJJfKrG9JfV(pBkY_7xwryJXgN-qd`e{2!<0-ePaLqI=&oLXO0 z2PBTVO0C#u@Q6_JCz)$hh-Q~wKis&S;$Cz6=0M2{p}C?aI>dhh zB1y!JO_e0GXr4P|@S1;k`8W2rzX1G8asPRs;S?4pmw4_CjH#%)f2RK9d?qnquNSduI&SXCeT*IPNb<@1EU;VkaA84nx6}xT zKxo|hP}yFr=GEZVOJO?3fHyvc5?V>p;UEw`ApUmr)AskVk|xB{s;3+wzi}yj$TFk$ zQT=G4dsXddp1n#t6%yqh6JzHzy`}$ti?t>Wh;wl|zQJ6a+7qK2bP$59mz^MuP{w{o zL!(YZVw0Hk%rz;V!Rk@Uq*8F-y-%SbZ~hTE=s!U~k0sq5%yCPlBLKG<*bFRkf|Xo3y=ws5lnbPW$%6Fgl1kn{my z`(}{9DLmsMG3uSYSYdn$s65XbU?*v}R~`8V!eFT{pBvZiuw>#7M~jui?m9DB;)MnD zddpj&11EZRkQpWuydW?iX}7BuBc8#N2QZafT^oQ11W28msH7T8SNMflWiYcAvCwXW zn@n25#y~nZu&ChGyjZ3LwrV$`hGDbBV{R`>_qlTDBz?C5^zF!)gs3sqNErVSs1MXX zxLnYJDVZli1t){qDp;vPQCfJ++(|B!Hb!&GtJToKR-vDvB=~cenBpn8DH0H#qV%!H zHhJW+&vJD}zHZ#Y1vmpY$Z|5Gv#mY2 zT@Il1Hw$*yW_y)XQ3Siljs?E2&UX^v*SN&=7dwc+LW)nn2qVn=HfcKjMK9e` zI434RMp%XZ?;=sH33Iy>=z! zR!_}C>PPR!r;NQ9)d+eI^%fu{tGaZ0EE{LHq0p^emi@AIKx1IK8PedTs}cSaPovU% zBb-LWcH-52L2qS_98jzB1?p&{v+6oc__p_+bWY7Kzcy<@j)~BA@$Tzy4zg*m_g=S} zkY`{qM>k9a78eM^kb2&KB@r9K}lVoAu^)Tor^cMW2?{DDdRfj;4J!@5Z<_oI1J&akfcI z&52pv4w=o;`Qpih=YWHu)dB8=gGtQPzuc?7&!oz>&x2p4`aRu~a++s5n$rU-1#QOW zP7KhS@D$fN%LntOB4m@r{o&O>9r44v4yjEuOIQWiszT}VK{&xzUVDO9mJ;1XYIuR* ze?3f`&Fg3W{ekMDyb4DK9hNHfl8>YHT?I%BP(lMgyzR&7h<57|Q3vt!=8d;E5_|BP z^^up}ekcIMu8O2qu1m}>hRvUmNToMa4WdS(P7^E=@=SQ$5x3?Ee6rYKmMcQ^_w>aDS&aiMd)EvSVQuUFkIw7^^i>D$TJ)-nDj1z;3D|K`m~@mh{0 zUck?T4?biG{qDqw;$Z_*EmJZ3VpX%TJt5YOB>G!anrd}uw=6#9bu+~cQuZHm+L?j^L1_*zO9bCtCj;lr!CZ!IhEl&f!{HC|picF*IXP`r4ahUG_Gnk5%=TE%qRUaai zDtWz%ktP2Fy1aR0u^WR)l`VqUqKYHP019hnY8r|%k`u8T)FV)?3G2#{c>!fMJP>wHZ|5C1k z7O_ac+YgG5cqw52Gd8TAYc6Dt1zd*ajFkn}kqfR`n#8E35`{y=q8iKg5U&&wSV^c@ zC~E7Ch!l}|J5HhEd_n{EyESCW7RA=Ec4fbNf72@l93>~6?mMvR3QZ0D@|vO9cm#`O zKSa10y(a~BoG9~WM)~Mjw*q&NavBu zpT6ceYt_!W$B)~r3)IFY??Zc}QTdX|Fn86V?^a^kPWQ>OYEftCUbnQZ##dw)fFz({ z&;xOXgtl9eAH8VCCU0UK+0tS z&HCMOeG4-Uf9JqvCNMy?;S?rawXnn}%9hZb&f@<4;&SgA{B0)cBcVk(NuS-YE6~y& zW2;FuPLQr!Lm>LdYqthlpJF`v>S1)#xnUG%y&$u)eh8ha8!XmD(ns57G2d5)uHYt&zf<7SmXlw z;I_)Hy3s2@D_Sg-OHWAg#XeZHwPMF{0}oOpa+wTgaonaO!0t4q=TbA9xViXU!%9U( zIc5F&yruy71xoPkM^k<20$za5WF1V67*$XptQ*xM1KOL)_i(i1n44O?P zV9!s}B32NPBph)9HRVRrbZbZfo*#Q8;A#ih9~caqVPj=ij_PE3?M|^*h_YC7d(N1d z1`woJ-(b03Vslc1>1%Gdh_@!1P3nZQk>((mE;D*Qtb&};<%{p0C8YgI_j%z1ajU1( z7&ccGE`yGHn{&&^2mSrnGd6SO{mfieYu0Uf0lk2E*E*65{Bk08g+m<1QtU-&P^U-1 z%XKcLq{PT4h58kka4s)O4P~vlrW(>B?%uB()&}_JD;fGnL2C4v#_j|OtU^e)+2n2t zIt?A4(8g;jdSqEG7O3*7rvX~3`N5=M=@4Qg`tC3?2P@X+aZbNAanLK(fh=D?ip6Ux zd%5OEfw>n^8@ukPOdX|+Tk=GbhAFA^?zmJl766?G#R{Od$h{ltwggByd^tNdt=G7% zvg%O^bwTraftS3XYA$7a25fxYt02VCie2N92s8i8%d&a36ibCa01iypa_kKXC#%%c z-~dtMe1^U~*7ll8@>Jaxjm{2>E-5q~d&@W2&HC;bEDri;BY9RtLnF$zR8P|>P?23`fN`Ot_M zBW0*ryt07KX=~g^)Mzo6yvHGK#!h)%xtk3Tw?E1ND>eYXg8b;`dbJHWHJyd@B9WPr zi_t>XXf~bThJW}bB2fx^eJ2kP41^O^uZ--;ImaggD(W^aq&i;Zh5$ktLKp(B+$Sca zQuUbUj|=r{5Lq#yv58dwF{x9~r%BU;?f}??XiY?TbH=WNZaEYhZUv-{b7BIn2AC&( ztuL3uPSKw8J@~bjVM*1GBcUj1lWHP7I~QPyKh&Cj4JyWxDk$Kt)V4dbHO z=~pA(;t;D?eK#7Y*HjTFkp2zLy5-ryGaX4o1UOa=l;c@Gh$!3X7Q4!R<_~|=RIBa~ z)z5t}5mrZ|Bx(Q!0OOdPMqCf&u5-pEi;YMR1Va<=a+*=gZdaaQfT!P z{1k<8r3Xiuk*2OM7a@NlyE1hqE$fWVTtpE(%$f7*5g^)&iWO9d8fw!ir#QrZXAU6l zJyf)Afia2FKJ&N90I==WZcrIKEOX7z_}!(RRkfB6t`yh~^FkU!-&UuC{9=!adJ2?xmnVOxajPZ!*2c!=Jky4<0k@V#d6EYtH%Fg#VVl_&>oDc;)fbT}gB7cSB z>Di<$up>r*T@1qwF>C-#IW@a{YoYD=TTk=9nMv@7!9;tJ1IA2&ID0A*s<%|~xdA&* z>wcK#2ONnO-4vu|uR1WChE=x%KlPjH;SSRmwhVgu>@c(QSY!a~fVapnHdq0Z=$lnCc^wXZe>E zSoY?eF~vY?6V4h{(`jc{-AJo(x9zFXo0B>)6(n2N^r*o6N9x}X=;c>DX0bmotSgKB zlCegrz5x?-7Uru>=s?9P8Ii{c5W?&EK>%p2H1`$1AG_>~UV7LdW%SQ6nb#7C6xEF) zup|M+wx!9vJl}32Dj(hs2!)jhMHhWpUv5`xDfYRrFnTaC0=uD5#0LqV=x_hxy=qnI zKdNe@+)BV+69#~=`)s`#^ghlUz}`+(GkoS;O@+MXR@j>}U@oYD=U8E_K#6Szk!V{p zIzhIr9X-G5NL$D-BA8tcK-9M(z>}GZ=ql6kh++V~MO+nF!qa;I25W1BC3*(TNtJur z0yppo{ael5-ZlsQ={MDk+;8=X+D_P)o}bSxX-MqM7>&soOMs$z1LAGC6TpcJ7}I*i zgO~a|+@7#IdfNWH?`K}R=D55w6YzAwe~q``L`K%SMUq$T=ppz8YFcSCZOHZF1g~#e zAIK6SyR@6l0l!yIFy~o`*I@*ay~$Bn#dz1yDvovzEDnAV2KO{T#aVdUZqQs*K7BSsoC(v#s%9Wd7iYe=z;DU2g9P{Inmnxk?v++vIli7uSV=mChB=08{U3sP>jKJ*CQ z$Q7>;c~aX##cQ7J$ga2(NzGg_tX6f=TNVA#Y1 zzSgW+_lz_9=Tucnbqz3;cNh0d3y^edjyJ6%l>Imb#+&|*!u|ppKyw?+XHqO{#`;i# zOU!$8l)^N8-w4Prna^kmMkwnIlk(jxz2lz2Q^s3bahl=4mfo|uD75)UazArVg=Xfn zw&joQdeGb{$p?sYWU)~dz-g7ej<4*>@Oy9m{MnI0&)(WrO~E3{V; zv*3_`OnqqOMrWt;Dvs?7hcnAz*Hjxiba7E(iLiGfJ5YY7A_hb_96+$w8xdhEy(MtP zgaKVr6K%P;J_EjRMi~%gm5v|D^cnc@7_*R3bY|rqBG}X?a7nandG!w#2jhp7a)WRP z!I=zT?7PHK<;SNO(_)`UqJE8xFx8OveV~ulk*TmMC=+I-N{pIZeI{k4RH7w83R*W= z^^sa1)J+S>T;s3$y;XbwHp)=ArffJQ;%c$I>c`4qN>gi1vt|>eusfgPyZ#nm*S(b* z3njoYP};C|^pWEonI|ggy08f79F4~n zA192YugUk6Z&Cyn(Wq(TXOpgen}L=Kny;gHwMR+SaZsgLwO^{2d1A4{R-{2WY`1Bf zISZ&x(L=m()LBDRoTrbJ2`yr6;~dKzb+2_f#Q1YdpLC4t?1ml7F|IjYX}O=AW!5h0pzu0=@~>%0aZwJnmQw$$ zqhZ%yU&vUq_mIm#AV9KnSI=JdUplPxX)SS**MX^d43^7MTl@D~%ZQ`}P;48f;axgS zKnWaqx1&Skb$x|UM?R=-FUeJyiQmmfX$-{!H4aS9jTN=v&5&;CAMArMm0MPl+)JU| zv<+n7;5jdfZm_XtY%5;#2T&UVTX4-WkluK6zc>rqd?olJD3$BV#cN0RZaPP)udwRA z^3!le=0h`)uOy5gnIHB3hnwLOc$vB6M;?Z{(mz)Iv3MhYw2@LZ3(pt;_aQYXf}b%X zJNVSx498sQ2Ta)BLx?o$D^}t7`8P2~YuYgHU1ByOOV+QRfj63mc06I%PQgWf;i$7T zoC2co$O^>@#8GhR@--@~`%g z?-Al<4lzeGLTg9V^f+0Wph^znQTgefTvGBU@_@Z%zBQ_{lr zT8runV-8V1j{Ub?6pKw!C^jaPt6rE~+Ekhv7e5oedbhHQu%pydlsr$r{n5 zG)@+W09di*OMxw?AfQepZ=3igos*SIX`%vl#T5FX=B{^5M50ZQN>7Vww$C?>G)LGI znv-*2f>G;Q#8kTUr%uJm;&;&&8MT*zFu#YA^I>R3wsJGPIIiQ2dT7Aev^L zHJo1V>et8*wvsd(7i$$SD&QSQLw*bt>VICD*ZLgQeQA{wqUy%77E@+nDE&e+8V*CHVw?V}b;lgF*zzNNksnU720>*_3l(tn{-{Gg}o ze?-q)A&z(02acxMQG007aG0MhQDxzm%H}T16Tt;lH|*DmfuI%?D~zY>109UuLko?B zN@D=>(9^44E4k|ZP)-h5@t@=n$pe9#ou69K2kfur?s99`Yo=mJiaCl>H9%Rr`hdw8 zMLNj^ji~@ts(533xxP2HYDW6|9hJN=_I3P3z!UZzeS1S7aP_{*o>}PSV)JLDiO8V& zs&-5@m#Hq_!3FpOYPbk*WA*?-)O1K>fgeUn)GOM&4XH`$ zX>)i@J3X;Z79@!Uxu(2~DS336TZ1W*VI^tj^7N#rDFV4`dr#ZNA%K8w`A#1!HM`cx zmSn%W_+@PZoa!s@q7qk5FnGLVd>BszI^+VwMo(5FXIG8o)Ls$G^im{*@d9jf5aq!6 z00&krRrIQMUT@83UhM9}n7@&SdXU`m; z@scG7mdC;@S}XwNW?A>pXS}u(A3O zQAC@`l1lfXg1i57%_;UX`vBaypCFR+!8UMsW2SyWx&C_K^ya8~I{(PrTIsmT2V!}p zx+1|Qft@ZS+vj)QBe-V4O@upC;snszk45Eci$4R~Yk`j5s0gifLT$!t4o>Q@fW5Fn zkWZew9$%jeuU9)KgIivc_9iVB-qH2?-Mfu*z!UR;1W89UEQR3ss$t5 zQN+PL*m|6`3+xB*&9a>94F?Y5Sq6{EeF^sQk(*!mfZJ^Ytv%!ih^R*2s$oDctsSYtseTuVt5ZP60f0MWc7mbdZ^jKaoJiVODe*>a~uX?AT=u zwTahEl4i>FKRu;ws&L%xxh1q0N8d8ZE3cLT^%42{h1Rn`I<+Lj*>BB2q!pkjLYz4u z(GiCqXD@Wirxc8KwPlQb<H|mvV8|1=Q_AN=SHt#FNHrm0HgCv{li_$j}0i_G}d2 z7G#b(do^ceZInPK4XZKi1pt$;CzVPe?Q2JOf&DLakB5+bcT_B=B^#)BP>4VH_QmyY z5num9>=Vj!+8hK@SkK^A5v9DL&%^IpLxRN4+cSeYEOE7{uy?S(@izp?=@>$Jr$ z^m)A585{|W>AfEYWgeqXLlKBg;YJ_F9q*D2juB-tVTXw_ZwX-xn`99Rb{qH@B(N1W zbIfj)fTrbXp>%`>3RqFV-pNPow?U*uz6aC^3|w@sZawummr;>2dSVnbU@2iGS>v_WoI?aD%|oJ{N&}cS-z5gz;sJ!vb~RGd%`hH52e4Cn zEb!5R4T+vAHTi`JYkcJIsO&9=Ij9b`fR6K8F8`X!eJ8-107qsEP66=9+lm&?HBif6 z7A)PPU{ljR9{6&~@T#ySu9g%33m1dFC-0238zft~5MO&0)1z2s%+W^>IqN5#EPq>5Sfd9byE z9q(L0)D0u|qpPeWKYQ(shXdgEen>35X8*Y*K%BcMBH+`rI{o6!xD5=Ow|sF@IPP=5 z_@u9OjT&)O%ea@j>nT5Sj?rUo$6+fVJbo=2@@1}o4V1H(7}TTaNQjeto@0d5|#2~6u# zC>ZQslz1(Q#mt>WO27p;IBna{)%`*EinS#=l`I5p<$K&wvH_cx3gP?{(?*?goe+iB zkvK|FEr-pdtx4_^fHEkfot#?`+>E;@BB3fTs*K)?{!0dY15dmiM*%j8KnNs3jCR;N zLNm$m7}1k*{b(8+(9pkKTmn9@U9FkeXx`GCA# z&%aS)sc@7cko%W89&}Ps*i@yJ{r)D9&a4y;bWkFrz}jz$rAth-0>b}j6;&Gx{woJ> zxw2VN=eF>}`((x%`fVlTJ(Fi|V7rML^ZdwB1LcF6qnYFPmYb(EmdwsQ2eRu#z|X*g zV6za|$Mx6+wHf5o|H5!{^O}jCIs!33Av@lIn%sMY;@K;E^6N%G2FxRy&x8FZ)_09S z)3QaY>w6jyeWo{_MuRQei^doDpt_DKyK#+`r>zgIK_=%H79536Mjut4+161>0bAL- z%sk=cFcS#e;J};Rr)YaMa`RTUu@JqrgcHqiIAAB*irk66^(C+HH+UMihD*WhZ3zK( zAP3c0Hm^D|3!(QCBl zVC0O!@d~92He%698&R?@cvo+5ZLs%FFQZmRq#k_TK3QXkA?KVyNw^t?!GD9jrFTUu zb6;5OOo_uMuf5hQ%{PbXQQI1*7S(tb`osR9EZWxvtUn?^Oa#`hoGI}XKnyU4kXyBD z+I6jZUNmVT-u}i64e}Qp?0>iiG%6~J0Jc96w#2Yx3UHF?VkxRlH>zNL(z5`_KY1Rq zjbhTq2HS+9j|NfXj{@`aAGd~f_W8WI~Cb$(~<2l*;QcYcgze4Ev97;a2*NT=_6cmI4JkI$c<$LH7k z^?rR`ujh|f)vFQhb!W=Gq?TeZ65?M;E#76$j4r%iENG0&VaJiXkQnSVOy2Q2Z5BI+ z_;BH@tamxs4{@l`xNHHz-7EVVNbZ_mYl*PAYylWPSn*c7OLvw&qW%~ThFJIG5hRXn0Q*OK8mhEdsWp38<@MD6xxtW#_szyW3r5a_D6bQ5A;Hmpz>eNUBSNPitRlFVb*a zeb&R>oFBHuO@9b{@^>caB6E4fmrbQY^@Un^BN^LkeO`&p<^5fy@ay3d6fW;)V(pym zA8)qRfK>s~=H7^*3ZPhD_;n9}(f9S6!3&@HMj+IU##<5TDNs-yzqu>}=(t(2=T>09 z#wb!1nwSM(V9;VjWk1A+(K<=h9*}k)?@h;ip;$bn8WKi0=>4_p3MVIsph1mMFMdX zi#GMdQmWHw^9>&?mtJWU;=LM@grrb-i~60{6@o!v@r_v)zqdRMfG|7)-EF;h)!API z2DX-eJgUhm2Tnq=4(d9Rf!0dg2RX%Fva z6q*UBMUJa+}Hytq*KTwo)I_+tb6>KMk?knjP1F*`$Bz54!!>c?YPsD^)F*Wc`$co6awq zZ%@5)uL7qY19Zpf;pxj2F(~#`#ej9F7fP7uJ&XG!kVk>sL@Ky{I&;GL_NqEc6=9fl zst=5?!D@u4SSTFmfV@FTrin=}RF#0xe=g3C0>If)Zo+~^WMuW6KmuXF3{CI!K?0#P zxML~pjHlNx%a*^&p0I_{(FpNB zjAY70mvo-I)w;9x#b8aBVQwgNvU9(hT02l3dAHunD%D<_{LXA&{^QP2tzyNx0&)}9 z6|rjspSXa_Q_{veEOhW*c#A(9h9vX~-o@w+))Dhh@0+wZJxmzZvmnJkn&{a3(_Nv} zcDMx^V*=kVM~QgsS!!Nt4=~)<;K_O}10!Z-+p{uD#N&5&JV>{hf!SaZm0+(XE47AV zkMZwE@>`7HpLy@2>amA9JD9Me=?;qVnNjUi?&%8cAjXBCuf(Iylo1V(kIx56@WD#0 zK^2z^@g**WAAs9pmF&z$Y7~LhDIQNm#d15WI5DT>bsj^i%{L8i1!RNkZ9m=t>?RJ0 zyf|Y0Zi!X}iCVCbFOcO6esd{^0ODX%f3w#3lnXNWw9^e3gx66~uN#gD>n^V6=~l@e zG{w;eW4T-$6p5D>9kVFlh{sh2t>_?9AlWc$WX9mRe3FR|BT&9j9keVG$x-I<+RyL9 zhzH3_oI-a6k>TyxJBW`SQspb}9OeJE$zAVfa93VZExs0OOY!13fTtx>2)jJ)rK`O~ zgi%8We@Y9swyUU*VxsGHxd&@&?w9iFA*m;suqz$OJOb^BNM`1mRm$X;v5;A@pe?F) zXU5?3H)m@$n2F@k(&MPYo(h?ZWPFQAK8QhHGDF};Or+SgrQ(kF?EjG2JY!I{=WYaV zMH{6sv@!8tUs~Hp@{Rn0a2bN1G}qBCg!Rqq6D?|%br`PbsCDc=$M2C` zACguh4dH*%8*or78JR3H- z$^jl5LfL$YNS^1i@G&A(iB0o_t%NME>YOz*&~-64M#nq0ztH)CxbzA-wh`P6_Fiq5 z5ogbls-g%!5vVmA`#%&U)bD=i^DQDbUCqH&d-Umv2xOwSM8#!i)|2>MQtHdBlhgmi zq=ILROdlO+mpvKv2xO92RXhQo#H!>SGK%}N#+5p$eV9>CL@U<7YKVC_7uME6y3ORC zi*|lwnvy!xBiM`2VZyG?2k0rIY7o`r)TxeZxd{WFYqatX19@E$3??F6iHZM#J`Hm* zM~@V3d1`DJ2PG4eOebYeF3M31*hA?zf8MaU6SR!wn*|dc^Pr(jMh46UB8^v0WQG#Y z9a9RUDK&0*{r<<>Zo(zXC<*>Uoomws7AlTN{sy7bY~1S6w`zqPhw~_)9OTk;~+en0WZ`_Z8BU_aYbuw%5IU5PjcvNT=$anv0 zK893_*vkw-UHa70KsLr!*Toqbo<``0vNx{Q4_i{otmW?ZB_nhf@}LBJjhWZJ$&Uj|EyTM zwZGs{%>?~3aOc5xgLi#&i!vC#wF)w|F0j9T1=+#o434W+XJlp$kD85Z=JSVCK5JM) zLTf;}a_8J%g2N(05HT+f6)RPJtUWNbBSB4D#rLvtTjZ#8+cN;3nWgfTVlMAy6Sz<3 zgf_w5kDnuYAB>pqj!5<+j@Qe+gtwm?8dtADFJHM=FWYg1fs>Q|@aRikh-$XC`FZ@Q z@#vu*0W=PJOPY~NNG^mAd}nro@o8TF(Zp+f$AV9+v{ zXenPPhR2}UZ*RA(ee~gq>yK|)S6EKI9Aj+%ywxBYB(}`doi2aO=eNJH9Io@dC?`>B zvhg_x^jPXu%aiG-P=*NQ=FKLHY#$0f!jRw;iKs^_H{827V&^QnIvRsh0{Hr`@rladUc~0o=IyYF!}y#%^14QzA4fJkbL7Hz z=1!yll|wzx)N%UUx>k9nr@hUkJQB<4p20!Z>q8-phaYe57RhJtpBB~DXni9`9p!JZ zA<3vTEL0v8rWgc+|D0|=l$~s0i$OTXl3U(UHn2rzn|n@WBove7b$QT_BDUb=kB0k4 zT>~?m>Py_6C%sh}yY{}}B@V0NimSK67AgK~W^lcef0?BRr?D%uW%K!Tz;*MCorL>h zzm=mR0LzXQ`n{i{PF}S8kmN0lsg&`QRLUw=h-=MFOKOWfI7=P2v-x)}x#fP!E3Ytf z8>Sh;fHUNMD7awXwM=NjZoX)nubbYw&+BVkzVQos`G>AqQDrv#0Xa2<&$jtC=^09o zWS0f;rSEw{3O^KV6!ZNo^#;VZ$aM2tI4*uC%&5!mc`5CS9Y)qcC1tcPU`E#QF%r$? zZO?f{d|tV~8d+__bWB92e)eXT)0_gJi(c3eqwhs$^%o;ghZLM~tH@kktg>N-Kc0BL kF%n|r`+vvO!F6P4PS;SF{clZR>Zg{!Z_wd7pQw!g0rx~DNdN!< literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_maint_title_btn_left.png b/app/src/main/res/drawable-xhdpi/ic_maint_title_btn_left.png new file mode 100644 index 0000000000000000000000000000000000000000..7b9db9d31db8b380dc122935e745f5f3e2fc538e GIT binary patch literal 1609 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 TXNN=KzXl2R5A$mhi1+^kp32=- literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_reload_refresh.png b/app/src/main/res/drawable-xhdpi/ic_reload_refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..da869ca4a9ad17968ce01fef8d5de2b300084bd2 GIT binary patch literal 1336 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 b#@>Pd9dLgztTuR200000NkvXXu0mjfYM}&X literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_start_hint.png b/app/src/main/res/drawable-xhdpi/ic_start_hint.png old mode 100755 new mode 100644 index 43a96e87e2e320be0c2c6a0f5a85248ae61e25cc..0b023e84400f0998d36141d85935faf6d248aa10 GIT binary patch literal 511 zcmVUaDhFB%EeGk^FU$Nz`($S zX6Q}0p#~ZX$a4Gi)YXCF?I4Ty7%6W-)^rvn+zeG7?=@7d-fO5Rk1oI8R6*j1x;igV zJ^{!-f~N2P4sC5AhJE^~GUyU$co!;Pbv*&~;S8&^wAest56GE@9Cl>jRX`jIb}2Fd zg(WadjUisg2oiMsc&~v<-yTC%m;DY397LrE5CG;TUF-&`CJ=21GJxi!T{v9%5)>CC z8ww3$xIy4#hm;9G!9!Bv0xFHrTs94AQ8;=^SQW~^OoR)SJ<$xjx!G8X3&{ub(B#|k z8i*}oKw`*hK-n1>>vxHcIB0f5Chhq6zoQ8tJ2k44=sKQO4QXiLEr1E0Z zegg#oyg>kQv8o-gG!nt5rU8^u3{?CZ&+klFwM002ovPDHLkV1i5n B&0+um literal 487 zcmVcIw+lBgoHk!GgnPxt#h#4Dq}=yyR#G_o62VXWHt{mEZ0JRa-5$>rOZ3wu%) zTPbiFBD|Xq{^%jevSxgVL8X8Tp7U13=0B$c`}IHoxr&B1oE+|bM1#Kf_1#T=)J&1O z40`ooi@+uzDWzCn8s+H9??hx|>C0&!E^B znudVkBV-H+B*As|<3$N$h`Wz;pCLMT3JIfg+j$A`*{y$Vyb?i29VoML+ARUL)g33` z9C$yoJp1?lWRjY$_v^lrmS|`fCg3zSoAX-1O@8>)NM$YhrdBQ!P%CN7!GAxdF@uDH dR3TQq+6S`=+z}1O^PvC$002ovPDHLkV1hok*qs0X diff --git a/app/src/main/res/drawable-xhdpi/ic_work_log.png b/app/src/main/res/drawable-xhdpi/ic_work_log.png new file mode 100644 index 0000000000000000000000000000000000000000..7bb7ad1c643f38f93c0d59687adaafd73ff072a0 GIT binary patch literal 7683 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 aX1@pWU>54CMIwU$0000ivAP; literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/sel_cir_btn_blue_gray.xml b/app/src/main/res/drawable/sel_cir_btn_blue_gray.xml new file mode 100644 index 0000000..ce58130 --- /dev/null +++ b/app/src/main/res/drawable/sel_cir_btn_blue_gray.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shp_circle_main_theme.xml b/app/src/main/res/drawable/shp_circle_main_theme.xml new file mode 100644 index 0000000..8041890 --- /dev/null +++ b/app/src/main/res/drawable/shp_circle_main_theme.xml @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_census_register_add.xml b/app/src/main/res/layout/activity_census_register_add.xml index 4ec595c..d5ab2bc 100644 --- a/app/src/main/res/layout/activity_census_register_add.xml +++ b/app/src/main/res/layout/activity_census_register_add.xml @@ -1,9 +1,9 @@ - - - - + android:background="@color/white" + android:orientation="vertical" + android:paddingLeft="20dp" + android:paddingRight="20dp"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + style="@style/item_white_bottom_border" + android:gravity="center_vertical"> - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -