Последний отсчёт — Гугл развлекается

    Некоторое время назад я писал о смешном методе-проверке «А не козёл ли ты, пользователь?». Сегодня обнаружил ещё один забавный метод для новенькой Android 8.0.

    Чисто случайно перечитывал документацию по компоненту Chronometer. Обнаружил, что в API 24 появились новые методы, позволяющие хронометру работать в режиме обратного отсчёта. Стал проверять, написал простенький пример. Всё работает. Код тривиальный, приводить здесь не буду.

    И тут глаз зацепился за ещё один новый метод, который добавили в API 26 — isFinalCountDown(). Описание метода было весьма скудным — whether this is the final countdown. Я почему-то подумал, что с его помощью можно определить момент, когда счётчик в хронометре станет равен 00:00. Хотя вроде можно и самостоятельно устроить такую проверку. Странно. Решил вызвать метод по щелчку кнопки. Запускал на эмуляторе.

    public void onClick(View view) {
            mChronometer.isTheFinalCountDown();
        }

    Эффект был неожиданным. Вдруг запускается приложение Youtube и в ней начинает проигрываться песня группы Европа «Последний отсчёт». Я сначала подумал, что это какой-то глюк и я куда-то не туда нажал. Но удивило совпадение названия песни с методом. Запустил ещё раз — опять запускается видеоролик. Стало интересно. Стал искать исходники Android 8.0 и нашёл это место.

        /**
         * @return whether this is the final countdown
         */
        public boolean isTheFinalCountDown() {
            try {
                getContext().startActivity(
                        new Intent(Intent.ACTION_VIEW, Uri.parse("https://youtu.be/9jK-NcRmVcw"))
                                .addCategory(Intent.CATEGORY_BROWSABLE)
                                .addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT
                                        | Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT));
                return true;
            } catch (Exception e) {
                return false;
            }
        }

    В методе зашит адрес ролика на Ютубе, который запускается с помощью механизма Intent.

    Скриншот запущенного ролика:

    Метки:
    Поделиться публикацией
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 37
    • +13

      Вот так и пишется bloatwarе.

      • +1

        У разработчиков Андроид тоже есть чувство юмора

        • +1

          Да, когда функция делает не то, что должна делать согласно документации, это смешно. Не так смешно, как
          #define true random()
          , но забавно.

      • +1
        Может это и забавно, но что на счёт оптимизации? Печально что все на нее забивают
        • 0
          Причем тут оптимизация? У вас прошивка телефона с fdd дискеты считывается? Те 400 (условно) байт, который занимает данный метод в сегодняшних реалиях никому не повредят. А вызывать его или нет, решать вам) Неправильный выбор метода сортировки гораздо хуже сказывается на оптимизации, чем наличие такой пасхалочки
          • 0
            Тут 400, там 400 и в итоге половина кода ради прикола написана. Считаю что прошивка для Андроида, не то место где нужно забивать пасхалками. Хотя не только Андроид, помню то-ли статью на хабре, то-ли в комментах кто-то писал, о том сколько игрушка про динозавра отьедает в Google Chrome. И возможно это плохо что разработчики сейчас ни чем не огранничены, нету стимула сделать все как можно компактнее и производительнее.
      • 0
        Пасхалка?
        • +2
          кто сказал что мы не должны смотреть youtube во время написания кода? :)
          • +12
            Мой начальник :(((
            • +7

              держите рецепт: среда разработки с небольшой прозрачностью окна на уровне ОС (Linux), а позади браузер с роликом — видно только вам, а со стороны видна среда разработки. Прозрачность регулируется колесом на заголовке окна — это действия настраивал вручную


              Как это сделать в Mac или Windows не знаю.


              ЗЫ (для моего начальника): смотрел в фоне в основном доклады с конференций :)

              • +4
                да ты инженер :-)
                • +7
                  Знакомы чувак в view-source: баш читает)
                  • +2
                    Просто с монитора срезать поляризационную пленку и смотреть через специальные очки)) А на вопросы про белый экран смело отвечайте, что это ваша любимая цветовая тема в IDE, а они просто оттенков не различают)
                    • 0
                      Как это сделать в Mac или Windows не знаю.

                      Не знаю, как в современных ОС, но в XP это можно сделать при помощи DM2 (111кб), там можно настроить сочетания на прозрачность окон и флаг «Поверх всех окон». К сожалению, через меню на х64 не работает. Этот комментарий написан сквозь текстовый редактор на 90% прозрачности ))
                      • 0
                        На десятке горячие клавиши так же работают, лол.
                • –1
                  Приятно видеть такие пасхалки от разработчиков)
                  • +13
                    вот если бы вместо Final Countdown они вставили ссылку на Рика Эстли, было бы веселее
                    • +1
                      Эта ссылка будет в методе GetURL()
                      • +1
                        doGiveMeUp()?
                      • +1
                        Вчера заметил в документации класса UserManager поле DISALLOW_FUN:
                        Specifies if the user is not allowed to have fun. In some cases, the device owner may wish to prevent the user from experiencing amusement or joy while using the device.

                        Тоже своеобразная пасхалка :)
                        • +2
                          И девайс переходит в режим «Медленно и печально»? Так это настраивается?
                          • 0
                            Подозреваю, что эта настройка ничего не изменяет в системе.
                            • +1
                              Принудительно устанавливается после выхода следующей версии OS.
                            • 0
                              Судя по коду, эта настройка убирает пасхалку.
                            • –1
                              с чувством юмора )
                              • 0
                                забавно) шуточки от разработчиков
                                • 0
                                  В нужный момент Скайнет добавит в ролик свежий зиродей.
                                  • +1
                                    А потом мы удивляемся почему андроид такой тормозной.
                                    • 0

                                      Ну если открыть браузер по конкретной ссылке вызывает на устройстве тормоза, то надо задуматься о смене девайса.


                                      Люди пишут для людей в конце концов.

                                      • 0
                                        Я думаю не только автор поста был в замешательстве от данной «пасхалки», был вынужден вырываться из контекста и тратить время на копание в сорцах андроида.
                                        • 0

                                          Коммент ниже. Ссылка из писем видимо некорректно даёт ответить на комментарий

                                    • 0

                                      Ну на месте автора если бы комментарий к методу был "открываем в браузере ютуб с ссылкой на final countdown" я бы, например, все равно ушёл бы в сорцы с вопросом "WTF!!!"

                                      • 0
                                        Интересно, 368 миллионов просмотров, чисто совпадение?)
                                        • 0
                                          Не путайте причину и следствие.
                                        • 0

                                          никого не смущает, что метод называется isTheFinalCountDown() (а-ля флаг), но при этом он делает startActivity()? Поотбивать бы руки разработчикам гугла! Надо pull-request им создать, чтобы переименовали метод!

                                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.