tls-psk: show "Connecting…" view while waiting
This commit is contained in:
@@ -82,6 +82,7 @@ public class KeyTransferInteractor {
|
|||||||
private static final int CONNECTION_ERROR_LISTEN = 8;
|
private static final int CONNECTION_ERROR_LISTEN = 8;
|
||||||
|
|
||||||
private static final String QRCODE_URI_FORMAT = "PGP+TRANSFER://%s@%s:%s";
|
private static final String QRCODE_URI_FORMAT = "PGP+TRANSFER://%s@%s:%s";
|
||||||
|
private static final int TIMEOUT_CONNECTING = 2500;
|
||||||
private static final int TIMEOUT_RECEIVING = 2000;
|
private static final int TIMEOUT_RECEIVING = 2000;
|
||||||
private static final int TIMEOUT_WAITING = 500;
|
private static final int TIMEOUT_WAITING = 500;
|
||||||
private static final int PSK_BYTE_LENGTH = 16;
|
private static final int PSK_BYTE_LENGTH = 16;
|
||||||
@@ -237,6 +238,8 @@ public class KeyTransferInteractor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void handleOpenConnection(Socket socket) throws IOException {
|
private void handleOpenConnection(Socket socket) throws IOException {
|
||||||
|
socket.setSoTimeout(TIMEOUT_CONNECTING);
|
||||||
|
|
||||||
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
|
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
|
||||||
OutputStream outputStream = new BufferedOutputStream(socket.getOutputStream());
|
OutputStream outputStream = new BufferedOutputStream(socket.getOutputStream());
|
||||||
|
|
||||||
|
|||||||
@@ -273,6 +273,8 @@ public class TransferPresenter implements KeyTransferCallback, LoaderCallbacks<L
|
|||||||
@Override
|
@Override
|
||||||
public void onConnectionErrorConnect() {
|
public void onConnectionErrorConnect() {
|
||||||
view.showErrorConnectionFailed();
|
view.showErrorConnectionFailed();
|
||||||
|
|
||||||
|
resetAndStartListen();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -294,8 +296,10 @@ public class TransferPresenter implements KeyTransferCallback, LoaderCallbacks<L
|
|||||||
private void connectionStartConnect(String qrCodeContent) {
|
private void connectionStartConnect(String qrCodeContent) {
|
||||||
connectionClear();
|
connectionClear();
|
||||||
|
|
||||||
|
view.showEstablishingConnection();
|
||||||
|
|
||||||
keyTransferClientInteractor = new KeyTransferInteractor(DELIMITER_START, DELIMITER_END);
|
keyTransferClientInteractor = new KeyTransferInteractor(DELIMITER_START, DELIMITER_END);
|
||||||
keyTransferClientInteractor.connectToServer(qrCodeContent, this);
|
keyTransferClientInteractor.connectToServer(qrCodeContent, TransferPresenter.this);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkWifiResetAndStartListen() {
|
private void checkWifiResetAndStartListen() {
|
||||||
@@ -368,6 +372,7 @@ public class TransferPresenter implements KeyTransferCallback, LoaderCallbacks<L
|
|||||||
public interface TransferMvpView {
|
public interface TransferMvpView {
|
||||||
void showNotOnWifi();
|
void showNotOnWifi();
|
||||||
void showWaitingForConnection();
|
void showWaitingForConnection();
|
||||||
|
void showEstablishingConnection();
|
||||||
void showConnectionEstablished(String hostname);
|
void showConnectionEstablished(String hostname);
|
||||||
void showReceivingKeys();
|
void showReceivingKeys();
|
||||||
|
|
||||||
|
|||||||
@@ -63,9 +63,10 @@ import org.sufficientlysecure.keychain.ui.widget.ConnectionStatusView;
|
|||||||
@RequiresApi(api = VERSION_CODES.LOLLIPOP)
|
@RequiresApi(api = VERSION_CODES.LOLLIPOP)
|
||||||
public class TransferFragment extends Fragment implements TransferMvpView {
|
public class TransferFragment extends Fragment implements TransferMvpView {
|
||||||
public static final int VIEW_WAITING = 0;
|
public static final int VIEW_WAITING = 0;
|
||||||
public static final int VIEW_CONNECTED = 1;
|
public static final int VIEW_CONNECTING = 1;
|
||||||
public static final int VIEW_RECEIVING = 2;
|
public static final int VIEW_CONNECTED = 2;
|
||||||
public static final int VIEW_NO_WIFI = 3;
|
public static final int VIEW_RECEIVING = 3;
|
||||||
|
public static final int VIEW_NO_WIFI = 4;
|
||||||
|
|
||||||
public static final int REQUEST_CODE_SCAN = 1;
|
public static final int REQUEST_CODE_SCAN = 1;
|
||||||
public static final int LOADER_ID = 1;
|
public static final int LOADER_ID = 1;
|
||||||
@@ -182,6 +183,11 @@ public class TransferFragment extends Fragment implements TransferMvpView {
|
|||||||
vTransferAnimator.setDisplayedChild(VIEW_WAITING);
|
vTransferAnimator.setDisplayedChild(VIEW_WAITING);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void showEstablishingConnection() {
|
||||||
|
vTransferAnimator.setDisplayedChild(VIEW_CONNECTING);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void showConnectionEstablished(String hostname) {
|
public void showConnectionEstablished(String hostname) {
|
||||||
String statusText = getString(R.string.transfer_status_connected, hostname);
|
String statusText = getString(R.string.transfer_status_connected, hostname);
|
||||||
|
|||||||
@@ -68,6 +68,30 @@
|
|||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:padding="16dp">
|
||||||
|
|
||||||
|
<org.sufficientlysecure.keychain.ui.widget.ConnectionStatusView
|
||||||
|
android:layout_width="96dp"
|
||||||
|
android:layout_height="96dp"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:layout_marginBottom="16dp"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:layout_margin="8dp"
|
||||||
|
android:text="@string/transfer_connecting"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
|||||||
@@ -1905,5 +1905,6 @@
|
|||||||
<string name="transfer_error_generic_msg">"Communication error: %s"</string>
|
<string name="transfer_error_generic_msg">"Communication error: %s"</string>
|
||||||
<string name="transfer_not_available">"Sorry, this feature can only be used on Android 5 or newer :("</string>
|
<string name="transfer_not_available">"Sorry, this feature can only be used on Android 5 or newer :("</string>
|
||||||
<string name="transfer_list_empty">No keys on this device that could be sent. Waiting for incoming keys…</string>
|
<string name="transfer_list_empty">No keys on this device that could be sent. Waiting for incoming keys…</string>
|
||||||
|
<string name="transfer_connecting">Connecting…</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
Reference in New Issue
Block a user