Skip to content
This repository has been archived by the owner on Apr 12, 2023. It is now read-only.

「陽性者との接触を確認する」ボタンで接触確認させる #197

Closed
i-maruyama opened this issue May 27, 2021 · 7 comments
Closed
Labels
confirmed 開発内部管理用

Comments

@i-maruyama
Copy link
Contributor

i-maruyama commented May 27, 2021

その機能リクエストは何らかの問題に関連しますか / Is your feature request related to a problem?

  • ホームボタン「陽性者との接触を確認する」が既に確認済みの情報を表示するだけで、ユーザーの期待と異なる問題
  • 実際に接触確認するには、HomePage を再表示する必要があるが、挙動がわかりにくい問題

現在、接触確認は、HomePage を開いたときに行われます。例えば、毎日深夜に更新されるTEKを、すぐダウンロードしようとして、HomePage を開いて、ボタン「陽性者との接触を確認する(Check close contacts)」を押しても何も起こりません。実際には、アプリを再起動したり、一度使い方などを見てから再度 HomePage を開く必要があります。

解決策についてお書きください / Describe the solution you'd like

  1. ホームボタン「陽性者との接触を確認する」を押したときにも、接触確認(FetchExposureKeyAsync)が行われるようにする。
  2. ホームページ再表示(Initialize)と同様に、接触確認以外にEN開始(StartExposureNotification)とEN確認(UpdateStatusMessageAsync)も行う

あなたが考える代替案についてご説明ください / Describe alternatives you've considered

  1. プログラムの変更はせず、ボタン文字列を実情に合わせたもの、例えば「接触確認の結果を表示」などへ変更
  2. 接触確認は行うが、EN開始、EN確認は行わない(ユーザーにホームページ再表示させるよう誘導)

さらに、ホームページ再表示(Initialize)のときに、 FetchExposureKeyAsync を行わないということもありうる。

その他 / Additional context

当方の現状認識(HomePageViewModel.cs )を示します。まず「接触確認」を、FetchExposureKeyAsyncを呼ぶ事とし、 TEK DLと、EN APIへの submit が主な機能です。問題は、「陽性者との接触を確認する」ボタンを押しても FetchExposureKeyAsyncが呼ばれないことにあります。

  • 「陽性者との接触を確認する」ボタンを押す
  • 関数OnClickExposuresが呼ばれる
  • 関数 exposureNotificationService.GetExposureCount() が呼ばれる
    -- これは接触確認後の保存データ(SecureStorageService) を読み取って、接触件数を返すだけで、接触確認は行いません
  • 接触件数で分岐します
    -- 0件の場合のページは単なる表示のみ(NonContactPageViewModel.cs)
    -- それ以外では、再度 GetExposureCount() を呼んで表示 (ContactedNotifyPageViewModel.cs)
  • 戻るボタンでホームに戻っても何もしません
    -- ログを確認すると分かります。

よって、アプリを常に立ち上げていて、

  1. 「陽性者との接触を確認する」ボタンを押す
  2. ホームに戻る
    を繰り返すユーザー行為は無意味です。(たまたまバックグラウンドが走って接触確認が行われる事はあります)

現状では、実際に、接触確認するには、ホームページの再読込が必要です。アプリ再起動、メニューから設定ページを一度開いて再びホームを開くなどすると、関数 Initialize から接触確認(FetchExposureKeyAsync)が呼ばれます。

この挙動は、ログを"Start","Initialize"で検索すると分かります。


Internal Tracking Code: Product Backlog Item 2528

i-maruyama added a commit to i-maruyama/cocoa that referenced this issue May 27, 2021
@i-maruyama
Copy link
Contributor Author

i-maruyama commented May 27, 2021

643c7c7 に作っています。(自動で出るのですね・・・)

@b-wind
Copy link

b-wind commented Jun 9, 2021

ブラウザからだといまいちどう言う操作をしたのか良く見えてないですが、
自身のリポジトリでブランチを切ってそこで変更、PR の形で出された方が良いと思います。
ブランチやPRは幾つ作っても問題無いものですし。

あくまでサンプルコードという場合でもDraft PRとして出せばMergeされる事も無いです。

@b-wind
Copy link

b-wind commented Jun 9, 2021

Fail Safe と言う意味で、起動時に。能動的にチェックするという意味で「陽性者との接触を確認する」ボタンで。
両方のタイミングでチェックしてしまって良いと思います。

「陽性者との接触を確認する」ボタンですから実際に確認処理が走った方が直感的です。

#199 が適用されれば都度ダウンロードする無駄は防げますし、必要なければチェック自体が走りません。
最終チェック(手動・自動にかかわらず)時刻が更新されれば、稼働状況の可視化にも役立ちます。

(ロックなどを使用して)同時多重で走ってしまうことに気をつければ、頻繁にチェックを走らせるデメリットは殆ど無い筈ですね。
(通信が不安定などでタイムアウトになると待たされることになりますが)

@i-maruyama
Copy link
Contributor Author

ありがとうございます。おっしゃる通りと考えています。

PR の形で出された方が良い

コメント一つもないのに PR というのも気が引けていたのですが、議論しにくいということなら土日に PR してみます。

@b-wind
Copy link

b-wind commented Jun 9, 2021

コメント一つもないのに PR というのも気が引けていたのですが、議論しにくいということなら土日に PR してみます。

コメントがないと進めて良いのか迷う気持ちは分かります。PR は GitHub 最大のメリットなので生かした方が良いと思います。

@keiji
Copy link
Collaborator

keiji commented Jun 13, 2021

「陽性者との接触を確認する」ボタンを押して実際に接触確認をするパターンですが、ご存じのように、FetchExposureKeyBatchFilesFromServerAsyncを実行しても必ずEN APIを使った接触確認を行うわけではありません。前回の確認時から診断キーが更新されていなければ、その前に処理が完了します。

現在でも、「陽性者との接触を確認する」ボタンを押す度に接触確認が行われると思う利用者は「陽性者との接触を確認する」ボタンを押しても、Android/iOSのシステムの提供する確認時刻に表示されないことに違和感を覚えている訳なので、処理は走ってもけっきょく接触確認が行われていないのであれば、そういった違和感は払拭できないと考えています。

現時点では「陽性者との接触を確認する」という表現がミスリードなので「陽性者との接触結果を確認」とした方がいいだろうということで話を進めています。

ここで提案されているパターンの「見る」を「確認」にしたものですね(スレッドにもあるように、近日中に新しい案を提示できるように準備中です)。
#194 (comment)

@cocoa-dev cocoa-dev added the confirmed 開発内部管理用 label Jun 29, 2021
@keiji
Copy link
Collaborator

keiji commented Jan 8, 2022

現在のバージョンでは「陽性者との接触結果を確認」となっています。
ボタンを押して接触確認にはなっていませんが、バックグラウンドでの接触確認も安定して動作しており、任意実行の需要は高くないものと考えています。

本Issueは数日後を目処にcloseする予定です。何かご意見等あればコメントをいただければ幸いです。

@keiji keiji closed this as completed Apr 13, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
confirmed 開発内部管理用
Projects
None yet
4 participants