azizkayumov / flashcard-maker-android

Flashcard Maker is an android app that allows you to create and import e-flashcards for convenient, paperless studying.
https://play.google.com/store/apps/details?id=com.piapps.flashcardpro
GNU General Public License v2.0
63 stars 22 forks source link

Cut/Copy cards between different sets #10

Closed greyboxgt closed 3 years ago

greyboxgt commented 4 years ago

Hi Aziz:

I would like to share with you how I learned English words long time ago, before smart phones existed. I had a regular school notebook cut in half until I get a bunch little cards 51x85mm in size. Next I wrote English word on one side and Russian word on another side. When I was walking to and from school, I sorted through the cards, and each word I thought I knew, I would take out of the deck to another deck, and a some time later I would go and revise the learned words deck and if I have a problem with any learned word, I would move it to the main desk. This mechanism worked very well for me and I hope this could be reproduced in Flashcard-Maker. For this you would need to be enable the sliding up motion in study module and the question would be asked of which set should be the card moved to. For example, I move a card from set 1 to set 2. In this case, I could return the card back by opening the set 2 and slide the card back to set 1. I could have a few sets, and one set could be designated for a recycling bin, possibly with a designated sliding down motion. How do you like the idea? Is this something that can be done?

Michael.

azizkayumov commented 4 years ago

Thank you for sharing your experience. Let's say we added the sliding up motion in Study module.

For this you would need to be enable the sliding up motion in study module and the question would be asked of which set should be the card moved to.

Can we silently move the card to another "learned" set without choosing which set should the card be moved to? For this, we have a "learned" version of any set, if user slides up a card in Study module, the "learned" card will be moved there. How can you move back the cards from "learned" set to its original set? Maybe, from left navigation menu, go to "Learned" section, find the set and move back any card, smth like this: Screenshot_1586476576

greyboxgt commented 4 years ago

In my "paper" experience, I was working with the "learned" cards deck as if it was one of the sets and sorted through the cards. So if you ask me, I think the "learned" set should be treated same way as any other set. You should be able to load the learned set, sort through and move the cards to another set. You can even have a few different "learned" sets depending on the subject. In this environment you could have sets for different languages and different subjects, like biology, chemistry, A+ certifications, etc. You will be able to share the selected cards with your friend Daniel by just moving them to "for Daniel" set. This would be more flexible way of organizing things.

And I feel like this would be easier from programming point of view. If not, you could do it your way.

azizkayumov commented 4 years ago

Hi Michael,

I pushed the latest changes which may fix this issue: I tried to simulate the copy / paste or cut / paste cards between sets, just like in Windows (or Linux), you need to select the cards that you want to copy or move, then go to the target set editor and paste the selected cards:

  1. Open Editor mode of any set.
  2. Long-click on the card you want to select, 'selection options' appears on top bar (with a counter for selected cards)
  3. Once you are in a 'selection' mode, you can just click on other cards to select (no need to long click for others)
  4. Choose 'COPY' or 'MOVE' from the top bar (or 'x' to dismiss)
  5. Go back to the main screen, open Editor mode of the target set
  6. From the Editor mode, click on the hamburger icon (on bottom-left corner)
  7. Click "Paste selected cards"

Let me know if that works for you.

azizkayumov commented 4 years ago

@Engineerator you can even visit several sets, collect the necessary cards, and paste them to any target set. I initially wanted to implement the sliding up / down cards in Study mode, but it complicates the overall process (e.g. you need to visit Study mode to move cards). I think the above approach is much simpler, I hope you like it.

greyboxgt commented 4 years ago

Hi Aziz:

This is fantastic! Now I can move the cards I don't want at the moment to another card deck set instead of dumping them for good! I can't thank you enough for this new feature!

I have a few suggestions to go a little further, if you don't mind.

  1. Since copy, cut and paste are well established editing terms, I would suggest using "CUT" and "COPY" instead of "COPY" and "MOVE" you currently have in your pop-up menu. This would make it a little easier for the brain. I also searched Google - "copy/cut" gave 764,000 results; "cut/copy" produced 3,100,000 results, so the winner seems to be "CUT" and "COPY".

  2. When I am in the middle of target deck set, I would expect my paste command will paste the contents exactly where I am in the middle of the target deck, but currently the contents is pasted in the beginning of the deck set no matter where I am. If you implemented the exact paste, it would be even possible to re-sort the card sequence exactly the way I want even within my source deck set. For example, I want to move my card # 3 in my English-1 set to the position # 10 in the same English-1 set. I go to my card # 3, issue cut/move command, then move to position # 10, issue paste command and see my card # 3 became card # 10 . Wouldn't that be wonderful?

Thank you very much again!!!

Michael

azizkayumov commented 4 years ago

Thank you for the feedback, Michael.

I pushed the latest changes: 1) Renamed 'MOVE' to 'CUT' 2) Pasting cards after the current position you're currently looking at.

Let me know if that works for you.

azizkayumov commented 4 years ago

Let me close this issue, feel free to reopen if something comes up.

greyboxgt commented 4 years ago

Hi Aziz:

I would like to suggest a some changes.

  1. "Plus" icon on the left top of the card suggests addition only, but the real action is editing, not just "add" function. Therefore I would suggest the editing icon instead of "Plus" sign.

  2. Currently cut/copy function is called by holding on the card for a few seconds, but it would also be nice to have a dedicated Edit icon. Luckily we have the bottom left corner empty and available for that. Before the selection is made, the default view will show all 4 card corner icons: Edit, Delete, Select and Rotate in their default view. After Select button is pressed, or the card is pressed for 2+ seconds, the Select button turns blue. It would be nice to be able to edit, delete and rotate the cards when selection process is active. But if it is not possible, maybe it makes sense not to show the other icons at all until the selection function becomes inactive?

The back side of the card should also show all the icons. Currently Delete card icon is not available for the back side.

The suggested interface views are attached.

I hope these changes will make the interface more user friendly.

=======================================================

Default front card view:

default

=======================================================

Selected if other options are available:

selected

=======================================================

Selected if other options are not available:

selected-2

=======================================================

Default back card view:

back side

azizkayumov commented 4 years ago

@greyboxgt Thank you for your suggestion. Yes, I think it would improve overall user experience. I'll push the changes in a moment.

greyboxgt commented 4 years ago

This is marvelous! Thank you for changing this so quickly! It looks so beautiful now!

I would also like to report two little issues with the interface.

  1. When you open the set first time, the first screen does not show the card number in the left bottom part of the screen, for example, 1/45. You have to go forward where 2/45 appears and then back to see that 1/45 finally appears.

  2. When cut/copy/paste operation is completed, the number of cards in the set view is updated only after the set is re-visited after the operation is completed. For example, I move 4 cards from set A to set B. I cut 4 cards, go to set B, paste, go back to set view (root of the program called Flashcards). Set B shows correct number of cards (because I just was there). Set A still shows the old number of cards, not less 4. Only when I open set A and close it, the number of cards is displayed correctly.

Please let me know if this is not clear enough and I will post the detailed screenshots.

Thank you, Michael.

greyboxgt commented 4 years ago

Looks great!! @AbduazizKayumov: Thank you for fixing this! @Engineerator: Thank you for making the apk for me!

greyboxgt commented 3 years ago

Hi Aziz:

I noticed something interesting. I select some cards, press "DELETE" and confirm "YES" when asked "Are you sure to delete the selected cards?" If after that I continue selecting more cards, the counter does not start with "1", it starts with whatever number is left after the previous finished transaction. To me it would make sense to finish with the first batch immediately after confirming "YES".

azizkayumov commented 3 years ago

Thank you for the bug report, yes, it is strange that I forgot to restart the counter once the deletion is done. I guess the bug is one line fix, I will fix it tomorrow and push the changes to beta.

azizkayumov commented 3 years ago

Fixed in the new beta version