Modify episode release times right after (trigger update).
Sync with Cloud.
Database modifications
SgShow2: add custom release time, day offset, custom time zone.
Time zone: what happens when traveling? Only update custom time zone if customizing release time? Instead of a time zone selector, add a note that the current device time zone is used.
SgEpisode2: maybe field for original time, but as changing time will be handled by just re-running the updater not really necessary.
Cloud
Add new fields to cloud entity and deploy new version.
When syncing down and custom time has changed, schedule sync for show.
When adding show, set from Cloud.
~When uploading, only upload if not null (to avoid that restoring old backups destroys values in Cloud).~ Null values are ignored by Cloud already.
UI modifications
Extract and add edit button on release time on show details, maybe even overview fragment?
Potential issues
SgShow2.nextAirdateMs: only used for display and filtering/ordering purposes; is updated by NextEpisodeUpdater which is run regularly.
SgEpisode2.firstReleasedMs: already updated as part of updating episodes, so no expected side-effects.
Manual time offset setting: will continue to be applied on top. So might be confusing.
Allow to set
Modify episode release times right after (trigger update).
Sync with Cloud.
Database modifications
SgShow2
: add custom release time, day offset, custom time zone.SgEpisode2
: maybe field for original time, but as changing time will be handled by just re-running the updater not really necessary.Cloud
UI modifications
Potential issues
SgShow2.nextAirdateMs
: only used for display and filtering/ordering purposes; is updated byNextEpisodeUpdater
which is run regularly.SgEpisode2.firstReleasedMs
: already updated as part of updating episodes, so no expected side-effects.