Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-notes.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/it/niedermann/owncloud/notes/android')
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/activity/CreateNoteActivity.java31
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/activity/EditNoteActivity.java31
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/activity/NoteActivity.java37
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/activity/NotesListViewActivity.java38
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/widget/SingleNoteWidget.java3
5 files changed, 119 insertions, 21 deletions
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/CreateNoteActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/CreateNoteActivity.java
index d2079eab..78a3a295 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/CreateNoteActivity.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/CreateNoteActivity.java
@@ -5,19 +5,25 @@ import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
-import android.widget.EditText;
+import android.widget.TextView;
+
+import com.yydcdut.rxmarkdown.RxMDEditText;
+import com.yydcdut.rxmarkdown.RxMarkdown;
+import com.yydcdut.rxmarkdown.factory.EditFactory;
import it.niedermann.owncloud.notes.R;
import it.niedermann.owncloud.notes.persistence.NoteSQLiteOpenHelper;
+import it.niedermann.owncloud.notes.util.MarkDownUtil;
+import rx.Subscriber;
public class CreateNoteActivity extends AppCompatActivity {
- private EditText editTextField = null;
+ private RxMDEditText editTextField = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create);
- editTextField = (EditText) findViewById(R.id.createContent);
+ editTextField = (RxMDEditText) findViewById(R.id.createContent);
// Get intent, action and MIME type
Intent intent = getIntent();
@@ -29,6 +35,25 @@ public class CreateNoteActivity extends AppCompatActivity {
editTextField.setText(intent.getStringExtra(Intent.EXTRA_TEXT));
}
}
+
+ RxMarkdown.live(editTextField)
+ .config(MarkDownUtil.getMarkDownConfiguration(getApplicationContext()))
+ .factory(EditFactory.create())
+ .intoObservable()
+ .subscribe(new Subscriber<CharSequence>() {
+ @Override
+ public void onCompleted() {
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ }
+
+ @Override
+ public void onNext(CharSequence charSequence) {
+ editTextField.setText(charSequence, TextView.BufferType.SPANNABLE);
+ }
+ });
}
@Override
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/EditNoteActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/EditNoteActivity.java
index e42f61d8..0ba718e9 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/EditNoteActivity.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/EditNoteActivity.java
@@ -10,6 +10,11 @@ import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;
+import android.widget.TextView;
+
+import com.yydcdut.rxmarkdown.RxMDEditText;
+import com.yydcdut.rxmarkdown.RxMarkdown;
+import com.yydcdut.rxmarkdown.factory.EditFactory;
import java.util.Timer;
import java.util.TimerTask;
@@ -20,6 +25,8 @@ import it.niedermann.owncloud.notes.R;
import it.niedermann.owncloud.notes.model.DBNote;
import it.niedermann.owncloud.notes.persistence.NoteSQLiteOpenHelper;
import it.niedermann.owncloud.notes.util.ICallback;
+import it.niedermann.owncloud.notes.util.MarkDownUtil;
+import rx.Subscriber;
public class EditNoteActivity extends AppCompatActivity {
@@ -31,7 +38,7 @@ public class EditNoteActivity extends AppCompatActivity {
private static final long DELAY = 2000; // in ms
private static final long DELAY_AFTER_SYNC = 5000; // in ms
- private EditText content = null;
+ private RxMDEditText content = null;
private DBNote note, originalNote;
private int notePosition = 0;
private Timer timer, timerNextSync;
@@ -53,9 +60,29 @@ public class EditNoteActivity extends AppCompatActivity {
originalNote = (DBNote) savedInstanceState.getSerializable(PARAM_ORIGINAL_NOTE);
notePosition = savedInstanceState.getInt(PARAM_NOTE_POSITION);
}
- content = (EditText) findViewById(R.id.editContent);
+ content = (RxMDEditText) findViewById(R.id.editContent);
content.setText(note.getContent());
content.setEnabled(true);
+
+ RxMarkdown.live(content)
+ .config(MarkDownUtil.getMarkDownConfiguration(getApplicationContext()))
+ .factory(EditFactory.create())
+ .intoObservable()
+ .subscribe(new Subscriber<CharSequence>() {
+ @Override
+ public void onCompleted() {
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ }
+
+ @Override
+ public void onNext(CharSequence charSequence) {
+ content.setText(charSequence, TextView.BufferType.SPANNABLE);
+ }
+ });
+
db = new NoteSQLiteOpenHelper(this);
actionBar = getSupportActionBar();
if (actionBar != null) {
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/NoteActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/NoteActivity.java
index b7439a1a..af2361f3 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/NoteActivity.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/NoteActivity.java
@@ -5,19 +5,28 @@ import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.text.format.DateUtils;
import android.text.method.LinkMovementMethod;
+import android.util.Log;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
+import com.yydcdut.rxmarkdown.RxMDTextView;
+import com.yydcdut.rxmarkdown.RxMarkdown;
+import com.yydcdut.rxmarkdown.factory.TextFactory;
+
import it.niedermann.owncloud.notes.R;
import it.niedermann.owncloud.notes.model.DBNote;
+import it.niedermann.owncloud.notes.util.MarkDownUtil;
+import rx.Subscriber;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
public class NoteActivity extends AppCompatActivity {
public static final String PARAM_NOTE = EditNoteActivity.PARAM_NOTE;
private DBNote note = null;
- private TextView noteContent = null;
+ private RxMDTextView noteContent = null;
private ActionBar actionBar = null;
@Override
@@ -33,8 +42,30 @@ public class NoteActivity extends AppCompatActivity {
actionBar.setTitle(note.getTitle());
actionBar.setSubtitle(DateUtils.getRelativeDateTimeString(getApplicationContext(), note.getModified().getTimeInMillis(), DateUtils.MINUTE_IN_MILLIS, DateUtils.WEEK_IN_MILLIS, 0));
}
- noteContent = (TextView) findViewById(R.id.single_note_content);
- noteContent.setText(note.getSpannableContent());
+ noteContent = (RxMDTextView) findViewById(R.id.single_note_content);
+
+ RxMarkdown.with(note.getContent(), this)
+ .config(MarkDownUtil.getMarkDownConfiguration(getApplicationContext()))
+ .factory(TextFactory.create())
+ .intoObservable()
+ .subscribeOn(Schedulers.computation())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Subscriber<CharSequence>() {
+ @Override
+ public void onCompleted() {
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ Log.v("Note View -------------", e.getStackTrace().toString());
+ }
+
+ @Override
+ public void onNext(CharSequence charSequence) {
+ noteContent.setText(charSequence, TextView.BufferType.SPANNABLE);
+ }
+ });
+ noteContent.setText(note.getContent());
findViewById(R.id.fab_edit).setVisibility(View.GONE);
((TextView) findViewById(R.id.single_note_content)).setMovementMethod(LinkMovementMethod.getInstance());
}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/NotesListViewActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/NotesListViewActivity.java
index 7a60c533..50b6e7cb 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/NotesListViewActivity.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/NotesListViewActivity.java
@@ -8,6 +8,7 @@ import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.os.Bundle;
import android.preference.PreferenceManager;
+import android.support.design.widget.Snackbar;
import android.support.v4.view.MenuItemCompat;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity;
@@ -300,10 +301,22 @@ public class NotesListViewActivity extends AppCompatActivity implements
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
if (direction == ItemTouchHelper.LEFT || direction == ItemTouchHelper.RIGHT) {
- DBNote dbNote = (DBNote) adapter.getItem(viewHolder.getAdapterPosition());
+ final DBNote dbNote = (DBNote) adapter.getItem(viewHolder.getAdapterPosition());
db.deleteNoteAndSync((dbNote).getId());
adapter.remove(dbNote);
+ refreshList();
Log.v("Note", "Item deleted through swipe ----------------------------------------------");
+ Snackbar.make(swipeRefreshLayout, R.string.action_note_deleted, Snackbar.LENGTH_LONG)
+ .setAction(R.string.action_undo, new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ db.addNoteAndSync(dbNote);
+ refreshList();
+ Snackbar.make(swipeRefreshLayout, R.string.action_note_restored, Snackbar.LENGTH_SHORT)
+ .show();
+ }
+ })
+ .show();
}
}
});
@@ -383,22 +396,23 @@ public class NotesListViewActivity extends AppCompatActivity implements
if (resultCode == RESULT_OK) {
//not need because of db.synchronisation in createActivity
- DBNote createdNote = (DBNote) data.getExtras().getSerializable(
- CREATED_NOTE);
+ DBNote createdNote = (DBNote) data.getExtras().getSerializable(CREATED_NOTE);
adapter.add(createdNote);
//setListView(db.getNotes());
}
} else if (requestCode == show_single_note_cmd) {
if (resultCode == RESULT_OK || resultCode == RESULT_FIRST_USER) {
int notePosition = data.getExtras().getInt(EditNoteActivity.PARAM_NOTE_POSITION);
- Item oldItem = adapter.getItem(notePosition);
- if(resultCode == RESULT_FIRST_USER) {
- adapter.remove(oldItem);
- }
- if (resultCode == RESULT_OK) {
- DBNote editedNote = (DBNote) data.getExtras().getSerializable(EditNoteActivity.PARAM_NOTE);
- adapter.replace(editedNote, notePosition);
- refreshList();
+ if(adapter.getItemCount()>notePosition) {
+ Item oldItem = adapter.getItem(notePosition);
+ if (resultCode == RESULT_FIRST_USER) {
+ adapter.remove(oldItem);
+ }
+ if (resultCode == RESULT_OK) {
+ DBNote editedNote = (DBNote) data.getExtras().getSerializable(EditNoteActivity.PARAM_NOTE);
+ adapter.replace(editedNote, notePosition);
+ refreshList();
+ }
}
}
} else if (requestCode == server_settings) {
@@ -474,7 +488,7 @@ public class NotesListViewActivity extends AppCompatActivity implements
@Override
public void onBackPressed() {
- if (searchView.isIconified()) {
+ if (searchView==null || searchView.isIconified()) {
super.onBackPressed();
} else {
searchView.setIconified(true);
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/widget/SingleNoteWidget.java b/app/src/main/java/it/niedermann/owncloud/notes/android/widget/SingleNoteWidget.java
index b82d9146..6ebc7beb 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/widget/SingleNoteWidget.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/widget/SingleNoteWidget.java
@@ -22,7 +22,8 @@ public class SingleNoteWidget extends AppWidgetProvider {
public static void updateAppWidget(DBNote note, Context context, AppWidgetManager appWidgetManager, int appWidgetId) {
RemoteViews updateViews = new RemoteViews(context.getPackageName(), R.layout.widget_single_note);
if (note != null) {
- updateViews.setTextViewText(R.id.single_note_content, note.getSpannableContent());
+ //TODO switch to RxMD
+ //updateViews.setTextViewText(R.id.single_note_content, note.getSpannableContent());
Intent intent = new Intent(context, EditNoteActivity.class);
intent.putExtra(EditNoteActivity.PARAM_NOTE, note);
// http://stackoverflow.com/questions/4011178/multiple-instances-of-widget-only-updating-last-widget