Mishiranu / Dashchan

Imageboards client for Android
GNU General Public License v3.0
396 stars 50 forks source link

Баги в 3.0.0 #240

Open kotoshii opened 4 years ago

kotoshii commented 4 years ago

Пропала кнопка загрузки в видео, вебм загружен полностью. В mp4 так же. Screenshot_2020-09-17-23-56-17-977_com.mishiranu.dashchan.png

При загрузке картинки показывает оповещение "необходимо подтверждение" и лоадер. Раньше просто загружало. При этом когда загрузка начинается, не даёт свернуть изображение кнопкой "назад" на телефоне до окончания загрузки. Screenshot_2020-09-17-23-56-55-934_com.mishiranu.dashchan.png Screenshot_2020-09-17-23-56-58-078_com.mishiranu.dashchan.png

Mishiranu commented 4 years ago

А про что последние 2 скриншота?

kotoshii commented 4 years ago

А про что последние 2 скриншота?

При загрузке картинки показывает оповещение "необходимо подтверждение" и лоадер. Раньше просто загружало. При этом когда загрузка начинается, не даёт свернуть изображение кнопкой "назад" на телефоне до окончания загрузки.

Лоадер с надписью "обработка данных"

Mishiranu commented 4 years ago

Теперь вижу. Насколько долго это окно висит, интересно?

kotoshii commented 4 years ago

Насколько долго это окно висит, интересно?

До начала загрузки, секунды 2-3 Иногда немного дольше, может 5.

Mishiranu commented 4 years ago

Ого. Ну ка, а сколько у тебя файлов в той директории, куда сохранить пытаешься?

kotoshii commented 4 years ago

Ого. Ну ка, а сколько у тебя файлов в той директории, куда сохранить пытаешься?

Много, больше 11к. Но суть в том что до апдейта при нажатии на кнопку оно просто в фоне сохраняло (хоть и был полсекундный затуп, но при этом никаких окон и оповещений не было)

Mishiranu commented 4 years ago

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

Сделано это лишь для того, чтобы проверить, не существует ли ещё файлов с таким именем, и если существует — предложить перезаписать, сохранить рядом или отменить. Обход 11 тысяч файлов с SAF это довольно трудоёмкая процедура.

kotoshii commented 4 years ago

Сделано это лишь для того, чтобы проверить, не существует ли ещё файлов с таким именем, и если существует — предложить перезаписать, сохранить рядом или отменить. Обход 11 тысяч файлов с SAF это довольно трудоёмкая процедура.

А разве раньше этого не было? Но проверялись только недавние файлы или как? А то иногда замечал, что если картинка была загружена давно, то предупреждения что файл существует не было

Mishiranu commented 4 years ago

А разве раньше этого не было?

Раньше я напрямую к файловой системе через обычные обёртки POSIX API обращался, а теперь я использую медленный SAF. Я в треде написал, почему я так делаю. У него есть существенный недостаток в виде пониженной производительности (в несколько десятков раз), из-за этого диалог так долго висит.

Но проверялись только недавние файлы или как?

Все проверялись.

Вообще я бы посоветовал разбить свои файлы на директории, это гарантированно повысит производительность. Даже со стандартным апи, как ты говоришь, у тебя были зависания, и это на самом деле не окей. Если у тебя андроид ниже 8 (т.е. вместо sdcardfs используется тормозной fuse-драйвер), то там всё совсем плохо будет.

IS2511 commented 4 years ago

На тему обновления Страшно обновляться) Знакомый только что написал, что перестали работать видео вообще. Сидит откатывается на мои версии...

Mishiranu commented 4 years ago

Конечно страшно, я там половину кода переписал.

Но вот про то, что видео перестали работать, впервые слышу вообще.

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

Mishiranu commented 4 years ago

Проблема с отсутствием кнопок должна быть исправлена в 3.0.1 (коммит https://github.com/Mishiranu/Dashchan/commit/946063dadf6b12771eaa656fe4b51a5509946548)

vradchen commented 4 years ago

Screenshot_Настройки_20200918-064547 Не могу дать разрешение на доступ к памяти. Пробовал удалить все (проверил осталась ли папка), но ничего не помогло. Даже вручную нельзя дать доступ, в списке тупо нет дашчана. А без доступа не грузит картинки. Версия 3.0.1. андроид 8.1

shinji2009 commented 4 years ago

То же самое все. Не могу дать разрешение. Та же версия, тот же андроид

kotoshii commented 4 years ago

Вообще я бы посоветовал разбить свои файлы на директории

Ок, тогда пока буду сохранять в вообще другую папку.

Ещё кстати заметил, при разворачивании приложения где то секунду висит чёрный экран (или просто обои чёрные делаются) и тогда уже открывается дешчан. Скриншот в это время не делает.

UPD: это происходит не всегда. UPD2: теперь вообще не происходит, забей пока короче

LLlOZAHAX commented 4 years ago

На двух Meizu вот такая фигня, когда делаю всё по инструкции. https://yadi.sk/i/IHIgH5S83KdyWg

Mishiranu commented 4 years ago

Полагаю, оно так крашится. Лог будет?

LLlOZAHAX commented 4 years ago

Полагаю, оно так крашится. Лог будет?

error-1600407131713.txt

Mishiranu commented 4 years ago

Это точно не то, такой краш происходил на 3.0.0 и сейчас не актуален. Поставь 3.0.2, удали все файлы в директории errors и попробуй снова лог сними.

LLlOZAHAX commented 4 years ago

Прошу прощения, но лог не пишется. Обновился на 3.0.2, ситуация с вылетами на приложенном видео. https://yadi.sk/i/CgNk-6XQm_GUGQ

Mishiranu commented 4 years ago

Что значит не пишется? Не появляются новые файлы?

LLlOZAHAX commented 4 years ago

По рекомендации удалил предыдущий лог - новые не пишутся.

Mishiranu commented 4 years ago

Если не пишутся, значит не крашится. А в таком случае я совершенно не понимаю, что происходит. Выглядит как краш, потому что сбрасывается состояние экрана. Могу разве что предложить полный лог системы через adb снять.

N0D4N commented 3 years ago

Проблема с долгой загрузкой, блокируещем лоадере и фризящим UI остается, бесит и мешает браузингу даже если в папке загрузки мало файлов (<1к). Как вариант, можно загружать файлы в фоне, давая юзеру браузить дальше и в случае если окажется что такой файл в папке уже есть - сделать всплывашку, возможно с названием файла и превьюшкой, промтящей юзера на перезапись, пропуск или ренейминг. Или же при запуске приложения обходить всю папку с загрузками в фоновом потоке, строить хешсет, которую будет использовать загрузчик, и тогда проверка на наличие файла будет O(1) вместо текущего O(n) которое может быть очень долгим и выполняется при каждой загрузке. В таком случае будут проблемы если пользователь что-то наделал с папкой загрузок между запуском приложения и нажатия на кнопку загрузки, но в таком случае можно дефолтить на молчаливую перезапись, молчаливый пропуск или вывод ошибки через нотификации, опционально чтобы поведение это выбиралось в настройках. Ну и соответсвенно хешсет должен обновляться с каждым новым загруженным файлом.