diff --git a/app/src/main/java/org/houxg/leamonax/adapter/NotebookAdapter.java b/app/src/main/java/org/houxg/leamonax/adapter/NotebookAdapter.java index f1d1dc9..3500ea5 100644 --- a/app/src/main/java/org/houxg/leamonax/adapter/NotebookAdapter.java +++ b/app/src/main/java/org/houxg/leamonax/adapter/NotebookAdapter.java @@ -14,6 +14,7 @@ import org.houxg.leamonax.database.AppDataBase; import org.houxg.leamonax.model.Notebook; import org.houxg.leamonax.service.AccountService; import org.houxg.leamonax.utils.CollectionUtils; +import org.houxg.leamonax.utils.ToastUtils; import java.util.ArrayList; import java.util.List; @@ -113,14 +114,16 @@ public class NotebookAdapter extends RecyclerView.Adapter addNotebook(@Query("title") String title, @Query("parentNotebookId") String parentId); + + @POST("notebook/updateNotebook") + Call updateNotebook(@Query("notebookId") String notebookId, @Query("title") String title, + @Query("parentNotebookId") String parentId, @Query("seq") int seq, @Query("usn") int usn); + } diff --git a/app/src/main/java/org/houxg/leamonax/service/NotebookService.java b/app/src/main/java/org/houxg/leamonax/service/NotebookService.java index d9f9536..a89099b 100644 --- a/app/src/main/java/org/houxg/leamonax/service/NotebookService.java +++ b/app/src/main/java/org/houxg/leamonax/service/NotebookService.java @@ -36,4 +36,24 @@ public class NotebookService { Notebook notebook = AppDataBase.getNotebookByLocalId(notebookLocalId); return notebook != null ? notebook.getTitle() : ""; } + + public static Notebook updateNotebook(String title, Notebook notebook) { + Notebook newNotebook = RetrofitUtils.excute(ApiProvider.getInstance().getNotebookApi(). + updateNotebook(notebook.getNotebookId(), title, notebook.getParentNotebookId(), notebook.getSeq(), notebook.getUsn())); + if (newNotebook == null) { + throw new IllegalStateException("Network error"); + } + if (newNotebook.isOk()) { + Account account = AccountService.getCurrent(); + if (notebook.getUsn() - account.getNotebookUsn() == 1) { + account.setNotebookUsn(notebook.getUsn()); + account.save(); + } + newNotebook.setId(notebook.getId()); + newNotebook.update(); + return notebook; + } else { + throw new IllegalStateException(notebook.getMsg()); + } + } } diff --git a/app/src/main/java/org/houxg/leamonax/ui/Navigation.java b/app/src/main/java/org/houxg/leamonax/ui/Navigation.java index 2e3a126..9e13c76 100644 --- a/app/src/main/java/org/houxg/leamonax/ui/Navigation.java +++ b/app/src/main/java/org/houxg/leamonax/ui/Navigation.java @@ -43,6 +43,7 @@ import org.houxg.leamonax.service.AccountService; import org.houxg.leamonax.service.NotebookService; import org.houxg.leamonax.utils.DisplayUtils; import org.houxg.leamonax.utils.OpenUtils; +import org.houxg.leamonax.utils.ToastUtils; import org.houxg.leamonax.widget.AlphabetDrawable; import org.houxg.leamonax.widget.TriangleView; @@ -312,6 +313,25 @@ public class Navigation { }) .show(); } + + @Override + public void onEditNotebook(final Notebook notebook) { + View view = LayoutInflater.from(mActivity).inflate(R.layout.dialog_sigle_edittext, null); + final EditText mEdit = (EditText) view.findViewById(R.id.edit); + mEdit.setText(notebook.getTitle()); + mEdit.setSelection(notebook.getTitle().length()); + new AlertDialog.Builder(mActivity) + .setTitle(R.string.update_notebook_title) + .setView(view) + .setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + updateNotebook(mEdit.getText().toString(), notebook); + } + }) + .show(); + } }); mNotebookRv.setAdapter(mNotebookAdapter); mNotebookAdapter.refresh(); @@ -323,7 +343,47 @@ public class Navigation { }); } + private void updateNotebook(final String title, final Notebook notebook) { + if (TextUtils.isEmpty(title)) { + ToastUtils.show(mActivity, R.string.toast_notebook_title_not_empty); + return; + } + Observable.create( + new Observable.OnSubscribe() { + @Override + public void call(Subscriber subscriber) { + if (!subscriber.isUnsubscribed()) { + subscriber.onNext(NotebookService.updateNotebook(title, notebook)); + subscriber.onCompleted(); + } + } + }) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + e.printStackTrace(); + } + + @Override + public void onNext(Notebook isSucceed) { + mNotebookAdapter.refresh(); + } + }); + + } + private void addNotebook(final String title, final String parentNotebookId) { + if (TextUtils.isEmpty(title)) { + ToastUtils.show(mActivity, R.string.toast_notebook_title_not_empty); + return; + } Observable.create( new Observable.OnSubscribe() { @Override diff --git a/app/src/main/java/org/houxg/leamonax/utils/DialogUtils.java b/app/src/main/java/org/houxg/leamonax/utils/DialogUtils.java index 4eda8be..bd2dd99 100644 --- a/app/src/main/java/org/houxg/leamonax/utils/DialogUtils.java +++ b/app/src/main/java/org/houxg/leamonax/utils/DialogUtils.java @@ -75,6 +75,11 @@ public class DialogUtils { public void onClickedAddNotebook(String parentNotebookId) { } + + @Override + public void onEditNotebook(Notebook notebook) { + + } }); dialog.show(); diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 9e1ba0b..0e2a310 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -108,4 +108,6 @@ 登录接口地址将会是:\n%s/api/login 我的博客 蚂蚁笔记探索 + 笔记本的名称不能为空 + 修改笔记本的名称 \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 302a697..49c3a92 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -110,4 +110,6 @@ For example, login api will be:\n%s/api/login My Blog Leanote Explore + the notebook title can\'t empty + Update notebook title