tls-psk: show a "done" button after connection is established
This commit is contained in:
parent
c04e716a27
commit
b6586c6620
|
@ -216,7 +216,7 @@ public class MainActivity extends BaseSecurityTokenActivity implements FabContai
|
|||
|
||||
}
|
||||
|
||||
private void onKeysSelected() {
|
||||
public void onKeysSelected() {
|
||||
mToolbar.setTitle(R.string.app_name);
|
||||
mDrawer.setSelection(ID_KEYS, false);
|
||||
Fragment frag = new KeyListFragment();
|
||||
|
|
|
@ -127,6 +127,10 @@ public class TransferPresenter implements KeyTransferCallback, LoaderCallbacks<L
|
|||
view.scanQrCode();
|
||||
}
|
||||
|
||||
public void onUiClickDone() {
|
||||
view.finishFragmentOrActivity();
|
||||
}
|
||||
|
||||
public void onUiQrCodeScanned(String qrCodeContent) {
|
||||
connectionStartConnect(qrCodeContent);
|
||||
}
|
||||
|
@ -145,6 +149,7 @@ public class TransferPresenter implements KeyTransferCallback, LoaderCallbacks<L
|
|||
secretKeyAdapter.focusItem(masterKeyId);
|
||||
connectionSend(armoredSecretKey, Long.toString(masterKeyId));
|
||||
} catch (IOException | NotFoundException | PgpGeneralException e) {
|
||||
// TODO
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
@ -215,6 +220,7 @@ public class TransferPresenter implements KeyTransferCallback, LoaderCallbacks<L
|
|||
receivedKeyAdapter.clear();
|
||||
|
||||
view.showConnectionEstablished(otherName);
|
||||
view.setShowDoneIcon(true);
|
||||
view.addFakeBackStackItem(BACKSTACK_TAG_TRANSFER);
|
||||
}
|
||||
|
||||
|
@ -322,6 +328,7 @@ public class TransferPresenter implements KeyTransferCallback, LoaderCallbacks<L
|
|||
keyTransferServerInteractor.startServer(this);
|
||||
|
||||
view.showWaitingForConnection();
|
||||
view.setShowDoneIcon(false);
|
||||
}
|
||||
|
||||
private boolean isWifiConnected() {
|
||||
|
@ -389,6 +396,8 @@ public class TransferPresenter implements KeyTransferCallback, LoaderCallbacks<L
|
|||
void showErrorConnectionError(String errorMessage);
|
||||
void showResultNotification(ImportKeyResult result);
|
||||
|
||||
void setShowDoneIcon(boolean showDoneIcon);
|
||||
|
||||
void setSecretKeyAdapter(Adapter adapter);
|
||||
void setShowSecretKeyEmptyView(boolean isEmpty);
|
||||
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);
|
||||
|
||||
void addFakeBackStackItem(String tag);
|
||||
|
||||
void finishFragmentOrActivity();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,11 +33,15 @@ import android.os.Parcelable;
|
|||
import android.support.annotation.Nullable;
|
||||
import android.support.annotation.RequiresApi;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentActivity;
|
||||
import android.support.v4.app.FragmentManager;
|
||||
import android.support.v4.app.FragmentManager.OnBackStackChangedListener;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.support.v7.widget.RecyclerView.Adapter;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.ViewGroup;
|
||||
|
@ -50,6 +54,7 @@ import com.google.zxing.client.android.Intents;
|
|||
import org.sufficientlysecure.keychain.R;
|
||||
import org.sufficientlysecure.keychain.operations.results.ImportKeyResult;
|
||||
import org.sufficientlysecure.keychain.operations.results.OperationResult;
|
||||
import org.sufficientlysecure.keychain.ui.MainActivity;
|
||||
import org.sufficientlysecure.keychain.ui.QrCodeCaptureActivity;
|
||||
import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper;
|
||||
import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper.Callback;
|
||||
|
@ -97,7 +102,7 @@ public class TransferFragment extends Fragment implements TransferMvpView {
|
|||
}
|
||||
}
|
||||
};
|
||||
|
||||
private boolean showDoneIcon;
|
||||
|
||||
@Override
|
||||
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);
|
||||
|
||||
setHasOptionsMenu(true);
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
|
@ -173,6 +180,22 @@ public class TransferFragment extends Fragment implements TransferMvpView {
|
|||
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
|
||||
public void showNotOnWifi() {
|
||||
vTransferAnimator.setDisplayedChild(VIEW_NO_WIFI);
|
||||
|
@ -236,6 +259,15 @@ public class TransferFragment extends Fragment implements TransferMvpView {
|
|||
startActivityForResult(intent, REQUEST_CODE_SCAN);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setShowDoneIcon(boolean showDoneIcon) {
|
||||
this.showDoneIcon = showDoneIcon;
|
||||
FragmentActivity activity = getActivity();
|
||||
if (activity != null) {
|
||||
activity.invalidateOptionsMenu();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSecretKeyAdapter(Adapter 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
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
if (currentCryptoOperationHelper != null &&
|
||||
|
|
|
@ -1,4 +1,11 @@
|
|||
<?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>
|
Loading…
Reference in a new issue