* NF: Whiteboard - Stylus Only Mode
This function allows you to write with only the stylus pen when using a stylus pen such as the S-Pen. Finger gestures use scroll and button controls only.
This function have a toggle action button and a menu.
Implemented remembering stylus mode state function by adding stylus column in whiteboardState table.
Fixed meta db bug.
---------
Co-authored-by: Brayan Oliveira <69634269+BrayanDSO@users.noreply.github.com>
A default build ('play') is not allowed MANAGE_EXTERNAL_STORAGE
We want a build with this permission so we can distribute it.
`amazon` removes the camera permission, so it is not appropriate
So add a new flavor: 'full' which has BOTH camera & storage permissions
Related: 13431
Reconstruct the strings for the feedback-toast message to Reviewer actions
Basically, use strings on Anki Desktop instead of the current ones. Create new ones as needed.
For Bury and Suspend, I set the style described in the following comment as a goal:
https://github.com/ankidroid/Anki-Android/pull/12446#issuecomment-1279763351
------------------------------
- Replace `<string name="buried_card">Card buried</string>`
with `<string name="card_buried">Card buried.</string>`
- Remove `<string name="buried_note">Note buried</string>`
(Instead of the string, its counterpart on Anki Desktop will work on the toast.)
- Remove `<string name="deleted_note">Note deleted</string>`
(Instead of the string, its counterpart on Anki Desktop will work on the toast.)
- Remove `<string name="suspended_card">Card suspended</string>`
(Instead of the string, its counterpart on Anki Desktop will work on the toast.)
- Replace `<string name="suspended_note">Note suspended</string>`
with the following code:
`<plurals name="note_suspended"
<item quantity="one">%d card suspended.</item>
<item quantity="other">%d cards suspended.</item>
</plurals>`
------------------------------
Change the word order of some of the toast messages
"[Subject] (omission of [be Verb]) [Past participle]" word order is used in Anki Desktop and AnkiDroid, but it isn't on some strings of AnkiDroid
before change --> after change
-------------------------------------------------
"Buried card" --> "Card buried"
"Buried note" --> "Note buried"
"Deleted note" --> "Note deleted"
"Suspended card" --> "Card suspended"
"Suspended note" --> "Note suspended"
"Created deck" --> "Deck created"
"Renamed deck" --> "Deck renamed"
"Copied debug information to clipboard" --> "Debug information was copied to clipboard" (no omission of be Verb)
-------------------------------------------------
If a user has uninstalled the app, one of the options should
be to restore from a .colpkg
Use `ankiDroidDirectoryOverride` as code uses the location in
CollectionHelper rather than `col.path`. Defining a temporary
collection in `CollectionManager` was deemed to be too challenging
Tested with 'Don't keep activities' and failures in the import copy
Issue 5304
If a user uninstalls AnkiDroid, `preserveLegacyStorage` no longer
works
This means they have a deckPath of `/storage/emulated/0/AnkiDroid`
which can no longer be accessed.
Their data exists, but cannot be accessed unless:
* They restore from AnkiWeb
* They have a colpkg
* They manually copy the folder over
* They install a non-Google-Play copy
Options:
* Restore from AnkiWeb
* Restore folder access
(https://github.com/ankidroid/Anki-Android/wiki/Full-Storage-Access)
* Restore backup (Hidden - Not Implemented)
* Get Help (Link to: Google Group)
* Delete collection and create a new one
Issue 5304
If a migration requires a sync, and a sync completes when the app is
paused, a notification occurs prompting the user to migrate.
This is handled by `DialogHandler`, which runs in AnkiActivity.onResume
BEFORE `loadDeckCounts`.
This races with closing the collection for a storage migration.
Instead, start the task and allow it to be stopped.
Issue 5304
We need a media sync before a storage migration.
If this has been disabled, it is the user's responsibility
to perform a sync before this migration occurs
There are currently two reasons:
Fetch media on Sync is set to:
* 'Only if unmetered' & connection is metered
* Never
Issue 5304
We need to move the user's data to /Android/ to handle scoped storage
changes. Before we perform this migration, we should ensure that users
data is safe. To do this, we enforce a sync.
A user should have completed a full media sync before the migration
occurs.
This ensures that their data is up to date and can be restored if
anything goes awry with the migration
Dialog wording as discussed on the Figma, with the exception of
changing 'sync' to 'media sync'
Issue 5304
Checkbox to disable permanently if `timesStorageMigrationPostponed > 1`
+ Warning that uninstalling the app will delete/make storage inaccessible
Issue 5304