Pull to refresh

Comments 66

Не сочтите за каприз, но есть шанс увидеть версию с пофиксенными багами и фонариком, как в новой, но дизайном, как в старой? Очень уж душевно смотрится.
Спасибо. :)
Есть мысль на будущее — выбирать различное оформление. С этим экспериментировал в своём другом приложении «Таймер трудового человека».
Но на очень далёкое будущее.
Не в обиду будь сказано, но именно функции передачи данных и контроля за поверочным интервалом вполне себе реализованы в приложении Госуслуги Москвы. Не скажу за другие регионы, но в столице оно работает (иногда коряво, но в целом устраивает).

Ваше приложение хорошо дополнительными плюшками, которых нет в ДИТовской поделке.
Не, не в обиду.
Изначально, как я написал — прототип представлял из себя записную книжку, с удобным образом организованным редактором. Потом я добавил к нему различных плюшек.
А уж если взял старт, то плюшки еще буду добавлять. Планов — громадьё. И напоминалка, и различные стили оформления, и еще куча дополнений.
Классная программа, спасибо!
Еще бы синхронизацию с облаком и было бы совсем шикарно )))
Спасибо, за отзыв.
Облако — в планах на будущее.
Программа и статья очень понравились. Спасибо. Думаю, в качестве плюшки, а может быть нового приложения, вам надо добавить Диалоги со спамерами. :)
Спасибо и вам за отзыв.
Есть еще несколько диалогов.
Если интересно, можете несколько моих историй посмотреть на Пикабу
Спасибо очень полезная программа!
Правда обнаружил одну багу: ввёл самые первые показания со счётчиков, и система мне сразу показала огромный расход. Хотелось бы отметить первоначальные показания как начало отсчёта, и соответственно нулевым расходом.
Спасибо и вам.
Да, есть такое дело. В следующей версии добавлю возможность ввести первоначальные данные.
Скрытый текст
        if(view == null){
            view = mLayoutInflater.inflate(R.layout.item_insertamount, parent, false);

            etTariff = (EditText)view.findViewById(R.id.et_amount_tariffInfo);
            etTariff.addTextChangedListener(new AmountTextWatcher(view, etTariff, amountList));

            etAmount = (EditText)view.findViewById(R.id.et_amount_Amount);
            etAmount.addTextChangedListener(new AmountTextWatcher(view, etAmount, amountList));
        }
        etAmount.setTag(position);
        etAmount.setText(String.valueOf(amountList.get(position).getAmount()));
        etAmount.setFilters(new InputFilter[]{new DigitalFilter(3)});

Извиняюсь, но здесь у Вас явно логическая ошибка (которая могла и привести к тем волшебным багам, которые вы описываете).
Строки
            etTariff = (EditText)view.findViewById(R.id.et_amount_tariffInfo);
            etAmount = (EditText)view.findViewById(R.id.et_amount_Amount);

Явно надо вынести из условия, иначе при скролле вы рискуете работать не с тем, чем думаете. А ещё лучше перейте на концепцию Holder и/или на RecyclerView вместо ListView.
Костыль с тегом тоже выглядит как совсем костыль — проще передать позицию в Watcher.
Хотя сама идея сохранять как только пользователь что-то ввёл тоже не очень правильная — старая добрая кнопка OK тут уместнее.
Уточните пожалуйста. вы имеете в виду вынести за if?
На RV потихоньку перехожу. Штука удобная.
То, что поиск по id должен быть всегда — вне зависимости от того, view == null или нет.
Логика работы адаптера — «дай мне вьюху для элемента номер n, у меня тут вот осталась вьюха от элемента номер x, может понадобится тебе (а может и не осталась)».

Адаптер должен создать вьюху при необходимости (если это самое начало работы приложения, когда старых вьюх ещё нет) и заполнить её новыми данными. У Вас же поиск дочерних вьюх происходит только в том случае, когда нет старой вьюхи, и если она всё-таки придёт — Вы будете работать с вьюхами от другого элемента просто потому, что ссылки на них остались в адаптере. Лучше вообще убрать поля дочерних вьюх в адаптере и оставить только локальные переменные в методе:
        if(view == null) { // если не осталось старой вьюхи ...
            // ... создадим новую
            view = mLayoutInflater.inflate(R.layout.item_insertamount, parent, false);
        }
        // обновляем все данные вне зависимости от того, была у нас там вьюха или нет
        EditText etAmount = (EditText)view.findViewById(R.id.et_amount_Amount);
        etAmount.setText(String.valueOf(amountList.get(position).getAmount()));
        ...
Спасибо за статью и за программу!

P.S. Особенно порадовал первый диалог со спамером, в котором сочетаются:

У вас заканчивается срок службы!
Ну тогда вам пришлют письменное извещение!!!

и

Говорите адрес!
И вам спасибо, за хорошие слова.

А эти спамеры, вообще какие-то странные. Я когда звонил в одну контору, из здания где вода была только в аквариуме, мне с ходу выпалили, что определили адрес по телефону, и нужно менять счётчики незамедлительно.
Предлагаю убрать точку в названии на Google Play, странно смотрится.
Понравились ваши «диалоги со спамерами».
Навеяло
</В университете начинается лекция по психологии. Удобно устроившись за кафедрой, профессор:
— Сегодня, товарищи студенты, мы будем с вами изучать три сходные стадии психики человека: удивление, раздражение и гнев. Рассмотрим на конкретном примере…
Достав из портфеля телефон, профессор набирает первый попавшийся номер.
— Здравствуйте, а Васю можно?
— Знаете, здесь такой не живет…
— Вот, — улыбаясь, говорит профессор, — это всего лишь легкое удивление. Смотрите дальше.
Набирает номер снова.
— Здравствуйте, а Вася не подошел?
— Сказал же, нет тут таких…
Потирая руки, профессор заговорщицки подмигивает аудитории.
— Клюнул. Ну, а теперь…
Третий раз набирает номер.
— Так Васи нет?
— Да пошел ты…
— Что ж, товарищи, надеюсь, пример вам понятен. Приступим к теоретической части…
С первой парты встает молодой человек.
— Простите, профессор, но вы забыли четвертую стадию.
— Это какую же?
— Стадию полного офигения.
Подойдя к кафедре, молодой человек набирает номер.
— Добрый день. Это Вася. Мне никто не звонил?>
Спасибо. )
Поначалу спамеры бесили. Ругался с ними, требовал убрать данные из их списка. А потом просто начал прикалываться над ними.
Кстати интересная статистика — после подобного диалога, спамеры перестают названивать.
А я просил перезвонить вечером, после девяти. После этого, не то что конкретный спаммер, вообще все спаммеры звонить перестали.
У меня маленькие дети, и на звонки после девяти я реагирую нецензурно )
Программа пригодится, спасибо. Если одна из целей — занять руки и мозг, то вопрос отпадает. В противном случае не проще было бы вести учет и статистику например в Google Tables? :)
Спасибо за отзыв.
Хотелось своего, удобно организованного. Плюс всякие маленькие добавления (типа фонарика при вводе данных, или просмотра расходов за некоторый период), которые облегчают жизнь.
Класс адаптера вряд ли буду копировать, но ответы спамерам-точно:)
Поддерживается ли несколько счетчиков холодной/горячей воды в одной квартире? (например, в кухне и в ванной отдельные горячие стояки, и, соответственно, установлено два счетчика — каждый со своими показаниями)
Да, конечно.
По квартире потом еще выдастся сумма.
А несколько квартир?
Тоже есть.
В общем списке получите еще и сумму по всем квартирам.
Тема актуальная, спаммеры конкретно задолбали звонить на городской телефон, вопрос кто им сливает базы и как закон о персональных данных они исполняют с 1июля.

По поводу передачи показаний: Когда нам делали кап.ремонт поставили счетчики от которых идут провода в какуюто коробочку(не разбирал) для дистанционного снятия показаний. На коробочке написано POSITIONER и наклейка Геркон 3.0(М). На вопрос когда они включат эту систему, было сказано что если у ДЭЗ есть оборудование для считывания — то будет работать, прошло 7 лет и все по прежнему в ручном режиме. На лестничной площадке сделаны тоже какието блоки, по-моему это связано. По идее както можно считывать эти данные в Вашу программу.

Спонсорами этого приложения вполне могут стать водоспаммеры:) А вообще есть в Москве нормальная контора «поверяющая» мне счетчики несколько лет, все действо занимает 5 мин., 80% времени на оформление документов, стоит 550 руб. Понятно что эта поверка сплошная профанация.
Мне сказали, что опломбировка счётчика вообще бесплатна.
Вот, что мне писали люди:
«Все просто, есть ФЗ 416 где чёрным по белому указано что опломбировку производит обслуживающая организация и она должна сделать это бесплатно „
и
“Ну, на самом деле пломбирует счетчик та организация которая заключила с вами договор на поставку воды. Допустим существует три шараги: 1. Управляющая Компания которая обслуживает ваш дом. 2 Владелец магистральных сетей по которым вода течет в ваш дом. 3 Водоканал (обычно) который собственно эту воду производит, ну типа всасывает из какой нибудь лужи, очищает и насосами вам втюхивает. Так вот если договор на поставку воды заключен с организацией №3 она и пломбирует и никто другой. Все остальные лесом. Однако могут быть и другие варианты.Читайте договор.А платно или бесплатно это можно у знать только у них. На самом деле эта процедура настолько копеечная что серьёзные конторы не будут даже связываться. Денег не заработаешь а имидж в задницу улетит.На воду ставить счетчик имеете полное право самостоятельно но только с учетом паспортных данных счетчика и отсутствием кривизны рук. Никакой лицензии и сертификации не требуется.Далее мастер из вышеуказанной конторы приходит, проверяет правильность установки, наличие действующей поверки, записывает № в книжечку, иногда копирует паспорт, пломбирует с двух сторон и выписывает Акт установки с первоначальными показаниями.Всё. Погнали платить по счетчику. А, забыл, Счетчик лучше покупать самые дешевые, но наиболее длинным сроком поверки 6 или 8 лет, поскольку ни один водяной, да и бытовые газовые счетчики на моей памяти повторную поверку ни разу не прошли.»
Да, все так про пломбировку: пришел дядечка из аффилированной с УК конторы и чуть ли не пассатижами обжал свинцовую пломбу на одном и потом на другом счетчике. А я то размечтался, что пломбиратор принесет с хитрым логотипом. На то что бесплатно он сказал что ничего не знает, я дал ему за непомерный труд требуемое бабло и он отправился счастливый восвояси, а я закрыл эту тему на 4 года.

Когда понадобилось поверять счетчик горячей воды я тоже по наивности думал что вот придет инженер с чемоданом в котором суперприбор для проверки тока воды и ноутбуком, дотошно все проверит. А пришел дядя с борсеткой, повключал воду и через 5 минут удалился, оставив документы для ЕИРЦ и красивый с голограммами сертификат на поверку. Еще он сказал что при моем расходе счетчики долго проживут и чтобы я никого не слушал. Счетчики самые простые называются Берегун, им уже 8 лет.

Как я понял есть конторы которые заточены на развод клиентов на установку новых счетчиков и те что делают упор на длительную работу по поверке, нужны вторые. Хотя повторюсь — с поверками это полнейшая профанация, и все действующие лица это прекрасно знают.
я тоже по наивности думал что вот придет инженер с чемоданом в котором суперприбор для проверки тока воды
Вчера такой приходил. Суперприбора с нанотрубками не было. Была сборка из 1/2" труб, с ними- два счетчика и разъем для подключения шланга от смесителя.

Заняло 15 минут, включал воду, сравнивал показания на своем приборе с моим счетчиком. Делал несколько замеров, думаю, для минимизации погрешности. Бумаги выдал, ушел. ИМХО свое бабло отработал.

Самый долгий и неприятный момент в нашем цифровом мире это необходимость руками набирать значения счётчиков в приложение/браузер для учёта.
Было бы круто на(до)писать функционал распознавания цифр с фоток счётчика и вносить их в приложение. А дальше по команде отправлять для учёта в ЭнергоСбыт и остальным.

С распознаванием цифр, есть сложности с тем, что счетчики могут располагаться весьма неудобно для фотографирования.
Трудности с отправкой связанаы с тем, что поставщиков много и универсального API для внешних приложений, пока нет (если оно вообще есть).
  1. Раз глазами его видно, можно и сфоткать. А поскольку счётчики достаточно стандартны, делать распознавать будет проще, чем в общем случае (одинаковые размеры-форма-расположение цифр-шрифт).
  2. Что-то такое есть: ГИС ЖКХ. Вот пост на Хабре от конторы, которая её пилит.
Без обид, но мне как Android Разработчику немного больно смотреть что на дизайн, что на код.

Объясню почему:

В интерфейсе не пахнет концептом материал дизайна. При том на скринах видно, что диалоги явно от системы версии 5.0+, получается смесь. Отступы, размеры, цвета все смотрится инородно и неопрятно.

Не используются Compability классы из support library.
вместо Drawable ret = InstructionActivity.this.getResources().getDrawable(resId);
следует использовать Drawable ret = ContextCompat.getDrawable(InstructionActivity.this, resId)
а так же DrawableCompat. Как — гуглится на раз-два, иначе можно словить много неожиданных ошибок на старых устройствах.

Использование ListView не рекомендуется, потому что у него есть проблемы с производительностью на больших списках, плюс он не поддерживается. Recyclerview до сих пор получает фиксы.

Это то, что можно сказать не особо смотрев код.

Без обид.
Все мы учимся. Приложение потихоньку дорабатываю. С LV перехожу на RV.
Если помощь будет нужна в консультативном ключе — обращайся
telegram: @AzarevArtem
Использование ListView не рекомендуется, потому что у него есть проблемы с производительностью на больших списках, плюс он не поддерживается.

Извиняюсь, не поддерживается чем? Что-то пропущено?

Listview поставляется как компонент, реализованный в системе. Recyclerview поставляется как одна из support library. Последние обновляются раз в месяц в среднем, включают в себя фиксы. А listview в 4.4 на старом устройстве каков был, таков и остался.

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

Зато вопрос оптимизации тогда лежит на плечах разработчика. А тут уже надо честно себе признаться, достаточно ли у тебя (не конкретно тебя, а просто абстрактного разраба) опыта для выполнения этой задачи.


Вцелом советую посмотреть лекцию на youtube канале Android Developers на тему Recyclerview

А есть возможность передать показания счётчиков из приложения на e-mail управляющей компании?
Нет, такой возможности нет.
Но если нужно, можно прикрутить.
Спасибо за статью! Но я сделал вообще шикарно: однажды обнаружил, что уже пару лет показания остаются неизменными (1 кубометр (или в чем меряется, уже даже не помню) — холодная вода и два — горячая в месяц), в итоге шлю на сайт управляющей компании эти данные курлой по крону раз в месяц. Надо бы написать статью по этому поводу, все руки не доходят. Понятно, что мы живем в Самой Лучшей Стране в Мире, поэтому приходится все допиливать самому, и мало того, не удивлюсь, если эту лавочку накроют по причинам, известным только богам. Но пока работает.

И хотел бы спросить, пользуясь случаем, вдруг сталкивались: в ящик пришла бумажка, что счетчик нужно менять время от времени, класс точности указан в кружке на табло, чем выше — тем дольше служит, квартира вообще съемная, ни о каких паспортах даже речи быть не может, стоит ли в этой ситуации рыпаться и может ли УК чем-нибудь помочь?
квартира вообще съемная, ни о каких паспортах даже речи быть не может
Паспорта изначально д.б. Если владелец их прос%ал — плохо. Без паспортов на счетчики даже поверку не сделать.

Думаю, тут надо капать на моск квартировладельцу, чтобы решал проблему (искал паспорта/делал поверку или менял счетчики на новые и уже паспорта не терял). Как только у вас закончится поверочный интервал — за воду будете платить по конским тарифам.

На бумажки в почтовом ящике, конечно же, не реагировать. Если есть доступ в ЛК — уточнить дату окончания поверочного интервала и тогда уже начинать паниковать.
Ну почему же. Бумажки можно использовать по назначению… Самолётики например делать. )
К нам в ящик клали уже подготовленную квитанцию, с реквизитами. И потом названивали, и обещали в суд пойти если не оплатим продление договора.
Куб холодной, и два горячей?! Поделитесь рецептом экономии. У меня около 8 и 6 выходит. ))
У меня около 8 и 6 выходит.
А сколько народу живет? Я тут видел рекорд — 9/10 кубов на 4 человек. Но там ПММ стоит и народ в основном душем пользуется, а ванну не принимает.
Двое взрослых, трое детей.
Хотя, стирки много. Стиралка работает почти каждый день.
Двое взрослых, трое детей.
Для такого количества 8 и 6 — это вообще идеально. Даже при условии частых стирок. Машины, кстати, не так и много воды потребляют, особенно современные.
Ну плюс, еще детей часто мыть приходится.
Хох! Я уже даже засомневался, даже специально проверил, под одно убедился что все шлется нормально. Да, все верно, 1 и 2 куба. Но я один живу, собссно в этом и секрет я думаю)
(С) – (и даже не поздоровался, хамло) РосКосмосВодоНаноКанал имени Святой Метрологии. Вы должны поменять счетчики на воду! У вас заканчивается срок службы!
(Я) – (в голосе паника) Ой! Что же делать!

Это просто пять! Рассмеялся в голос, представив произнесенную последнюю фразу!)))
Ага, чтобы не злиться, разыгрываю театр одного актёра. ))
Кстати, столкнулся только с одной настырной девицей, которую было не прошибить моими дурачествами. Остальные понимают, что тут им не рады, и кладут трубку.
Киллер фича такого типа приложений — возможность определять числа счётчика через обработку фотографии с камеры.

Тем более, если есть данные о предыдущем значении, достаточно просто избавляться от ошибок
Надо попробовать. Но сейчас в первую очередь — напоминалка, счётчик с накопительным итогом, и переводы. Потом облако.
Sign up to leave a comment.

Articles