From 8f79866a79a9fca7a458cab7406d755edbfe2004 Mon Sep 17 00:00:00 2001 From: shixianjie Date: Thu, 26 Sep 2024 10:57:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BD=95=E5=85=A5=E4=BD=9C=E4=B8=9Adialog?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 3 + .../main/java/com/hjx/parent/ImageActivity.java | 34 +++- .../com/hjx/parent/dialog/AddHomeworkDialog.java | 191 +++++++++++++++++++++ .../java/com/hjx/parent/dialog/BaseDialog.java | 72 ++++++++ .../com/hjx/parent/fragment/ErrorFragment.java | 92 +++++----- app/src/main/res/drawable/ic_filter_down_black.png | Bin 0 -> 427 bytes .../res/drawable/selector_for_input_spinner.xml | 17 ++ .../main/res/drawable/shape_for_input_spinner.xml | 10 ++ app/src/main/res/drawable/shape_radius_5.xml | 4 + app/src/main/res/drawable/shape_radius_top_10.xml | 5 + app/src/main/res/layout/dialog_add_homework.xml | 185 ++++++++++++++++++++ app/src/main/res/layout/item_spinner.xml | 10 ++ app/src/main/res/values/styles.xml | 7 + .../main/java/com/prws/common/bean/Student.java | 34 ++++ .../main/java/com/prws/common/net/NetWorks.java | 11 ++ 15 files changed, 627 insertions(+), 48 deletions(-) create mode 100644 app/src/main/java/com/hjx/parent/dialog/AddHomeworkDialog.java create mode 100644 app/src/main/java/com/hjx/parent/dialog/BaseDialog.java create mode 100644 app/src/main/res/drawable/ic_filter_down_black.png create mode 100644 app/src/main/res/drawable/selector_for_input_spinner.xml create mode 100644 app/src/main/res/drawable/shape_for_input_spinner.xml create mode 100644 app/src/main/res/drawable/shape_radius_5.xml create mode 100644 app/src/main/res/drawable/shape_radius_top_10.xml create mode 100644 app/src/main/res/layout/dialog_add_homework.xml create mode 100644 app/src/main/res/layout/item_spinner.xml create mode 100644 libs/common/src/main/java/com/prws/common/bean/Student.java diff --git a/app/build.gradle b/app/build.gradle index c6f414c..02ed09c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -82,4 +82,7 @@ dependencies { // rx implementation("com.trello.rxlifecycle2:rxlifecycle:2.2.2") implementation("com.trello.rxlifecycle2:rxlifecycle-android:2.2.2") + + implementation("com.github.PhilJay:MPAndroidChart:v3.1.0") + implementation("com.contrarywind:Android-PickerView:4.1.9") } \ No newline at end of file diff --git a/app/src/main/java/com/hjx/parent/ImageActivity.java b/app/src/main/java/com/hjx/parent/ImageActivity.java index 88714e8..091dc69 100644 --- a/app/src/main/java/com/hjx/parent/ImageActivity.java +++ b/app/src/main/java/com/hjx/parent/ImageActivity.java @@ -1,5 +1,6 @@ package com.hjx.parent; +import android.annotation.SuppressLint; import android.app.Dialog; import android.content.Intent; import android.graphics.Bitmap; @@ -23,8 +24,10 @@ import com.google.gson.Gson; import com.google.gson.JsonObject; import com.hjx.parent.adapter.ImageAdapter; import com.hjx.parent.databinding.ActivityImageBinding; +import com.hjx.parent.dialog.AddHomeworkDialog; import com.hjx.parent.dialog.ErrorInputDialog; import com.hjx.parent.dialog.TipDialog; +import com.hjx.parent.rx.BaseRxActivity; import com.prws.common.bean.CutPicBean; import com.prws.common.bean.ImageBean; import com.prws.common.bean.TopicBean; @@ -43,18 +46,24 @@ import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; -public class ImageActivity extends BaseActivity implements View.OnClickListener { +public class ImageActivity extends BaseRxActivity implements View.OnClickListener { private List images = new ArrayList<>(); private ImageAdapter imageAdapter; private List list = new ArrayList<>(); private String filePath; + private int type = 0; + private AddHomeworkDialog addHomeworkDialog; + @Override public void initView(Bundle savedInstanceState) { + type = getIntent().getIntExtra("type", 0); + binding.tvSave.setText(type == 0 ? "保存错题" : "录入题目"); + images = getIntent().getStringArrayListExtra("images"); for (String s : images) { - String filepath = context.getExternalFilesDir("images").getPath() + "/" + String.valueOf(System.currentTimeMillis()) + CommonUtil.getStr() + ".jpg"; + String filepath = context.getExternalFilesDir("images").getPath() + "/" + System.currentTimeMillis() + CommonUtil.getStr() + ".jpg"; ImageBean imageBean = new ImageBean(); Bitmap bitmap = BitmapUtils.getimage(s); CommonUtil.saveBitmapToUri(bitmap, filepath); @@ -250,6 +259,7 @@ public class ImageActivity extends BaseActivity implements return ActivityImageBinding.inflate(getLayoutInflater()); } + @SuppressLint("SetTextI18n") public void refreshNum() { int num = 0; for (ImageBean imageBean : list) { @@ -261,14 +271,15 @@ public class ImageActivity extends BaseActivity implements } } } + String btnText = type == 0 ? "保存错题" : "录入题目"; if (num > 0) { binding.tvSave.setEnabled(true); binding.tvSave.setBackgroundResource(R.drawable.bg_soild_blue_5); - binding.tvSave.setText("保存错题(" + num + ")"); + binding.tvSave.setText(btnText + "(" + num + ")"); } else { binding.tvSave.setEnabled(false); binding.tvSave.setBackgroundResource(R.drawable.bg_soild_blue_light_5); - binding.tvSave.setText("保存错题"); + binding.tvSave.setText(btnText); } } @@ -326,12 +337,23 @@ public class ImageActivity extends BaseActivity implements } } } - ErrorInputDialog dialog = new ErrorInputDialog(this, topicBeans); - dialog.show(); + save(topicBeans); break; } } + private void save(List topicBeans) { + if (type == 0) { + ErrorInputDialog dialog = new ErrorInputDialog(this, topicBeans); + dialog.show(); + } else { + if (addHomeworkDialog == null) { + addHomeworkDialog = new AddHomeworkDialog(this); + } + addHomeworkDialog.show(); + } + } + @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); diff --git a/app/src/main/java/com/hjx/parent/dialog/AddHomeworkDialog.java b/app/src/main/java/com/hjx/parent/dialog/AddHomeworkDialog.java new file mode 100644 index 0000000..1ac45ca --- /dev/null +++ b/app/src/main/java/com/hjx/parent/dialog/AddHomeworkDialog.java @@ -0,0 +1,191 @@ +package com.hjx.parent.dialog; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; + +import androidx.annotation.NonNull; + +import com.bigkoo.pickerview.builder.TimePickerBuilder; +import com.bigkoo.pickerview.listener.OnTimeSelectListener; +import com.bigkoo.pickerview.view.TimePickerView; +import com.google.gson.Gson; +import com.hjx.parent.R; +import com.hjx.parent.bean.StudentBean; +import com.hjx.parent.databinding.DialogAddHomeworkBinding; +import com.hjx.parent.rx.ILifecycleActivity; +import com.prws.common.bean.GradeAndSubject; +import com.prws.common.bean.ResponseResult; +import com.prws.common.bean.Student; +import com.prws.common.bean.Subject; +import com.prws.common.net.NetWorks; +import com.prws.common.utils.SharedPreferencesUtil; +import com.trello.rxlifecycle2.android.RxLifecycleAndroid; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Locale; + +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.schedulers.Schedulers; + +public class AddHomeworkDialog extends BaseDialog{ + private final ILifecycleActivity activity; + + String stuId; + + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日", Locale.CHINA); + List studentList; + List gradeAndSubjectList; + + Student student; + String grade; + String term; + String subject; + Date uploadTime = new Date(); + + public AddHomeworkDialog(ILifecycleActivity context) { + super((Context) context); + activity = context; + } + + @SuppressLint("SetTextI18n") + @Override + public void initView() { + binding.btnClose.setOnClickListener(v -> dismiss()); + stuId = getCurrentStuId(); + binding.spStudent.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + student = studentList.get(position); + if (gradeAndSubjectList == null) return; + int p = 0; + for (GradeAndSubject it: gradeAndSubjectList) { + if (it.getGrade().getGrade().equals(student.grade)) { + p = gradeAndSubjectList.indexOf(it); + break; + } + } + binding.spGrade.setSelection(p); + } + + @Override + public void onNothingSelected(AdapterView parent) { + } + }); + binding.spTerm.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + term = getContext().getResources().getStringArray(R.array.grade_array)[position]; + } + @Override + public void onNothingSelected(AdapterView parent) { + } + }); + binding.spGrade.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + grade = gradeAndSubjectList.get(position).getGrade().getGrade(); + refreshSubjects(position); + } + + @Override + public void onNothingSelected(AdapterView parent) { + } + }); + + binding.tvDate.setText(dateFormat.format(uploadTime)); + binding.tvDate.setOnClickListener(v -> { + new TimePickerBuilder(getContext(), (date, v1) -> { + uploadTime = date; + binding.tvDate.setText(dateFormat.format(uploadTime)); + binding.etName.setText(dateFormat.format(uploadTime) + subject + "作业"); + }).setType(new boolean[]{true, true, true, false, false, false}).isDialog(true).build().show(); + }); + + getGrade(); + } + + private String getCurrentStuId() { + String student = (String) SharedPreferencesUtil.getData("student", ""); + StudentBean studentBean = new Gson().fromJson(student, StudentBean.class); + return studentBean.getStuId(); + } + + @SuppressLint("CheckResult") + private void getStudents() { + NetWorks.listStudent() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .compose(RxLifecycleAndroid.bindActivity(activity.getRxLifecycle())) + .map(ResponseResult::getData) + .subscribe((data, th) -> { + if (th != null) th.printStackTrace(); + if (data != null && data.size() > 0) { + studentList = data; + int position = 0; + for (int i = 0; i < data.size(); i++) { + if (data.get(i).stuId.equals(stuId)) { + position = i; + break; + } + } + binding.spStudent.setAdapter(new ArrayAdapter<>(getContext(), R.layout.item_spinner, data)); + binding.spStudent.setSelection(position); + } + }); + } + + @SuppressLint("CheckResult") + private void getGrade() { + NetWorks.service_url.listGradeAndSubject(NetWorks.getHeader()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .compose(RxLifecycleAndroid.bindActivity(activity.getRxLifecycle())) + .map(ResponseResult::getData) + .firstOrError() + .subscribe((data, th) -> { + if (th != null) th.printStackTrace(); + if (data != null && data.size() > 0) { + gradeAndSubjectList = data; + List grades = new ArrayList<>(); + for (GradeAndSubject it: data) { + grades.add(it.getGrade().getGrade()); + } + binding.spGrade.setAdapter(new ArrayAdapter<>(getContext(), R.layout.item_spinner, grades)); + } + getStudents(); + }); + } + + private void refreshSubjects(int gradePosition) { + if (gradeAndSubjectList == null) return; + List subjectList = gradeAndSubjectList.get(gradePosition).getSubjects(); + List subjects = new ArrayList<>(); + for (Subject s: subjectList) { + subjects.add(s.getSubject()); + } + binding.spSubject.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @SuppressLint("SetTextI18n") + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + subject = subjects.get(position); + binding.etName.setText(dateFormat.format(uploadTime) + subject + "作业"); + } + @Override + public void onNothingSelected(AdapterView parent) { + } + }); + binding.spSubject.setAdapter(new ArrayAdapter<>(getContext(), R.layout.item_spinner, subjects)); + } + + @NonNull + @Override + public DialogAddHomeworkBinding getBinding() { + return DialogAddHomeworkBinding.inflate(getLayoutInflater()); + } +} diff --git a/app/src/main/java/com/hjx/parent/dialog/BaseDialog.java b/app/src/main/java/com/hjx/parent/dialog/BaseDialog.java new file mode 100644 index 0000000..030d029 --- /dev/null +++ b/app/src/main/java/com/hjx/parent/dialog/BaseDialog.java @@ -0,0 +1,72 @@ +package com.hjx.parent.dialog; + +import android.app.AlertDialog; +import android.content.Context; +import android.os.Bundle; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; + +import androidx.annotation.NonNull; +import androidx.viewbinding.ViewBinding; + +import com.hjx.parent.R; + + +public abstract class BaseDialog extends AlertDialog { + + public BaseDialog(Context context) { + this(context, R.style.BaseDialog); + } + + public BaseDialog(Context context, int themeResId) { + super(context, themeResId); + } + + public VB binding; + private boolean isDialogCreated = false; + public boolean isDialogCreated() { + return isDialogCreated; + } + + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + binding = getBinding(); + setContentView(binding.getRoot()); + Window window = getWindow(); + if (window != null) { + setWindowsLayout(window); + window.clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM); + } + + initView(); + isDialogCreated = true; + } + + public void onAttachedToWindow() { + super.onAttachedToWindow(); + onDialogStart(); + } + + public void onDetachedFromWindow() { + super.onDetachedFromWindow(); + onDialogStop(); + } + + public void setWindowsLayout(Window window) { + window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); + } + + public void initView() { + } + + public void onDialogStart() { + } + + public void onDialogStop() { + } + + @NonNull + public abstract VB getBinding(); + +} diff --git a/app/src/main/java/com/hjx/parent/fragment/ErrorFragment.java b/app/src/main/java/com/hjx/parent/fragment/ErrorFragment.java index 43e500c..64a3253 100644 --- a/app/src/main/java/com/hjx/parent/fragment/ErrorFragment.java +++ b/app/src/main/java/com/hjx/parent/fragment/ErrorFragment.java @@ -74,7 +74,6 @@ public class ErrorFragment extends BaseRxFragment { private int subject; private ErrorAdapter errorAdapter; private HomeworkAdapter homeworkAdapter; - private int REQUEST_CODE_IMAGE = 123; private String filePath; @Override @@ -105,31 +104,8 @@ public class ErrorFragment extends BaseRxFragment { getBinding().tvName.setText(name); refreshStudent(); getBinding().tvChoose.setOnClickListener(v -> startActivity(new Intent(getContext(), TeacherChooseActivity.class))); - getBinding().rlTakePhoto.setOnClickListener(v -> { - if (!XXPermissions.isGranted(getContext(), Permission.CAMERA, Permission.WRITE_EXTERNAL_STORAGE)) { - XXPermissions.with(getContext()) - // 申请多个权限 - .permission(Permission.CAMERA).request(new OnPermissionCallback() { - @Override - public void onGranted(List permissions, boolean all) { - if (all) { - //开启扫码界面 - showButtonDialog(); - } else { - Toast.makeText(getContext(), "需要权限", Toast.LENGTH_SHORT).show(); - } - } - - @Override - public void onDenied(List permissions, boolean never) { - XXPermissions.startPermissionActivity(getContext(), permissions); - } - }); - } else { - showButtonDialog(); - } - - }); + getBinding().rlTakePhoto.setOnClickListener(v -> takePhoto(0)); + getBinding().flEntryHomework.setOnClickListener(v -> takePhoto(1)); BaseQuickAdapter adapter = new BaseQuickAdapter(R.layout.item_subject, Arrays.asList(getResources().getStringArray(R.array.filter_subject))) { @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { @@ -207,7 +183,32 @@ public class ErrorFragment extends BaseRxFragment { }); } - private void showButtonDialog() { + private void takePhoto(int type) { + if (!XXPermissions.isGranted(getContext(), Permission.CAMERA, Permission.WRITE_EXTERNAL_STORAGE)) { + XXPermissions.with(getContext()) + // 申请多个权限 + .permission(Permission.CAMERA).request(new OnPermissionCallback() { + @Override + public void onGranted(List permissions, boolean all) { + if (all) { + //开启扫码界面 + showButtonDialog(type); + } else { + Toast.makeText(getContext(), "需要权限", Toast.LENGTH_SHORT).show(); + } + } + + @Override + public void onDenied(List permissions, boolean never) { + XXPermissions.startPermissionActivity(getContext(), permissions); + } + }); + } else { + showButtonDialog(type); + } + } + + private void showButtonDialog(int type) { MyButtomDialog dialog = new MyButtomDialog(getActivity(), R.style.BottomSheetDialog); View bottomView = LayoutInflater.from(getActivity()).inflate(R.layout.bottom_sheet_layout, null); dialog.setContentView(bottomView); @@ -217,15 +218,14 @@ public class ErrorFragment extends BaseRxFragment { dialog.dismiss(); Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); //确保有相机来处理Intent - filePath = getActivity().getExternalFilesDir("images").getPath() + "/" + String.valueOf(System.currentTimeMillis()) + CommonUtil.getStr() + ".jpg"; + filePath = requireActivity().getExternalFilesDir("images").getPath() + "/" + System.currentTimeMillis() + CommonUtil.getStr() + ".jpg"; File photoFile = new File(filePath); - if (photoFile != null) { - //适配Android 7.0文件权限,通过FileProvider创建一个content类型的Uri - Uri photoUri = FileProvider.getUriForFile(getActivity(), "com.hjx.parent.fileprovider", photoFile); - takePictureIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); - takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri); - startActivityForResult(takePictureIntent, REQUEST_CODE_IMAGE); - } + + //适配Android 7.0文件权限,通过FileProvider创建一个content类型的Uri + Uri photoUri = FileProvider.getUriForFile(requireActivity(), "com.hjx.parent.fileprovider", photoFile); + takePictureIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); + takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri); + startActivityForResult(takePictureIntent, type == 0 ? 0xA01 : 0xA02); } }); bottomView.findViewById(R.id.choose_photo).setOnClickListener(new View.OnClickListener() { @@ -233,7 +233,7 @@ public class ErrorFragment extends BaseRxFragment { public void onClick(View view) { dialog.dismiss(); ImagePickerConfig imagePickerConfig = new ImagePickerConfig.Builder().provider(getActivity().getPackageName() + ".fileprovider").imageLoader(new GlideImageLoader()) //图片加载器 - .iHandlerCallBack(new HandlerCallBack()) //图片选择器生命周期监听(直接打开摄像头时无效) + .iHandlerCallBack(new HandlerCallBack(type)) //图片选择器生命周期监听(直接打开摄像头时无效) .multiSelect(true) //是否多选 .isShowCamera(false).isVideoPicker(false) //是否选择视频 默认false .isImagePicker(true).imagePickerType(ImagePickerEnum.PHOTO_PICKER) //选择器打开类型 @@ -316,6 +316,11 @@ public class ErrorFragment extends BaseRxFragment { } public class HandlerCallBack implements IHandlerCallBack { + int type; + public HandlerCallBack(int type) { + this.type = type; + } + private String TAG = "---ImagePicker---"; List photoList = new ArrayList<>(); @@ -338,12 +343,13 @@ public class ErrorFragment extends BaseRxFragment { @Override public void onFinish(List selectImage) { if (selectImage.size() == photoList.size()) { - List strings = new ArrayList<>(); + ArrayList strings = new ArrayList<>(); Intent intent = new Intent(getActivity(), ImageActivity.class); for (ImageInfo imageInfo : selectImage) { strings.add(imageInfo.getPath()); } - intent.putStringArrayListExtra("images", (ArrayList) strings); + intent.putStringArrayListExtra("images", strings); + intent.putExtra("type", type); startActivity(intent); } } @@ -357,14 +363,16 @@ public class ErrorFragment extends BaseRxFragment { @Override public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); - if (requestCode == REQUEST_CODE_IMAGE && resultCode == RESULT_OK && !TextUtils.isEmpty(filePath)) { + if (resultCode != RESULT_OK) return; + if (requestCode == 0xA01 || requestCode == 0xA02 && !TextUtils.isEmpty(filePath)) { Bitmap b = BitmapUtils.compress(BitmapFactory.decodeFile(filePath)); - String path = getContext().getExternalFilesDir("images").getPath() + "/" + String.valueOf(System.currentTimeMillis()) + CommonUtil.getStr() + ".jpg"; + String path = getContext().getExternalFilesDir("images").getPath() + "/" + System.currentTimeMillis() + CommonUtil.getStr() + ".jpg"; CommonUtil.saveBitmapToUri(b, path); - List strings = new ArrayList<>(); + ArrayList strings = new ArrayList<>(); Intent intent = new Intent(getContext(), ImageActivity.class); strings.add(path); - intent.putStringArrayListExtra("images", (ArrayList) strings); + intent.putStringArrayListExtra("images", strings); + intent.putExtra("type", requestCode == 0xA01 ? 0 : 1); startActivity(intent); } } diff --git a/app/src/main/res/drawable/ic_filter_down_black.png b/app/src/main/res/drawable/ic_filter_down_black.png new file mode 100644 index 0000000000000000000000000000000000000000..1232a310f8412fbce8e2420b38636eb32364a71d GIT binary patch literal 427 zcmV;c0aX5pP)Px$Wl2OqR47x0l08cUK@f&#CYvfGf}o!9Nj2 zQ6ZntpNPmZ0IZ|dx}ucYv(|!$d?Mm%y}a9F%=-Y~eBLie0Hs9a2Rjr@dhacrcVMmEF~%IV0X-oBG)F`? zh&bBOe+B>t%)Hw@@IOx4f;3GN=iIGQY9g$1o0*S$t-dcLIPy197LgZYj6Z{(@eMdu VmsmaN0aO40002ovPDHLkV1kaJunqtK literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/selector_for_input_spinner.xml b/app/src/main/res/drawable/selector_for_input_spinner.xml new file mode 100644 index 0000000..0f52c60 --- /dev/null +++ b/app/src/main/res/drawable/selector_for_input_spinner.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/shape_for_input_spinner.xml b/app/src/main/res/drawable/shape_for_input_spinner.xml new file mode 100644 index 0000000..d5e1ce0 --- /dev/null +++ b/app/src/main/res/drawable/shape_for_input_spinner.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_radius_5.xml b/app/src/main/res/drawable/shape_radius_5.xml new file mode 100644 index 0000000..1e7fcbe --- /dev/null +++ b/app/src/main/res/drawable/shape_radius_5.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_radius_top_10.xml b/app/src/main/res/drawable/shape_radius_top_10.xml new file mode 100644 index 0000000..8c6d526 --- /dev/null +++ b/app/src/main/res/drawable/shape_radius_top_10.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_add_homework.xml b/app/src/main/res/layout/dialog_add_homework.xml new file mode 100644 index 0000000..4dd5d87 --- /dev/null +++ b/app/src/main/res/layout/dialog_add_homework.xml @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_spinner.xml b/app/src/main/res/layout/item_spinner.xml new file mode 100644 index 0000000..02ae90c --- /dev/null +++ b/app/src/main/res/layout/item_spinner.xml @@ -0,0 +1,10 @@ + + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 00502aa..e6e7d5b 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -59,4 +59,11 @@ 1 + + + \ No newline at end of file diff --git a/libs/common/src/main/java/com/prws/common/bean/Student.java b/libs/common/src/main/java/com/prws/common/bean/Student.java new file mode 100644 index 0000000..058e272 --- /dev/null +++ b/libs/common/src/main/java/com/prws/common/bean/Student.java @@ -0,0 +1,34 @@ +package com.prws.common.bean; + +import androidx.annotation.NonNull; + +public class Student { + + public String stuId; + public String stuName; + public int gender; + public String term; + public String account; + public String nickName; + public String address; + public String phone; + public String photo; + public int fromType; + public int gradeId; + public String oriSchool; + public String parentPhone; + public String parentIdentity; + public String teacherName; + public int teacherId; + public String teacherAvatar; + public String grade; + public String teacherIdentity; + public int sex; + public Integer state; + + @NonNull + @Override + public String toString() { + return stuName; + } +} diff --git a/libs/common/src/main/java/com/prws/common/net/NetWorks.java b/libs/common/src/main/java/com/prws/common/net/NetWorks.java index 2097063..30a4680 100644 --- a/libs/common/src/main/java/com/prws/common/net/NetWorks.java +++ b/libs/common/src/main/java/com/prws/common/net/NetWorks.java @@ -9,6 +9,7 @@ import com.prws.common.bean.GradeAndSubject; import com.prws.common.bean.PageInfo; import com.prws.common.bean.ResponseResult; import com.prws.common.bean.ScheduleBean; +import com.prws.common.bean.Student; import com.prws.common.bean.Teacher; import com.prws.common.bean.TopicBean; import com.prws.common.bean.UpdateBean; @@ -170,6 +171,9 @@ public class NetWorks extends RetrofitUtils { @GET("api/v1/teacher/getStudentList") Observable getStudentList(@Header("Authorization") String token, @Query("userId") String id); + @GET("api/v1/teacher/getStudentList") + Single>> getStudentList2(@Header("Authorization") String token, @Query("userId") String id); + @GET("api/v1/answer/listRecordForTeacher") Observable getRecordList(@Header("Authorization") String token, @Query("userId") String id); @@ -178,6 +182,9 @@ public class NetWorks extends RetrofitUtils { } + public static String getUserId() { + return (String) SharedPreferencesUtil.getData("userId", ""); + } public static String getHeader() { return (String) SharedPreferencesUtil.getData("token", ""); @@ -310,6 +317,10 @@ public class NetWorks extends RetrofitUtils { setSubscribe(service_url.getStudentList(getHeader(), (String) SharedPreferencesUtil.getData("userId", "")), observer); } + public static Single>> listStudent() { + return service_url.getStudentList2(getHeader(), getUserId()); + } + public static void listRecord(Observer observer) { setSubscribe(service_url.getRecordList(getHeader(), (String) SharedPreferencesUtil.getData("userId", "")), observer); } -- 1.9.0