From 94cd6f334130305d586f5442b3fad0a272853459 Mon Sep 17 00:00:00 2001 From: adam Date: Wed, 20 Apr 2022 10:08:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=9A=E8=AE=AE=E7=AD=BE=E5=88=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../baselib/core/widget/views/QrDialog.java | 4 +- .../res/drawable/shp_rectangle_gray_5.xml | 6 + .../layout/layout_base_search_cancel_gray.xml | 31 +++ .../mainmodule/base/MainTabActivity.java | 59 +++++- .../tengshisoft/mainmodule/net/MainApi.java | 8 + .../adapter/BasePersonShowAdapter.java | 5 +- .../oamodule/fragments/EmailFragment.java | 42 +++- .../com/tenlionsoft/oamodule/net/OAApi.java | 7 + .../src/main/res/layout/fragment_oa_email.xml | 196 ++++++++++-------- 9 files changed, 263 insertions(+), 95 deletions(-) create mode 100755 baselib/src/main/res/drawable/shp_rectangle_gray_5.xml create mode 100644 baselib/src/main/res/layout/layout_base_search_cancel_gray.xml diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/QrDialog.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/QrDialog.java index 521028d..5710ba7 100755 --- a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/QrDialog.java +++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/QrDialog.java @@ -45,8 +45,8 @@ public class QrDialog extends Dialog { super.onCreate(savedInstanceState); view = LayoutInflater.from(context).inflate(R.layout.dialog_meeting_qr, null); setContentView(view); - setCancelable(false); - setCanceledOnTouchOutside(false); + setCancelable(true); + setCanceledOnTouchOutside(true); ImageView mIvQr = view.findViewById(R.id.iv_qr); Glide.with(context) .load(BaseUrlApi.BASE_IMG_URL + mQr) diff --git a/baselib/src/main/res/drawable/shp_rectangle_gray_5.xml b/baselib/src/main/res/drawable/shp_rectangle_gray_5.xml new file mode 100755 index 0000000..bbcc182 --- /dev/null +++ b/baselib/src/main/res/drawable/shp_rectangle_gray_5.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/baselib/src/main/res/layout/layout_base_search_cancel_gray.xml b/baselib/src/main/res/layout/layout_base_search_cancel_gray.xml new file mode 100644 index 0000000..e50807f --- /dev/null +++ b/baselib/src/main/res/layout/layout_base_search_cancel_gray.xml @@ -0,0 +1,31 @@ + + + + + + + + \ No newline at end of file diff --git a/mainmodule/src/main/java/com/tengshisoft/mainmodule/base/MainTabActivity.java b/mainmodule/src/main/java/com/tengshisoft/mainmodule/base/MainTabActivity.java index 133942e..e6379c4 100644 --- a/mainmodule/src/main/java/com/tengshisoft/mainmodule/base/MainTabActivity.java +++ b/mainmodule/src/main/java/com/tengshisoft/mainmodule/base/MainTabActivity.java @@ -1,7 +1,9 @@ package com.tengshisoft.mainmodule.base; +import android.app.ProgressDialog; import android.content.Intent; import android.graphics.Color; +import android.text.TextUtils; import android.view.View; import android.widget.FrameLayout; import android.widget.ImageView; @@ -17,7 +19,9 @@ import com.king.zxing.CameraScan; import com.king.zxing.CaptureActivity; import com.tengshisoft.mainmodule.R; import com.tengshisoft.mainmodule.R2; +import com.tengshisoft.mainmodule.net.MainApi; import com.tenlionsoft.baselib.constant.PathConfig; +import com.tenlionsoft.baselib.core.beans.BaseSuccessBean; import com.tenlionsoft.baselib.core.beans.UserInfoBean; import com.tenlionsoft.baselib.core.network.update.CheckUpdateUtils; import com.tenlionsoft.baselib.core.network.update.service.DownloadService; @@ -32,8 +36,10 @@ import com.tenlionsoft.baselib.core.widget.base.BaseActivity; import com.tenlionsoft.baselib.core.widget.base.BaseFragment; import com.tenlionsoft.baselib.core.widget.base.BaseViewPage2Adapter; import com.tenlionsoft.baselib.core.widget.base.FragmentUtils; +import com.tenlionsoft.baselib.utils.ExceptionHandler; import com.tenlionsoft.baselib.utils.KeyBoardListener; import com.tenlionsoft.baselib.utils.LogUtils; +import com.tenlionsoft.baselib.utils.UIUtil; import com.tenlionsoft.baselib.utils.UserLgUtils; import java.util.ArrayList; @@ -41,7 +47,6 @@ import java.util.List; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; -import androidx.annotation.Nullable; import androidx.viewpager2.widget.ViewPager2; import butterknife.BindView; import butterknife.ButterKnife; @@ -117,7 +122,15 @@ public class MainTabActivity extends BaseActivity { mLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> { if (result.getResultCode() == RESULT_OK) { String s = CameraScan.parseScanResult(result.getData()); - LogUtils.e("扫描结果=="+s); +// MEETING:49b90221-67c0-44ec-b131-f9f2bb3f0709 + if (!TextUtils.isEmpty(s)) { + String[] split = s.split(":"); + if ("MEETING".equals(split[0])) { + doSignMeeting(split[1]); + } + } else { + ToastUtils.show("未能识别二维码内容"); + } } }); @@ -126,6 +139,41 @@ public class MainTabActivity extends BaseActivity { //TODO 检查App版本 checkAppVersion(); } + /** + * 会议签到 + */ + private void doSignMeeting(String s) { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "签到中..."); + dialog.show(); + RetrofitManager.getInstance() + .create(MainApi.class) + .doSignMeeting(s, UserLgUtils.getToken()) + .compose(RxTransformer.getTransformer()) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + + } + + @Override + public void onNext(@NonNull BaseSuccessBean baseSuccessBean) { + if (dialog.isShowing()) dialog.dismiss(); + ToastUtils.show("签到成功"); + } + + @Override + public void onError(@NonNull Throwable e) { + if (dialog.isShowing()) dialog.dismiss(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + } + /** * 初始化视图 @@ -263,6 +311,7 @@ public class MainTabActivity extends BaseActivity { .statusBarDarkFont(true) .titleBar(mVStatusBar) .init(); + break; case 3://加号 Intent intent = new Intent(mActivity, CaptureActivity.class); mLauncher.launch(intent); @@ -274,7 +323,7 @@ public class MainTabActivity extends BaseActivity { mVStatusBar.setVisibility(View.VISIBLE); ImmersionBar.with(this) - .statusBarColor(R.color.gray) + .statusBarColor(R.color.gray_f0) .statusBarDarkFont(true) .titleBar(mVStatusBar) .init(); @@ -293,10 +342,6 @@ public class MainTabActivity extends BaseActivity { } } - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable @org.jetbrains.annotations.Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - } /** * App版本校验 diff --git a/mainmodule/src/main/java/com/tengshisoft/mainmodule/net/MainApi.java b/mainmodule/src/main/java/com/tengshisoft/mainmodule/net/MainApi.java index a0c3936..2994c62 100644 --- a/mainmodule/src/main/java/com/tengshisoft/mainmodule/net/MainApi.java +++ b/mainmodule/src/main/java/com/tengshisoft/mainmodule/net/MainApi.java @@ -14,6 +14,7 @@ import retrofit2.http.Header; import retrofit2.http.Headers; import retrofit2.http.Multipart; import retrofit2.http.POST; +import retrofit2.http.PUT; import retrofit2.http.Part; import retrofit2.http.Path; @@ -64,5 +65,12 @@ public interface MainApi { @GET("app/check/countcheckofmine") Observable getHistoryCount(@Header("token") String token); + /** + * 会议签到 + */ + @Headers({"base_url_name:oa", "Content-Type: application/json", "Accept: application/json"}) + @PUT("app/meetinguser/update-sign/{meetingId}") + Observable doSignMeeting(@Path("meetingId") String id, @Header("token") String token); + } diff --git a/oamodule/src/main/java/com/tenlionsoft/oamodule/adapter/BasePersonShowAdapter.java b/oamodule/src/main/java/com/tenlionsoft/oamodule/adapter/BasePersonShowAdapter.java index 3b1cccc..111b775 100644 --- a/oamodule/src/main/java/com/tenlionsoft/oamodule/adapter/BasePersonShowAdapter.java +++ b/oamodule/src/main/java/com/tenlionsoft/oamodule/adapter/BasePersonShowAdapter.java @@ -8,6 +8,7 @@ import android.view.ViewGroup; import com.bumptech.glide.Glide; import com.tenlionsoft.baselib.core.widget.base.BaseRecyclerAdapter; +import com.tenlionsoft.baselib.utils.LogUtils; import com.tenlionsoft.oamodule.R; import com.tenlionsoft.oamodule.beans.MeetingAttachListBean; import com.tenlionsoft.oamodule.holder.BasePersonShowHolder; @@ -37,7 +38,8 @@ public class BasePersonShowAdapter extends BaseRecyclerAdapter mDelListener.doDel(mData.get(i), i)); } } else { + h.mIvSign.setVisibility(View.GONE); h.mTvName.setVisibility(View.GONE); h.mIvDel.setVisibility(View.GONE); Glide.with(mContext) diff --git a/oamodule/src/main/java/com/tenlionsoft/oamodule/fragments/EmailFragment.java b/oamodule/src/main/java/com/tenlionsoft/oamodule/fragments/EmailFragment.java index 84dd85b..138ef2b 100644 --- a/oamodule/src/main/java/com/tenlionsoft/oamodule/fragments/EmailFragment.java +++ b/oamodule/src/main/java/com/tenlionsoft/oamodule/fragments/EmailFragment.java @@ -1,13 +1,20 @@ package com.tenlionsoft.oamodule.fragments; import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; import com.alibaba.android.arouter.facade.annotation.Route; import com.tenlionsoft.baselib.constant.PathConfig; import com.tenlionsoft.baselib.core.widget.base.BaseFragment; import com.tenlionsoft.baselib.utils.LogUtils; import com.tenlionsoft.oamodule.R; +import com.tenlionsoft.oamodule.R2; +import butterknife.BindView; import butterknife.ButterKnife; /** @@ -18,6 +25,29 @@ import butterknife.ButterKnife; */ @Route(path = PathConfig.PATH_MODULE_OA_FRAGMENT_EMAIL) public class EmailFragment extends BaseFragment { + @BindView(R2.id.iv_add) + ImageView mIvAdd; + @BindView(R2.id.rl_title) + RelativeLayout mRlTitle; + @BindView(R2.id.et_base_search_cancel) + EditText mEtBaseSearchCancel; + @BindView(R2.id.tv_base_search_cancel) + TextView mTvBaseSearchCancel; + @BindView(R2.id.ll_base_search_cancel) + LinearLayout mLlBaseSearchCancel; + @BindView(R2.id.tv_inbox_num) + TextView mTvInboxNum; + @BindView(R2.id.rl_inbox) + RelativeLayout mRlInbox; + @BindView(R2.id.tv_sent_box) + TextView mTvSentBox; + @BindView(R2.id.tv_draft_box) + TextView mTvDraftBox; + @BindView(R2.id.tv_recycle_box) + TextView mTvRecycleBox; + @BindView(R2.id.ll_content) + LinearLayout mLlContent; + @Override protected int getContentViewId() { return R.layout.fragment_oa_email; @@ -26,7 +56,17 @@ public class EmailFragment extends BaseFragment { @Override protected void setDataToView(View dataView) { ButterKnife.bind(this, dataView); - LogUtils.e("EmailFragment"); + setStateView(STATE_SUCCESS); + mSrlView.setEnableLoadMore(false); + mSrlView.setEnableLoadMore(false); + + } + + @Override + public void onResume() { + super.onResume(); + //获取焦点 + LogUtils.e("email获取了焦点"); } @Override diff --git a/oamodule/src/main/java/com/tenlionsoft/oamodule/net/OAApi.java b/oamodule/src/main/java/com/tenlionsoft/oamodule/net/OAApi.java index f8e4e40..9b6a527 100644 --- a/oamodule/src/main/java/com/tenlionsoft/oamodule/net/OAApi.java +++ b/oamodule/src/main/java/com/tenlionsoft/oamodule/net/OAApi.java @@ -259,6 +259,13 @@ public interface OAApi { @GET("app/meeting/get-signqrcode/{meetingId}") Observable getMeetingSignQr(@Path("meetingId") String id, @Header("token") String token); + /** + * 会议签到 + */ + @Headers({"base_url_name:oa", "Content-Type: application/json", "Accept: application/json"}) + @PUT("app/meetinguser/update-sign/{meetingId}") + Observable doSignMeeting(@Path("meetingId") String id, @Header("token") String token); + /*========日常工作========*/ /** diff --git a/oamodule/src/main/res/layout/fragment_oa_email.xml b/oamodule/src/main/res/layout/fragment_oa_email.xml index d5c56dd..7e2fda8 100644 --- a/oamodule/src/main/res/layout/fragment_oa_email.xml +++ b/oamodule/src/main/res/layout/fragment_oa_email.xml @@ -34,108 +34,136 @@ android:background="@color/white" android:orientation="vertical"> + + + + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:orientation="vertical"> - + + android:layout_marginTop="5dp" + android:text="我的收件箱" /> - - - - - - - - - - - - - + android:orientation="horizontal"> - + - + - + - + - + - - - - - + + + + + + + + + + + + \ No newline at end of file