Skip to content
This repository was archived by the owner on Mar 4, 2022. It is now read-only.

Commit 4fc5adf

Browse files
author
itning
committed
join class
1 parent dccf1f8 commit 4fc5adf

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

app/src/main/java/top/itning/smpandroid/client/ClassClient.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,14 @@ public interface ClassClient {
5757
@FormUrlEncoded
5858
@POST("/class/check")
5959
Observable<RestModel<StudentClassCheck>> check(@Field("longitude") double longitude, @Field("latitude") double latitude, @Field("studentClassId") String studentClassId);
60+
61+
/**
62+
* 加入班级
63+
*
64+
* @param classNum 班号
65+
* @return 加入的班级
66+
*/
67+
@FormUrlEncoded
68+
@POST("/class/join_class")
69+
Observable<RestModel<StudentClassUser>> joinClass(@Field("classNum") String classNum);
6070
}

app/src/main/java/top/itning/smpandroid/ui/activity/MainActivity.java

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ public class MainActivity extends AppCompatActivity implements StudentClassUserR
8080
private Disposable recyclerViewDataDisposable;
8181
private List<StudentClassUser> groupList;
8282
private Page<StudentClassUser> studentGroupPage;
83+
private Disposable joinDisposable;
8384

8485

8586
@Override
@@ -211,8 +212,13 @@ public void onFabClick(View view) {
211212
if (textInputLayout != null) {
212213
EditText editText = textInputLayout.getEditText();
213214
if (editText != null) {
215+
if (editText.getText().length() == 0 || "".contentEquals(editText.getText())) {
216+
Snackbar.make(coordinatorLayout, "请输入班号", Snackbar.LENGTH_LONG).show();
217+
return;
218+
}
214219
Editable editable = editText.getText();
215220
Log.d(TAG, editable.toString());
221+
doJoinClass(editable.toString());
216222
}
217223
}
218224
})
@@ -228,9 +234,26 @@ public void onFabClick(View view) {
228234
}
229235
}
230236

237+
private void doJoinClass(String classNum) {
238+
joinDisposable = HttpHelper.get(ClassClient.class)
239+
.joinClass(classNum)
240+
.subscribeOn(Schedulers.computation())
241+
.observeOn(AndroidSchedulers.mainThread())
242+
.subscribe(pageRestModel -> {
243+
groupList.add(0, pageRestModel.getData());
244+
if (rv.getAdapter() != null) {
245+
rv.getAdapter().notifyDataSetChanged();
246+
}
247+
}, HttpHelper.ErrorInvoke.get(this)
248+
.orElseCode(t -> Snackbar.make(coordinatorLayout, t.getT2() == null ? t.getT1().code() + "" : t.getT2().getMsg(), Snackbar.LENGTH_LONG).show())
249+
.orElseException(t -> {
250+
Log.w(TAG, "网络请求错误", t);
251+
Snackbar.make(coordinatorLayout, "网络请求错误", Snackbar.LENGTH_LONG).show();
252+
}));
253+
}
254+
231255
@Override
232256
public void onItemClick(View view, StudentClassUser object) {
233-
Log.d(TAG, object.toString());
234257
Intent intent = new Intent(this, ClassCheckActivity.class);
235258
intent.putExtra("data", object);
236259
startActivity(intent);
@@ -276,6 +299,9 @@ public void onBackPressed() {
276299
if (recyclerViewDataDisposable != null && !recyclerViewDataDisposable.isDisposed()) {
277300
recyclerViewDataDisposable.dispose();
278301
}
302+
if (joinDisposable != null && !joinDisposable.isDisposed()) {
303+
joinDisposable.dispose();
304+
}
279305
super.onBackPressed();
280306
}
281307
}

0 commit comments

Comments
 (0)