COVID19Radarのソースを追ってみる-3日目(その1)
2日目はこちら
なんかコピペミスがひどかったから、色々修正。 1記事のあたりの文章量が多いのがダメなんだよね。(言い訳) ということで、記事も分割しました。
引き続きCOCOA(接触確認アプリ)のベースとして使用されているOSS(オープンソースソフトウェア)である、COVID19Radarについて、処理を追って日本語のコメントを付けてみた。
ただ、C#の経験もFultter以外のAndroid開発の経験もなく、苦戦した挙句ざっくり理解で止めた1ので、参考程度で。
なので、同じようなことしている人がいれば即やめ。
ソースべた貼りには少し抵抗があるので、コメント付近だけ抜粋。
調査対象
- ソース(GitHub):https://github.com/Covid-19Radar/Covid19Radar
- リビジョン:5a54949ddf51dbf0db58c09d4142a31c7d663076
PrivacyPolicyPage
[プライバシーポリシー]画面を表示。 [同意する]ボタンを押すとTutorialPage4(プライバシーについて)画面へ移動
- ファイルパス:Covid19Radar\Covid19Radar\Covid19Radar\Views\Tutorial\PrivacyPolicyPage.xaml
- 遷移先:TutorialPage4
- COCOAとの挙動差:なさそう
- 詳細: TutorialPage1と同じ読み方なので、割愛
TutorialPage4
[接触検知をご利用いただくために]画面を表示。 [有効にする]か[あとで設定する]か選択して次の画面へ移動
- ファイルパス:Covid19Radar\Covid19Radar\Covid19Radar\Views\Tutorial\TutorialPage4.xaml
- 遷移先:OnClickEnable(),OnClickDisable()
- COCOAとの挙動差:なさそう
- 詳細: TutorialPage1と同じ読み方なので、割愛
OnClickEnable
権限とか設定の問題かもしれないけど、なぜかiOSとAndroidで処理分かれてる。。
とりあえずAndroidの方だけ調査。
[接触の検出]設定をONに設定して、TutorialPage5(通知をご利用いただくために)画面へ移動。
- ファイルパス:Covid19Radar\Covid19Radar\Covid19Radar\ViewModels\Tutorial\TutorialPage4ViewModel.cs
- 遷移先:TutorialPage5
- COCOAとの挙動差:なさそう
詳細:
userData.IsExposureNotificationEnabled = true;
= [接触の検出]設定をONにawait userDataService.SetAsync(userData);
= ユーザデータをアプリに保存
OnClickDisable
[接触の検出]設定をOFFに設定して、TutorialPage5(通知をご利用いただくために)画面へ移動。
- ファイルパス:Covid19Radar\Covid19Radar\Covid19Radar\ViewModels\Tutorial\TutorialPage4ViewModel.cs
- 遷移先:TutorialPage5
- COCOAとの挙動差:なさそう
- 詳細: OnClickEnableと同じ読み方(true=ON,false=OFF)のため割愛
TutorialPage5
[通知をご利用いただくために]画面を表示。 [有効にする]か[あとで設定する]か選択して次の画面へ移動
- ファイルパス:Covid19Radar\Covid19Radar\Covid19Radar\Views\Tutorial\TutorialPage5.xaml
- 遷移先:OnClickEnable(),OnClickDisable()
- COCOAとの挙動差:なさそう
- 詳細: TutorialPage1と同じ読み方なので、割愛
OnClickEnable
[通知]設定をONに設定して、TutorialPage6(ご登録いただきありがとうございました)画面へ移動。
- ファイルパス:Covid19Radar\Covid19Radar\Covid19Radar\ViewModels\Tutorial\TutorialPage4ViewModel.cs
- 遷移先:TutorialPage6
- COCOAとの挙動差:なさそう
- 詳細:
var notification = new NotificationRequest{~~~}
=[通知を有効にしました]って通知をだす- IsNotificationEnabled=[通知]設定
- 残りはTutorialPage4と同じ読み方なので割愛
OnClickDisable
[通知]設定をOFFに設定して、TutorialPage6(ご登録いただきありがとうございました)画面へ移動。
- ファイルパス:Covid19Radar\Covid19Radar\Covid19Radar\ViewModels\Tutorial\TutorialPage4ViewModel.cs
- 遷移先:TutorialPage6
- COCOAとの挙動差:なさそう
- 詳細: OnClickEnableと同じ読み方(true=ON,false=OFF)のため割愛
TutorialPage6
[ご登録いただきありがとうございました]画面を表示。 [ホーム画面]か[使い方を学ぶ]か選択して次の画面へ移動
- ファイルパス:Covid19Radar\Covid19Radar\Covid19Radar\Views\Tutorial\TutorialPage6.xaml
- 遷移先:HomePage,HelpMenuPage
- COCOAとの挙動差:なさそう
- 詳細: TutorialPage1と同じ読み方なので、割愛
HomePage
[ホーム]画面を表示。 [使い方],[陽性者との接触を確認する],[陽性情報の登録],[アプリを周りの人に知らせる]を選択すると次の画面へ移動
- ファイルパス:Covid19Radar\Covid19Radar\Covid19Radar\Views\HomePage\HomePage.xaml
- 遷移先:HelpMenuPage,OnClickExposures(),SubmitConsentPage,OnClickShareApp()
- COCOAとの挙動差:なさそう
詳細:
- ToolbarItem=ツールバー
- 後はTutorialPage1と同じ読み方なので、割愛
番外:
- Twitterで見かけた使用開始日が正しく表示されない問題について
-
<Span Text="{Binding StartDate}" />
⇒StartDateってデータを表示 -
StartDate = userData.StartDateTime.ToLocalTime().ToString("D", CultureInfo.CurrentCulture);
⇒StartDateTimeって名前の日時データを表示用の文字列に変換 -
public DateTime StartDateTime { get; } = DateTime.UtcNow;
⇒StartDateTimeってデータに現在日時(DateTime.UtcNow)を設定
-
⇒なので、単純にとるデータが現在日時固定になってるのが原因。当然最新ソースだと治ってました。
- Twitterで見かけた使用開始日が正しく表示されない問題について
続きは次の記事へ
その2はこちら