Commit c7efa417930403d279c8fb910e39726740d7cac6
1 parent
7f9411e7f2
Exists in
master
避免空指针
Showing
1 changed file
with
1 additions
and
0 deletions
Show diff stats
app/src/main/java/com/hjx/parent/ErrorListActivity.java
| 1 | package com.hjx.parent; | 1 | package com.hjx.parent; |
| 2 | 2 | ||
| 3 | import android.app.Dialog; | 3 | import android.app.Dialog; |
| 4 | import android.content.DialogInterface; | 4 | import android.content.DialogInterface; |
| 5 | import android.content.Intent; | 5 | import android.content.Intent; |
| 6 | import android.graphics.Bitmap; | 6 | import android.graphics.Bitmap; |
| 7 | import android.graphics.BitmapFactory; | 7 | import android.graphics.BitmapFactory; |
| 8 | import android.graphics.Color; | 8 | import android.graphics.Color; |
| 9 | import android.graphics.drawable.Drawable; | 9 | import android.graphics.drawable.Drawable; |
| 10 | import android.net.Uri; | 10 | import android.net.Uri; |
| 11 | import android.os.Bundle; | 11 | import android.os.Bundle; |
| 12 | import android.provider.MediaStore; | 12 | import android.provider.MediaStore; |
| 13 | import android.text.TextUtils; | 13 | import android.text.TextUtils; |
| 14 | import android.util.Log; | 14 | import android.util.Log; |
| 15 | import android.view.KeyEvent; | 15 | import android.view.KeyEvent; |
| 16 | import android.view.LayoutInflater; | 16 | import android.view.LayoutInflater; |
| 17 | import android.view.View; | 17 | import android.view.View; |
| 18 | import android.widget.CompoundButton; | 18 | import android.widget.CompoundButton; |
| 19 | import android.widget.RadioButton; | 19 | import android.widget.RadioButton; |
| 20 | import android.widget.RadioGroup; | 20 | import android.widget.RadioGroup; |
| 21 | import android.widget.TextView; | 21 | import android.widget.TextView; |
| 22 | import android.widget.Toast; | 22 | import android.widget.Toast; |
| 23 | 23 | ||
| 24 | import androidx.annotation.Nullable; | 24 | import androidx.annotation.Nullable; |
| 25 | import androidx.core.content.FileProvider; | 25 | import androidx.core.content.FileProvider; |
| 26 | import androidx.recyclerview.widget.GridLayoutManager; | 26 | import androidx.recyclerview.widget.GridLayoutManager; |
| 27 | import androidx.recyclerview.widget.LinearLayoutManager; | 27 | import androidx.recyclerview.widget.LinearLayoutManager; |
| 28 | import androidx.recyclerview.widget.RecyclerView; | 28 | import androidx.recyclerview.widget.RecyclerView; |
| 29 | 29 | ||
| 30 | import com.google.gson.Gson; | 30 | import com.google.gson.Gson; |
| 31 | import com.hjq.permissions.OnPermissionCallback; | 31 | import com.hjq.permissions.OnPermissionCallback; |
| 32 | import com.hjq.permissions.Permission; | 32 | import com.hjq.permissions.Permission; |
| 33 | import com.hjq.permissions.XXPermissions; | 33 | import com.hjq.permissions.XXPermissions; |
| 34 | import com.hjx.parent.adapter.ErrorAdapter; | 34 | import com.hjx.parent.adapter.ErrorAdapter; |
| 35 | import com.hjx.parent.adapter.FilterAdapter; | 35 | import com.hjx.parent.adapter.FilterAdapter; |
| 36 | import com.hjx.parent.adapter.GradeAdapter; | 36 | import com.hjx.parent.adapter.GradeAdapter; |
| 37 | import com.hjx.parent.adapter.LoadMoreOnScrollListener; | 37 | import com.hjx.parent.adapter.LoadMoreOnScrollListener; |
| 38 | import com.hjx.parent.bean.StudentBean; | 38 | import com.hjx.parent.bean.StudentBean; |
| 39 | import com.hjx.parent.databinding.ActivityErrorListBinding; | 39 | import com.hjx.parent.databinding.ActivityErrorListBinding; |
| 40 | import com.hjx.parent.dialog.ErrorEditDialog; | 40 | import com.hjx.parent.dialog.ErrorEditDialog; |
| 41 | import com.hjx.parent.dialog.TipDialog; | 41 | import com.hjx.parent.dialog.TipDialog; |
| 42 | import com.prws.common.bean.GradeAndSubject; | 42 | import com.prws.common.bean.GradeAndSubject; |
| 43 | import com.prws.common.bean.PageInfo; | 43 | import com.prws.common.bean.PageInfo; |
| 44 | import com.prws.common.bean.ResponseResult; | 44 | import com.prws.common.bean.ResponseResult; |
| 45 | import com.prws.common.bean.Subject; | 45 | import com.prws.common.bean.Subject; |
| 46 | import com.prws.common.bean.TopicBean; | 46 | import com.prws.common.bean.TopicBean; |
| 47 | import com.prws.common.net.NetWorks; | 47 | import com.prws.common.net.NetWorks; |
| 48 | import com.prws.common.utils.BitmapUtils; | 48 | import com.prws.common.utils.BitmapUtils; |
| 49 | import com.prws.common.utils.CommonUtil; | 49 | import com.prws.common.utils.CommonUtil; |
| 50 | import com.prws.common.utils.SharedPreferencesUtil; | 50 | import com.prws.common.utils.SharedPreferencesUtil; |
| 51 | import com.prws.common.utils.dialog.MyButtomDialog; | 51 | import com.prws.common.utils.dialog.MyButtomDialog; |
| 52 | import com.zhangteng.imagepicker.bean.ImageInfo; | 52 | import com.zhangteng.imagepicker.bean.ImageInfo; |
| 53 | import com.zhangteng.imagepicker.config.ImagePickerConfig; | 53 | import com.zhangteng.imagepicker.config.ImagePickerConfig; |
| 54 | import com.zhangteng.imagepicker.config.ImagePickerEnum; | 54 | import com.zhangteng.imagepicker.config.ImagePickerEnum; |
| 55 | import com.zhangteng.imagepicker.config.ImagePickerOpen; | 55 | import com.zhangteng.imagepicker.config.ImagePickerOpen; |
| 56 | import com.zhangteng.imagepicker.imageloader.GlideImageLoader; | 56 | import com.zhangteng.imagepicker.imageloader.GlideImageLoader; |
| 57 | import com.zhangteng.utils.IHandlerCallBack; | 57 | import com.zhangteng.utils.IHandlerCallBack; |
| 58 | 58 | ||
| 59 | import java.io.File; | 59 | import java.io.File; |
| 60 | import java.util.ArrayList; | 60 | import java.util.ArrayList; |
| 61 | import java.util.HashMap; | 61 | import java.util.HashMap; |
| 62 | import java.util.List; | 62 | import java.util.List; |
| 63 | import java.util.Map; | 63 | import java.util.Map; |
| 64 | 64 | ||
| 65 | import io.reactivex.Observer; | 65 | import io.reactivex.Observer; |
| 66 | import io.reactivex.disposables.Disposable; | 66 | import io.reactivex.disposables.Disposable; |
| 67 | 67 | ||
| 68 | public class ErrorListActivity extends BaseActivity<ActivityErrorListBinding> implements View.OnClickListener { | 68 | public class ErrorListActivity extends BaseActivity<ActivityErrorListBinding> implements View.OnClickListener { |
| 69 | private TextView last; | 69 | private TextView last; |
| 70 | private String subject; | 70 | private String subject; |
| 71 | private String grade; | 71 | private String grade; |
| 72 | private String grade1; | 72 | private String grade1; |
| 73 | private String manger; | 73 | private String manger; |
| 74 | private String type = "全部"; | 74 | private String type = "全部"; |
| 75 | private String time = "全部"; | 75 | private String time = "全部"; |
| 76 | private FilterAdapter filterAdapter; | 76 | private FilterAdapter filterAdapter; |
| 77 | 77 | ||
| 78 | private GradeAdapter gradeAdapter; | 78 | private GradeAdapter gradeAdapter; |
| 79 | StudentBean studentBean; | 79 | StudentBean studentBean; |
| 80 | private int page = 1; | 80 | private int page = 1; |
| 81 | private ErrorAdapter adapter; | 81 | private ErrorAdapter adapter; |
| 82 | private int total; | 82 | private int total; |
| 83 | private int REQUEST_CODE_IMAGE = 123; | 83 | private int REQUEST_CODE_IMAGE = 123; |
| 84 | private String filePath; | 84 | private String filePath; |
| 85 | 85 | ||
| 86 | @Override | 86 | @Override |
| 87 | public void initView(Bundle savedInstanceState) { | 87 | public void initView(Bundle savedInstanceState) { |
| 88 | String student = (String) SharedPreferencesUtil.getData("student", ""); | 88 | String student = (String) SharedPreferencesUtil.getData("student", ""); |
| 89 | try { | 89 | try { |
| 90 | studentBean = new Gson().fromJson(student, StudentBean.class); | 90 | studentBean = new Gson().fromJson(student, StudentBean.class); |
| 91 | } catch (Exception e) { | 91 | } catch (Exception e) { |
| 92 | 92 | ||
| 93 | } | 93 | } |
| 94 | binding.ivBack.setOnClickListener(this); | 94 | binding.ivBack.setOnClickListener(this); |
| 95 | binding.tvFilterGrade.setOnClickListener(this); | 95 | binding.tvFilterGrade.setOnClickListener(this); |
| 96 | binding.tvFilterSubject.setOnClickListener(this); | 96 | binding.tvFilterSubject.setOnClickListener(this); |
| 97 | binding.tvFilterMore.setOnClickListener(this); | 97 | binding.tvFilterMore.setOnClickListener(this); |
| 98 | binding.tvFilterManage.setOnClickListener(this); | 98 | binding.tvFilterManage.setOnClickListener(this); |
| 99 | binding.tvEdit.setOnClickListener(this); | 99 | binding.tvEdit.setOnClickListener(this); |
| 100 | binding.tvAdd.setOnClickListener(this); | 100 | binding.tvAdd.setOnClickListener(this); |
| 101 | binding.llDelete.setOnClickListener(this); | 101 | binding.llDelete.setOnClickListener(this); |
| 102 | binding.tvSave.setOnClickListener(this); | 102 | binding.tvSave.setOnClickListener(this); |
| 103 | binding.tvTitle.setText(studentBean.getStuName() + "的错题本"); | 103 | binding.tvTitle.setText(studentBean.getStuName() + "的错题本"); |
| 104 | binding.checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { | 104 | binding.checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { |
| 105 | @Override | 105 | @Override |
| 106 | public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { | 106 | public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { |
| 107 | if (binding.llEmpty.getVisibility() != View.VISIBLE) { | 107 | if (binding.llEmpty.getVisibility() != View.VISIBLE) { |
| 108 | adapter.checkAll(isChecked); | 108 | adapter.checkAll(isChecked); |
| 109 | } | 109 | } |
| 110 | } | 110 | } |
| 111 | }); | 111 | }); |
| 112 | RadioButton timeButton = (RadioButton) binding.groupTime.getChildAt(3); | 112 | RadioButton timeButton = (RadioButton) binding.groupTime.getChildAt(3); |
| 113 | timeButton.setChecked(true); | 113 | timeButton.setChecked(true); |
| 114 | binding.groupTime.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { | 114 | binding.groupTime.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { |
| 115 | @Override | 115 | @Override |
| 116 | public void onCheckedChanged(RadioGroup group, int checkedId) { | 116 | public void onCheckedChanged(RadioGroup group, int checkedId) { |
| 117 | RadioButton rcheck = (RadioButton) findViewById(checkedId); | 117 | RadioButton rcheck = (RadioButton) findViewById(checkedId); |
| 118 | time = rcheck.getText().toString(); | 118 | time = rcheck.getText().toString(); |
| 119 | refreshError(); | 119 | refreshError(); |
| 120 | } | 120 | } |
| 121 | }); | 121 | }); |
| 122 | 122 | ||
| 123 | RadioButton typeButton = (RadioButton) binding.groupType.getChildAt(2); | 123 | RadioButton typeButton = (RadioButton) binding.groupType.getChildAt(2); |
| 124 | typeButton.setChecked(true); | 124 | typeButton.setChecked(true); |
| 125 | binding.groupType.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { | 125 | binding.groupType.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { |
| 126 | @Override | 126 | @Override |
| 127 | public void onCheckedChanged(RadioGroup group, int checkedId) { | 127 | public void onCheckedChanged(RadioGroup group, int checkedId) { |
| 128 | RadioButton rcheck = (RadioButton) findViewById(checkedId); | 128 | RadioButton rcheck = (RadioButton) findViewById(checkedId); |
| 129 | type = rcheck.getText().toString(); | 129 | type = rcheck.getText().toString(); |
| 130 | refreshError(); | 130 | refreshError(); |
| 131 | } | 131 | } |
| 132 | }); | 132 | }); |
| 133 | refreshError(); | 133 | refreshError(); |
| 134 | binding.ivChange.setOnClickListener(new View.OnClickListener() { | 134 | binding.ivChange.setOnClickListener(new View.OnClickListener() { |
| 135 | @Override | 135 | @Override |
| 136 | public void onClick(View v) { | 136 | public void onClick(View v) { |
| 137 | if (SharedPreferencesUtil.getData("role", "").equals("parent")) { | 137 | if (SharedPreferencesUtil.getData("role", "").equals("parent")) { |
| 138 | Intent intent = new Intent(context, ChooseActivity.class); | 138 | Intent intent = new Intent(context, ChooseActivity.class); |
| 139 | intent.putExtra("needBack", true); | 139 | intent.putExtra("needBack", true); |
| 140 | startActivity(intent); | 140 | startActivity(intent); |
| 141 | } else { | 141 | } else { |
| 142 | Intent intent = new Intent(context, TeacherChooseActivity.class); | 142 | Intent intent = new Intent(context, TeacherChooseActivity.class); |
| 143 | intent.putExtra("needBack", true); | 143 | intent.putExtra("needBack", true); |
| 144 | startActivity(intent); | 144 | startActivity(intent); |
| 145 | } | 145 | } |
| 146 | } | 146 | } |
| 147 | }); | 147 | }); |
| 148 | setGradeFilter(); | 148 | setGradeFilter(); |
| 149 | } | 149 | } |
| 150 | 150 | ||
| 151 | private void setGradeFilter() { | 151 | private void setGradeFilter() { |
| 152 | if (TextUtils.isEmpty(grade)) { | 152 | if (TextUtils.isEmpty(grade)) { |
| 153 | grade = "全部"; | 153 | grade = "全部"; |
| 154 | } | 154 | } |
| 155 | List<String> grades = new ArrayList<>(); | 155 | List<String> grades = new ArrayList<>(); |
| 156 | for (GradeAndSubject gradeAndSubject : App.getInstance().getGradeAndSubjects()) { | 156 | for (GradeAndSubject gradeAndSubject : App.getInstance().getGradeAndSubjects()) { |
| 157 | grades.add(gradeAndSubject.getGrade().getGrade()); | 157 | grades.add(gradeAndSubject.getGrade().getGrade()); |
| 158 | } | 158 | } |
| 159 | grades.add("全部"); | 159 | grades.add("全部"); |
| 160 | gradeAdapter = new GradeAdapter(context, new GradeAdapter.Filter() { | 160 | gradeAdapter = new GradeAdapter(context, new GradeAdapter.Filter() { |
| 161 | @Override | 161 | @Override |
| 162 | public void onSelect(String select) { | 162 | public void onSelect(String select) { |
| 163 | grade = select; | 163 | grade = select; |
| 164 | page = 1; | 164 | page = 1; |
| 165 | gradeAdapter.refresh(select); | 165 | gradeAdapter.refresh(select); |
| 166 | refreshError(); | 166 | refreshError(); |
| 167 | } | 167 | } |
| 168 | }, grades, grade); | 168 | }, grades, grade); |
| 169 | binding.recycleGrade.setLayoutManager(new GridLayoutManager(context, 4, LinearLayoutManager.VERTICAL, false)); | 169 | binding.recycleGrade.setLayoutManager(new GridLayoutManager(context, 4, LinearLayoutManager.VERTICAL, false)); |
| 170 | binding.recycleGrade.setAdapter(gradeAdapter); | 170 | binding.recycleGrade.setAdapter(gradeAdapter); |
| 171 | binding.groupGrade.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { | 171 | binding.groupGrade.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { |
| 172 | @Override | 172 | @Override |
| 173 | public void onCheckedChanged(RadioGroup group, int checkedId) { | 173 | public void onCheckedChanged(RadioGroup group, int checkedId) { |
| 174 | RadioButton rcheck = (RadioButton) findViewById(checkedId); | 174 | RadioButton rcheck = (RadioButton) findViewById(checkedId); |
| 175 | grade1 = rcheck.getText().toString(); | 175 | grade1 = rcheck.getText().toString(); |
| 176 | page = 1; | 176 | page = 1; |
| 177 | refreshError(); | 177 | refreshError(); |
| 178 | } | 178 | } |
| 179 | }); | 179 | }); |
| 180 | } | 180 | } |
| 181 | 181 | ||
| 182 | @Override | 182 | @Override |
| 183 | protected ActivityErrorListBinding getViewBinding() { | 183 | protected ActivityErrorListBinding getViewBinding() { |
| 184 | return ActivityErrorListBinding.inflate(getLayoutInflater()); | 184 | return ActivityErrorListBinding.inflate(getLayoutInflater()); |
| 185 | } | 185 | } |
| 186 | 186 | ||
| 187 | 187 | ||
| 188 | @Override | 188 | @Override |
| 189 | public void onClick(View v) { | 189 | public void onClick(View v) { |
| 190 | switch (v.getId()) { | 190 | switch (v.getId()) { |
| 191 | case R.id.iv_back: | 191 | case R.id.iv_back: |
| 192 | finish(); | 192 | finish(); |
| 193 | break; | 193 | break; |
| 194 | case R.id.tv_filter_grade: | 194 | case R.id.tv_filter_grade: |
| 195 | showFilerGrade(); | 195 | showFilerGrade(); |
| 196 | break; | 196 | break; |
| 197 | case R.id.tv_filter_subject: | 197 | case R.id.tv_filter_subject: |
| 198 | List<String> subjects = new ArrayList<>(); | 198 | List<String> subjects = new ArrayList<>(); |
| 199 | for (GradeAndSubject gradeAndSubject : App.getInstance().getGradeAndSubjects()) { | 199 | for (GradeAndSubject gradeAndSubject : App.getInstance().getGradeAndSubjects()) { |
| 200 | for (Subject subject : gradeAndSubject.getSubjects()) { | 200 | for (Subject subject : gradeAndSubject.getSubjects()) { |
| 201 | if (!subjects.contains(subject.getSubject())) { | 201 | if (!subjects.contains(subject.getSubject())) { |
| 202 | subjects.add(subject.getSubject()); | 202 | subjects.add(subject.getSubject()); |
| 203 | } | 203 | } |
| 204 | } | 204 | } |
| 205 | } | 205 | } |
| 206 | subjects.add("全部"); | 206 | subjects.add("全部"); |
| 207 | setFilterAdapter(subjects, binding.tvFilterSubject, subject); | 207 | setFilterAdapter(subjects, binding.tvFilterSubject, subject); |
| 208 | break; | 208 | break; |
| 209 | case R.id.tv_filter_manage: | 209 | case R.id.tv_filter_manage: |
| 210 | List<String> manages = new ArrayList<>(); | 210 | List<String> manages = new ArrayList<>(); |
| 211 | manages.add("已掌握"); | 211 | manages.add("已掌握"); |
| 212 | manages.add("未掌握"); | 212 | manages.add("未掌握"); |
| 213 | manages.add("全部"); | 213 | manages.add("全部"); |
| 214 | setFilterAdapter(manages, binding.tvFilterManage, manger); | 214 | setFilterAdapter(manages, binding.tvFilterManage, manger); |
| 215 | break; | 215 | break; |
| 216 | case R.id.tv_filter_more: | 216 | case R.id.tv_filter_more: |
| 217 | showFilterMore(); | 217 | showFilterMore(); |
| 218 | break; | 218 | break; |
| 219 | case R.id.tv_edit: | 219 | case R.id.tv_edit: |
| 220 | if (adapter == null) break; | ||
| 220 | if (adapter.edit) { | 221 | if (adapter.edit) { |
| 221 | adapter.setEdit(false); | 222 | adapter.setEdit(false); |
| 222 | binding.tvSave.setVisibility(View.GONE); | 223 | binding.tvSave.setVisibility(View.GONE); |
| 223 | binding.tvAdd.setVisibility(View.VISIBLE); | 224 | binding.tvAdd.setVisibility(View.VISIBLE); |
| 224 | binding.checkbox.setVisibility(View.GONE); | 225 | binding.checkbox.setVisibility(View.GONE); |
| 225 | binding.llDelete.setVisibility(View.GONE); | 226 | binding.llDelete.setVisibility(View.GONE); |
| 226 | binding.ivBack.setVisibility(View.VISIBLE); | 227 | binding.ivBack.setVisibility(View.VISIBLE); |
| 227 | binding.tvEdit.setText("编辑"); | 228 | binding.tvEdit.setText("编辑"); |
| 228 | } else { | 229 | } else { |
| 229 | adapter.setEdit(true); | 230 | adapter.setEdit(true); |
| 230 | binding.tvSave.setVisibility(View.VISIBLE); | 231 | binding.tvSave.setVisibility(View.VISIBLE); |
| 231 | binding.tvAdd.setVisibility(View.GONE); | 232 | binding.tvAdd.setVisibility(View.GONE); |
| 232 | binding.llDelete.setVisibility(View.VISIBLE); | 233 | binding.llDelete.setVisibility(View.VISIBLE); |
| 233 | binding.checkbox.setVisibility(View.VISIBLE); | 234 | binding.checkbox.setVisibility(View.VISIBLE); |
| 234 | binding.ivBack.setVisibility(View.GONE); | 235 | binding.ivBack.setVisibility(View.GONE); |
| 235 | binding.tvEdit.setText("取消"); | 236 | binding.tvEdit.setText("取消"); |
| 236 | } | 237 | } |
| 237 | adapter.notifyDataSetChanged(); | 238 | adapter.notifyDataSetChanged(); |
| 238 | break; | 239 | break; |
| 239 | case R.id.ll_delete: | 240 | case R.id.ll_delete: |
| 240 | showTipDialog("温馨提示", "确认删除已勾选的错题?", "取消", "确认", new TipDialog.TipDialogInterface() { | 241 | showTipDialog("温馨提示", "确认删除已勾选的错题?", "取消", "确认", new TipDialog.TipDialogInterface() { |
| 241 | @Override | 242 | @Override |
| 242 | public void onConfirm(Dialog dialog) { | 243 | public void onConfirm(Dialog dialog) { |
| 243 | deleteError(adapter.getChecKList()); | 244 | deleteError(adapter.getChecKList()); |
| 244 | dialog.dismiss(); | 245 | dialog.dismiss(); |
| 245 | } | 246 | } |
| 246 | 247 | ||
| 247 | @Override | 248 | @Override |
| 248 | public void onCancel(Dialog dialog) { | 249 | public void onCancel(Dialog dialog) { |
| 249 | dialog.dismiss(); | 250 | dialog.dismiss(); |
| 250 | } | 251 | } |
| 251 | }); | 252 | }); |
| 252 | break; | 253 | break; |
| 253 | case R.id.tv_add: | 254 | case R.id.tv_add: |
| 254 | if (!XXPermissions.isGranted(context, Permission.CAMERA, Permission.MANAGE_EXTERNAL_STORAGE)) { | 255 | if (!XXPermissions.isGranted(context, Permission.CAMERA, Permission.MANAGE_EXTERNAL_STORAGE)) { |
| 255 | XXPermissions.with(context) | 256 | XXPermissions.with(context) |
| 256 | // 申请多个权限 | 257 | // 申请多个权限 |
| 257 | .permission(Permission.CAMERA, Permission.MANAGE_EXTERNAL_STORAGE) | 258 | .permission(Permission.CAMERA, Permission.MANAGE_EXTERNAL_STORAGE) |
| 258 | .request(new OnPermissionCallback() { | 259 | .request(new OnPermissionCallback() { |
| 259 | @Override | 260 | @Override |
| 260 | public void onGranted(List<String> permissions, boolean all) { | 261 | public void onGranted(List<String> permissions, boolean all) { |
| 261 | if (all) { | 262 | if (all) { |
| 262 | //开启扫码界面 | 263 | //开启扫码界面 |
| 263 | showButtonDialog(); | 264 | showButtonDialog(); |
| 264 | } else { | 265 | } else { |
| 265 | Toast.makeText(context, "需要权限", Toast.LENGTH_SHORT).show(); | 266 | Toast.makeText(context, "需要权限", Toast.LENGTH_SHORT).show(); |
| 266 | } | 267 | } |
| 267 | } | 268 | } |
| 268 | 269 | ||
| 269 | @Override | 270 | @Override |
| 270 | public void onDenied(List<String> permissions, boolean never) { | 271 | public void onDenied(List<String> permissions, boolean never) { |
| 271 | XXPermissions.startPermissionActivity(context, permissions); | 272 | XXPermissions.startPermissionActivity(context, permissions); |
| 272 | } | 273 | } |
| 273 | }); | 274 | }); |
| 274 | } else { | 275 | } else { |
| 275 | showButtonDialog(); | 276 | showButtonDialog(); |
| 276 | } | 277 | } |
| 277 | break; | 278 | break; |
| 278 | case R.id.tv_save: | 279 | case R.id.tv_save: |
| 279 | if (adapter.getChecKList().size() > 0) { | 280 | if (adapter.getChecKList().size() > 0) { |
| 280 | ErrorEditDialog errorEditDialog = new ErrorEditDialog(context, adapter.getChecKList(), new ErrorEditDialog.EditInterface() { | 281 | ErrorEditDialog errorEditDialog = new ErrorEditDialog(context, adapter.getChecKList(), new ErrorEditDialog.EditInterface() { |
| 281 | @Override | 282 | @Override |
| 282 | public void edit(String name, String grade, String subject, int type, int reason, int manager) { | 283 | public void edit(String name, String grade, String subject, int type, int reason, int manager) { |
| 283 | adapter.setEdit(false); | 284 | adapter.setEdit(false); |
| 284 | binding.tvSave.setVisibility(View.GONE); | 285 | binding.tvSave.setVisibility(View.GONE); |
| 285 | binding.tvAdd.setVisibility(View.VISIBLE); | 286 | binding.tvAdd.setVisibility(View.VISIBLE); |
| 286 | binding.checkbox.setVisibility(View.GONE); | 287 | binding.checkbox.setVisibility(View.GONE); |
| 287 | binding.llDelete.setVisibility(View.GONE); | 288 | binding.llDelete.setVisibility(View.GONE); |
| 288 | binding.ivBack.setVisibility(View.VISIBLE); | 289 | binding.ivBack.setVisibility(View.VISIBLE); |
| 289 | binding.tvEdit.setText("编辑"); | 290 | binding.tvEdit.setText("编辑"); |
| 290 | page = 1; | 291 | page = 1; |
| 291 | refreshError(); | 292 | refreshError(); |
| 292 | } | 293 | } |
| 293 | 294 | ||
| 294 | }); | 295 | }); |
| 295 | errorEditDialog.show(); | 296 | errorEditDialog.show(); |
| 296 | } | 297 | } |
| 297 | break; | 298 | break; |
| 298 | } | 299 | } |
| 299 | } | 300 | } |
| 300 | 301 | ||
| 301 | private void showButtonDialog() { | 302 | private void showButtonDialog() { |
| 302 | MyButtomDialog dialog = new MyButtomDialog(context, R.style.BottomSheetDialog); | 303 | MyButtomDialog dialog = new MyButtomDialog(context, R.style.BottomSheetDialog); |
| 303 | View bottomView = LayoutInflater.from(context).inflate(R.layout.bottom_sheet_layout, null); | 304 | View bottomView = LayoutInflater.from(context).inflate(R.layout.bottom_sheet_layout, null); |
| 304 | dialog.setContentView(bottomView); | 305 | dialog.setContentView(bottomView); |
| 305 | bottomView.findViewById(R.id.take_photo).setOnClickListener(new View.OnClickListener() { | 306 | bottomView.findViewById(R.id.take_photo).setOnClickListener(new View.OnClickListener() { |
| 306 | @Override | 307 | @Override |
| 307 | public void onClick(View view) { | 308 | public void onClick(View view) { |
| 308 | dialog.dismiss(); | 309 | dialog.dismiss(); |
| 309 | Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); | 310 | Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); |
| 310 | //确保有相机来处理Intent | 311 | //确保有相机来处理Intent |
| 311 | filePath = context.getExternalFilesDir("images").getPath() + "/" + String.valueOf(System.currentTimeMillis()) + CommonUtil.getStr() + ".jpg"; | 312 | filePath = context.getExternalFilesDir("images").getPath() + "/" + String.valueOf(System.currentTimeMillis()) + CommonUtil.getStr() + ".jpg"; |
| 312 | File photoFile = new File(filePath); | 313 | File photoFile = new File(filePath); |
| 313 | if (photoFile != null) { | 314 | if (photoFile != null) { |
| 314 | //适配Android 7.0文件权限,通过FileProvider创建一个content类型的Uri | 315 | //适配Android 7.0文件权限,通过FileProvider创建一个content类型的Uri |
| 315 | Uri photoUri = FileProvider.getUriForFile(activity, "com.hjx.parent.fileprovider", photoFile); | 316 | Uri photoUri = FileProvider.getUriForFile(activity, "com.hjx.parent.fileprovider", photoFile); |
| 316 | takePictureIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); | 317 | takePictureIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); |
| 317 | takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri); | 318 | takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri); |
| 318 | activity.startActivityForResult(takePictureIntent, REQUEST_CODE_IMAGE); | 319 | activity.startActivityForResult(takePictureIntent, REQUEST_CODE_IMAGE); |
| 319 | } | 320 | } |
| 320 | } | 321 | } |
| 321 | }); | 322 | }); |
| 322 | bottomView.findViewById(R.id.choose_photo).setOnClickListener(new View.OnClickListener() { | 323 | bottomView.findViewById(R.id.choose_photo).setOnClickListener(new View.OnClickListener() { |
| 323 | @Override | 324 | @Override |
| 324 | public void onClick(View view) { | 325 | public void onClick(View view) { |
| 325 | dialog.dismiss(); | 326 | dialog.dismiss(); |
| 326 | ImagePickerConfig imagePickerConfig = new ImagePickerConfig.Builder().provider(getPackageName() + ".fileprovider").imageLoader(new GlideImageLoader()) //图片加载器 | 327 | ImagePickerConfig imagePickerConfig = new ImagePickerConfig.Builder().provider(getPackageName() + ".fileprovider").imageLoader(new GlideImageLoader()) //图片加载器 |
| 327 | .iHandlerCallBack(new HandlerCallBack()) //图片选择器生命周期监听(直接打开摄像头时无效) | 328 | .iHandlerCallBack(new HandlerCallBack()) //图片选择器生命周期监听(直接打开摄像头时无效) |
| 328 | .multiSelect(true) //是否多选 | 329 | .multiSelect(true) //是否多选 |
| 329 | .isShowCamera(false).isVideoPicker(false) //是否选择视频 默认false | 330 | .isShowCamera(false).isVideoPicker(false) //是否选择视频 默认false |
| 330 | .isImagePicker(true).imagePickerType(ImagePickerEnum.PHOTO_PICKER) //选择器打开类型 | 331 | .isImagePicker(true).imagePickerType(ImagePickerEnum.PHOTO_PICKER) //选择器打开类型 |
| 331 | .maxImageSelectable(5) //图片可选择数 | 332 | .maxImageSelectable(5) //图片可选择数 |
| 332 | .maxHeight(1920) //图片最大高度 | 333 | .maxHeight(1920) //图片最大高度 |
| 333 | .maxWidth(1920) //图片最大宽度 | 334 | .maxWidth(1920) //图片最大宽度 |
| 334 | .maxImageSize(3) //图片最大大小Mb | 335 | .maxImageSize(3) //图片最大大小Mb |
| 335 | .isCrop(false).pathList(new ArrayList<>()).pickerThemeColorRes(R.color.image_picker_white).pickerTitleColorRes(R.color.image_picker_text_black).cropThemeColorRes(R.color.image_picker_white).cropTitleColorRes(R.color.image_picker_text_black).pickerBackRes(R.mipmap.image_picker_back_black).pickerFolderRes(R.mipmap.image_picker_folder_black).build(); | 336 | .isCrop(false).pathList(new ArrayList<>()).pickerThemeColorRes(R.color.image_picker_white).pickerTitleColorRes(R.color.image_picker_text_black).cropThemeColorRes(R.color.image_picker_white).cropTitleColorRes(R.color.image_picker_text_black).pickerBackRes(R.mipmap.image_picker_back_black).pickerFolderRes(R.mipmap.image_picker_folder_black).build(); |
| 336 | ImagePickerOpen.getInstance().setImagePickerConfig(imagePickerConfig).pathList(new ArrayList<>()).open(ErrorListActivity.this); | 337 | ImagePickerOpen.getInstance().setImagePickerConfig(imagePickerConfig).pathList(new ArrayList<>()).open(ErrorListActivity.this); |
| 337 | 338 | ||
| 338 | } | 339 | } |
| 339 | }); | 340 | }); |
| 340 | bottomView.findViewById(R.id.cancel).setOnClickListener(new View.OnClickListener() { | 341 | bottomView.findViewById(R.id.cancel).setOnClickListener(new View.OnClickListener() { |
| 341 | @Override | 342 | @Override |
| 342 | public void onClick(View view) { | 343 | public void onClick(View view) { |
| 343 | dialog.dismiss(); | 344 | dialog.dismiss(); |
| 344 | } | 345 | } |
| 345 | }); | 346 | }); |
| 346 | dialog.show(); | 347 | dialog.show(); |
| 347 | } | 348 | } |
| 348 | 349 | ||
| 349 | private void deleteError(List<TopicBean> topicBeans) { | 350 | private void deleteError(List<TopicBean> topicBeans) { |
| 350 | List<String> list = new ArrayList<>(); | 351 | List<String> list = new ArrayList<>(); |
| 351 | for (int i = 0; i < topicBeans.size(); i++) { | 352 | for (int i = 0; i < topicBeans.size(); i++) { |
| 352 | list.add(topicBeans.get(i).getId()); | 353 | list.add(topicBeans.get(i).getId()); |
| 353 | } | 354 | } |
| 354 | NetWorks.deleteError(list, new Observer<ResponseResult>() { | 355 | NetWorks.deleteError(list, new Observer<ResponseResult>() { |
| 355 | @Override | 356 | @Override |
| 356 | public void onSubscribe(Disposable d) { | 357 | public void onSubscribe(Disposable d) { |
| 357 | 358 | ||
| 358 | } | 359 | } |
| 359 | 360 | ||
| 360 | @Override | 361 | @Override |
| 361 | public void onNext(ResponseResult responseResult) { | 362 | public void onNext(ResponseResult responseResult) { |
| 362 | if (responseResult.getCode() == 200) { | 363 | if (responseResult.getCode() == 200) { |
| 363 | adapter.setEdit(false); | 364 | adapter.setEdit(false); |
| 364 | binding.tvSave.setVisibility(View.GONE); | 365 | binding.tvSave.setVisibility(View.GONE); |
| 365 | binding.tvAdd.setVisibility(View.VISIBLE); | 366 | binding.tvAdd.setVisibility(View.VISIBLE); |
| 366 | binding.checkbox.setVisibility(View.GONE); | 367 | binding.checkbox.setVisibility(View.GONE); |
| 367 | binding.llDelete.setVisibility(View.GONE); | 368 | binding.llDelete.setVisibility(View.GONE); |
| 368 | binding.ivBack.setVisibility(View.VISIBLE); | 369 | binding.ivBack.setVisibility(View.VISIBLE); |
| 369 | binding.tvEdit.setText("编辑"); | 370 | binding.tvEdit.setText("编辑"); |
| 370 | page = 1; | 371 | page = 1; |
| 371 | refreshError(); | 372 | refreshError(); |
| 372 | } | 373 | } |
| 373 | } | 374 | } |
| 374 | 375 | ||
| 375 | @Override | 376 | @Override |
| 376 | public void onError(Throwable e) { | 377 | public void onError(Throwable e) { |
| 377 | 378 | ||
| 378 | } | 379 | } |
| 379 | 380 | ||
| 380 | @Override | 381 | @Override |
| 381 | public void onComplete() { | 382 | public void onComplete() { |
| 382 | 383 | ||
| 383 | } | 384 | } |
| 384 | }); | 385 | }); |
| 385 | } | 386 | } |
| 386 | 387 | ||
| 387 | private void showFilerGrade() { | 388 | private void showFilerGrade() { |
| 388 | binding.recycleFilter.setVisibility(View.GONE); | 389 | binding.recycleFilter.setVisibility(View.GONE); |
| 389 | binding.llFilterMore.setVisibility(View.GONE); | 390 | binding.llFilterMore.setVisibility(View.GONE); |
| 390 | if (binding.llFilterGrade.getVisibility() == View.VISIBLE) { | 391 | if (binding.llFilterGrade.getVisibility() == View.VISIBLE) { |
| 391 | binding.llFilterGrade.setVisibility(View.GONE); | 392 | binding.llFilterGrade.setVisibility(View.GONE); |
| 392 | binding.tvFilterGrade.setTextColor(getColor(R.color.text_title)); | 393 | binding.tvFilterGrade.setTextColor(getColor(R.color.text_title)); |
| 393 | Drawable drawable = getResources().getDrawable(R.drawable.ic_filter_gray); | 394 | Drawable drawable = getResources().getDrawable(R.drawable.ic_filter_gray); |
| 394 | // 这一步必须要做,否则不会显示. | 395 | // 这一步必须要做,否则不会显示. |
| 395 | drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); | 396 | drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); |
| 396 | binding.tvFilterGrade.setCompoundDrawables(null, null, drawable, null); | 397 | binding.tvFilterGrade.setCompoundDrawables(null, null, drawable, null); |
| 397 | } else { | 398 | } else { |
| 398 | binding.llFilterGrade.setVisibility(View.VISIBLE); | 399 | binding.llFilterGrade.setVisibility(View.VISIBLE); |
| 399 | if (last != null) { | 400 | if (last != null) { |
| 400 | last.setTextColor(getColor(R.color.text_title)); | 401 | last.setTextColor(getColor(R.color.text_title)); |
| 401 | Drawable drawable = getResources().getDrawable(R.drawable.ic_filter_gray); | 402 | Drawable drawable = getResources().getDrawable(R.drawable.ic_filter_gray); |
| 402 | // 这一步必须要做,否则不会显示. | 403 | // 这一步必须要做,否则不会显示. |
| 403 | drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); | 404 | drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); |
| 404 | last.setCompoundDrawables(null, null, drawable, null); | 405 | last.setCompoundDrawables(null, null, drawable, null); |
| 405 | } | 406 | } |
| 406 | binding.tvFilterGrade.setTextColor(Color.parseColor("#1C90F3")); | 407 | binding.tvFilterGrade.setTextColor(Color.parseColor("#1C90F3")); |
| 407 | Drawable drawable1 = getResources().getDrawable(R.drawable.ic_filter_blue); | 408 | Drawable drawable1 = getResources().getDrawable(R.drawable.ic_filter_blue); |
| 408 | // 这一步必须要做,否则不会显示. | 409 | // 这一步必须要做,否则不会显示. |
| 409 | drawable1.setBounds(0, 0, drawable1.getMinimumWidth(), drawable1.getMinimumHeight()); | 410 | drawable1.setBounds(0, 0, drawable1.getMinimumWidth(), drawable1.getMinimumHeight()); |
| 410 | binding.tvFilterGrade.setCompoundDrawables(null, null, drawable1, null); | 411 | binding.tvFilterGrade.setCompoundDrawables(null, null, drawable1, null); |
| 411 | last = binding.tvFilterGrade; | 412 | last = binding.tvFilterGrade; |
| 412 | } | 413 | } |
| 413 | 414 | ||
| 414 | } | 415 | } |
| 415 | 416 | ||
| 416 | private void showFilterMore() { | 417 | private void showFilterMore() { |
| 417 | binding.recycleFilter.setVisibility(View.GONE); | 418 | binding.recycleFilter.setVisibility(View.GONE); |
| 418 | binding.llFilterGrade.setVisibility(View.GONE); | 419 | binding.llFilterGrade.setVisibility(View.GONE); |
| 419 | if (binding.llFilterMore.getVisibility() == View.VISIBLE) { | 420 | if (binding.llFilterMore.getVisibility() == View.VISIBLE) { |
| 420 | binding.llFilterMore.setVisibility(View.GONE); | 421 | binding.llFilterMore.setVisibility(View.GONE); |
| 421 | binding.tvFilterMore.setTextColor(getColor(R.color.text_title)); | 422 | binding.tvFilterMore.setTextColor(getColor(R.color.text_title)); |
| 422 | Drawable drawable = getResources().getDrawable(R.drawable.ic_filter_gray); | 423 | Drawable drawable = getResources().getDrawable(R.drawable.ic_filter_gray); |
| 423 | // 这一步必须要做,否则不会显示. | 424 | // 这一步必须要做,否则不会显示. |
| 424 | drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); | 425 | drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); |
| 425 | binding.tvFilterMore.setCompoundDrawables(null, null, drawable, null); | 426 | binding.tvFilterMore.setCompoundDrawables(null, null, drawable, null); |
| 426 | } else { | 427 | } else { |
| 427 | binding.llFilterMore.setVisibility(View.VISIBLE); | 428 | binding.llFilterMore.setVisibility(View.VISIBLE); |
| 428 | if (last != null) { | 429 | if (last != null) { |
| 429 | last.setTextColor(getColor(R.color.text_title)); | 430 | last.setTextColor(getColor(R.color.text_title)); |
| 430 | Drawable drawable = getResources().getDrawable(R.drawable.ic_filter_gray); | 431 | Drawable drawable = getResources().getDrawable(R.drawable.ic_filter_gray); |
| 431 | // 这一步必须要做,否则不会显示. | 432 | // 这一步必须要做,否则不会显示. |
| 432 | drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); | 433 | drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); |
| 433 | last.setCompoundDrawables(null, null, drawable, null); | 434 | last.setCompoundDrawables(null, null, drawable, null); |
| 434 | } | 435 | } |
| 435 | binding.tvFilterMore.setTextColor(Color.parseColor("#1C90F3")); | 436 | binding.tvFilterMore.setTextColor(Color.parseColor("#1C90F3")); |
| 436 | Drawable drawable1 = getResources().getDrawable(R.drawable.ic_filter_blue); | 437 | Drawable drawable1 = getResources().getDrawable(R.drawable.ic_filter_blue); |
| 437 | // 这一步必须要做,否则不会显示. | 438 | // 这一步必须要做,否则不会显示. |
| 438 | drawable1.setBounds(0, 0, drawable1.getMinimumWidth(), drawable1.getMinimumHeight()); | 439 | drawable1.setBounds(0, 0, drawable1.getMinimumWidth(), drawable1.getMinimumHeight()); |
| 439 | binding.tvFilterMore.setCompoundDrawables(null, null, drawable1, null); | 440 | binding.tvFilterMore.setCompoundDrawables(null, null, drawable1, null); |
| 440 | last = binding.tvFilterMore; | 441 | last = binding.tvFilterMore; |
| 441 | } | 442 | } |
| 442 | } | 443 | } |
| 443 | 444 | ||
| 444 | private void setFilterAdapter(List<String> list, TextView textView, String select) { | 445 | private void setFilterAdapter(List<String> list, TextView textView, String select) { |
| 445 | if (TextUtils.isEmpty(select)) { | 446 | if (TextUtils.isEmpty(select)) { |
| 446 | select = "全部"; | 447 | select = "全部"; |
| 447 | } | 448 | } |
| 448 | binding.llFilterGrade.setVisibility(View.GONE); | 449 | binding.llFilterGrade.setVisibility(View.GONE); |
| 449 | binding.llFilterMore.setVisibility(View.GONE); | 450 | binding.llFilterMore.setVisibility(View.GONE); |
| 450 | if (last != null && (last.getId() == R.id.tv_filter_more || last.getId() == R.id.tv_filter_grade)) { | 451 | if (last != null && (last.getId() == R.id.tv_filter_more || last.getId() == R.id.tv_filter_grade)) { |
| 451 | last.setTextColor(getColor(R.color.text_title)); | 452 | last.setTextColor(getColor(R.color.text_title)); |
| 452 | Drawable drawable = getResources().getDrawable(R.drawable.ic_filter_gray); | 453 | Drawable drawable = getResources().getDrawable(R.drawable.ic_filter_gray); |
| 453 | // 这一步必须要做,否则不会显示. | 454 | // 这一步必须要做,否则不会显示. |
| 454 | drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); | 455 | drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); |
| 455 | last.setCompoundDrawables(null, null, drawable, null); | 456 | last.setCompoundDrawables(null, null, drawable, null); |
| 456 | } | 457 | } |
| 457 | if (binding.recycleFilter.getVisibility() == View.GONE) { | 458 | if (binding.recycleFilter.getVisibility() == View.GONE) { |
| 458 | if (filterAdapter != null) { | 459 | if (filterAdapter != null) { |
| 459 | filterAdapter.refresh(list, textView, select); | 460 | filterAdapter.refresh(list, textView, select); |
| 460 | } else { | 461 | } else { |
| 461 | filterAdapter = new FilterAdapter(context, new FilterAdapter.Filter() { | 462 | filterAdapter = new FilterAdapter(context, new FilterAdapter.Filter() { |
| 462 | @Override | 463 | @Override |
| 463 | public void onSelect(TextView type, String select) { | 464 | public void onSelect(TextView type, String select) { |
| 464 | switch (type.getId()) { | 465 | switch (type.getId()) { |
| 465 | case R.id.tv_filter_subject: | 466 | case R.id.tv_filter_subject: |
| 466 | subject = select; | 467 | subject = select; |
| 467 | break; | 468 | break; |
| 468 | case R.id.tv_filter_manage: | 469 | case R.id.tv_filter_manage: |
| 469 | manger = select; | 470 | manger = select; |
| 470 | break; | 471 | break; |
| 471 | } | 472 | } |
| 472 | page = 1; | 473 | page = 1; |
| 473 | filterAdapter.refresh(select); | 474 | filterAdapter.refresh(select); |
| 474 | refreshError(); | 475 | refreshError(); |
| 475 | } | 476 | } |
| 476 | }, list, textView, select); | 477 | }, list, textView, select); |
| 477 | binding.recycleFilter.setLayoutManager(new GridLayoutManager(context, 4, LinearLayoutManager.VERTICAL, false)); | 478 | binding.recycleFilter.setLayoutManager(new GridLayoutManager(context, 4, LinearLayoutManager.VERTICAL, false)); |
| 478 | binding.recycleFilter.setAdapter(filterAdapter); | 479 | binding.recycleFilter.setAdapter(filterAdapter); |
| 479 | } | 480 | } |
| 480 | binding.recycleFilter.setVisibility(View.VISIBLE); | 481 | binding.recycleFilter.setVisibility(View.VISIBLE); |
| 481 | textView.setTextColor(Color.parseColor("#1C90F3")); | 482 | textView.setTextColor(Color.parseColor("#1C90F3")); |
| 482 | Drawable drawable = getResources().getDrawable(R.drawable.ic_filter_blue); | 483 | Drawable drawable = getResources().getDrawable(R.drawable.ic_filter_blue); |
| 483 | // 这一步必须要做,否则不会显示. | 484 | // 这一步必须要做,否则不会显示. |
| 484 | drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); | 485 | drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); |
| 485 | textView.setCompoundDrawables(null, null, drawable, null); | 486 | textView.setCompoundDrawables(null, null, drawable, null); |
| 486 | last = textView; | 487 | last = textView; |
| 487 | } else { | 488 | } else { |
| 488 | if (textView.getId() == last.getId()) { | 489 | if (textView.getId() == last.getId()) { |
| 489 | binding.recycleFilter.setVisibility(View.GONE); | 490 | binding.recycleFilter.setVisibility(View.GONE); |
| 490 | textView.setTextColor(getColor(R.color.text_title)); | 491 | textView.setTextColor(getColor(R.color.text_title)); |
| 491 | Drawable drawable = getResources().getDrawable(R.drawable.ic_filter_gray); | 492 | Drawable drawable = getResources().getDrawable(R.drawable.ic_filter_gray); |
| 492 | // 这一步必须要做,否则不会显示. | 493 | // 这一步必须要做,否则不会显示. |
| 493 | drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); | 494 | drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); |
| 494 | textView.setCompoundDrawables(null, null, drawable, null); | 495 | textView.setCompoundDrawables(null, null, drawable, null); |
| 495 | } else { | 496 | } else { |
| 496 | filterAdapter.refresh(list, textView, select); | 497 | filterAdapter.refresh(list, textView, select); |
| 497 | last.setTextColor(getColor(R.color.text_title)); | 498 | last.setTextColor(getColor(R.color.text_title)); |
| 498 | Drawable drawable = getResources().getDrawable(R.drawable.ic_filter_gray); | 499 | Drawable drawable = getResources().getDrawable(R.drawable.ic_filter_gray); |
| 499 | // 这一步必须要做,否则不会显示. | 500 | // 这一步必须要做,否则不会显示. |
| 500 | drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); | 501 | drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); |
| 501 | last.setCompoundDrawables(null, null, drawable, null); | 502 | last.setCompoundDrawables(null, null, drawable, null); |
| 502 | textView.setTextColor(Color.parseColor("#1C90F3")); | 503 | textView.setTextColor(Color.parseColor("#1C90F3")); |
| 503 | Drawable drawable1 = getResources().getDrawable(R.drawable.ic_filter_blue); | 504 | Drawable drawable1 = getResources().getDrawable(R.drawable.ic_filter_blue); |
| 504 | // 这一步必须要做,否则不会显示. | 505 | // 这一步必须要做,否则不会显示. |
| 505 | drawable1.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); | 506 | drawable1.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); |
| 506 | textView.setCompoundDrawables(null, null, drawable1, null); | 507 | textView.setCompoundDrawables(null, null, drawable1, null); |
| 507 | last = textView; | 508 | last = textView; |
| 508 | } | 509 | } |
| 509 | } | 510 | } |
| 510 | } | 511 | } |
| 511 | 512 | ||
| 512 | private void refreshError() { | 513 | private void refreshError() { |
| 513 | Map map = new HashMap(); | 514 | Map map = new HashMap(); |
| 514 | if (!TextUtils.isEmpty(subject) && !"全部".equals(subject)) { | 515 | if (!TextUtils.isEmpty(subject) && !"全部".equals(subject)) { |
| 515 | map.put("subject", subject); | 516 | map.put("subject", subject); |
| 516 | } | 517 | } |
| 517 | if (!TextUtils.isEmpty(grade) && !"全部".equals(grade)) { | 518 | if (!TextUtils.isEmpty(grade) && !"全部".equals(grade)) { |
| 518 | if (!TextUtils.isEmpty(grade1) && !"全部".equals(grade1)) { | 519 | if (!TextUtils.isEmpty(grade1) && !"全部".equals(grade1)) { |
| 519 | map.put("grade", grade + grade1); | 520 | map.put("grade", grade + grade1); |
| 520 | } else { | 521 | } else { |
| 521 | map.put("grade", grade); | 522 | map.put("grade", grade); |
| 522 | } | 523 | } |
| 523 | } else { | 524 | } else { |
| 524 | if (!TextUtils.isEmpty(grade1) && !"全部".equals(grade1)) { | 525 | if (!TextUtils.isEmpty(grade1) && !"全部".equals(grade1)) { |
| 525 | map.put("grade", grade1); | 526 | map.put("grade", grade1); |
| 526 | } | 527 | } |
| 527 | } | 528 | } |
| 528 | if (!TextUtils.isEmpty(time) && !"全部".equals(time)) { | 529 | if (!TextUtils.isEmpty(time) && !"全部".equals(time)) { |
| 529 | if ("一周内".equals(time)) { | 530 | if ("一周内".equals(time)) { |
| 530 | map.put("time", 6); | 531 | map.put("time", 6); |
| 531 | } else if ("一个月内".equals(time)) { | 532 | } else if ("一个月内".equals(time)) { |
| 532 | map.put("time", 30); | 533 | map.put("time", 30); |
| 533 | } else if ("三个月内".equals(time)) { | 534 | } else if ("三个月内".equals(time)) { |
| 534 | map.put("time", 90); | 535 | map.put("time", 90); |
| 535 | } | 536 | } |
| 536 | } | 537 | } |
| 537 | if (!TextUtils.isEmpty(type) && !"全部".equals(type)) { | 538 | if (!TextUtils.isEmpty(type) && !"全部".equals(type)) { |
| 538 | map.put("type", "课内".equals(type) ? 0 : 1); | 539 | map.put("type", "课内".equals(type) ? 0 : 1); |
| 539 | } | 540 | } |
| 540 | if (!TextUtils.isEmpty(manger) && !"全部".equals(manger)) { | 541 | if (!TextUtils.isEmpty(manger) && !"全部".equals(manger)) { |
| 541 | map.put("controlFlag", "已掌握".equals(manger) ? 0 : 1); | 542 | map.put("controlFlag", "已掌握".equals(manger) ? 0 : 1); |
| 542 | } | 543 | } |
| 543 | map.put("stuId", studentBean.getStuId()); | 544 | map.put("stuId", studentBean.getStuId()); |
| 544 | map.put("pageSize", 10); | 545 | map.put("pageSize", 10); |
| 545 | map.put("pageNum", page); | 546 | map.put("pageNum", page); |
| 546 | NetWorks.getError(map, new Observer<ResponseResult<PageInfo<TopicBean>>>() { | 547 | NetWorks.getError(map, new Observer<ResponseResult<PageInfo<TopicBean>>>() { |
| 547 | @Override | 548 | @Override |
| 548 | public void onSubscribe(Disposable d) { | 549 | public void onSubscribe(Disposable d) { |
| 549 | 550 | ||
| 550 | } | 551 | } |
| 551 | 552 | ||
| 552 | @Override | 553 | @Override |
| 553 | public void onNext(ResponseResult<PageInfo<TopicBean>> result) { | 554 | public void onNext(ResponseResult<PageInfo<TopicBean>> result) { |
| 554 | if (result.getData() != null && result.getCode() == 200) { | 555 | if (result.getData() != null && result.getCode() == 200) { |
| 555 | total = result.getData().getTotal(); | 556 | total = result.getData().getTotal(); |
| 556 | List<TopicBean> topicBeans = result.getData().getList(); | 557 | List<TopicBean> topicBeans = result.getData().getList(); |
| 557 | loadError(topicBeans); | 558 | loadError(topicBeans); |
| 558 | } | 559 | } |
| 559 | } | 560 | } |
| 560 | 561 | ||
| 561 | @Override | 562 | @Override |
| 562 | public void onError(Throwable e) { | 563 | public void onError(Throwable e) { |
| 563 | e.toString(); | 564 | e.toString(); |
| 564 | } | 565 | } |
| 565 | 566 | ||
| 566 | @Override | 567 | @Override |
| 567 | public void onComplete() { | 568 | public void onComplete() { |
| 568 | 569 | ||
| 569 | } | 570 | } |
| 570 | }); | 571 | }); |
| 571 | } | 572 | } |
| 572 | 573 | ||
| 573 | private void loadError(List<TopicBean> list) { | 574 | private void loadError(List<TopicBean> list) { |
| 574 | if (list.size() > 0) { | 575 | if (list.size() > 0) { |
| 575 | binding.recycle.setVisibility(View.VISIBLE); | 576 | binding.recycle.setVisibility(View.VISIBLE); |
| 576 | binding.llEmpty.setVisibility(View.GONE); | 577 | binding.llEmpty.setVisibility(View.GONE); |
| 577 | if (adapter != null) { | 578 | if (adapter != null) { |
| 578 | if (page > 1) { | 579 | if (page > 1) { |
| 579 | adapter.addData(list); | 580 | adapter.addData(list); |
| 580 | } else { | 581 | } else { |
| 581 | adapter.refresh(list); | 582 | adapter.refresh(list); |
| 582 | } | 583 | } |
| 583 | } else { | 584 | } else { |
| 584 | adapter = new ErrorAdapter(context, list, false, new ErrorAdapter.CheckInterface() { | 585 | adapter = new ErrorAdapter(context, list, false, new ErrorAdapter.CheckInterface() { |
| 585 | @Override | 586 | @Override |
| 586 | public void onErrorCheck() { | 587 | public void onErrorCheck() { |
| 587 | if (adapter.getChecKList().size() > 0) { | 588 | if (adapter.getChecKList().size() > 0) { |
| 588 | binding.tvSave.setText("批量修改标签" + "(" + adapter.getChecKList().size() + ")"); | 589 | binding.tvSave.setText("批量修改标签" + "(" + adapter.getChecKList().size() + ")"); |
| 589 | } else { | 590 | } else { |
| 590 | binding.tvSave.setText("批量修改标签"); | 591 | binding.tvSave.setText("批量修改标签"); |
| 591 | } | 592 | } |
| 592 | } | 593 | } |
| 593 | }); | 594 | }); |
| 594 | LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false); | 595 | LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false); |
| 595 | binding.recycle.setLayoutManager(linearLayoutManager); | 596 | binding.recycle.setLayoutManager(linearLayoutManager); |
| 596 | binding.recycle.setAdapter(adapter); | 597 | binding.recycle.setAdapter(adapter); |
| 597 | binding.recycle.addOnScrollListener(new LoadMoreOnScrollListener(linearLayoutManager) { | 598 | binding.recycle.addOnScrollListener(new LoadMoreOnScrollListener(linearLayoutManager) { |
| 598 | @Override | 599 | @Override |
| 599 | public void onLoadMore(int currentPage) { | 600 | public void onLoadMore(int currentPage) { |
| 600 | if (currentPage > page) { | 601 | if (currentPage > page) { |
| 601 | new Thread(new Runnable() { | 602 | new Thread(new Runnable() { |
| 602 | @Override | 603 | @Override |
| 603 | public void run() { | 604 | public void run() { |
| 604 | try { | 605 | try { |
| 605 | runOnUiThread(new Runnable() { | 606 | runOnUiThread(new Runnable() { |
| 606 | @Override | 607 | @Override |
| 607 | public void run() { | 608 | public void run() { |
| 608 | if (page * 10 < total) { | 609 | if (page * 10 < total) { |
| 609 | page++; | 610 | page++; |
| 610 | refreshError(); | 611 | refreshError(); |
| 611 | } | 612 | } |
| 612 | } | 613 | } |
| 613 | }); | 614 | }); |
| 614 | } catch (Exception e) { | 615 | } catch (Exception e) { |
| 615 | e.printStackTrace(); | 616 | e.printStackTrace(); |
| 616 | } | 617 | } |
| 617 | } | 618 | } |
| 618 | }).start(); | 619 | }).start(); |
| 619 | } | 620 | } |
| 620 | } | 621 | } |
| 621 | }); | 622 | }); |
| 622 | } | 623 | } |
| 623 | } else { | 624 | } else { |
| 624 | if (page == 1) { | 625 | if (page == 1) { |
| 625 | binding.recycle.setVisibility(View.GONE); | 626 | binding.recycle.setVisibility(View.GONE); |
| 626 | binding.llEmpty.setVisibility(View.VISIBLE); | 627 | binding.llEmpty.setVisibility(View.VISIBLE); |
| 627 | } | 628 | } |
| 628 | } | 629 | } |
| 629 | } | 630 | } |
| 630 | 631 | ||
| 631 | @Override | 632 | @Override |
| 632 | public boolean onKeyDown(int keyCode, KeyEvent event) { | 633 | public boolean onKeyDown(int keyCode, KeyEvent event) { |
| 633 | if (keyCode == KeyEvent.KEYCODE_BACK) { | 634 | if (keyCode == KeyEvent.KEYCODE_BACK) { |
| 634 | if (adapter != null && adapter.edit) { | 635 | if (adapter != null && adapter.edit) { |
| 635 | adapter.setEdit(false); | 636 | adapter.setEdit(false); |
| 636 | binding.tvSave.setVisibility(View.GONE); | 637 | binding.tvSave.setVisibility(View.GONE); |
| 637 | binding.tvAdd.setVisibility(View.VISIBLE); | 638 | binding.tvAdd.setVisibility(View.VISIBLE); |
| 638 | binding.checkbox.setVisibility(View.GONE); | 639 | binding.checkbox.setVisibility(View.GONE); |
| 639 | binding.llDelete.setVisibility(View.GONE); | 640 | binding.llDelete.setVisibility(View.GONE); |
| 640 | binding.ivBack.setVisibility(View.VISIBLE); | 641 | binding.ivBack.setVisibility(View.VISIBLE); |
| 641 | binding.tvEdit.setText("编辑"); | 642 | binding.tvEdit.setText("编辑"); |
| 642 | adapter.notifyDataSetChanged(); | 643 | adapter.notifyDataSetChanged(); |
| 643 | } else { | 644 | } else { |
| 644 | finish(); | 645 | finish(); |
| 645 | } | 646 | } |
| 646 | return true; | 647 | return true; |
| 647 | } | 648 | } |
| 648 | return super.onKeyDown(keyCode, event); | 649 | return super.onKeyDown(keyCode, event); |
| 649 | } | 650 | } |
| 650 | 651 | ||
| 651 | @Override | 652 | @Override |
| 652 | protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { | 653 | protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { |
| 653 | super.onActivityResult(requestCode, resultCode, data); | 654 | super.onActivityResult(requestCode, resultCode, data); |
| 654 | if (requestCode == REQUEST_CODE_IMAGE && resultCode == RESULT_OK && !TextUtils.isEmpty(filePath)) { | 655 | if (requestCode == REQUEST_CODE_IMAGE && resultCode == RESULT_OK && !TextUtils.isEmpty(filePath)) { |
| 655 | Bitmap b = BitmapUtils.compress(BitmapFactory.decodeFile(filePath)); | 656 | Bitmap b = BitmapUtils.compress(BitmapFactory.decodeFile(filePath)); |
| 656 | String path = context.getExternalFilesDir("images").getPath() + "/" + String.valueOf(System.currentTimeMillis()) + CommonUtil.getStr() + ".jpg"; | 657 | String path = context.getExternalFilesDir("images").getPath() + "/" + String.valueOf(System.currentTimeMillis()) + CommonUtil.getStr() + ".jpg"; |
| 657 | CommonUtil.saveBitmapToUri(b, path); | 658 | CommonUtil.saveBitmapToUri(b, path); |
| 658 | List<String> strings = new ArrayList<>(); | 659 | List<String> strings = new ArrayList<>(); |
| 659 | Intent intent = new Intent(context, ImageActivity.class); | 660 | Intent intent = new Intent(context, ImageActivity.class); |
| 660 | strings.add(path); | 661 | strings.add(path); |
| 661 | intent.putStringArrayListExtra("images", (ArrayList<String>) strings); | 662 | intent.putStringArrayListExtra("images", (ArrayList<String>) strings); |
| 662 | startActivity(intent); | 663 | startActivity(intent); |
| 663 | } | 664 | } |
| 664 | } | 665 | } |
| 665 | 666 | ||
| 666 | public class HandlerCallBack implements IHandlerCallBack<ImageInfo> { | 667 | public class HandlerCallBack implements IHandlerCallBack<ImageInfo> { |
| 667 | private String TAG = "---ImagePicker---"; | 668 | private String TAG = "---ImagePicker---"; |
| 668 | List<ImageInfo> photoList = new ArrayList<>(); | 669 | List<ImageInfo> photoList = new ArrayList<>(); |
| 669 | 670 | ||
| 670 | @Override | 671 | @Override |
| 671 | public void onStart() { | 672 | public void onStart() { |
| 672 | Log.i(TAG, "onStart: 开启"); | 673 | Log.i(TAG, "onStart: 开启"); |
| 673 | } | 674 | } |
| 674 | 675 | ||
| 675 | @Override | 676 | @Override |
| 676 | public void onSuccess(List<ImageInfo> photoList) { | 677 | public void onSuccess(List<ImageInfo> photoList) { |
| 677 | this.photoList = photoList; | 678 | this.photoList = photoList; |
| 678 | Log.i(TAG, "onSuccess: 返回数据"); | 679 | Log.i(TAG, "onSuccess: 返回数据"); |
| 679 | } | 680 | } |
| 680 | 681 | ||
| 681 | @Override | 682 | @Override |
| 682 | public void onCancel() { | 683 | public void onCancel() { |
| 683 | Log.i(TAG, "onCancel: 取消"); | 684 | Log.i(TAG, "onCancel: 取消"); |
| 684 | } | 685 | } |
| 685 | 686 | ||
| 686 | @Override | 687 | @Override |
| 687 | public void onFinish(List<ImageInfo> selectImage) { | 688 | public void onFinish(List<ImageInfo> selectImage) { |
| 688 | if (selectImage.size() == photoList.size()) { | 689 | if (selectImage.size() == photoList.size()) { |
| 689 | List<String> strings = new ArrayList<>(); | 690 | List<String> strings = new ArrayList<>(); |
| 690 | Intent intent = new Intent(context, ImageActivity.class); | 691 | Intent intent = new Intent(context, ImageActivity.class); |
| 691 | for (ImageInfo imageInfo : selectImage) { | 692 | for (ImageInfo imageInfo : selectImage) { |
| 692 | strings.add(imageInfo.getPath()); | 693 | strings.add(imageInfo.getPath()); |
| 693 | } | 694 | } |
| 694 | intent.putStringArrayListExtra("images", (ArrayList<String>) strings); | 695 | intent.putStringArrayListExtra("images", (ArrayList<String>) strings); |
| 695 | startActivity(intent); | 696 | startActivity(intent); |
| 696 | } | 697 | } |
| 697 | } | 698 | } |
| 698 | 699 | ||
| 699 | @Override | 700 | @Override |
| 700 | public void onError() { | 701 | public void onError() { |
| 701 | Log.i(TAG, "onError: 出错"); | 702 | Log.i(TAG, "onError: 出错"); |
| 702 | } | 703 | } |
| 703 | } | 704 | } |
| 704 | 705 | ||
| 705 | @Override | 706 | @Override |
| 706 | protected void onResume() { | 707 | protected void onResume() { |
| 707 | String student = (String) SharedPreferencesUtil.getData("student", ""); | 708 | String student = (String) SharedPreferencesUtil.getData("student", ""); |
| 708 | try { | 709 | try { |
| 709 | studentBean = new Gson().fromJson(student, StudentBean.class); | 710 | studentBean = new Gson().fromJson(student, StudentBean.class); |
| 710 | } catch (Exception e) { | 711 | } catch (Exception e) { |
| 711 | 712 | ||
| 712 | } | 713 | } |
| 713 | binding.tvTitle.setText(studentBean.getStuName() + "的错题本"); | 714 | binding.tvTitle.setText(studentBean.getStuName() + "的错题本"); |
| 714 | refreshError(); | 715 | refreshError(); |
| 715 | super.onResume(); | 716 | super.onResume(); |
| 716 | } | 717 | } |
| 717 | } | 718 | } |
| 718 | 719 |