mark the currently selected Note in the Open Note dialog

This commit is contained in:
tibbi 2016-10-24 23:19:26 +02:00
parent 6744135ef6
commit 54bcd443ec
6 changed files with 73 additions and 31 deletions

View File

@ -38,19 +38,19 @@ public class Config {
mPrefs.edit().putInt(Constants.FONT_SIZE, size).apply(); mPrefs.edit().putInt(Constants.FONT_SIZE, size).apply();
} }
public int getCurrentNoteIndex() { public int getCurrentNoteId() {
return mPrefs.getInt(Constants.CURRENT_NOTE_INDEX, 0); return mPrefs.getInt(Constants.CURRENT_NOTE_ID, 0);
} }
public void setCurrentNoteIndex(int index) { public void setCurrentNoteId(int id) {
mPrefs.edit().putInt(Constants.CURRENT_NOTE_INDEX, index).apply(); mPrefs.edit().putInt(Constants.CURRENT_NOTE_ID, id).apply();
} }
public int getWidgetNoteIndex() { public int getWidgetNoteId() {
return mPrefs.getInt(Constants.WIDGET_NOTE_ID, 1); return mPrefs.getInt(Constants.WIDGET_NOTE_ID, 1);
} }
public void setWidgetNoteIndex(int id) { public void setWidgetNoteId(int id) {
mPrefs.edit().putInt(Constants.WIDGET_NOTE_ID, id).apply(); mPrefs.edit().putInt(Constants.WIDGET_NOTE_ID, id).apply();
} }
} }

View File

@ -7,7 +7,7 @@ public class Constants {
public static final String PREFS_KEY = "Notes"; public static final String PREFS_KEY = "Notes";
public static final String IS_FIRST_RUN = "is_first_run"; public static final String IS_FIRST_RUN = "is_first_run";
public static final String IS_DARK_THEME = "is_dark_theme"; public static final String IS_DARK_THEME = "is_dark_theme";
public static final String CURRENT_NOTE_INDEX = "current_note_index"; public static final String CURRENT_NOTE_ID = "current_note_id";
public static final String WIDGET_NOTE_ID = "widget_note_id"; public static final String WIDGET_NOTE_ID = "widget_note_id";
public static final String FONT_SIZE = "font_size"; public static final String FONT_SIZE = "font_size";
public static final String WIDGET_BG_COLOR = "widget_bg_color"; public static final String WIDGET_BG_COLOR = "widget_bg_color";

View File

@ -19,6 +19,7 @@ import com.simplemobiletools.notes.R;
import com.simplemobiletools.notes.Utils; import com.simplemobiletools.notes.Utils;
import com.simplemobiletools.notes.databases.DBHelper; import com.simplemobiletools.notes.databases.DBHelper;
import com.simplemobiletools.notes.models.Note; import com.simplemobiletools.notes.models.Note;
import com.simplemobiletools.notes.views.dialogs.OpenNoteDialog;
import com.simplemobiletools.notes.views.dialogs.WidgetNoteDialog; import com.simplemobiletools.notes.views.dialogs.WidgetNoteDialog;
import java.util.List; import java.util.List;
@ -27,7 +28,7 @@ import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import butterknife.OnClick; import butterknife.OnClick;
public class MainActivity extends SimpleActivity { public class MainActivity extends SimpleActivity implements OpenNoteDialog.OpenNoteListener {
@BindView(R.id.notes_view) EditText mNotesView; @BindView(R.id.notes_view) EditText mNotesView;
@BindView(R.id.current_note_label) TextView mCurrNoteLabel; @BindView(R.id.current_note_label) TextView mCurrNoteLabel;
@BindView(R.id.current_note_title) TextView mCurrNoteTitle; @BindView(R.id.current_note_title) TextView mCurrNoteTitle;
@ -44,7 +45,7 @@ public class MainActivity extends SimpleActivity {
mDb = DBHelper.newInstance(getApplicationContext()); mDb = DBHelper.newInstance(getApplicationContext());
mNotes = mDb.getNotes(); mNotes = mDb.getNotes();
updateSelectedNote(mConfig.getCurrentNoteIndex()); updateSelectedNote(mConfig.getCurrentNoteId());
} }
@Override @Override
@ -111,10 +112,13 @@ public class MainActivity extends SimpleActivity {
new WidgetNoteDialog(this); new WidgetNoteDialog(this);
} }
private void updateSelectedNote(int index) { private void updateSelectedNote(int id) {
saveText(); saveText();
mConfig.setCurrentNoteIndex(index); mCurrentNote = mDb.getNote(id);
mCurrentNote = mNotes.get(index); if (mCurrentNote == null)
return;
mConfig.setCurrentNoteId(id);
mNotesView.setText(mCurrentNote.getValue()); mNotesView.setText(mCurrentNote.getValue());
mCurrNoteTitle.setText(mCurrentNote.getTitle()); mCurrNoteTitle.setText(mCurrentNote.getTitle());
@ -199,22 +203,7 @@ public class MainActivity extends SimpleActivity {
} }
private void displayOpenNoteDialog() { private void displayOpenNoteDialog() {
final AlertDialog.Builder builder = new AlertDialog.Builder(this); new OpenNoteDialog(this);
builder.setTitle(getResources().getString(R.string.pick_a_note));
final int cnt = mNotes.size();
String[] notes = new String[cnt];
for (int i = 0; i < cnt; i++) {
notes[i] = mNotes.get(i).getTitle();
}
builder.setItems(notes, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
updateSelectedNote(which);
}
});
builder.show();
} }
private void saveText() { private void saveText() {
@ -258,4 +247,9 @@ public class MainActivity extends SimpleActivity {
final InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); final InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mNotesView.getWindowToken(), 0); imm.hideSoftInputFromWindow(mNotesView.getWindowToken(), 0);
} }
@Override
public void noteSelected(int id) {
updateSelectedNote(id);
}
} }

View File

@ -0,0 +1,48 @@
package com.simplemobiletools.notes.views.dialogs
import android.app.Activity
import android.app.AlertDialog
import android.view.ViewGroup
import android.widget.RadioButton
import android.widget.RadioGroup
import com.simplemobiletools.notes.Config
import com.simplemobiletools.notes.R
import com.simplemobiletools.notes.databases.DBHelper
class OpenNoteDialog(val activity: Activity) : AlertDialog.Builder(activity), RadioGroup.OnCheckedChangeListener {
val dialog: AlertDialog?
init {
val config = Config.newInstance(context)
val view = activity.layoutInflater.inflate(R.layout.dialog_radio_group, null) as RadioGroup
view.setOnCheckedChangeListener(this)
val db = DBHelper.newInstance(context)
val notes = db.notes
notes.forEach {
val radioButton = activity.layoutInflater.inflate(R.layout.radio_button, null) as RadioButton
radioButton.apply {
text = it.title
isChecked = it.id == config.currentNoteId
id = it.id
}
view.addView(radioButton, RadioGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT))
}
dialog = AlertDialog.Builder(activity)
.setTitle(activity.resources.getString(R.string.pick_a_note))
.setView(view)
.create()
dialog?.show()
}
override fun onCheckedChanged(group: RadioGroup, checkedId: Int) {
(activity as OpenNoteListener).noteSelected(checkedId)
dialog?.dismiss()
}
interface OpenNoteListener {
fun noteSelected(id: Int)
}
}

View File

@ -15,7 +15,7 @@ class WidgetNoteDialog(val activity: Activity) : AlertDialog.Builder(activity),
init { init {
mConfig = Config.newInstance(context) mConfig = Config.newInstance(context)
val view = activity.layoutInflater.inflate(R.layout.dialog_change_widget_note, null) as RadioGroup val view = activity.layoutInflater.inflate(R.layout.dialog_radio_group, null) as RadioGroup
view.setOnCheckedChangeListener(this) view.setOnCheckedChangeListener(this)
val db = DBHelper.newInstance(context) val db = DBHelper.newInstance(context)
@ -24,7 +24,7 @@ class WidgetNoteDialog(val activity: Activity) : AlertDialog.Builder(activity),
val radioButton = activity.layoutInflater.inflate(R.layout.radio_button, null) as RadioButton val radioButton = activity.layoutInflater.inflate(R.layout.radio_button, null) as RadioButton
radioButton.apply { radioButton.apply {
text = it.title text = it.title
isChecked = it.id == mConfig.widgetNoteIndex isChecked = it.id == mConfig.widgetNoteId
id = it.id id = it.id
} }
view.addView(radioButton, RadioGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)) view.addView(radioButton, RadioGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT))
@ -39,7 +39,7 @@ class WidgetNoteDialog(val activity: Activity) : AlertDialog.Builder(activity),
} }
override fun onCheckedChanged(group: RadioGroup, checkedId: Int) { override fun onCheckedChanged(group: RadioGroup, checkedId: Int) {
mConfig.widgetNoteIndex = checkedId mConfig.widgetNoteId = checkedId
dialog?.dismiss() dialog?.dismiss()
} }
} }