会议签到

This commit is contained in:
adam 2022-04-20 10:08:36 +08:00
parent 0b23261d59
commit 94cd6f3341
9 changed files with 263 additions and 95 deletions

View File

@ -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)

View File

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

View File

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll_base_search_cancel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="10dp">
<EditText
android:id="@+id/et_base_search_cancel"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:layout_weight="1"
android:background="@drawable/shp_rectangle_gray_5"
android:drawableLeft="@drawable/ic_search_icon_gray"
android:drawablePadding="5dp"
android:hint="搜索"
android:imeOptions="actionSearch"
android:padding="3dp"
android:singleLine="true"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_base_search_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="取消"
android:textColor="@color/gray_text" />
</LinearLayout>

View File

@ -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<BaseSuccessBean>() {
@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版本校验

View File

@ -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<BaseSuccessBean> getHistoryCount(@Header("token") String token);
/**
* 会议签到
*/
@Headers({"base_url_name:oa", "Content-Type: application/json", "Accept: application/json"})
@PUT("app/meetinguser/update-sign/{meetingId}")
Observable<BaseSuccessBean> doSignMeeting(@Path("meetingId") String id, @Header("token") String token);
}

View File

@ -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<MeetingAttachList
@Override
public void bindHolder(BasePersonShowHolder h, int i) {
MeetingAttachListBean b = mData.get(i);
if (!TextUtils.isEmpty(b.getUserId())) {
LogUtils.e(b.getUserId());
if (!TextUtils.isEmpty(b.getUserId()) ) {
h.mTvName.setVisibility(View.VISIBLE);
if (mType == 2) {
//单纯显示
@ -63,6 +65,7 @@ public class BasePersonShowAdapter extends BaseRecyclerAdapter<MeetingAttachList
h.mIvDel.setOnClickListener(v -> 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)

View File

@ -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

View File

@ -259,6 +259,13 @@ public interface OAApi {
@GET("app/meeting/get-signqrcode/{meetingId}")
Observable<MeetingQrBean> 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<BaseSuccessBean> doSignMeeting(@Path("meetingId") String id, @Header("token") String token);
/*========日常工作========*/
/**

View File

@ -34,108 +34,136 @@
android:background="@color/white"
android:orientation="vertical">
<include layout="@layout/layout_base_search_cancel_gray" />
<LinearLayout
android:id="@+id/ll_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:gravity="center_vertical"
android:orientation="horizontal">
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:orientation="vertical">
<EditText
android:id="@+id/et_search"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:layout_weight="1"
android:background="@drawable/shp_rectangle_gray_f5"
android:drawableLeft="@drawable/ic_search_icon_gray"
android:drawablePadding="5dp"
android:hint="搜索"
android:padding="5dp"
android:textSize="12sp" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_gravity="center_horizontal"
android:background="@color/gray_bg" />
<TextView
android:id="@+id/tv_search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="搜索"
android:textColor="@color/text_blue" />
android:layout_marginTop="5dp"
android:text="我的收件箱" />
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/ll_content"
<RelativeLayout
android:id="@+id/rl_inbox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="收件箱" />
</LinearLayout>
</LinearLayout>
<com.scwang.smart.refresh.layout.SmartRefreshLayout
android:id="@+id/srl_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:layout_marginRight="10dp"
tools:visibility="gone">
android:orientation="horizontal">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:drawablePadding="5dp"
android:drawableLeft="@drawable/ic_type_icon"
android:text="收件箱"
android:textColor="@color/black" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_doc"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<TextView
android:id="@+id/tv_inbox_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
tools:text="22" />
<LinearLayout
android:id="@+id/ll_hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center"
android:orientation="vertical">
</RelativeLayout>
<ProgressBar
android:id="@+id/pb_loading"
android:layout_width="50dp"
android:layout_height="50dp"
android:indeterminateBehavior="repeat"
android:indeterminateDrawable="@drawable/anim_loading" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_gravity="center_horizontal"
android:background="@color/gray_bg" />
<ImageView
android:id="@+id/iv_empty_data"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_centerInParent="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="文件夹" />
<TextView
android:id="@+id/tv_error_hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:clickable="true"
android:textColor="@color/black"
tools:text="加载数据失败" />
</LinearLayout>
</RelativeLayout>
</com.scwang.smart.refresh.layout.SmartRefreshLayout>
</RelativeLayout>
<TextView
android:id="@+id/tv_sent_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="5dp"
android:drawablePadding="5dp"
android:clickable="true"
android:focusable="true"
android:drawableLeft="@drawable/ic_type_icon"
android:text="以发送"
android:textColor="@color/black" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_gravity="center_horizontal"
android:background="@color/gray_bg" />
<TextView
android:id="@+id/tv_draft_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:clickable="true"
android:focusable="true"
android:drawableLeft="@drawable/ic_type_icon"
android:drawablePadding="5dp"
android:text="草稿箱"
android:textColor="@color/black" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:background="@color/gray_bg" />
<TextView
android:id="@+id/tv_recycle_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:clickable="true"
android:drawablePadding="5dp"
android:focusable="true"
android:drawableLeft="@drawable/ic_type_icon"
android:text="回收站"
android:textColor="@color/black" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_gravity="center_horizontal"
android:background="@color/gray_bg" />
</LinearLayout>
</LinearLayout>
</LinearLayout>