MyTracks 読み (17)

SplitManager らへんの掘削は完全にダウトである事が判明 (や、掘った方が良いんですが)。とりあえず registerLocationListener 呼び出してれば onLocationChanged が呼ばれるはずなので、そのあたりを掘れば良いはず。

とりあえず

状況によるみたいなのですが insertLocation という手続きを呼び出してます。その中で

  • MyTracksProviderUtils#insertTrackPoint メソドでレコード追加
  • 追加した ID 取得しといて Track なナニを update

している模様。insertTrackPoint には現在保存中の Track な ID も渡してもごもごしているので、Track が分かればそれに紐がついている TrackPoint も取得できるはず。
ええと保存してるのは TrackPointsColumns.CONTENT_URI なテーブルになるのか。

画面に出すあたりをナニしたいのですが、複雑。概略のみメモッておくと

  • Track を MyTracksList なる Activity で選択
  • MyTracksList は MyTracks から kick off されるので MyTracks#onActivityResult が呼び出される
    • setSelectedTrack メソドにて SELECTED_TRACK に put される
  • TabHost なアクティビティ達の onSharedPreferenceChanged が callback される
    • MyTracksMap では setSelectedTrack メソドがそこから呼び出される
  • MyTracksMap#setSelectedTrack において
    • MyTracksMapOverlay#setSelectedTrack が呼び出される
    • MapView#invalidate が呼び出される
      • どこの onDraw が呼ばれるかは不明
      • MyTracksMapOverlay#draw という callback がある模様

ここまでメモッておけば後から見てもなんとかなるはず。

とほほ

どうも昨日から余計な事やって疲労を溜めている気がしてなりません。今日も体力限界ス。