[Приложение] мой MjDM (Android)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Аватара пользователя
hc2hunter
Сообщения: 507
Зарегистрирован: Сб дек 02, 2017 10:45 am
Откуда: RUS
Благодарил (а): 228 раз
Поблагодарили: 348 раз

Re: [Приложение] мой MjDM (Android)

Сообщение hc2hunter » Пн дек 02, 2019 9:25 am

ILGAS писал(а):
Вс дек 01, 2019 6:46 pm
Я тоже испытываю такие же не удобства, когда нужно вверх он обновляет страницу. Хром работает по другому, он обновляет страницу только когда ты находишься наверху страницы,а тут не важно если ты находишься в самом низу уже нет выхода, поднятся вверх не возможно. Как ранее предлогали сначало вниз потом уже подыматся.
Спасибо за отзыв, пересмотрю работу "свайпа" и добавлю настройку..
Но вообще странно, проверил на своих девайсах, свайп срабатывает только когда ты вверху страницы (скролл=0). Если ты где-то ниже, он прокручивает страницу вверх.
Покопаю глубже, может где-то вкралась ошибка... :|
Аватара пользователя
hc2hunter
Сообщения: 507
Зарегистрирован: Сб дек 02, 2017 10:45 am
Откуда: RUS
Благодарил (а): 228 раз
Поблагодарили: 348 раз

Re: [Приложение] мой MjDM (Android)

Сообщение hc2hunter » Пн дек 02, 2019 4:45 pm

Настройку "использовать свайп" реализовал. Сегодня потестирую, если что - завтра выпущу обновление.

Заодно отловил прикольный глюко-косяко-гугло-маразм... :) Иначе не назовешь.
В общем, обратил внимание, что если запустить на телефоне приложение YouTube и некоторое время его смотреть, web-виджеты мои на рабочем столе отмирают... (перестают обновляться и становятся белыми). Как только сворачиваешь ютуб - через указанный в настройке виджета интервал - он отживает. То есть виджету что-то мешает перерисовываться.
Виджетов типа "кнопка" это никак не касается, в них содержимое очень простое.
Думаю, вот же косяк на ровном месте...! :? Начал копать по форумам программистов и накопал:
Youtube deliberately prevent any attempt at displaying anything on top of their player. As soon as it detects this the playback will pause. This blocks the growth of a whole industry of video meme players :( One main reason for this could be to prevent the obvious attempt at competing with Google for advertising space and other imaginable features that capitalize on video material published by users.

The YouTube provided player is intended to be the only possible path to accessing Youtube content. The initial (now deprecated) Youtube API was much more liberal and allowed listing of all encoded quality versions of a clip and direct streaming of it to your own VideoView based player. This was an open path to all kinds of misuse and violations so they scrapped that in favor of a controlled solution where the Youtube player is the gateway that control how playback can occur.

The new API at least allows the player to be controlled such as seeking to a specific position and to query current position. For some apps that is hot enough a possibility for coming up with new end user value.<...>
Поясню - поскольку web-виджеты у меня реализованы через работу с системным "оверлеем", то более-менее свежее приложение Youtube думает, что намеренно пытаются что-то показать поверх него и предотвращает любые попытки показать что-либо поверх своего плеера. Это типа сделано для того, чтобы блокировать рост целой индустрии проигрывателей типа "видеомем", которые пытаются что-либо своё совать поверх Ютуба. Одной из основных причин этого может быть предотвращение очевидной попытки конкурировать с Google за рекламное пространство и другие функции, которые извлекают выгоду из видеоматериалов, публикуемых пользователями.
И так, оказывается, могут поступать и некоторые другие вендорские аппликации (например, медиа-альбом от SONY).

О как... В итоге просто блокируется обновление содержимого моего виджета, не выкидывая никаких системных ошибок. Пришлось срочно писать обвязки и цепляться хоть к каким-то прочим системным событиям, чтобы виджеты оживали после "ютубов"... :|
Вроде пофиксил... войдет в завтрашний апдейт.
Аватара пользователя
hc2hunter
Сообщения: 507
Зарегистрирован: Сб дек 02, 2017 10:45 am
Откуда: RUS
Благодарил (а): 228 раз
Поблагодарили: 348 раз

Re: [Приложение] мой MjDM (Android)

Сообщение hc2hunter » Пн дек 02, 2019 7:47 pm

v0.9.8 (build 436, code version 13)
  • использование "свайпа" для обновления страниц вынесено в Настройки
  • исправлено конкурентное использование оверлея с другими приложениями в работе web-виджетов
Как обычно - файл .аpk для тех, кто обновляется вручную
Пользователи последних релизов получают обновления напрямую с GooglePlay
Вложения
mymjdm_v0.9.8_b436_cv13.zip
(1.86 МБ) 179 скачиваний
Аватара пользователя
valerken
Сообщения: 26
Зарегистрирован: Сб ноя 02, 2019 8:12 pm
Благодарил (а): 30 раз
Поблагодарили: 19 раз

Re: [Приложение] мой MjDM (Android)

Сообщение valerken » Вт дек 03, 2019 8:42 pm

Еще раз спасибо за приложение и за труд. Само приложение использую на всех гаджетах. Но вот с виджетами не могу решить проблему:
Создаю элементарную сцену. Ставлю "Изменять размер сцены по ширине и высоте" (Впрочем, если не ставлю - ничего не меняется)
На ней элемент HTML размером 400х250 px с кодом:
<div class="mesto">ТЕКСТ</div>
CSS:
#state_212 {border: 2px solid white; border-radius:15px; background-color:silver; padding: 5px; padding-left:15px}/*"Элемент*/
.mesto {font-size:22px; color: navy;}
Вывожу на рабочий стол виджет типа "Веб-страница" с этой сценой. Получаю (см.вложение). При изменении размера виджета пропорционально меняется серое поле (это, собственно, сцена) и пустое белое поле. Сделать так, чтобы заполнить весь виджет сценой - не могу. Менял лончер (стоит Nova), менял гаджеты (Samsung, Huawei, Xiaomi) - та же картина. Другие, более сложные сцены выводятся так же.
Версия приложения - последняя. Что я делаю неправильно? Заранее спасибо за ответ.
P.S. Пожелание. Было бы здорово получить возможность выбирать, в каком углу выводить время обновления виджета. На приведенном скриншоте в левом верхнем углу время обновления закрывает надпись "ТЕКСТ". Понимаю, что при верстке это можно решить, сдвинув контент... Но все же - теряется полезная площадь сцены. Можно выключить время обновления, но это нужная лично мне информация.
Вложения
2019-12-03.jpg
2019-12-03.jpg (9.18 КБ) 3010 просмотров
За это сообщение автора valerken поблагодарил:
hc2hunter (Вт дек 03, 2019 9:55 pm)
Рейтинг: 1.16%
Аватара пользователя
hc2hunter
Сообщения: 507
Зарегистрирован: Сб дек 02, 2017 10:45 am
Откуда: RUS
Благодарил (а): 228 раз
Поблагодарили: 348 раз

Re: [Приложение] мой MjDM (Android)

Сообщение hc2hunter » Вт дек 03, 2019 9:55 pm

Думаю, все дело в вашем 400х250.
Этого поля не достаточно, чтобы целиком занять рабочую площадь браузера вашего устройства. То есть для него это не 100%, а всего лишь 50 от силы.
Если сделаете 800х500 - сразу увидите результат. Ну и соответственно font-size=44px; (или лучше размеры всех шрифтов указывать в .em).
Также можно попробовать задать размер базового объекта (наверное это у вас там тоже div) - width:100%; height:100%;

Чтобы стало понятнее в чем тут дело, попрoбуйте вставить вместо своей сцены любой сайт. Хоть google.ru . И если он будет отображаться как вам надо (а скорее всего так и будет) - можно подсмотреть в нем верстку, как они такого добиваются через параметры body и viewport :)

Про расположение времени обновления - учту пожелание.
Дальше я уже могу наворачивать функционал виджета как угодно... даже менять размер шрифта этой надписи. Тут главное не войти "в раш", что потом уже черт ногу сломит в этих настройках... :lol:
Кстати, если надпись именно в данном виджете вам не нужна - можете её просто выключить, и она перестанет загораживать надпись. Также можно поменять ей прозрачность и цвет.


p.s. буду признателен, если поделитесь результатами экспериментов, получилось или нет.
вдруг смогу чем-то помочь или удаленно сверстать страничку, чтобы вы могли у себя попробовать.
собственно, все скриншоты, что я приводил выше - это не "фотошоп", а рабочие варианты виджетов. как вы могли заметить, они всегда "влазят"
и смотрятся вполне симпатично ;)
За это сообщение автора hc2hunter поблагодарили (всего 2):
valerken (Вт дек 03, 2019 10:00 pm) • Nail (Вт дек 03, 2019 10:21 pm)
Рейтинг: 2.33%
Аватара пользователя
valerken
Сообщения: 26
Зарегистрирован: Сб ноя 02, 2019 8:12 pm
Благодарил (а): 30 раз
Поблагодарили: 19 раз

Re: [Приложение] мой MjDM (Android)

Сообщение valerken » Вт дек 03, 2019 10:18 pm

Спасибо. Вы навели меня на мысль и я понял принцип. Размеры сцены, выводимой в виджете, должны совпадать с дефолтными размерами сцены, которые установлены в Общие настройки-Сцены. Именно так выводит, насколько я понял официальное приложение Majordroid. Для меня не совсем удобно, потому что часть сцен у меня для планшета/смартфона в книжной ориентации, а часть - для альбомной. Ваше приложение с этим справляется весьма успешно. Ну, а виджет... Придется делать специальные сцены для вывода в виджете. Еще раз спасибо и творческих успехов :) Мы их ждем.
За это сообщение автора valerken поблагодарил:
hc2hunter (Ср дек 04, 2019 8:33 am)
Рейтинг: 1.16%
Аватара пользователя
hc2hunter
Сообщения: 507
Зарегистрирован: Сб дек 02, 2017 10:45 am
Откуда: RUS
Благодарил (а): 228 раз
Поблагодарили: 348 раз

Re: [Приложение] мой MjDM (Android)

Сообщение hc2hunter » Ср дек 04, 2019 8:33 am

valerken писал(а):
Вт дек 03, 2019 10:18 pm
Для меня не совсем удобно, потому что часть сцен у меня для планшета/смартфона в книжной ориентации, а часть - для альбомной. Ваше приложение с этим справляется весьма успешно. Ну, а виджет... Придется делать специальные сцены для вывода в виджете.
Совершенно верно вы все поняли.
Вполне возможно, что я просто неточно донес данную мысль в своих пояснениях и FAQах... :oops:

Что касается геометрии
Тут мы, к сожалению, натыкаемся на особенности самого Android, у которого ячейка виджета испокон веков квадратная! :shock: и принята константой 40х40 dpi.
Как вы наверняка замечали, при размещении виджета, экран делится на ячейки, и виджет занимает одну или несколько из этих ячеек по ширине и высоте. Поэтому, по мере развития экранов и разных хотелок производителей, они изобрели формулу. Чтобы конвертнуть ячейки в dpi, используется формула 70 * n – 30, где n – это количество ячеек. Т.е. если мы, например, хотим, чтобы виджет занимал 2 ячейки в ширину и 1 в высоту, мы высчитываем ширину = 70 * 2 – 30 = 110 dpi и высоту = 70 * 1 – 30 = 40 dpi. А вовсе не 80х40 !
Думаю, понятно, что на современных экранах с разрешениями 380...420 dpi с таким подходом очень быстро набегают "лишние" ячейки.
Но посколкьу в виджетах почти все используют вовсе не картинку в виде фона, а текстовую информацию и прочие контейнеры, позиционируемые друг относительно друга (как в html), то это редко кого парит.
А мы по факту имеем разные искажения на разных девайсах. А сверху на этот ужас еще накладывается портретная или альбомная ориентация... И получаем полный пипец.
А на девайсах, например, Galaxy TAB 10" с бешеными разрешениеми экрана 2,5...3К , вообще изначальный размер виджета вовсе не 1х1 ячейка, а 2х1. А на экране она выглядит при этом почти квадратной! :?
...сами понимаете, что потом получится, когда в нее вставляешь прямоугольную картинку? ;)

Соответственно, мне ничего другого не оставалось, как в виджетах пойти самым простым путем - растягиваю скриншот страницы до границ виджета. Чтобы это хоть как-то приемлемо смотрелось в большинстве ситуаций на подавляющем большинстве устройств - это самый простой способ, чтобы хоть как-то продвинуться в данном направлении и выпустить хотя бы первый релиз виджетов.
Можно попробовать добавить настройку "сохранять пропорции страницы" и включить математику, вписывая картинку по наименьшей стороне. Но тогда возможны ситуации, что прочие элементы виджета (время обновления, шестеренка и т.п.) - повиснут где-то в воздухе в отдалении от изображения страницы.
Вот что я имею ввидуПоказать
---------.png
---------.png (595.88 КБ) 2935 просмотров
Зато получаем нормальную геометрию, без искажений.
Я и думаю, это реально надо добавить как возможность. В ряде случаев это весьма оправдано!
Ну а висящие элементы... их можно просто скрыть.
По крайней мере при таком подходе можно уже не рисовать "кастомную" геометрию html для подгонки под свои девайсы.


Как я уже писал выше - можно попробовать добавить виджету "полезных настроек", позволящих поиграться с конкретными ситуациями и выбрать подходящее отображение. Но тут главное не перегнуть, чтобы простые люди, далекие от "верстки" и "dpi" не начали вешаться... :lol:
Последний раз редактировалось hc2hunter Ср дек 04, 2019 9:29 am, всего редактировалось 1 раз.
За это сообщение автора hc2hunter поблагодарили (всего 2):
valerken (Ср дек 04, 2019 9:08 am) • serghei (Чт дек 05, 2019 12:08 am)
Рейтинг: 2.33%
Аватара пользователя
hc2hunter
Сообщения: 507
Зарегистрирован: Сб дек 02, 2017 10:45 am
Откуда: RUS
Благодарил (а): 228 раз
Поблагодарили: 348 раз

Re: [Приложение] мой MjDM (Android)

Сообщение hc2hunter » Ср дек 04, 2019 9:25 am

valerken,
добавил выше картинку в ответ. посмотрите, как вам такая идея?
Аватара пользователя
valerken
Сообщения: 26
Зарегистрирован: Сб ноя 02, 2019 8:12 pm
Благодарил (а): 30 раз
Поблагодарили: 19 раз

Re: [Приложение] мой MjDM (Android)

Сообщение valerken » Ср дек 04, 2019 9:28 am

Я думаю, коль все так сложно, то заморачиваться доп.настройками не стоит. В конце концов, сделать несложную сцену специально для виджета не так уж и трудно. А выводить в нем сложную, с десятками элементов... Не уверен, что это - массовая потребность. Мне Ваши виджеты видятся в виде небольших (максимум 2х2 или 3х3) ячеек на рабочем столе. Ну, например, с информацией, кто из домашних где находится или... Да десятки применений!
И, возвращаясь к "хотелкам". Все же было бы здорово, на мой взгляд, чтобы нажатия на углы приводили к различным действиям, как это сейчас сделано для настроек. Т.е, например, при нажатии в правом верхнем углу виджет обновлялся, даже если там не выведена иконка обновления, нажатие в левом верхнем - выводило бы время обновления, а следующее нажатие - скрывало бы его и т.д. Если это, конечно, технически возможно. Я под Андроид не программировал и Ваш рассказ про принципы размещения и вывода виджетов привел меня в некий ужас :)
За это сообщение автора valerken поблагодарил:
hc2hunter (Ср дек 04, 2019 9:32 am)
Рейтинг: 1.16%
Аватара пользователя
hc2hunter
Сообщения: 507
Зарегистрирован: Сб дек 02, 2017 10:45 am
Откуда: RUS
Благодарил (а): 228 раз
Поблагодарили: 348 раз

Re: [Приложение] мой MjDM (Android)

Сообщение hc2hunter » Ср дек 04, 2019 9:32 am

valerken писал(а):
Ср дек 04, 2019 9:28 am
И, возвращаясь к "хотелкам". Все же было бы здорово, на мой взгляд, чтобы нажатия на углы приводили к различным действиям, как это сейчас сделано для настроек. Т.е, например, при нажатии в правом верхнем углу виджет обновлялся, даже если там не выведена иконка обновления, нажатие в левом верхнем - выводило бы время обновления, а следующее нажатие - скрывало бы его и т.д. Если это, конечно, технически возможно. Я под Андроид не программировал и Ваш рассказ про принципы размещения и вывода виджетов привел меня в некий ужас :)
Я Вас услышал. Технически возможно все что угодно.
Ведь я как разработчик часто погрязяю именно в теории (которую я изложил выше), и зачастую не вижу элементарных "хотелок", которые замечает пользователь, который юзает мою поделку именно как инструмент. Для того и общаемся... :oops:

Предложения вполне здравые и весьма толковые. Давайте реализуем :)
За это сообщение автора hc2hunter поблагодарил:
valerken (Ср дек 04, 2019 9:33 am)
Рейтинг: 1.16%
Ответить