Pq 1 год назад
Родитель
Сommit
2075d1a6a3

+ 20 - 0
BaseLibrary/src/main/java/com/cooleshow/base/constanst/StyleConfig.java

@@ -4,10 +4,13 @@ import android.app.Activity;
 import android.content.Context;
 import android.content.res.TypedArray;
 import android.graphics.drawable.Drawable;
+import android.graphics.drawable.GradientDrawable;
+import android.widget.TextView;
 
 import com.cooleshow.base.R;
 import com.cooleshow.base.common.BaseApplication;
 import com.cooleshow.base.utils.LOG;
+import com.cooleshow.base.utils.SizeUtils;
 
 import static androidx.appcompat.widget.TintTypedArray.obtainStyledAttributes;
 
@@ -52,4 +55,21 @@ public class StyleConfig {
         tyar.recycle();
         return drawable;
     }
+
+    public static Drawable getCoverBtnStyle(Activity context, int drawableRes) {
+        Drawable drawable = context.getResources().getDrawable(drawableRes);
+        int mainColor = getMainColor(context);
+        drawable.setTint(mainColor);
+        return drawable;
+    }
+
+    public static Drawable getBorderNoCoverBtnStyle(Activity context, int drawableRes) {
+        Drawable drawable = context.getResources().getDrawable(drawableRes);
+        if (drawable instanceof GradientDrawable) {
+            GradientDrawable gradientDrawable = (GradientDrawable) drawable;
+            int mainColor = StyleConfig.getMainColor(context);
+            gradientDrawable.setStroke(SizeUtils.dp2px(1), mainColor);
+        }
+        return drawable;
+    }
 }

+ 27 - 0
BaseLibrary/src/main/java/com/cooleshow/base/utils/DateUtil.java

@@ -137,6 +137,24 @@ public class DateUtil {
         return dateFormat.format(date);
     }
 
+    public static String dateFormat(String dateStr, String pattern) {
+        if (TextUtils.isEmpty(dateStr)) {
+            return "";
+        }
+        try {
+            DateFormat sdf = new SimpleDateFormat(FORMAT);
+            Date date = null;
+
+            date = sdf.parse(dateStr);
+
+            SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
+            return dateFormat.format(date);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return "";
+    }
+
     /**
      * 字符串转换到时间格式
      * <p>
@@ -154,6 +172,15 @@ public class DateUtil {
         return dateFormat.format(date);
     }
 
+    public static String dateFormat(Date date,String pattern) {
+        if (date == null) {
+            return "";
+        }
+
+        SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
+        return dateFormat.format(date);
+    }
+
     public static String dateFormatMM_dd(String dateStr) {
         if (TextUtils.isEmpty(dateStr)) {
             return "";

+ 6 - 0
BaseLibrary/src/main/java/com/cooleshow/base/utils/GlideUtils.kt

@@ -3,6 +3,7 @@ package com.cooleshow.base.utils
 //import com.bumptech.glide.load.resource.drawable.GlideDrawable
 //import com.bumptech.glide.request.animation.GlideAnimation
 import android.content.Context
+import android.graphics.drawable.Drawable
 import android.widget.ImageView
 import com.bumptech.glide.Glide
 import com.bumptech.glide.load.MultiTransformation
@@ -28,6 +29,11 @@ object GlideUtils {
             .into(imageView)
     }
 
+    fun loadImage(context: Context, url: String?, imageView: ImageView, defaultDrawable: Drawable) {
+        Glide.with(context).load(url).placeholder(defaultDrawable).error(defaultDrawable)
+            .into(imageView)
+    }
+
     fun loadImageFitCenter(context: Context, url: String?, imageView: ImageView) {
         Glide.with(context).load(url).fitCenter().into(imageView)
     }

+ 39 - 0
BaseLibrary/src/main/java/com/cooleshow/base/widgets/dialog/CommonDialog.java

@@ -2,8 +2,10 @@ package com.cooleshow.base.widgets.dialog;
 
 import android.app.Dialog;
 import android.content.Context;
+import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.view.View;
+import android.widget.ImageView;
 import android.widget.TextView;
 
 import com.cooleshow.base.R;
@@ -19,6 +21,7 @@ public class CommonDialog extends Dialog {
     private TextView mTvContent;
     private TextView mBtncancel;
     private TextView mBtnCommit;
+    private ImageView mIvIcon;
 
     public CommonDialog(@NonNull Context context) {
         super(context, R.style.DialogStyle);
@@ -32,6 +35,7 @@ public class CommonDialog extends Dialog {
         mTvContent = findViewById(R.id.tv_content);
         mBtncancel = findViewById(R.id.btn_cancel);
         mBtnCommit = findViewById(R.id.btn_commit);
+        mIvIcon = findViewById(R.id.iv_icon);
     }
 
     public void setTitle(String title) {
@@ -57,4 +61,39 @@ public class CommonDialog extends Dialog {
             mBtncancel.setOnClickListener(onCancelClickListener);
         }
     }
+
+    public void setCancelTextBg(String text,int textColor, Drawable drawable) {
+        if (mBtncancel != null) {
+            mBtncancel.setText(text);
+            mBtncancel.setBackground(drawable);
+            mBtncancel.setTextColor(textColor);
+        }
+    }
+
+    public TextView getConfirmText() {
+        if (mBtnCommit != null) {
+            return mBtnCommit;
+        }
+        return null;
+    }
+
+    public ImageView getIvIcon() {
+        return mIvIcon;
+    }
+
+    public TextView getCancelText() {
+        if (mBtncancel != null) {
+            return mBtncancel;
+        }
+        return null;
+    }
+
+    public void setConfirmTextBg(String text, int textColor,Drawable drawable) {
+        if (mBtnCommit != null) {
+            mBtnCommit.setText(text);
+            mBtnCommit.setBackground(drawable);
+            mBtnCommit.setTextColor(textColor);
+        }
+    }
+
 }

+ 27 - 23
institution/src/main/java/com/cooleshow/institution/stu/ui/setting/PersonalSettingActivity.java

@@ -2,6 +2,7 @@ package com.cooleshow.institution.stu.ui.setting;
 
 import android.Manifest;
 import android.content.Intent;
+import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
@@ -15,10 +16,12 @@ import com.alibaba.android.arouter.launcher.ARouter;
 import com.bigkoo.pickerview.builder.TimePickerBuilder;
 import com.bigkoo.pickerview.listener.CustomListener;
 import com.bigkoo.pickerview.view.TimePickerView;
+import com.bumptech.glide.Glide;
 import com.cooleshow.base.bean.TeachableInstrumentBean;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.base.utils.ActivityUtils;
+import com.cooleshow.base.utils.DateUtil;
 import com.cooleshow.base.utils.FileUtils;
 import com.cooleshow.base.utils.GlideUtils;
 import com.cooleshow.base.utils.MyFileUtils;
@@ -74,6 +77,7 @@ public class PersonalSettingActivity extends BaseMVPActivity<JgActivityPersonalS
     public final int REQUEST_CODE_LOCAL = 0x19;
 
     private String imagePath = null;//当前图片的路径
+    private Date cBirthdate;
 
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
@@ -153,7 +157,7 @@ public class PersonalSettingActivity extends BaseMVPActivity<JgActivityPersonalS
         //            endDate.set(2050, 11, 31);
         pvTime = new TimePickerBuilder(this, (date, v) -> {//选中事件回调
 
-            String birthdate = getTime(date);
+            String birthdate = DateUtil.date2Str(date);
             JSONObject jsonObject = new JSONObject();
             try {
                 jsonObject.put("birthdate", birthdate);
@@ -195,16 +199,15 @@ public class PersonalSettingActivity extends BaseMVPActivity<JgActivityPersonalS
                 .isDialog(false)//是否显示为对话框样式
                 .setLabel("年", "月", "日", "", "", "")
                 .build();
+        if(cBirthdate!=null){
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(cBirthdate);
+            pvTime.setDate(calendar);
+        }
         pvTime.show();
 
     }
 
-    private String getTime(Date date) {//可根据需要自行截取数据显示
-        //        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-        return format.format(date);
-    }
-
     private String getCurrentGender() {
         String gender = "";
         if (mySetDetailBean != null) {
@@ -404,10 +407,19 @@ public class PersonalSettingActivity extends BaseMVPActivity<JgActivityPersonalS
         return new PersonalSettingPresenter();
     }
 
+    private void loadAvatar(String url) {
+        Drawable drawable = viewBinding.imHeader.getDrawable();
+        if (drawable != null) {
+            GlideUtils.INSTANCE.loadImage(this, url, viewBinding.imHeader, drawable);
+        } else {
+            GlideUtils.INSTANCE.loadImage(this, url, viewBinding.imHeader, com.cooleshow.base.R.drawable.icon_default_head);
+        }
+    }
+
     @Override
     public void queryUserInfoSuccess(StudentUserInfo data) {
         mySetDetailBean = data;
-        GlideUtils.INSTANCE.loadImage(this, data.heardUrl, viewBinding.imHeader, com.cooleshow.base.R.drawable.icon_default_head);
+        loadAvatar(data.heardUrl);
         viewBinding.tvNickname.setText(data.username);
         if (!TextUtils.isEmpty(data.gender) && data.gender.equals("0")) {
             //女
@@ -418,17 +430,13 @@ public class PersonalSettingActivity extends BaseMVPActivity<JgActivityPersonalS
         }
         viewBinding.tvPhone.setText(UserHelper.getUserPhone());
         if (!TextUtils.isEmpty(data.birthdate)) {
-            if (data.birthdate.contains(" ")) {
-                String[] s = data.birthdate.split(" ");
-                viewBinding.tvBirthday.setText(s[0]);
-            } else {
-                viewBinding.tvBirthday.setText(data.birthdate);
-            }
+            cBirthdate = DateUtil.str2Date(data.birthdate);
+            String s1 = DateUtil.dateFormat(cBirthdate, "yyyy-MM-dd");
+            viewBinding.tvBirthday.setText(s1);
         } else {
             viewBinding.tvBirthday.setText("");
         }
 
-
         if (!TextUtils.isEmpty(data.subjectName)) {
             viewBinding.tvScore.setText(data.subjectName);
         } else {
@@ -457,18 +465,14 @@ public class PersonalSettingActivity extends BaseMVPActivity<JgActivityPersonalS
         }
         //15510601008
         if (!TextUtils.isEmpty(setDetailBean.birthdate)) {
-            if (setDetailBean.birthdate.contains(" ")) {
-                String[] s = setDetailBean.birthdate.split(" ");
-                viewBinding.tvBirthday.setText(s[0]);
-            } else {
-                viewBinding.tvBirthday.setText(setDetailBean.birthdate);
-            }
-            mySetDetailBean.birthdate = setDetailBean.birthdate;
+            cBirthdate = DateUtil.str2Date(setDetailBean.birthdate);
+            String s1 = DateUtil.dateFormat(cBirthdate, "yyyy-MM-dd");
+            viewBinding.tvBirthday.setText(s1);
         } else {
             viewBinding.tvBirthday.setText("");
         }
+        loadAvatar(setDetailBean.avatar);
         ToastUtil.getInstance().showShort("修改成功");
-        GlideUtils.INSTANCE.loadImage(this, setDetailBean.avatar, viewBinding.imHeader, com.cooleshow.base.R.drawable.icon_default_head);
     }
 
     @Override

+ 12 - 3
student/src/main/java/com/cooleshow/student/ui/mine/PersonalSettingActivity.java

@@ -2,6 +2,7 @@ package com.cooleshow.student.ui.mine;
 
 import android.Manifest;
 import android.content.Intent;
+import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
@@ -390,10 +391,19 @@ public class PersonalSettingActivity extends BaseMVPActivity<ActivityPersonalSet
         return new PersonalSettingPresenter();
     }
 
+    private void loadAvatar(String url) {
+        Drawable drawable = viewBinding.imHeader.getDrawable();
+        if (drawable != null) {
+            GlideUtils.INSTANCE.loadImage(this, url, viewBinding.imHeader, drawable);
+        } else {
+            GlideUtils.INSTANCE.loadImage(this, url, viewBinding.imHeader, com.cooleshow.base.R.drawable.icon_default_head);
+        }
+    }
+
     @Override
     public void queryUserInfoSuccess(StudentUserInfo data) {
         mySetDetailBean = data;
-        GlideUtils.INSTANCE.loadImage(this, data.heardUrl, viewBinding.imHeader, R.drawable.icon_student_default_head);
+        loadAvatar( data.heardUrl);
         viewBinding.tvNickname.setText(data.username);
         if (!TextUtils.isEmpty(data.gender) && data.gender.equals("0")) {
             //女
@@ -453,9 +463,8 @@ public class PersonalSettingActivity extends BaseMVPActivity<ActivityPersonalSet
         } else {
             viewBinding.tvBirthday.setText("");
         }
+        loadAvatar( setDetailBean.avatar);
         ToastUtil.getInstance().showShort("修改成功");
-        GlideUtils.INSTANCE.loadImage(this, setDetailBean.avatar, viewBinding.imHeader, R.drawable.icon_student_default_head);
-        RongIM.getInstance().refreshCurrentUserInfoCacheIfNeed(setDetailBean.username, setDetailBean.avatar);
 
     }
 

+ 2 - 1
student/src/main/res/layout/activity_modify_nickname.xml

@@ -17,7 +17,7 @@
         android:layout_marginTop="15dp"
         android:background="@drawable/bg_white_10dp">
 
-        <EditText
+        <com.cooleshow.base.widgets.ClearEditText
             android:id="@+id/et_nickname"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
@@ -34,6 +34,7 @@
             android:textSize="@dimen/sp_16" />
 
         <ImageView
+            android:visibility="gone"
             android:id="@+id/im_close"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"

+ 13 - 3
teacher/src/main/java/com/cooleshow/teacher/ui/mine/PersonalSettingActivity.java

@@ -2,6 +2,7 @@ package com.cooleshow.teacher.ui.mine;
 
 import android.Manifest;
 import android.content.Intent;
+import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
@@ -288,10 +289,20 @@ public class PersonalSettingActivity extends BaseMVPActivity<ActivityPersonalSet
         return new PersonalSettingPresenter();
     }
 
+    private void loadAvatar(String url) {
+        Drawable drawable = viewBinding.imHeader.getDrawable();
+        if (drawable != null) {
+            GlideUtils.INSTANCE.loadImage(this, url, viewBinding.imHeader, drawable);
+        } else {
+            GlideUtils.INSTANCE.loadImage(this, url, viewBinding.imHeader, com.cooleshow.base.R.drawable.icon_default_head);
+        }
+    }
+
+
     @Override
     public void getSetDetailSuccess(TeacherUserInfo setDetailBean) {
         mySetDetailBean = setDetailBean;
-        GlideUtils.INSTANCE.loadImage(this, setDetailBean.heardUrl, viewBinding.imHeader, R.drawable.icon_teacher_default_head);
+        loadAvatar(setDetailBean.heardUrl);
         viewBinding.tvNickname.setText(setDetailBean.username);
         if (!TextUtils.isEmpty(setDetailBean.gender) && setDetailBean.gender.equals("0")) {
             //女
@@ -319,9 +330,8 @@ public class PersonalSettingActivity extends BaseMVPActivity<ActivityPersonalSet
             //男
             viewBinding.tvSex.setText("男");
         }
+        loadAvatar(setDetailBean.avatar);
         ToastUtil.getInstance().showShort("修改成功");
-        GlideUtils.INSTANCE.loadImage(this, setDetailBean.avatar, viewBinding.imHeader, R.drawable.icon_teacher_default_head);
-        RongIM.getInstance().refreshCurrentUserInfoCacheIfNeed(setDetailBean.username, setDetailBean.avatar);
     }
 
     @Override

+ 4 - 1
teacher/src/main/res/layout/activity_modify_nickname.xml

@@ -13,10 +13,12 @@
     <androidx.constraintlayout.widget.ConstraintLayout
         android:layout_width="match_parent"
         android:layout_height="@dimen/dp_56"
+        android:layout_marginStart="13dp"
+        android:layout_marginEnd="13dp"
         android:layout_marginTop="15dp"
         android:background="@drawable/bg_white_10dp">
 
-        <EditText
+        <com.cooleshow.base.widgets.ClearEditText
             android:id="@+id/et_nickname"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
@@ -31,6 +33,7 @@
             android:textSize="@dimen/sp_16" />
 
         <ImageView
+            android:visibility="gone"
             android:id="@+id/im_close"
             android:layout_width="@dimen/dp_41"
             android:layout_height="@dimen/dp_41"

+ 10 - 1
usercenter/src/main/java/com/cooleshow/usercenter/ui/activity/setting/SignOutAccountActivity.java

@@ -1,5 +1,7 @@
 package com.cooleshow.usercenter.ui.activity.setting;
 
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.GradientDrawable;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Looper;
@@ -14,6 +16,7 @@ import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.base.utils.KeyboardUtils;
 import com.cooleshow.base.utils.PhoneUtils;
+import com.cooleshow.base.utils.SizeUtils;
 import com.cooleshow.base.utils.ToastUtil;
 import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
 import com.cooleshow.base.widgets.dialog.CommonConfirmDialog;
@@ -123,23 +126,29 @@ public class SignOutAccountActivity extends BaseMVPActivity<AcSignOutAccountLayo
         }
         CommonDialog commonConfirmDialog = new CommonDialog(this);
         commonConfirmDialog.show();
+        int confirmTextColor = getResources().getColor(com.cooleshow.base.R.color.white);
+        commonConfirmDialog.setCancelTextBg("确定", confirmTextColor,StyleConfig.getCoverBtnStyle(this, com.cooleshow.base.R.drawable.sure_btn_bg));
+        commonConfirmDialog.setConfirmTextBg("取消", StyleConfig.getMainColor(this),StyleConfig.getBorderNoCoverBtnStyle(this, com.cooleshow.base.R.drawable.cancel_btn_bg));
+        commonConfirmDialog.getIvIcon().setBackground(StyleConfig.getCoverBtnStyle(this, com.cooleshow.base.R.drawable.btn_green_stu_line_shape));
+
         commonConfirmDialog.setTitle("提示");
         commonConfirmDialog.setContent("注销账号后您所有的留存信息将被清空且无法恢复,请谨慎操作");
         commonConfirmDialog.setOnConfirmClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                presenter.signOutAccount(authCode);
                 commonConfirmDialog.dismiss();
             }
         });
         commonConfirmDialog.setOnCancelClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
+                presenter.signOutAccount(authCode);
                 commonConfirmDialog.dismiss();
             }
         });
     }
 
+
     private void showImgVerifyCodeDialog() {
         if (mImgVerifyCodeDialog == null) {
             mImgVerifyCodeDialog = new ImgVerifyCodeDialog(SignOutAccountActivity.this);