diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 75c207b..8c6d807 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -45,7 +45,7 @@ android:theme="@style/Theme.AppCompat.NoActionBar" /> + android:theme="@style/ThemeSplash" /> diff --git a/app/src/main/java/com/hjx/parent/AccountActivity.java b/app/src/main/java/com/hjx/parent/AccountActivity.java index 99ea915..2f59daa 100644 --- a/app/src/main/java/com/hjx/parent/AccountActivity.java +++ b/app/src/main/java/com/hjx/parent/AccountActivity.java @@ -24,6 +24,9 @@ import com.bumptech.glide.Glide; import com.bumptech.glide.load.resource.bitmap.RoundedCorners; import com.bumptech.glide.request.RequestOptions; import com.google.android.material.bottomsheet.BottomSheetDialog; +import com.hjq.permissions.OnPermissionCallback; +import com.hjq.permissions.Permission; +import com.hjq.permissions.XXPermissions; import com.prws.common.base.BaseActivity; import com.prws.common.base.BasePresenter; import com.prws.common.bean.ResponseResult; @@ -38,6 +41,7 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.HashMap; +import java.util.List; import java.util.Map; import butterknife.BindView; @@ -78,7 +82,7 @@ public class AccountActivity extends BaseActivity { tv_6 = findViewById(R.id.tv_6); String phone = (String) SharedPreferencesUtil.getData("phone", ""); String photo = (String) SharedPreferencesUtil.getData("photo", ""); - if(!TextUtils.isEmpty(photo)){ + if (!TextUtils.isEmpty(photo)) { RoundedCorners roundedCorners = new RoundedCorners(ScreenUtils.dpToPx(AccountActivity.this, 45)); RequestOptions options = RequestOptions.bitmapTransform(roundedCorners); Glide.with(AccountActivity.this).load(photo).apply(options).into(iv_3); @@ -290,7 +294,29 @@ public class AccountActivity extends BaseActivity { @Override public void onClick(View view) { dialog.dismiss(); - getPicFromCamera(); + if (!XXPermissions.isGranted(AccountActivity.this, Permission.CAMERA)) { + XXPermissions.with(AccountActivity.this) + // 申请多个权限 + .permission(Permission.CAMERA) + .request(new OnPermissionCallback() { + @Override + public void onGranted(List permissions, boolean all) { + if (all) { + //开启扫码界面 + getPicFromCamera(); + } else { + Toast.makeText(AccountActivity.this, "需要相机权限", Toast.LENGTH_SHORT).show(); + } + } + + @Override + public void onDenied(List permissions, boolean never) { + XXPermissions.startPermissionActivity(AccountActivity.this, permissions); + } + }); + } else { + getPicFromCamera(); + } } }); bottomView.findViewById(R.id.choose_photo).setOnClickListener(new View.OnClickListener() { diff --git a/app/src/main/java/com/hjx/parent/AddStudentActivity.java b/app/src/main/java/com/hjx/parent/AddStudentActivity.java index 74f4231..0a5aa4f 100644 --- a/app/src/main/java/com/hjx/parent/AddStudentActivity.java +++ b/app/src/main/java/com/hjx/parent/AddStudentActivity.java @@ -22,6 +22,9 @@ import com.bumptech.glide.Glide; import com.bumptech.glide.load.resource.bitmap.RoundedCorners; import com.bumptech.glide.request.RequestOptions; import com.google.android.material.bottomsheet.BottomSheetDialog; +import com.hjq.permissions.OnPermissionCallback; +import com.hjq.permissions.Permission; +import com.hjq.permissions.XXPermissions; import com.prws.common.base.BaseActivity; import com.prws.common.base.BasePresenter; import com.prws.common.bean.ResponseResult; @@ -36,6 +39,7 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.HashMap; +import java.util.List; import java.util.Map; import butterknife.BindView; @@ -236,7 +240,29 @@ public class AddStudentActivity extends BaseActivity { @Override public void onClick(View view) { dialog.dismiss(); - getPicFromCamera(); + if (!XXPermissions.isGranted(AddStudentActivity.this, Permission.CAMERA)) { + XXPermissions.with(AddStudentActivity.this) + // 申请多个权限 + .permission(Permission.CAMERA) + .request(new OnPermissionCallback() { + @Override + public void onGranted(List permissions, boolean all) { + if (all) { + //开启扫码界面 + getPicFromCamera(); + } else { + Toast.makeText(AddStudentActivity.this, "需要相机权限", Toast.LENGTH_SHORT).show(); + } + } + + @Override + public void onDenied(List permissions, boolean never) { + XXPermissions.startPermissionActivity(AddStudentActivity.this, permissions); + } + }); + } else { + getPicFromCamera(); + } } }); bottomView.findViewById(R.id.choose_photo).setOnClickListener(new View.OnClickListener() { @@ -315,9 +341,6 @@ public class AddStudentActivity extends BaseActivity { } private void uploadAvatar(File file) { - RoundedCorners roundedCorners = new RoundedCorners(ScreenUtils.dpToPx(this, 45)); - RequestOptions options = RequestOptions.bitmapTransform(roundedCorners); - Glide.with(this).load(file).apply(options).into(iv_avatar); NetWorks.uploadAvatar(file, new Observer>>() { @Override public void onSubscribe(Disposable d) { @@ -328,6 +351,9 @@ public class AddStudentActivity extends BaseActivity { public void onNext(ResponseResult> responseBody) { if (responseBody.getData() != null && responseBody.getCode() == 200) { path = responseBody.getData().get("imageUrl"); + RoundedCorners roundedCorners = new RoundedCorners(ScreenUtils.dpToPx(AddStudentActivity.this, 45)); + RequestOptions options = RequestOptions.bitmapTransform(roundedCorners); + Glide.with(AddStudentActivity.this).load(path).apply(options).into(iv_avatar); } } diff --git a/app/src/main/java/com/hjx/parent/ChooseActivity.java b/app/src/main/java/com/hjx/parent/ChooseActivity.java index bcdbced..646107b 100644 --- a/app/src/main/java/com/hjx/parent/ChooseActivity.java +++ b/app/src/main/java/com/hjx/parent/ChooseActivity.java @@ -188,10 +188,12 @@ public class ChooseActivity extends BaseActivity { public void confirm(View view) { if (alist.size() > 0 && alist.size() - 1 >= select && alist.get(select) != null) { StudentBean studentBean = alist.get(select); - Intent intent = new Intent(ChooseActivity.this, MainActivity.class); - SharedPreferencesUtil.putData("student", new Gson().toJson(studentBean)); - startActivity(intent); - finish(); + if (studentBean.getStuId() != null) { + Intent intent = new Intent(ChooseActivity.this, MainActivity.class); + SharedPreferencesUtil.putData("student", new Gson().toJson(studentBean)); + startActivity(intent); + finish(); + } } } } diff --git a/app/src/main/java/com/hjx/parent/EditStudentActivity.java b/app/src/main/java/com/hjx/parent/EditStudentActivity.java index b44f5ee..130e570 100644 --- a/app/src/main/java/com/hjx/parent/EditStudentActivity.java +++ b/app/src/main/java/com/hjx/parent/EditStudentActivity.java @@ -24,6 +24,9 @@ import com.bumptech.glide.load.resource.bitmap.RoundedCorners; import com.bumptech.glide.request.RequestOptions; import com.google.android.material.bottomsheet.BottomSheetDialog; import com.google.gson.Gson; +import com.hjq.permissions.OnPermissionCallback; +import com.hjq.permissions.Permission; +import com.hjq.permissions.XXPermissions; import com.hjx.parent.bean.StudentBean; import com.prws.common.base.BaseActivity; import com.prws.common.base.BasePresenter; @@ -39,6 +42,7 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.HashMap; +import java.util.List; import java.util.Map; import butterknife.BindView; @@ -363,7 +367,30 @@ public class EditStudentActivity extends BaseActivity { @Override public void onClick(View view) { dialog.dismiss(); - getPicFromCamera(); + if (!XXPermissions.isGranted(EditStudentActivity.this, Permission.CAMERA)) { + XXPermissions.with(EditStudentActivity.this) + // 申请多个权限 + .permission(Permission.CAMERA) + .request(new OnPermissionCallback() { + @Override + public void onGranted(List permissions, boolean all) { + if (all) { + //开启扫码界面 + getPicFromCamera(); + } else { + Toast.makeText(EditStudentActivity.this, "需要相机权限", Toast.LENGTH_SHORT).show(); + } + } + + @Override + public void onDenied(List permissions, boolean never) { + XXPermissions.startPermissionActivity(EditStudentActivity.this, permissions); + } + }); + } else { + getPicFromCamera(); + } + } }); bottomView.findViewById(R.id.choose_photo).setOnClickListener(new View.OnClickListener() { diff --git a/app/src/main/java/com/hjx/parent/NianActivity.java b/app/src/main/java/com/hjx/parent/NianActivity.java index 7ab376d..217b29c 100644 --- a/app/src/main/java/com/hjx/parent/NianActivity.java +++ b/app/src/main/java/com/hjx/parent/NianActivity.java @@ -45,6 +45,7 @@ public class NianActivity extends BaseActivity { @BindView(R.id.tv_xq) TextView tv_xq; private int gradeId; + List list; @Override protected void initView() { @@ -55,6 +56,7 @@ public class NianActivity extends BaseActivity { SharedPreferencesUtil.putData("grade", gradeId); finish(); }); + getGradeAndSubject(); } @OnClick(R.id.view_3) @@ -73,8 +75,34 @@ public class NianActivity extends BaseActivity { builder.show(); } + @OnClick(R.id.view_2) - public void getGradeAndSubject(View view) { + public void showGradeDialog(View view) { + if (list!=null&&list.size() > 0) { + + } else { + getGradeAndSubject(); + } + List stringList = new ArrayList<>(); + for (GradeAndSubject gradeAndSubject : list) { + stringList.add(gradeAndSubject.getGrade().getGrade()); + } + String[] strings = stringList.toArray(new String[stringList.size()]); + AlertDialog.Builder builder = new AlertDialog.Builder(NianActivity.this, android.R.style.Theme_DeviceDefault_Light_Dialog_Alert); + builder.setTitle("请选择年级"); + builder.setSingleChoiceItems(strings, 0, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + tv_nian.setText(list.get(i).getGrade().getGrade()); + gradeId = list.get(i).getGrade().getId(); + dialogInterface.dismiss(); + } + }); + builder.setCancelable(false); + builder.show(); + } + + public void getGradeAndSubject() { NetWorks.listGradeAndSubject(new Observer>>() { @Override public void onSubscribe(Disposable d) { @@ -84,24 +112,9 @@ public class NianActivity extends BaseActivity { @Override public void onNext(ResponseResult> listResponseResult) { if (listResponseResult != null && listResponseResult.getCode() == 200) { - List list = listResponseResult.getData(); - List stringList = new ArrayList<>(); - for (GradeAndSubject gradeAndSubject : list) { - stringList.add(gradeAndSubject.getGrade().getGrade()); - } - String[] strings = stringList.toArray(new String[stringList.size()]); - AlertDialog.Builder builder = new AlertDialog.Builder(NianActivity.this, android.R.style.Theme_DeviceDefault_Light_Dialog_Alert); - builder.setTitle("请选择年级"); - builder.setSingleChoiceItems(strings, 0, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - tv_nian.setText(list.get(i).getGrade().getGrade()); - gradeId = list.get(i).getGrade().getId(); - dialogInterface.dismiss(); - } - }); - builder.setCancelable(false); - builder.show(); + list = listResponseResult.getData(); + tv_nian.setText(list.get(0).getGrade().getGrade()); + gradeId = list.get(0).getGrade().getId(); } } diff --git a/app/src/main/java/com/hjx/parent/RegisterActivity.java b/app/src/main/java/com/hjx/parent/RegisterActivity.java index e6b68dc..68ffeff 100644 --- a/app/src/main/java/com/hjx/parent/RegisterActivity.java +++ b/app/src/main/java/com/hjx/parent/RegisterActivity.java @@ -22,6 +22,7 @@ import com.prws.common.base.BaseActivity; import com.prws.common.base.BasePresenter; import com.prws.common.bean.BaseEntity; import com.prws.common.net.NetWorks; +import com.prws.common.utils.Common; import com.prws.common.utils.GsonUtil; import com.prws.common.utils.LogUtil; import com.prws.common.utils.SharedPreferencesUtil; @@ -127,6 +128,13 @@ public class RegisterActivity extends BaseActivity { Toast.makeText(this, "手机号以及密码不能为空", Toast.LENGTH_SHORT).show(); return; } + if (pwd.length() < 6 || pwd.length() > 16 || pwd2.length() < 6 || pwd2.length() > 16) { + Toast.makeText(this, "密码必须为6-16位,数字或字母", Toast.LENGTH_SHORT).show(); + } + if (!Common.isValidPhoneNumber(phone)) { + Toast.makeText(this, "请输入有效手机号", Toast.LENGTH_SHORT).show(); + return; + } if (!PhoneNumberUtils.isGlobalPhoneNumber(et_phone.getText().toString())) { Toast.makeText(this, "请输入正确的手机号码", Toast.LENGTH_SHORT).show(); diff --git a/app/src/main/res/layout/activity_register.xml b/app/src/main/res/layout/activity_register.xml index 18dc3f8..b05a848 100644 --- a/app/src/main/res/layout/activity_register.xml +++ b/app/src/main/res/layout/activity_register.xml @@ -205,7 +205,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="15dp" - android:text="登陆" + android:text="登录" android:textColor="#FE5E09" android:textSize="17dp" app:layout_constraintLeft_toRightOf="@id/tv_1" diff --git a/libs/common/src/main/java/com/prws/common/utils/Common.java b/libs/common/src/main/java/com/prws/common/utils/Common.java index 4dbc95a..ba27d69 100644 --- a/libs/common/src/main/java/com/prws/common/utils/Common.java +++ b/libs/common/src/main/java/com/prws/common/utils/Common.java @@ -55,6 +55,14 @@ public class Common { // // } + public static boolean isValidPhoneNumber(String phoneNumber) { + if ((phoneNumber != null) && (!phoneNumber.isEmpty())) { + return Pattern.matches("^1[3-9]\\d{9}$", phoneNumber); + } + return false; + } + + public static byte[] hexStrToBinaryStr(String hexString) { if (hexString == null) { return null;