rewrite NfcHelper

This commit is contained in:
Vincent Breitmoser
2017-08-02 21:39:36 +02:00
parent 93d7b3bdf3
commit 4e920afe94
3 changed files with 117 additions and 126 deletions

View File

@@ -27,7 +27,6 @@ import android.app.Activity;
import android.app.ActivityOptions;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
@@ -39,6 +38,7 @@ import android.os.Build;
import android.os.Bundle;
import android.os.ParcelFileDescriptor;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
@@ -94,9 +94,7 @@ public class ViewKeyAdvShareFragment extends LoaderFragment implements
View root = super.onCreateView(inflater, superContainer, savedInstanceState);
View view = inflater.inflate(R.layout.view_key_adv_share_fragment, getContainer());
ContentResolver contentResolver = ViewKeyAdvShareFragment.this.getActivity().getContentResolver();
KeyRepository keyRepository = KeyRepository.createDatabaseInteractor(getContext());
mNfcHelper = new NfcHelper(getActivity(), keyRepository);
mNfcHelper = NfcHelper.getInstance();
mFingerprintView = (TextView) view.findViewById(R.id.view_key_fingerprint);
mQrCode = (ImageView) view.findViewById(R.id.view_key_qr_code);
@@ -176,7 +174,11 @@ public class ViewKeyAdvShareFragment extends LoaderFragment implements
vKeyNfcButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mNfcHelper.invokeNfcBeam();
FragmentActivity activity = getActivity();
if (activity == null) {
return;
}
mNfcHelper.invokeNfcBeam(activity);
}
});
} else {
@@ -359,7 +361,9 @@ public class ViewKeyAdvShareFragment extends LoaderFragment implements
getLoaderManager().initLoader(LOADER_ID_UNIFIED, null, this);
// Prepare the NfcHelper
mNfcHelper.initNfc(mDataUri);
FragmentActivity activity = getActivity();
KeyRepository keyRepository = KeyRepository.createDatabaseInteractor(activity);
mNfcHelper.initNfcIfSupported(activity, keyRepository, mDataUri);
}
static final String[] UNIFIED_PROJECTION = new String[]{

View File

@@ -166,9 +166,6 @@ public class ViewKeyActivity extends BaseSecurityTokenActivity implements
private String mQrCodeLoaded;
// NFC
private NfcHelper mNfcHelper;
private static final int LOADER_ID_UNIFIED = 0;
private boolean mIsSecret = false;
@@ -321,10 +318,12 @@ public class ViewKeyActivity extends BaseSecurityTokenActivity implements
}
});
final NfcHelper nfcHelper = NfcHelper.getInstance();
nfcHelper.initNfcIfSupported(this, mKeyRepository, mDataUri);
mActionNfc.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mNfcHelper.invokeNfcBeam();
nfcHelper.invokeNfcBeam(ViewKeyActivity.this);
}
});
@@ -332,9 +331,6 @@ public class ViewKeyActivity extends BaseSecurityTokenActivity implements
// or start new ones.
getSupportLoaderManager().initLoader(LOADER_ID_UNIFIED, null, this);
mNfcHelper = new NfcHelper(this, mKeyRepository);
mNfcHelper.initNfc(mDataUri);
if (savedInstanceState == null && getIntent().hasExtra(EXTRA_DISPLAY_RESULT)) {
OperationResult result = getIntent().getParcelableExtra(EXTRA_DISPLAY_RESULT);
result.createNotify(this).show();