Closed egor-bogomolov closed 7 years ago
Сохранить в БД не достаточно, нужно еще и Drive обновить, желательно чтобы это все было консистентно (ну вроде если в БД есть запись, значит и в Drive она тоже точно есть, либо в БД может быть пометка, что запись не синхронизована с Drive-ом и ее нужно будет туда сбросить когда-нибудь, хотя первый вариант мне больше нравится).
Да, в Drive тоже надо сделать обновление. И то, и то, видимо, будет на самом деле одним вызовом в MomentManager, который будет сразу обновлять и в БД, и в Drive.
Раз уж вопрос дошел до редактирования, нужно сразу подумать и над созданием новых.
Создание новых - передаем в редактор, откуда он вызван (из MomentView - реагируем, как описано выше, из Main - создаем локально пустой момент и редактируем его). При сохранении опять же смотрим, откуда вызвали. Если из Main - надо вызвать в MomentManager не запрос на обновление, а запрос на сохранение нового момента и запустить MomentView с получившимся моментом вместо себя.
Как будут редактироваться координаты/адрес?
Хорошо бы открыть карту и на ней выбрать точку. В этот момент будет нужен интернет, без него, видимо, редактировать локацию будет нельзя.
Хорошо бы открыть карту и на ней выбрать точку. В этот момент будет нужен интернет, без него, видимо, редактировать локацию будет нельзя.
если не вводить адрес, то можно и без Интернет, БД локальная и Drive, я думаю, закеширует локально.
Но нужна же карта, в оффлайне ее нет
ЕСЛИ НЕ ВВОДИТЬ АДРЕС, то карта не нужна и Интернет соответсвенно тоже.
Без адреса - это задавать координаты в виде двух чисел?
Во-первых, без адреса все еще остается GPS, во-вторых, а почему вдруг обязательно нужно задавать абсолютно все поля?
GPS, конечно, есть, это позволит при создании нового момента выставить ему в координаты текущее местоположение. Использовать же GPS при редактировании пользователем как-то странно - если мы хотим изменить локацию момента, то речь идет не о "заменить на мое текущее местоположение"
Да, и тут в дело вступает "во-вторых".
Я не говорю, что без интернета нельзя создать момент или отредактировать. Я говорю, что если пользователь хочет выставить ему какую-то свою локацию, то вот для этого понадобится интернет
А все остальное пусть редактирует и без интернета.
Ок, тогда я напомню свой оригинальный комментарий:
если не вводить адрес, то можно и без Интернет, БД локальная и Drive, я думаю, закеширует локально.
который вероятно нужно разъяснить, ибо, очевидно, его смысл остался для вас не понятным - интернет нужен только если пользователь хочет ввести адрес, если он не хочет, то интернет не нужен.
Видимо, мы говорим об одном и том же.
Как я себе это предствляю:
В MomentView в меню появляется кнопка "Edit". Она запускает новое activity с тем же самым моментом. Оно отличается от MomentView тем, что текст становится редактируемым, для медиа контента появляются кнопки add, возможность удаления. С помощью всего этого редактируется локальная копия полученного момента.
В toolbar'е находится кнопка "Save", которая делает две вещи: отправляет запрос БД на сохранение полученных изменений и переводит обратно в MomentView, возвращая измененный момент, чтобы его сразу отобразить.