chrometophone (9)

DeviceRegistrar.registerWithServer メソドから。ざっくりベースで言うと

  • "com.google.ctp.UPDATE_UI" な Intent 生成
  • makeRequest で "https://chrometophone.appspot.com/register" な URL に registration ID (C2DM からもらったソレ) を送付
  • HTTP レスポンスで分岐
    • 200 なら SharedPreferences に registration ID 格納して Intent に {"Status" : 1 (REGISTERED_STATUS)} をセット
    • 400 なら Intent に {"Status" : 2 (AUTH_ERROR_STATUS)} をセット
    • 上記以外なら Intent に {"Status" : 4 (ERROR_STATUS)} をセット
  • 生成した Intent を sendBroadcast する

あと、AppEngineClient.PendingAuthException 以外でも Intent に {"Status" : 4 (ERROR_STATUS)} をセットして sendBroadcast してますね。
で、上記の BroadcastIntent は SetupActivity で受けてます。

あら?

最初の登録な Intent は誰が投げてるの? と言いつつ find|xargs grep で確認してたんですが、SetupActivity から発信されている模様。この Activity クラスもなかなかポイント高い模様。
中身では

  • onResume メソドで C2DMessaging.register 呼び出している
  • register という private なメソドからも呼び出している
    • R.id.next という id を持ってるボタンがクリックされたら呼び出される模様
    • なんとなくアカウントを ListView から選択して云々に見えるな

むむ

手元にあった N1 見てみたら Chrome to Phone なアプリが導入済みだったので起動したんですが、これって何て Activity なんでしょ。