Toast の移植


20130310toast

Android の標準UIに Toast がある。
donut(v1.6) の android/widget/Toast.java を移植した。
そのままコピーして、ユーザアプリとしてコンパイルを通るように、若干修正したものです。

移植のポイントを挙げておく。
(1) 追加したシステムファイルを2つです。
android/app/INotificationManager.aidl
android/app/ITransientNotification.aidl
(2) com.android.internal.R は res ディレクトリにコピーした
(3) WindowManagerImpl を使っていたところは、 WindowManager で置き換えた。
(4) ServiceManager を使っていたところは、 esmasui さんの ServiceLocator で置き換えた。

ソースコードは Google code に置いています。

参考
ServiceLocator システムサービスのローカルインターフェイスを取得する

関連記事
・Toast の移植
Toast が固まるのを回避する
Toast の文字を大きくする
Toast の表示時間を変更する


LOD チャレンジ スマホ賞 を頂きました


20130307lod
緑色の上着は、昨年の ABC東北 のスタッフパーカー。

20130307lod_group_photo

2013年3月7日 慶應義塾大学 で開催された セマンティックWebコンファレンス に参加しました。
今回は、LOD (Linked Open Data) チャレンジ の受賞者として招待されました。
応募は205作品で、そのうち30作品が受賞しました。

私は スマホ賞 を頂きました。
受賞理由は、以下のとおりです。
横浜で開催されるアート関係のイベント情報、Open Street Map に登録されているノードの情報、PinQA に登録されている情報を、主にAndroid端末及びWebアプリとして見せてくれています。様々な情報を統一的な作者の方法で表現している点を評価しました。今後のスマホ分野での活躍を期待しております。

実は下記の4つの作品で応募してます。
本当のタイトルは「たくさん応募してくれてありがとう賞」だったようです。
ヨコハマ・アート・ガイド
LGD Viewer
OSM Node Viewer
どこでもPinQA

LOD チャレンジ は今回で2回目の試みです。
昨年のエントリ数は73作品でしたが、今年は205作品と大幅に増えています。
昨年の受賞作品をみると、身内の活動を身内で表彰するという感じが強いです。
内容も、特定の研究分野のためのデータやアプリが多いです。
今年は LOD 自体をこのコンテストで初めて知りましたという人が多かったです。
また、内容も多彩で、A Little and Big WorldGIRLS FASHION LINK のようなそんな切り口があるのか、という斬新なものがありました。

私は、2010年8月に横浜で開催された 横浜ストリーム・ウェブ技術研究会 で、LOD を知りました。
その後 いくどか LOD のイベントに参加してます。
参加するたびに広がりを見せていて、今後も楽しみな分野です。

参考
Linked Open Data チャレンジ Japan 2012 受賞作品発表のお知らせ
オープンデータのコンテスト「LODチャレンジ2012」受賞作品発表 – ITPro


OpenID ハッカソン


20130305openid

2013年3月5日に 学術総合センター で開催された OpenID Connect Hackathon に参加した。
3月4日5日に同じ会場で開催されている Japan Identity & Cloud Summit の中の1つのセッションです。

OpenID Connect は ID認証の新しいプロトコルです。
Yahoo Japan がいち早く開発者向けにサービスを公開したので、これを利用してのハッカソンです。

主催者側が主要な Open Source Project に声を掛けたので、PHP Ruby Python などから多彩なメンバが集まった。
会場には、最初から机の上に豪華なお弁当が用意されているという、ハッカソンらしからぬ雰囲気であった。
チーム分けするのかと思ったから、各自自分のやりたいことをという、ゆるい雰囲気である。
顔見知りの XOOPS と NetCommons のメンバーと同じ机に座る。
じゃ始めてください、という軽い挨拶で開始した。

当初の予定では、WordPress のプラグインを作るつもりであった。
予習しておこうと、2日前の日曜日に取り組んだら、4時間くらいで動いてしまった。

予定を変更して、前日に紹介のあった Account Chooser にチャレンジする。
ネットで調べてみたが必要な情報が見つからなかったので、Account Chooser の開発者の Tim Bray に直接質問する。
OpenID Foundation の中のワーキンググループを教えてもらう。
資料が英語だ。しかも、このくらい分かっているだろという書き方。
四苦八苦しなから、取り組み。

なんとかデモサイト FavColor と同じ画面がでるようになった。
でも、その先が進まない。
う〜んと唸っているうちに、時間切れとなった。(^^;

ハッカソンは3時間しかないうえ、その後すぐに会場を使うということで、成果発表の時間がなかった。
主催者側の用意したサンプルコードが PHP と JAVA だったので、
Ruby や Python の人たちは何をやっていたのか、気になるところである。

ハッカソン終了後は、Japan Identity & Cloud Summit のテクニカルセッションを聴講する。
まだ、セッションはあったが、顔見知り数名と早めに退散する。
神保町をうろうろして 大衆酒場けいちゃん で打ち上げをする。

参考
「OpenID Connect」を理解する – @IT
YConnect (OAuth2.0/OpenID Connect)をリリースしました! – Yahoo
Account Chooser working group – OpenID Foundation
FavColor


TimePicker で確定前の値を取得する


20130304timepicker

TimePicker では、EditText に入力した値は、その時点では確定していません。
Focus が変動したときに確定されます。

TimePicker の値を、別のボタンを押して、取得するときは、
TimePicker#clearFocus を実行します。

図で Button を押しても、14:45 にはならず、元の 13:45 が取得される。
TimePicker#clearFocus を実行すると、14:45 が取得される。

参考
TimePickerで確定前の値を取得する方法 – kobaring
How to get the time from a TimePicker when it is typed in – stackoverflow
Androidの標準Widgetを自作する(TimePicker) その(2) – techbooster
 この記事では TimePicker と言っていますが、NumberPicker ですね。


TimeEditText


20130302time_edit_text

123456 と入力すると 12時34分56秒 となる EditText を作る。
NumberPickerTimePicker をベースに変更した。

主な仕様は。
(1) 「時」「分」「秒」の NumberEditText を用意する。
(2) 「時」に2桁入力すると、「分」に Focus を移す。
(3) 「分」に2桁入力すると、「秒」に Focus を移す。
(4) 「秒’」に2桁入力すると、終了イベントを発生する。

ソースコードは Google code に置いています。

関連
NumberPicker
TimePicker
NumberEditText
・TimeEditText


NumberEditText


20130301number_edit_text

123456 と入力すると 12時34分56秒 となる EditText を作る。
NumberPickerTimePicker をベースに変更した。
まず、2桁を入力する EditText を作る。

主な仕様は。
(1) Focus が当たったときに、元のテキストをヒントに移して、テキストを消す。
(2) 2桁入力すると、終了イベントを発生する。
addTextChangedListenerTextWatcher を使用する。

ソースコードは Google code に置いています。

関連
NumberPicker
TimePicker
・NumberEditText
TimeEditText