ChronometerがAndroid OからSwedish countdownsに対応してた件

はじめに

www.youtube.com

EuropeのThe Final Countdown、名曲ですね。 今日はAndroidのChronometerのAPI 26から追加された便利機能を紹介しようと思います。

android.widget.Chronometer

Chronometerクラスは、Androidアプリで簡単にカウントアップを実装/表示できるウィジェットのクラスになります。 APIレベル1から存在しますね。

Chronometer  |  Android Developers

そんなChronometerクラスですが、現在でも機能拡張が行われています。 具体的には API24からsetCountDownisCountDownメソッドが追加されて、カウントアップだけでなくカウントダウンにも対応するようになりました。

※とはいえsupport libraryに追加されていないので、大半のアプリでは利用できなさそうですが。

Chronometer#isTheFinalCountDown

本題です。API level 26からisTheFinalCountDownが追加されました。
isが付いてるし、FinalCountDownかどうかを判定するメソッドでしょうか?

とりあえずDocを確認してみると。

whether this is the final countdown

Chronometer  |  Android Developers

とのこと、やはりFinalCountDownかどうかを判定してくれるようです。

じゃあコードを読んでみてみましょう。*1

/**
* @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を飛ばして成功したらtrue, 失敗したらfalseみたいですね。 気になるのでリンクを踏んで見ましょう。

https://youtu.be/9jK-NcRmVcw

コミットは?

追加時のコミットログはこちら。

Enhance Chronometer to better support Swedish countdowns.

Adds a method isTheFinalCountDown that allows to correctly
determine whether it is the final countdown.

Test: None
Change-Id: I786ae3455479bac25ccf25efba1c3dce18185117

お分りいただけただろうか。

ひとこと

ぜひ使ってみてくださいね!!! 僕は使いません!!!