diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3a1dcf5..3d5b93d 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -34,14 +34,14 @@
android:label="@string/preview" />
+ android:label="@string/app_name" />
-
-
+
deleteNote(final Note note) {
+ return Observable.create(
+ new Observable.OnSubscribe() {
+ @Override
+ public void call(Subscriber super Void> subscriber) {
+ if (!subscriber.isUnsubscribed()) {
+ if (TextUtils.isEmpty(note.getNoteId())) {
+ AppDataBase.deleteNoteByLocalId(note.getId());
+ } else {
+ UpdateRe response = RetrofitUtils.excuteWithException(
+ ApiProvider.getInstance().getNoteApi().delete(note.getNoteId(), note.getUsn()));
+ if (response.isOk()) {
+ AppDataBase.deleteNoteByLocalId(note.getId());
+ updateUsnIfNeed(response.getUsn());
+ } else {
+ throw new IllegalStateException(response.getMsg());
+ }
+ }
+ subscriber.onNext(null);
+ subscriber.onCompleted();
+ }
+ }
+ });
}
private static void updateUsnIfNeed(int newUsn) {
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 1d226b4..83b4a84 100644
--- a/app/src/main/java/org/houxg/leamonax/service/NotebookService.java
+++ b/app/src/main/java/org/houxg/leamonax/service/NotebookService.java
@@ -3,6 +3,7 @@ package org.houxg.leamonax.service;
import android.util.Log;
+import org.houxg.leamonax.database.AppDataBase;
import org.houxg.leamonax.model.Account;
import org.houxg.leamonax.model.Notebook;
import org.houxg.leamonax.network.ApiProvider;
@@ -29,4 +30,9 @@ public class NotebookService {
throw new IllegalStateException(notebook.getMsg());
}
}
+
+ public static String getTitle(long notebookLocalId) {
+ Notebook notebook = AppDataBase.getNotebookByLocalId(notebookLocalId);
+ return notebook != null ? notebook.getTitle() : "";
+ }
}
diff --git a/app/src/main/java/org/houxg/leamonax/ui/MainActivity.java b/app/src/main/java/org/houxg/leamonax/ui/MainActivity.java
index d5ae425..d0c74bc 100644
--- a/app/src/main/java/org/houxg/leamonax/ui/MainActivity.java
+++ b/app/src/main/java/org/houxg/leamonax/ui/MainActivity.java
@@ -51,7 +51,7 @@ import rx.schedulers.Schedulers;
public class MainActivity extends BaseActivity implements NotebookAdapter.NotebookAdapterListener {
private static final String EXT_SHOULD_RELOAD = "ext_should_reload";
- private static final String TAG_NOTE_FRAGMENT = "note_fragment";
+ private static final String TAG_NOTE_FRAGMENT = "tag_note_fragment";
NoteFragment mNoteFragment;
@@ -129,6 +129,15 @@ public class MainActivity extends BaseActivity implements NotebookAdapter.Notebo
return super.onOptionsItemSelected(item);
}
+ @Override
+ public void onBackPressed() {
+ if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
+ mDrawerLayout.closeDrawer(GravityCompat.START);
+ } else {
+ super.onBackPressed();
+ }
+ }
+
private void fetchInfo() {
AccountService.getInfo(AccountService.getCurrent().getUserId())
.subscribeOn(Schedulers.io())
@@ -169,7 +178,6 @@ public class MainActivity extends BaseActivity implements NotebookAdapter.Notebo
public void onClickedNotebook(Notebook notebook) {
mNoteFragment.loadNoteFromLocal(notebook.getId());
mDrawerLayout.closeDrawer(GravityCompat.START, true);
- setTitle(notebook.getTitle());
}
@Override
@@ -238,7 +246,6 @@ public class MainActivity extends BaseActivity implements NotebookAdapter.Notebo
void showRecentNote() {
mNoteFragment.loadNoteFromLocal(NoteFragment.RECENT_NOTES);
mDrawerLayout.closeDrawer(GravityCompat.START, true);
- setTitle(getString(R.string.recent_notes));
}
@OnClick(R.id.rl_about)
diff --git a/app/src/main/java/org/houxg/leamonax/ui/NoteFragment.java b/app/src/main/java/org/houxg/leamonax/ui/NoteFragment.java
index 38f3415..41339ab 100644
--- a/app/src/main/java/org/houxg/leamonax/ui/NoteFragment.java
+++ b/app/src/main/java/org/houxg/leamonax/ui/NoteFragment.java
@@ -4,14 +4,8 @@ package org.houxg.leamonax.ui;
import android.app.AlertDialog;
import android.app.Fragment;
import android.content.DialogInterface;
-import android.graphics.Canvas;
-import android.graphics.DashPathEffect;
-import android.graphics.Paint;
-import android.graphics.Path;
-import android.graphics.Rect;
import android.os.Bundle;
import android.support.annotation.Nullable;
-import android.support.v13.view.ViewCompat;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
@@ -36,6 +30,7 @@ import org.houxg.leamonax.service.NoteService;
import org.houxg.leamonax.utils.DisplayUtils;
import org.houxg.leamonax.utils.NetworkUtils;
import org.houxg.leamonax.utils.ToastUtils;
+import org.houxg.leamonax.widget.DashDividerDecoration;
import java.util.Collections;
import java.util.List;
@@ -43,9 +38,7 @@ import java.util.Locale;
import butterknife.BindView;
import butterknife.ButterKnife;
-import rx.Observable;
import rx.Observer;
-import rx.Subscriber;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
@@ -206,17 +199,7 @@ public class NoteFragment extends Fragment implements NoteAdapter.NoteAdapterLis
}
private void deleteNote(final Note note) {
- Observable.create(
- new Observable.OnSubscribe() {
- @Override
- public void call(Subscriber super Void> subscriber) {
- if (!subscriber.isUnsubscribed()) {
- NoteService.deleteNote(note);
- subscriber.onNext(null);
- subscriber.onCompleted();
- }
- }
- })
+ NoteService.deleteNote(note)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer() {
@@ -248,46 +231,4 @@ public class NoteFragment extends Fragment implements NoteAdapter.NoteAdapterLis
}
}
}
-
- private static class DashDividerDecoration extends RecyclerView.ItemDecoration {
-
- private Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
- private Path mPath;
-
- public DashDividerDecoration(int color, int dashGap, int dashWidth, int height) {
- mPaint.setColor(color);
- mPaint.setStyle(Paint.Style.STROKE);
- mPaint.setStrokeWidth(height);
- mPaint.setPathEffect(new DashPathEffect(new float[]{dashWidth, dashGap}, 0));
- mPath = new Path();
- }
-
- @Override
- public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
- super.onDraw(c, parent, state);
- final int left = parent.getPaddingLeft();
- final int right = parent.getWidth() - parent.getPaddingRight();
- final int childCount = parent.getChildCount();
- final int strokeWidth = (int) mPaint.getStrokeWidth();
- for (int i = 0; i < childCount; i++) {
- final View child = parent.getChildAt(i);
- final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child
- .getLayoutParams();
- final int top = child.getBottom() + params.bottomMargin +
- Math.round(ViewCompat.getTranslationY(child));
- int offsetY = top + strokeWidth / 2;
-
- mPath.reset();
- mPath.moveTo(left, offsetY);
- mPath.lineTo(right, offsetY);
- c.drawPath(mPath, mPaint);
- }
- }
-
- @Override
- public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
- super.getItemOffsets(outRect, view, parent, state);
- outRect.set(0, 0, 0, (int) mPaint.getStrokeWidth());
- }
- }
}
diff --git a/app/src/main/java/org/houxg/leamonax/widget/DashDividerDecoration.java b/app/src/main/java/org/houxg/leamonax/widget/DashDividerDecoration.java
new file mode 100644
index 0000000..2bc8c25
--- /dev/null
+++ b/app/src/main/java/org/houxg/leamonax/widget/DashDividerDecoration.java
@@ -0,0 +1,53 @@
+package org.houxg.leamonax.widget;
+
+
+import android.graphics.Canvas;
+import android.graphics.DashPathEffect;
+import android.graphics.Paint;
+import android.graphics.Path;
+import android.graphics.Rect;
+import android.support.v13.view.ViewCompat;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+
+public class DashDividerDecoration extends RecyclerView.ItemDecoration {
+
+ private Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ private Path mPath;
+
+ public DashDividerDecoration(int color, int dashGap, int dashWidth, int height) {
+ mPaint.setColor(color);
+ mPaint.setStyle(Paint.Style.STROKE);
+ mPaint.setStrokeWidth(height);
+ mPaint.setPathEffect(new DashPathEffect(new float[]{dashWidth, dashGap}, 0));
+ mPath = new Path();
+ }
+
+ @Override
+ public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
+ super.onDraw(c, parent, state);
+ final int left = parent.getPaddingLeft();
+ final int right = parent.getWidth() - parent.getPaddingRight();
+ final int childCount = parent.getChildCount();
+ final int strokeWidth = (int) mPaint.getStrokeWidth();
+ for (int i = 0; i < childCount; i++) {
+ final View child = parent.getChildAt(i);
+ final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child
+ .getLayoutParams();
+ final int top = child.getBottom() + params.bottomMargin +
+ Math.round(ViewCompat.getTranslationY(child));
+ int offsetY = top + strokeWidth / 2;
+
+ mPath.reset();
+ mPath.moveTo(left, offsetY);
+ mPath.lineTo(right, offsetY);
+ c.drawPath(mPath, mPaint);
+ }
+ }
+
+ @Override
+ public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
+ super.getItemOffsets(outRect, view, parent, state);
+ outRect.set(0, 0, 0, (int) mPaint.getStrokeWidth());
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_note.xml b/app/src/main/res/layout/item_note.xml
index 66fdd56..8c58091 100644
--- a/app/src/main/res/layout/item_note.xml
+++ b/app/src/main/res/layout/item_note.xml
@@ -22,15 +22,14 @@
android:orientation="horizontal">
+ android:text="@string/changed"
+ android:textColor="#FFA726"
+ android:textSize="12sp" />
+ android:fontFamily="sans-serif-medium"
+ android:textColor="@color/hint_text_light"
+ android:textSize="12sp"
+ tools:text="Gradle" />
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 6c43fcd..550f982 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -7,6 +7,8 @@
- @color/colorPrimaryDark
- @color/colorAccent
- @color/menu_text
+
+ - @drawable/ic_arrow_back_white