chinwag-android/app
Nik Clayton a5f479d79c
Fix saving changes to statuses when editing (#3103)
* Fix saving changes to statuses when editing

With the previous code backing out of a status editing operation where changes
had been made  (whether it was editing an existing status, a scheduled status,
or a draft) would prompt the user to save the changes as a new draft.

See https://github.com/tuskyapp/Tusky/issues/2704 and
https://github.com/tuskyapp/Tusky/issues/2705 for more detail.

The fix:

- Create an enum to represent the four different kinds of edits that can
  happen
  - Editing a new status (i.e., composing it for the first time)
  - Editing a posted status
  - Editing a draft
  - Editing a scheduled status

- Store this in ComposeOptions, and set it appropriately everywhere
  ComposeOptions is created.

- Check the edit kind when backing out of ComposeActivity, and use this to
  show one of three different dialogs as appropriate so the user can:
  - Save as new draft or discard changes
  - Continue editing or discard changes
  - Update existing draft or discard changes

Also fix ComposeViewModel.didChange(), which erroneously reported false if the
old text started with the new text (e.g., if the old text was "hello, world"
and it was edited to "hello", didChange() would not consider that to be a
change).

Fixes https://github.com/tuskyapp/Tusky/issues/2704,
https://github.com/tuskyapp/Tusky/issues/2705

* Use orEmpty extension function
2022-12-31 13:04:49 +01:00
..
schemas/com.keylesspalace.tusky.db.AppDatabase add 46.json (#3116) 2022-12-29 19:29:33 +01:00
src Fix saving changes to statuses when editing (#3103) 2022-12-31 13:04:49 +01:00
.gitignore Adds a forgotten keystore. 2017-06-02 04:47:22 -04:00
build.gradle replace Manifest package with Gradle namespace (#3007) 2022-12-06 20:32:26 +01:00
proguard-rules.pro add shrinker rules to keep bouncycastle EC classes (#2542) 2022-05-19 07:19:16 +02:00