Commit 82701f774db7af8265cce9b47d2789a886d56041

Authored by shixianjie
1 parent 7a017e7a6e
Exists in master

筛选功能优化

app/src/main/java/com/hjx/parent/StuHomeworkActivity.java
... ... @@ -385,9 +385,15 @@ public class StuHomeworkActivity extends BaseRxActivity<ActivityStudentHomeworkB
385 385 db.bg.setOnClickListener(v -> subjectFilter.dismiss());
386 386 subjectFilter = new PopupWindow(db.getRoot(), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
387 387 subjectFilter.setOutsideTouchable(true);
388   - subjectFilter.setOnDismissListener(this::getHomework);
389 388 }
390 389 subjectFilter.showAsDropDown(binding.anchorView);
  390 + state.onFilter = i -> {
  391 + subjectFilter.dismiss();
  392 + String subject = state.subject.getValue();
  393 + binding.ftSubject.setActivated(subject != null && !subject.isEmpty());
  394 + binding.ftSubject.setText(subject == null || subject.isEmpty() ? "学科" : subject);
  395 + getHomework();
  396 + };
391 397 }
392 398  
393 399 private void showGradeFilter() {
... ... @@ -398,9 +404,16 @@ public class StuHomeworkActivity extends BaseRxActivity<ActivityStudentHomeworkB
398 404 db.bg.setOnClickListener(v -> gradeFilter.dismiss());
399 405 gradeFilter = new PopupWindow(db.getRoot(), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
400 406 gradeFilter.setOutsideTouchable(true);
401   - gradeFilter.setOnDismissListener(this::getHomework);
402 407 }
403 408 gradeFilter.showAsDropDown(binding.anchorView);
  409 + state.onFilter = i -> {
  410 + gradeFilter.dismiss();
  411 + String grade = state.grade.getValue();
  412 + binding.ftGrade.setActivated(grade != null && !grade.isEmpty());
  413 + binding.ftGrade.setText(grade == null || grade.isEmpty() ? "年级" : grade);
  414 +
  415 + getHomework();
  416 + };
404 417 }
405 418  
406 419 private void showTermFilter() {
... ... @@ -411,9 +424,16 @@ public class StuHomeworkActivity extends BaseRxActivity<ActivityStudentHomeworkB
411 424 db.bg.setOnClickListener(v -> termFilter.dismiss());
412 425 termFilter = new PopupWindow(db.getRoot(), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
413 426 termFilter.setOutsideTouchable(true);
414   - termFilter.setOnDismissListener(this::getHomework);
415 427 }
416 428 termFilter.showAsDropDown(binding.anchorView);
  429 + state.onFilter = i -> {
  430 + termFilter.dismiss();
  431 + String term = state.term.getValue();
  432 + binding.ftTerm.setActivated(term != null && !term.isEmpty());
  433 + binding.ftTerm.setText(term == null || term.isEmpty() ? "学期" : term);
  434 +
  435 + getHomework();
  436 + };
417 437 }
418 438  
419 439 private void showFeedbackFilter() {
... ... @@ -424,9 +444,16 @@ public class StuHomeworkActivity extends BaseRxActivity<ActivityStudentHomeworkB
424 444 db.bg.setOnClickListener(v -> feedbackFilter.dismiss());
425 445 feedbackFilter = new PopupWindow(db.getRoot(), LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
426 446 feedbackFilter.setOutsideTouchable(true);
427   - feedbackFilter.setOnDismissListener(this::getHomework);
428 447 }
429 448 feedbackFilter.showAsDropDown(binding.anchorView);
  449 + state.onFilter = i -> {
  450 + feedbackFilter.dismiss();
  451 + int feedback = state.feedback.getValue().intValue();
  452 + binding.ftFeedback.setActivated(feedback != 0);
  453 + binding.ftFeedback.setText(feedback == 0 ? "反馈状态" : feedback == 1 ? "已反馈" : "未反馈");
  454 +
  455 + getHomework();
  456 + };
430 457 }
431 458  
432 459 @Override
... ... @@ -437,25 +464,31 @@ public class StuHomeworkActivity extends BaseRxActivity<ActivityStudentHomeworkB
437 464 public static class State {
438 465 public Student student;
439 466  
  467 + public Function1<Integer> onFilter = i -> { };
  468 +
440 469 public MutableLiveData<String> subject = new MutableLiveData<>("");
441 470 public void setSubject(String value) {
442 471 subject.setValue(value);
  472 + onFilter.invoke(1);
443 473 }
444 474  
445 475 public MutableLiveData<String> grade = new MutableLiveData<>("");
446 476 public void setGrade(String value) {
447 477 grade.setValue(value);
  478 + onFilter.invoke(2);
448 479 }
449 480  
450 481 public MutableLiveData<String> term = new MutableLiveData<>("");
451 482 public void setTerm(String value) {
452 483 term.setValue(value);
  484 + onFilter.invoke(3);
453 485 }
454 486  
455 487 //0:全部, 1: 已反馈, 2:未反馈
456 488 public MutableLiveData<Integer> feedback = new MutableLiveData<>(0);
457 489 public void setFeedback(int value) {
458 490 feedback.setValue(value);
  491 + onFilter.invoke(4);
459 492 }
460 493 }
461 494  
... ...
app/src/main/res/layout/activity_student_homework.xml
... ... @@ -48,7 +48,6 @@
48 48 android:layout_height="45dp"/>
49 49 <LinearLayout
50 50 android:id="@+id/filterBar"
51   - tools:visibility="gone"
52 51 android:orientation="horizontal"
53 52 android:background="@color/white"
54 53 android:paddingHorizontal="15dp"
... ...