tangem-app-android-audited/app/src/main/java/com/tangem/data/fingerprint/ConfirmWithFingerprintTask.java
2019-09-11 12:44:43 +03:00

61 lines
No EOL
1.7 KiB
Java

package com.tangem.data.fingerprint;
import android.os.AsyncTask;
import android.widget.Toast;
import com.tangem.ui.fragment.pin.PinSaveFragment;
import com.tangem.wallet.R;
import java.lang.ref.WeakReference;
import javax.crypto.Cipher;
public class ConfirmWithFingerprintTask extends AsyncTask<Void, Void, Boolean> {
private WeakReference<PinSaveFragment> reference;
public ConfirmWithFingerprintTask(PinSaveFragment context) {
reference = new WeakReference<>(context);
reference.get().setFingerprintHelper(new FingerprintHelper(reference.get()));
}
@Override
protected Boolean doInBackground(Void... params) {
PinSaveFragment pinSaveFragment = reference.get();
if (!pinSaveFragment.getKeyStore())
return false;
if (!pinSaveFragment.createNewKey(false))
return false;
if (!pinSaveFragment.getCipher())
return false;
return pinSaveFragment.initCipher(Cipher.ENCRYPT_MODE) && pinSaveFragment.initCryptObject();
}
@Override
protected void onPostExecute(final Boolean success) {
PinSaveFragment pinSaveFragment = reference.get();
onCancelled();
if (!success) {
Toast.makeText(pinSaveFragment.getContext(), R.string.pin_save_notification_failed, Toast.LENGTH_LONG).show();
} else {
pinSaveFragment.getFingerprintHelper().startAuth(pinSaveFragment.getFingerprintManager(), pinSaveFragment.getCryptoObject());
}
}
@Override
protected void onCancelled() {
PinSaveFragment pinSaveFragment = reference.get();
if (pinSaveFragment.getDFingerPrintConfirmation() != null) {
pinSaveFragment.getDFingerPrintConfirmation().cancel();
}
}
}