eshcherbin / save-the-moment

SPbAU educational Android project
0 stars 0 forks source link

Устройство редактора моментов #8

Closed egor-bogomolov closed 7 years ago

egor-bogomolov commented 7 years ago

Как я себе это предствляю:

В MomentView в меню появляется кнопка "Edit". Она запускает новое activity с тем же самым моментом. Оно отличается от MomentView тем, что текст становится редактируемым, для медиа контента появляются кнопки add, возможность удаления. С помощью всего этого редактируется локальная копия полученного момента.

В toolbar'е находится кнопка "Save", которая делает две вещи: отправляет запрос БД на сохранение полученных изменений и переводит обратно в MomentView, возвращая измененный момент, чтобы его сразу отобразить.

krinkinmu commented 7 years ago
  1. Раз уж вопрос дошел до редактирования, нужно сразу подумать и над созданием новых.
  2. Сохранить в БД не достаточно, нужно еще и Drive обновить, желательно чтобы это все было консистентно (ну вроде если в БД есть запись, значит и в Drive она тоже точно есть, либо в БД может быть пометка, что запись не синхронизована с Drive-ом и ее нужно будет туда сбросить когда-нибудь, хотя первый вариант мне больше нравится).
  3. Как будут редактироваться координаты/адрес?
egor-bogomolov commented 7 years ago

Сохранить в БД не достаточно, нужно еще и Drive обновить, желательно чтобы это все было консистентно (ну вроде если в БД есть запись, значит и в Drive она тоже точно есть, либо в БД может быть пометка, что запись не синхронизована с Drive-ом и ее нужно будет туда сбросить когда-нибудь, хотя первый вариант мне больше нравится).

Да, в Drive тоже надо сделать обновление. И то, и то, видимо, будет на самом деле одним вызовом в MomentManager, который будет сразу обновлять и в БД, и в Drive.

Раз уж вопрос дошел до редактирования, нужно сразу подумать и над созданием новых.

Создание новых - передаем в редактор, откуда он вызван (из MomentView - реагируем, как описано выше, из Main - создаем локально пустой момент и редактируем его). При сохранении опять же смотрим, откуда вызвали. Если из Main - надо вызвать в MomentManager не запрос на обновление, а запрос на сохранение нового момента и запустить MomentView с получившимся моментом вместо себя.

Как будут редактироваться координаты/адрес?

Хорошо бы открыть карту и на ней выбрать точку. В этот момент будет нужен интернет, без него, видимо, редактировать локацию будет нельзя.

krinkinmu commented 7 years ago

Хорошо бы открыть карту и на ней выбрать точку. В этот момент будет нужен интернет, без него, видимо, редактировать локацию будет нельзя.

если не вводить адрес, то можно и без Интернет, БД локальная и Drive, я думаю, закеширует локально.

egor-bogomolov commented 7 years ago

Но нужна же карта, в оффлайне ее нет

krinkinmu commented 7 years ago

ЕСЛИ НЕ ВВОДИТЬ АДРЕС, то карта не нужна и Интернет соответсвенно тоже.

egor-bogomolov commented 7 years ago

Без адреса - это задавать координаты в виде двух чисел?

krinkinmu commented 7 years ago

Во-первых, без адреса все еще остается GPS, во-вторых, а почему вдруг обязательно нужно задавать абсолютно все поля?

egor-bogomolov commented 7 years ago

GPS, конечно, есть, это позволит при создании нового момента выставить ему в координаты текущее местоположение. Использовать же GPS при редактировании пользователем как-то странно - если мы хотим изменить локацию момента, то речь идет не о "заменить на мое текущее местоположение"

krinkinmu commented 7 years ago

Да, и тут в дело вступает "во-вторых".

egor-bogomolov commented 7 years ago

Я не говорю, что без интернета нельзя создать момент или отредактировать. Я говорю, что если пользователь хочет выставить ему какую-то свою локацию, то вот для этого понадобится интернет

egor-bogomolov commented 7 years ago

А все остальное пусть редактирует и без интернета.

krinkinmu commented 7 years ago

Ок, тогда я напомню свой оригинальный комментарий:

если не вводить адрес, то можно и без Интернет, БД локальная и Drive, я думаю, закеширует локально.

который вероятно нужно разъяснить, ибо, очевидно, его смысл остался для вас не понятным - интернет нужен только если пользователь хочет ввести адрес, если он не хочет, то интернет не нужен.

egor-bogomolov commented 7 years ago

Видимо, мы говорим об одном и том же.