HTML5プレーヤーを右クリックでループできるようになってる.
公式機能.

もちろん埋め込みからでも可能.
いつのまにこんなっ!!
以前から反対していましたが
Someone, somewhere made the decision to use hungarian notation for Android Java sources. I think they owe the community an apology.
— Jake Wharton (@JakeWharton) 2014, 8月 7
ついに自ブログでも言及しています.

Just Say mNo to Hungarian Notation - Jake Wharton
「Androidのサンプルコードが利用している」
→ サンプルコードはAPSPで生まれそのAOSPスタイルに固執しているだけ.
「コードレビュー時に役に立つ」
→ 変更時に更新忘れしたものかもしれない.
「開発時に役立つ」
→ IDEがそれぞれ正しく表示してくれる.
→ 変更忘れが発生する.
「Google のようにコードを書きたい」
→ GoogleやAOSPの一部の会社はハンガリアン記法を禁止している.
WikiPedia をみてみる.
システムハンガリアンを使っているソースコードを修正してデータ型を変更した際、同時に変数名も変更するコストがかかる。変更を怠ると、たちまち不整合となり、保守の障害となるだけで一利もない。
C++やC# のような言語では型付けが存在するためにシステムハンガリアンを使用することによる利点はない。移植性を阻害する。
総称型、メタプログラミングとの相性が悪い。
いわゆる良書と呼ばれるようなC++本で、現在システムハンガリアンを採用している例が皆無。
かつてMFCにおいてハンガリアンを全面的に採用していたMicrosoft自身が、.NET Frameworkではハンガリアンを禁止している。
日本では、情報処理技術者試験などのC言語の問題でシステムハンガリアンが使用されていない。
結局,「IDEの進化」が大きく影響しているといえそう.
間違えたコードが機械的に検出される手法が利用可能ならば、間違えたコードが間違えて見える手法より明白に勝る。
エラー検出に関連する技術は、ハンガリアン記法が考案され成功を収めた当時と比べ大きく進歩している。
コードを間違える原因の中で、変数の意味(=型)の取り違えに由来するものが下位にあるとは言い難い。
なので, Android Studio での設定を.
[Preference] から.


技術も開発手法も変わっていくものなのですね.
どうしても日本語の記事では量が少なく, 更新タイミングも少し遅くなる.
こんな有名なタレント群のブログをまとめてくれています.

ziem/android-development-blogs
OPMLやCSVでダウンロードできるのでRSSリーダやその他クライアントで一括で取り込んで読みましょう.
RSSフィード情報をOPML形式でインポート/エクスポートする | feedlyの使い方 | ぼくらのハウツーノート
私の Feedly はこんなんなりましたけど.

しかしこの人たちはすごいなあ.
おもしろ技術系ネタ満載な「Y Combinator」が運営する「Hacker News」.
スタートアップやハックのニュースが主体で、まさにこのブログでカバーしてる領域だからだ。こちらで一度も名前聞いたことないスタートアップの情報を掘り出す場としてはベストに入る。さらに素晴らしいのが、サイトに寄り付く仲間に嫌な野郎がいないことだ。コメントを見ても参考になる情報や考えさせるもの、面白いのがほとんどだ。
私が朝一番に読む『Hacker News』という無名のサイト | TechCrunch Japan
Little Known Hacker News Is My First Read Every Morning | TechCrunch
サイトを見る限り, 「人気記事順」や「リンク数順」の記事カテゴリーリンクが見当たらない.

しかし, それらを確認できるアプリがあったりする.

Hacker News Reader (翻訳) - Google Play の Android アプリ
調べてみると, サイトのトップページからのリンクはないが, 存在している, 公式で.
ここらから見ていくのがいいのだろう.
そもそもは Linkify のWEBリンクがなんだかな, と思い.

使えそうなよくある正規表現がいくつか用意されていたのですな.
public static final Pattern WEB_URL = Pattern.compile(
"((?:(http|https|Http|Https|rtsp|Rtsp):\\/\\/(?:(?:[a-zA-Z0-9\\$\\-\\_\\.\\+\\!\\*\\'\\(\\)"
+ "\\,\\;\\?\\&\\=]|(?:\\%[a-fA-F0-9]{2})){1,64}(?:\\:(?:[a-zA-Z0-9\\$\\-\\_"
+ "\\.\\+\\!\\*\\'\\(\\)\\,\\;\\?\\&\\=]|(?:\\%[a-fA-F0-9]{2})){1,25})?\\@)?)?"
+ "(?:" + DOMAIN_NAME + ")"
+ "(?:\\:\\d{1,5})?)"
+ "(\\/(?:(?:[" + GOOD_IRI_CHAR + "\\;\\/\\?\\:\\@\\&\\=\\#\\~"
+ "\\-\\.\\+\\!\\*\\'\\(\\)\\,\\_])|(?:\\%[a-fA-F0-9]{2}))*)?"
+ "(?:\\b|$)");
public static final Pattern PHONE
= Pattern.compile(
"(\\+[0-9]+[\\- \\.]*)?"
+ "(\\([0-9]+\\)[\\- \\.]*)?"
+ "([0-9][0-9\\- \\.]+[0-9])");
public static final Pattern EMAIL_ADDRESS
= Pattern.compile(
"[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" +
"\\@" +
"[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" +
"(" +
"\\." +
"[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" +
")+"
);
platform_frameworks_base/Patterns.java
すぐにそのまま使おう.
if (Patterns.WEB_URL.matcher(text).find()) {
// do something
}
「厳格なのか?」でフィルターをつける場合.
// A match filter that only accepts odd numbers.
MatchFilter oddFilter = new MatchFilter() {
public final boolean acceptMatch(CharSequence s, int start, int end) {
int n = Character.digit(s.charAt(end-1), 10);
return (n & 1) == 1;
}
};
// Match all digits in the pattern but restrict links to only odd
// numbers using the filter.
Pattern pattern = Pattern.compile("[0-9]+");
Linkify.addLinks(text, pattern, "http://...", oddFilter, null);