関連情報:ヘルスチェック:アルゴリズム、概要
接続ステータス
メッセージの受信および送信に関連する3つの接続ステータスがあります。
インターネット接続なしは、OSによって報告される状態です(ネットワーク、Wi-Fi なしなど)。ヘルスチェックでは、アクティブなノードがありませんという表示は、実際にはインターネット接続がないことを意味している可能性があります。
アクティブ/利用可能なADMノードなしは、少なくとも1つのADMノードが有効になっているにもかかわらず、いずれのノードもアクティブ状態にない場合に適用されます。このロジックはコインやサービスにも同様に適用されます(例:アクティブなBTCサービスがありません)。サポートされていないノード(Unsupported)はカウントされません。
有効なADMノードなしは、ユーザーがすべてのノードを無効にした場合に発生します。ここでもサポートされていないノードはカウント対象外です。Unsupportedステータスのノードが存在する可能性はありますが、ステータスは依然として有効なノードがありませんとなります。
チェックの優先順位
チェックは以下の順序で評価されます:最初にインターネット接続なし、次にアクティブ/利用可能なADMノードなし、最後に有効なADMノードなしです。
特定のケース
一般的なスナックバー
一般的なスナックバーは、インターネット接続なしの場合にのみ表示されます。これは永続的(ユーザーが閉じるか接続が復旧するまで表示)であり、注意を促すバイブレーションを発生させます。

チャット内警告ポップアップ
チャット内警告ポップアップは、接続が生きているがADMノードが利用できず、かつユーザーが少なくとも1つのノードを手動で無効にしている場合に、有効なADMノードなしとして表示されます。これは永続的であり、注意を促すバイブレーションを発生させます。

一般的な更新スピンナー
一般的な更新スピンナー(ヘッダー領域に表示され、データ/メッセージが最新でないことを示す)は、すべての接続ステータスに適用されます。これにはDelegates画面、Wallets画面、および任意のノード画面が含まれます。これは永続的であり、バイブレーションは発生しません。

関連情報:ヘルスチェック:一般的な更新スピンナー
データ読み込みスピンナー
データ読み込みスピンナーは、チャット一覧のスピンナー、特定のチャットのスピンナー、およびADMトランザクション一覧のスピンナーを含みます。すべての接続ステータスで表示され、ユーザーの要求時に表示されます。たとえば、ユーザーがADMトランザクション一覧画面に入る、チャット一覧をスクロールして新しいチャットを読み込む、まだアプリに存在しない特定のチャットに入る、特定のチャット内でスクロールする、またはDelegatesへの投票画面に入る場合です。スピンナーはデータが更新されるまで表示されます。これは永続的であり、バイブレーションは発生しません。
新しいメッセージまたはファイルの送信
この動作はすべての接続ステータスに共通です。接続がない場合、メッセージはチャット内にPendingトランザクションステータスで表示されます。Pendingステータスは、Message sending timeoutsで定義されたタイムアウトに基づいてFailedに切り替わります。2つのタイムアウトが実装されています:通常のメッセージ送信用と、添付ファイル付きメッセージ送信用です。添付ファイルのタイムアウトは、ファイルのアップロード自体ではなく、すでにアップロード済みのファイルを含むADMメッセージの送信を指します。
チャット内でのADMまたはその他の暗号資産の送信
これはADMコインの直接送信にも適用されます。すべての接続ステータスにおいて、送信は禁止されており、警告バイブレーションとともに一時的なスナックバーが表示されます。非ADMコインの直接送信(Account → Coin → Send)については、コインの送金時にADMノードの可用性はチェックされません。

新しいチャットの開始
この動作はすべての接続ステータスに共通です。アプリはローカルでADMアドレスがおそらく正しいことを検証し、リクエストなしで直ちに新しいチャットを開き、チャット内に特別なウェルカムメッセージを表示します。公開鍵がローカルに存在する場合、追加のメッセージは表示されません。公開鍵をノードから取得する必要がある場合、スピンナー付きの追加のチャット内メッセージが表示されます。

有効なADMノードなしの場合、チャット内警告ポップアップも同時に表示されます。
接続復旧時
接続が復旧すると、保留中のリクエストが完了します。たとえば、保留中のメッセージが送信され、スピンナーが更新されます。
パスフレーズによるログイン
インターネット接続なしおよびアクティブ/利用可能なADMノードなしの場合、ユーザーはスナックバーまたはポップアップが表示された状態でログイン画面に留まります。有効なADMノードなしの場合、ユーザーはADMノード画面に移動し、スナックバーまたはポップアップが表示されます。スナックバーは一時的であり、警告バイブレーションを発生させます。

パスワード/生体認証によるログイン
この動作はすべての接続ステータスに共通です。ユーザーは通常通り遅延やリクエストなしでログインし、チャットタブが開きます。ローカルに保存されたメッセージとチャットが表示されます。一般的な更新スピンナーはデータが最新でないことを示し、「接続なし」スナックバーが表示されます。