mirror of
https://github.com/ankidroid/Anki-Android.git
synced 2024-09-20 12:02:16 +02:00
Added card repositioning (#4763)
Can now reposition the card from the note edit context menu
This commit is contained in:
parent
2c8adfab51
commit
161ef99ab3
@ -53,6 +53,7 @@ import android.widget.TextView;
|
||||
import com.afollestad.materialdialogs.MaterialDialog;
|
||||
import com.ichi2.anim.ActivityTransitionAnimation;
|
||||
import com.ichi2.anki.dialogs.NoteEditorRescheduleCard;
|
||||
import com.ichi2.anki.dialogs.NoteEditorRepositionCard;
|
||||
import com.ichi2.anki.dialogs.ConfirmationDialog;
|
||||
import com.ichi2.anki.dialogs.TagsDialog;
|
||||
import com.ichi2.anki.dialogs.TagsDialog.TagsDialogListener;
|
||||
@ -806,7 +807,9 @@ public class NoteEditor extends AnkiActivity {
|
||||
menu.findItem(R.id.action_add_card_from_card_editor).setVisible(true);
|
||||
menu.findItem(R.id.action_reset_card_progress).setVisible(true);
|
||||
menu.findItem(R.id.action_reschedule_card).setVisible(true);
|
||||
menu.findItem(R.id.action_reset_card_progress).setVisible(true);
|
||||
if (mCurrentEditedCard.getType() == Card.TYPE_NEW) {
|
||||
menu.findItem(R.id.action_reposition_card).setVisible(true);
|
||||
}
|
||||
}
|
||||
if (mEditFields != null) {
|
||||
for (int i = 0; i < mEditFields.size(); i++) {
|
||||
@ -874,6 +877,10 @@ public class NoteEditor extends AnkiActivity {
|
||||
Timber.i("NoteEditor:: Reschedule button pressed");
|
||||
showDialogFragment(NoteEditorRescheduleCard.newInstance());
|
||||
return true;
|
||||
case R.id.action_reposition_card:
|
||||
Timber.i("NoteEditor:: Reposition button pressed");
|
||||
showDialogFragment(NoteEditorRepositionCard.newInstance());
|
||||
return true;
|
||||
|
||||
default:
|
||||
return super.onOptionsItemSelected(item);
|
||||
@ -981,6 +988,14 @@ public class NoteEditor extends AnkiActivity {
|
||||
getResources().getString(R.string.reschedule_card_dialog_acknowledge), true);
|
||||
}
|
||||
|
||||
public void onRepositionCard(int position) {
|
||||
Timber.i("Reposition card");
|
||||
getCol().getSched().sortCards(new long[] { mCurrentEditedCard.getId() }, position, 1, false, true);
|
||||
getCol().reset();
|
||||
mReloadRequired = true;
|
||||
UIUtils.showThemedToast(NoteEditor.this,
|
||||
getResources().getString(R.string.reposition_card_dialog_acknowledge), true);
|
||||
}
|
||||
|
||||
private void showTagsDialog() {
|
||||
if (mSelectedTags == null) {
|
||||
|
@ -0,0 +1,37 @@
|
||||
|
||||
package com.ichi2.anki.dialogs;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.DialogFragment;
|
||||
import android.text.InputType;
|
||||
|
||||
import com.afollestad.materialdialogs.MaterialDialog;
|
||||
import com.ichi2.anki.NoteEditor;
|
||||
import com.ichi2.anki.R;
|
||||
|
||||
public class NoteEditorRepositionCard extends DialogFragment {
|
||||
public static NoteEditorRepositionCard newInstance() {
|
||||
return new NoteEditorRepositionCard();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public MaterialDialog onCreateDialog(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
return new MaterialDialog.Builder(getActivity())
|
||||
.title(R.string.reposition_card_dialog_title)
|
||||
.positiveText(getResources().getString(R.string.dialog_ok))
|
||||
.negativeText(R.string.cancel)
|
||||
.inputType(InputType.TYPE_CLASS_NUMBER)
|
||||
.inputRange(1, 5) // max 5 characters (i.e., 99999)
|
||||
.input(R.string.reposition_card_dialog_message, R.string.empty_string, new MaterialDialog.InputCallback() {
|
||||
@Override
|
||||
public void onInput(MaterialDialog dialog, CharSequence text) {
|
||||
int position = Integer.parseInt(text.toString());
|
||||
((NoteEditor) getActivity()).onRepositionCard(position);
|
||||
|
||||
}
|
||||
})
|
||||
.show();
|
||||
}
|
||||
}
|
@ -14,6 +14,10 @@
|
||||
android:id="@+id/action_copy_card"
|
||||
android:enabled="false"
|
||||
android:title="@string/card_editor_copy_card"/>
|
||||
<item
|
||||
android:id="@+id/action_reposition_card"
|
||||
android:title="@string/card_editor_reposition_card"
|
||||
android:visible="false"/>
|
||||
<item
|
||||
android:id="@+id/action_reset_card_progress"
|
||||
android:title="@string/card_editor_reset_card"
|
||||
|
@ -114,6 +114,7 @@
|
||||
<string name="fact_adder_intent_title">AnkiDroid card</string>
|
||||
<string name="card_editor_add_card">Add note</string>
|
||||
<string name="card_editor_copy_card">Copy card</string>
|
||||
<string name="card_editor_reposition_card">Reposition</string>
|
||||
<string name="card_editor_reset_card">Reset progress</string>
|
||||
<string name="card_editor_reschedule_card">Reschedule card</string>
|
||||
<string name="card_editor_preview_card">Preview</string>
|
||||
|
@ -43,6 +43,9 @@
|
||||
</string-array>
|
||||
|
||||
<string name="preview_title">Preview</string>
|
||||
<string name="reposition_card_dialog_title">Reposition new card</string>
|
||||
<string name="reposition_card_dialog_message">Start position:</string>
|
||||
<string name="reposition_card_dialog_acknowledge">Card repositioned</string>
|
||||
<string name="reset_card_dialog_title">Reset card progress</string>
|
||||
<string name="reset_card_dialog_message">This card will be placed at the end of the new card queue</string>
|
||||
<string name="reset_card_dialog_acknowledge">Card reset</string>
|
||||
|
Loading…
Reference in New Issue
Block a user