ailiboy / ebookdroid

Automatically exported from code.google.com/p/ebookdroid
0 stars 0 forks source link

Enhancement: Export/import of settings #256

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Реализуйте пожалуйста экспорт и импорт 
настроек.
Импорт можно сделать по частям (отмечать 
галочками в диалоге):
1. Позиции в читаемых книгах (или список 
последних книг + их настройки, в 
зависимости от того, что проще и 
целесообразнее).
2. Настройки программы.
Можно предусмотреть опцию автоматического 
резервирования настроек при каждом 
успешном открытии программы или книги (на 
случай сбоя, требующего сброса настроек) и 
по времени (раз в день/неделю/месяц).
Можно также в будущем предусмотреть 
синхронизацию настроек через dropbox, google docs, 
google drive (может еще отправку по email), что 
позволит читать книгу на разных 
устройствах: например, на работе или в 
дороге на телефоне, а дома на планшете.

Original issue reported on code.google.com by mindphaser2k6 on 9 Jul 2012 at 3:26

GoogleCodeExporter commented 9 years ago
Вот описание стандартного механизма 
бэкапа в Андроиде:
http://developer.android.com/guide/topics/data/backup.html

Original comment by Alexander.V.Kasatkin@gmail.com on 10 Jul 2012 at 8:25

GoogleCodeExporter commented 9 years ago
В общем решили делать своими силами - с 
сохранением в /sdcard/.org.ebookdroid/backups.
Формат - читаемый глазами JSON. 
Сделали внутри задел для 
автоматического/ручного сохранения - как в 
играх.
В первом прототипе сохраняет в 
единственный файл - такой псевдо 
автоматической режим.
Восстановление из него же. Доступно из меню 
в шкафу/библиотеке.

Надо развивать дальше.

Original comment by Alexander.V.Kasatkin@gmail.com on 10 Jul 2012 at 5:34

Attachments:

GoogleCodeExporter commented 9 years ago
Хотел отписаться по BackupManager, но решил 
сначала почитать о нем подробнее. Думаю, 
что своя сериализация лучше в плане 
переносимости и масштабируемости. BackupManager 
вроде по описанию зависит от кастомизации 
производителем и т.п., и, похоже, имеет 
ограничения на переносимость данных, а 
также не позволяет сделать экспорт/импорт 
части настроек. Последние 2 пункта будут 
нужны, если вы будете делать синхронизацию 
разных девайсов.

The backup service is not designed for synchronizing application data with 
other clients or saving data that you'd like to access during the normal 
application lifecycle. You cannot read or write backup data on demand and 
cannot access it in any way other than through the APIs provided by the Backup 
Manager.

Original comment by mindphaser2k6 on 10 Jul 2012 at 5:47

GoogleCodeExporter commented 9 years ago
Что касается r1379, то бэкап/восстановление 
работает :-)
Из замеченного мною - не восстановился 
режим поворота (хотя в jso файле явно 
записано "rotation": "SENSOR_LANDSCAPE"), но это мелочи. 
Остальные настройки вроде восстановились, 
позиция в читаемых книгах и их список тоже.
Прекрасно.

Original comment by mindphaser2k6 on 10 Jul 2012 at 5:54

GoogleCodeExporter commented 9 years ago
Похоже для перечислений восстанавливается 
значение по умолчанию.

Original comment by Alexander.V.Kasatkin@gmail.com on 13 Jul 2012 at 6:42

GoogleCodeExporter commented 9 years ago
Починил.

Сделать при старте восстановление из 
последнего бекапа, если настройки 
отсутствуют (первый старт) или были удалены?

Original comment by Alexander.V.Kasatkin@gmail.com on 14 Jul 2012 at 8:57

GoogleCodeExporter commented 9 years ago
Может лучше у юзера спросить подтверждение 
в таком случае? Например, если из-за 
какой-то настройки программа перестанет 
открываться, мы настройки сбрасываем, а они 
опять восстанавливаются, тогда надо будет 
искать и удалять файл бэкапа, что юзеру 
может быть неочевидно. В общем, на ваше 
усмотрение.

Original comment by mindphaser2k6 on 14 Jul 2012 at 12:36

GoogleCodeExporter commented 9 years ago
Ну что, текущая реализация устраивает? 
Закрываем тикет?

Original comment by Andrei.K...@gmail.com on 19 Jul 2012 at 7:41

GoogleCodeExporter commented 9 years ago
Я смотрю, вы добавили опции для 
автосохранения настроек при выходе или 
закрытии книги. А можно добавить опцию, 
чтобы оставалось N последних автобэкапов, а 
остальные удалялись? А то через неделю их 
будет несколько десятков. Ручные бэкапы 
автоматом не удалять.
Или лучше сделать отдельный тикет для 
этого?
В остальном, все отлично. Можете закрывать.
Синхронизацию между девайсами тоже лучше 
будет сделать отдельным тикетом, если вы 
захотите реализовывать эту фичу.

Original comment by mindphaser2k6 on 19 Jul 2012 at 8:17

GoogleCodeExporter commented 9 years ago
Вообще-то предполагалось, что одновременно 
будет доступен только один автоматический 
бэкап. Сейчас старые не удаляются и это 
глюк. Но можно и настройку сделать, и 
удаление автоматических.

Original comment by Alexander.V.Kasatkin@gmail.com on 19 Jul 2012 at 8:47

GoogleCodeExporter commented 9 years ago
Можно оставлять только один 
автоматический, или 3 последних, или 
настройкой. На ваше усмотрение :-)

Original comment by mindphaser2k6 on 19 Jul 2012 at 9:50

GoogleCodeExporter commented 9 years ago
Все. Сделал настройку и удаление лишних. 
Закрываем.

Original comment by Alexander.V.Kasatkin@gmail.com on 19 Jul 2012 at 10:35