tls-psk: show a "done" button after connection is established
This commit is contained in:
@@ -216,7 +216,7 @@ public class MainActivity extends BaseSecurityTokenActivity implements FabContai
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onKeysSelected() {
|
public void onKeysSelected() {
|
||||||
mToolbar.setTitle(R.string.app_name);
|
mToolbar.setTitle(R.string.app_name);
|
||||||
mDrawer.setSelection(ID_KEYS, false);
|
mDrawer.setSelection(ID_KEYS, false);
|
||||||
Fragment frag = new KeyListFragment();
|
Fragment frag = new KeyListFragment();
|
||||||
|
|||||||
@@ -127,6 +127,10 @@ public class TransferPresenter implements KeyTransferCallback, LoaderCallbacks<L
|
|||||||
view.scanQrCode();
|
view.scanQrCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void onUiClickDone() {
|
||||||
|
view.finishFragmentOrActivity();
|
||||||
|
}
|
||||||
|
|
||||||
public void onUiQrCodeScanned(String qrCodeContent) {
|
public void onUiQrCodeScanned(String qrCodeContent) {
|
||||||
connectionStartConnect(qrCodeContent);
|
connectionStartConnect(qrCodeContent);
|
||||||
}
|
}
|
||||||
@@ -145,6 +149,7 @@ public class TransferPresenter implements KeyTransferCallback, LoaderCallbacks<L
|
|||||||
secretKeyAdapter.focusItem(masterKeyId);
|
secretKeyAdapter.focusItem(masterKeyId);
|
||||||
connectionSend(armoredSecretKey, Long.toString(masterKeyId));
|
connectionSend(armoredSecretKey, Long.toString(masterKeyId));
|
||||||
} catch (IOException | NotFoundException | PgpGeneralException e) {
|
} catch (IOException | NotFoundException | PgpGeneralException e) {
|
||||||
|
// TODO
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -215,6 +220,7 @@ public class TransferPresenter implements KeyTransferCallback, LoaderCallbacks<L
|
|||||||
receivedKeyAdapter.clear();
|
receivedKeyAdapter.clear();
|
||||||
|
|
||||||
view.showConnectionEstablished(otherName);
|
view.showConnectionEstablished(otherName);
|
||||||
|
view.setShowDoneIcon(true);
|
||||||
view.addFakeBackStackItem(BACKSTACK_TAG_TRANSFER);
|
view.addFakeBackStackItem(BACKSTACK_TAG_TRANSFER);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -322,6 +328,7 @@ public class TransferPresenter implements KeyTransferCallback, LoaderCallbacks<L
|
|||||||
keyTransferServerInteractor.startServer(this);
|
keyTransferServerInteractor.startServer(this);
|
||||||
|
|
||||||
view.showWaitingForConnection();
|
view.showWaitingForConnection();
|
||||||
|
view.setShowDoneIcon(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isWifiConnected() {
|
private boolean isWifiConnected() {
|
||||||
@@ -389,6 +396,8 @@ public class TransferPresenter implements KeyTransferCallback, LoaderCallbacks<L
|
|||||||
void showErrorConnectionError(String errorMessage);
|
void showErrorConnectionError(String errorMessage);
|
||||||
void showResultNotification(ImportKeyResult result);
|
void showResultNotification(ImportKeyResult result);
|
||||||
|
|
||||||
|
void setShowDoneIcon(boolean showDoneIcon);
|
||||||
|
|
||||||
void setSecretKeyAdapter(Adapter adapter);
|
void setSecretKeyAdapter(Adapter adapter);
|
||||||
void setShowSecretKeyEmptyView(boolean isEmpty);
|
void setShowSecretKeyEmptyView(boolean isEmpty);
|
||||||
void setReceivedKeyAdapter(Adapter secretKeyAdapter);
|
void setReceivedKeyAdapter(Adapter secretKeyAdapter);
|
||||||
@@ -396,5 +405,7 @@ public class TransferPresenter implements KeyTransferCallback, LoaderCallbacks<L
|
|||||||
<T extends Parcelable, S extends OperationResult> CryptoOperationHelper<T,S> createCryptoOperationHelper(Callback<T, S> callback);
|
<T extends Parcelable, S extends OperationResult> CryptoOperationHelper<T,S> createCryptoOperationHelper(Callback<T, S> callback);
|
||||||
|
|
||||||
void addFakeBackStackItem(String tag);
|
void addFakeBackStackItem(String tag);
|
||||||
|
|
||||||
|
void finishFragmentOrActivity();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,11 +33,15 @@ import android.os.Parcelable;
|
|||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.support.annotation.RequiresApi;
|
import android.support.annotation.RequiresApi;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
|
import android.support.v4.app.FragmentActivity;
|
||||||
import android.support.v4.app.FragmentManager;
|
import android.support.v4.app.FragmentManager;
|
||||||
import android.support.v4.app.FragmentManager.OnBackStackChangedListener;
|
import android.support.v4.app.FragmentManager.OnBackStackChangedListener;
|
||||||
import android.support.v7.widget.RecyclerView;
|
import android.support.v7.widget.RecyclerView;
|
||||||
import android.support.v7.widget.RecyclerView.Adapter;
|
import android.support.v7.widget.RecyclerView.Adapter;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.Menu;
|
||||||
|
import android.view.MenuInflater;
|
||||||
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
@@ -50,6 +54,7 @@ import com.google.zxing.client.android.Intents;
|
|||||||
import org.sufficientlysecure.keychain.R;
|
import org.sufficientlysecure.keychain.R;
|
||||||
import org.sufficientlysecure.keychain.operations.results.ImportKeyResult;
|
import org.sufficientlysecure.keychain.operations.results.ImportKeyResult;
|
||||||
import org.sufficientlysecure.keychain.operations.results.OperationResult;
|
import org.sufficientlysecure.keychain.operations.results.OperationResult;
|
||||||
|
import org.sufficientlysecure.keychain.ui.MainActivity;
|
||||||
import org.sufficientlysecure.keychain.ui.QrCodeCaptureActivity;
|
import org.sufficientlysecure.keychain.ui.QrCodeCaptureActivity;
|
||||||
import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper;
|
import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper;
|
||||||
import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper.Callback;
|
import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper.Callback;
|
||||||
@@ -97,7 +102,7 @@ public class TransferFragment extends Fragment implements TransferMvpView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
private boolean showDoneIcon;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||||
@@ -126,6 +131,8 @@ public class TransferFragment extends Fragment implements TransferMvpView {
|
|||||||
|
|
||||||
presenter = new TransferPresenter(getContext(), getLoaderManager(), LOADER_ID, this);
|
presenter = new TransferPresenter(getContext(), getLoaderManager(), LOADER_ID, this);
|
||||||
|
|
||||||
|
setHasOptionsMenu(true);
|
||||||
|
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -173,6 +180,22 @@ public class TransferFragment extends Fragment implements TransferMvpView {
|
|||||||
presenter.onUiStop();
|
presenter.onUiStop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||||
|
if (showDoneIcon) {
|
||||||
|
inflater.inflate(R.menu.transfer_menu, menu);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
|
if (item.getItemId() == R.id.menu_done) {
|
||||||
|
presenter.onUiClickDone();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void showNotOnWifi() {
|
public void showNotOnWifi() {
|
||||||
vTransferAnimator.setDisplayedChild(VIEW_NO_WIFI);
|
vTransferAnimator.setDisplayedChild(VIEW_NO_WIFI);
|
||||||
@@ -236,6 +259,15 @@ public class TransferFragment extends Fragment implements TransferMvpView {
|
|||||||
startActivityForResult(intent, REQUEST_CODE_SCAN);
|
startActivityForResult(intent, REQUEST_CODE_SCAN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setShowDoneIcon(boolean showDoneIcon) {
|
||||||
|
this.showDoneIcon = showDoneIcon;
|
||||||
|
FragmentActivity activity = getActivity();
|
||||||
|
if (activity != null) {
|
||||||
|
activity.invalidateOptionsMenu();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setSecretKeyAdapter(Adapter adapter) {
|
public void setSecretKeyAdapter(Adapter adapter) {
|
||||||
vTransferKeyList.setAdapter(adapter);
|
vTransferKeyList.setAdapter(adapter);
|
||||||
@@ -314,6 +346,18 @@ public class TransferFragment extends Fragment implements TransferMvpView {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void finishFragmentOrActivity() {
|
||||||
|
FragmentActivity activity = getActivity();
|
||||||
|
if (activity != null) {
|
||||||
|
if (activity instanceof MainActivity) {
|
||||||
|
((MainActivity) activity).onKeysSelected();
|
||||||
|
} else {
|
||||||
|
activity.finish();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
if (currentCryptoOperationHelper != null &&
|
if (currentCryptoOperationHelper != null &&
|
||||||
|
|||||||
@@ -1,4 +1,11 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:title="Done"
|
||||||
|
android:id="@+id/menu_done"
|
||||||
|
app:showAsAction="ifRoom"
|
||||||
|
/>
|
||||||
|
|
||||||
</menu>
|
</menu>
|
||||||
Reference in New Issue
Block a user