From 13d34e55901bd17093c9f632d41e04fbc0a03f0e Mon Sep 17 00:00:00 2001 From: houxg Date: Wed, 21 Dec 2016 16:38:20 +0800 Subject: [PATCH] =?UTF-8?q?fix=20can=E2=80=99t=20save=20changes=20when=20c?= =?UTF-8?q?licked=20navigation=20button?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../leamonax/ui/edit/NoteEditActivity.java | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/houxg/leamonax/ui/edit/NoteEditActivity.java b/app/src/main/java/org/houxg/leamonax/ui/edit/NoteEditActivity.java index b1142b4..c38f959 100644 --- a/app/src/main/java/org/houxg/leamonax/ui/edit/NoteEditActivity.java +++ b/app/src/main/java/org/houxg/leamonax/ui/edit/NoteEditActivity.java @@ -106,8 +106,9 @@ public class NoteEditActivity extends BaseActivity implements EditorFragment.Edi } @Override - public boolean onOptionsItemSelected(MenuItem item) { + public boolean onOptionsItemSelected(final MenuItem item) { switch (item.getItemId()) { + case case R.id.action_save: filterUnchanged() .doOnNext(new Action1() { @@ -159,6 +160,34 @@ public class NoteEditActivity extends BaseActivity implements EditorFragment.Edi case R.id.action_settings: mPager.setCurrentItem(FRAG_SETTINGS); return true; + case android.R.id.home: + if (mPager.getCurrentItem() > FRAG_EDITOR) { + mPager.setCurrentItem(FRAG_EDITOR); + } else { + filterUnchanged() + .observeOn(AndroidSchedulers.mainThread()) + .doOnCompleted(new Action0() { + @Override + public void call() { + NoteEditActivity.super.onOptionsItemSelected(item); + } + }) + .subscribe(new Action1() { + @Override + public void call(Wrapper wrapper) { + setResult(RESULT_OK); + Log.i(TAG, wrapper.toString()); + + if (mIsNewNote && isTitleContentEmpty(wrapper.note)) { + Log.i(TAG, "remove empty note, id=" + wrapper.note.getId()); + AppDataBase.deleteNoteByLocalId(wrapper.note.getId()); + } else { + saveAsDraft(wrapper); + } + } + }); + } + return true; } return super.onOptionsItemSelected(item); }