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 5710ba7..480c77b 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
@@ -3,6 +3,7 @@ package com.tenlionsoft.baselib.core.widget.views;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
+import android.graphics.Bitmap;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.util.DisplayMetrics;
@@ -51,7 +52,14 @@ public class QrDialog extends Dialog {
Glide.with(context)
.load(BaseUrlApi.BASE_IMG_URL + mQr)
.into(mIvQr);
+ View content = view.findViewById(R.id.ll_content);
view.findViewById(R.id.tv_confirm).setOnClickListener(v -> this.dismiss());
+ view.findViewById(R.id.tv_save).setOnClickListener(v -> {
+ if (mChangeListener != null) {
+ Bitmap viewBitmap = getViewBitmap(content);
+ mChangeListener.doChange(viewBitmap);
+ }
+ });
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
Window window = this.getWindow();
window.setGravity(Gravity.CENTER);
@@ -63,14 +71,6 @@ public class QrDialog extends Dialog {
window.setBackgroundDrawable(new ColorDrawable());
}
- private void doConfirm() {
- if (checkParams()) {
- if (mChangeListener != null) {
- String content = mEtContent.getText().toString().trim();
- mChangeListener.doChange(content, level);
- }
- }
- }
public void HideSoftKeyBoardDialog(Activity activity) {
try {
@@ -85,7 +85,29 @@ public class QrDialog extends Dialog {
}
public interface OnChangeListener {
- void doChange(String org, float level);
+ void doChange(Bitmap b);
+ }
+
+ private Bitmap getViewBitmap(View v) {
+ v.clearFocus();
+ v.setPressed(false);
+ boolean b = v.willNotCacheDrawing();
+ v.setWillNotCacheDrawing(false);
+ int color = v.getDrawingCacheBackgroundColor();
+ v.setDrawingCacheBackgroundColor(0);
+ if (color != 0) {
+ v.destroyDrawingCache();
+ }
+ v.buildDrawingCache();
+ Bitmap drawingCache = v.getDrawingCache();
+ if (drawingCache == null) {
+ return null;
+ }
+ Bitmap bitmap = Bitmap.createBitmap(drawingCache);
+ v.destroyDrawingCache();
+ v.setWillNotCacheDrawing(b);
+ v.setDrawingCacheBackgroundColor(color);
+ return bitmap;
}
/**
diff --git a/baselib/src/main/res/layout/dialog_meeting_qr.xml b/baselib/src/main/res/layout/dialog_meeting_qr.xml
index b879593..b0d3bcd 100644
--- a/baselib/src/main/res/layout/dialog_meeting_qr.xml
+++ b/baselib/src/main/res/layout/dialog_meeting_qr.xml
@@ -15,12 +15,30 @@
android:textSize="18sp" />
-
+
+
+
+
+
+
+
+
mJoinPerson;
private BasePersonShowAdapter mPersonShowAdapter;
private String mQr;
+ private String mQrName;
@Override
protected int setLayoutId() {
@@ -185,10 +196,59 @@ public class MeetingDetailActivity extends BaseActivity {
QrDialog dialog = new QrDialog.DialogBuilder(mActivity)
.setQr(mQr)
.build();
+ dialog.addOnChangeListener(b -> {
+ if (null != b) {
+ dialog.dismiss();
+ doSaveBitMapToMedia(b);
+ } else {
+ ToastUtils.show("保存失败");
+ }
+ });
dialog.show();
}
}
+ /**
+ * 保存图片到相册
+ *
+ * @param b
+ */
+ private void doSaveBitMapToMedia(Bitmap b) {
+ ProgressDialog dialog = UIUtil.initDialog(mActivity, "保存中...");
+ dialog.show();
+ String imageName = mQrName + "code.png";
+ File f = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
+ File file = new File(f.getPath() + "/" + imageName);
+ try {
+ FileOutputStream fileOutputStream = new FileOutputStream(file);
+ b.compress(Bitmap.CompressFormat.PNG, 100, fileOutputStream);
+ fileOutputStream.flush();
+ fileOutputStream.close();
+ Log.e("写入成功!位置目录", f.getPath() + "/" + imageName);
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ if (dialog.isShowing()) dialog.dismiss();
+ ToastUtils.show("保存失败");
+ } catch (IOException e) {
+ e.printStackTrace();
+ if (dialog.isShowing()) dialog.dismiss();
+ ToastUtils.show("保存失败");
+ }
+ try {
+ MediaStore.Images.Media.insertImage(getContentResolver(),
+ file.getAbsolutePath(), imageName, null);
+ if (dialog.isShowing()) dialog.dismiss();
+ ToastUtils.show("保存成功");
+ } catch (FileNotFoundException e) {
+ if (dialog.isShowing()) dialog.dismiss();
+ ToastUtils.show("保存失败");
+ e.printStackTrace();
+ }
+ // 最后通知图库更新
+ sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,
+ Uri.fromFile(new File(file.getPath()))));
+ }
+
private void doGetQr() {
ProgressDialog dialog = UIUtil.initDialog(mActivity, "获取中...");
dialog.show();
@@ -209,6 +269,7 @@ public class MeetingDetailActivity extends BaseActivity {
ToastUtils.show("未获取到签到码,请稍后重试");
} else {
mQr = meetingQrBean.getQrId();
+ mQrName = meetingQrBean.getQrName();
onShowQr();
}
}
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 138ef2b..79de204 100644
--- a/oamodule/src/main/java/com/tenlionsoft/oamodule/fragments/EmailFragment.java
+++ b/oamodule/src/main/java/com/tenlionsoft/oamodule/fragments/EmailFragment.java
@@ -8,9 +8,14 @@ import android.widget.RelativeLayout;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.resource.bitmap.CircleCrop;
+import com.bumptech.glide.request.RequestOptions;
import com.tenlionsoft.baselib.constant.PathConfig;
+import com.tenlionsoft.baselib.core.retrofit_net.BaseUrlApi;
import com.tenlionsoft.baselib.core.widget.base.BaseFragment;
import com.tenlionsoft.baselib.utils.LogUtils;
+import com.tenlionsoft.baselib.utils.UserLgUtils;
import com.tenlionsoft.oamodule.R;
import com.tenlionsoft.oamodule.R2;
@@ -47,6 +52,8 @@ public class EmailFragment extends BaseFragment {
TextView mTvRecycleBox;
@BindView(R2.id.ll_content)
LinearLayout mLlContent;
+ @BindView(R2.id.iv_user_icon)
+ ImageView mIvUserIcon;
@Override
protected int getContentViewId() {
@@ -67,6 +74,12 @@ public class EmailFragment extends BaseFragment {
super.onResume();
//获取焦点
LogUtils.e("email获取了焦点");
+ 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);
}
@Override
diff --git a/oamodule/src/main/res/layout/fragment_oa_email.xml b/oamodule/src/main/res/layout/fragment_oa_email.xml
index 7e2fda8..4d28346 100644
--- a/oamodule/src/main/res/layout/fragment_oa_email.xml
+++ b/oamodule/src/main/res/layout/fragment_oa_email.xml
@@ -14,6 +14,7 @@
android:paddingRight="10dp">