kopia lustrzana https://github.com/ryukoposting/Signal-Android
Fix QR scan crash and add exchange data fallback for Create Payment.
rodzic
bd4dd25460
commit
b6a4d01d42
|
@ -76,9 +76,17 @@ public class CreatePaymentViewModel extends ViewModel {
|
||||||
return Optional.fromNullable(ApplicationDependencies.getPayments()
|
return Optional.fromNullable(ApplicationDependencies.getPayments()
|
||||||
.getCurrencyExchange(true)
|
.getCurrencyExchange(true)
|
||||||
.getExchangeRate(currency));
|
.getExchangeRate(currency));
|
||||||
} catch (IOException e) {
|
} catch (IOException e1) {
|
||||||
|
Log.w(TAG, "Unable to get fresh exchange data, falling back to cached", e1);
|
||||||
|
try {
|
||||||
|
return Optional.fromNullable(ApplicationDependencies.getPayments()
|
||||||
|
.getCurrencyExchange(false)
|
||||||
|
.getExchangeRate(currency));
|
||||||
|
} catch (IOException e2) {
|
||||||
|
Log.w(TAG, "Unable to get any exchange data", e2);
|
||||||
return Optional.absent();
|
return Optional.absent();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
inputState.update(liveExchangeRate, (rate, state) -> updateAmount(ApplicationDependencies.getApplication(), state.updateExchangeRate(rate), AmountKeyboardGlyph.NONE));
|
inputState.update(liveExchangeRate, (rate, state) -> updateAmount(ApplicationDependencies.getApplication(), state.updateExchangeRate(rate), AmountKeyboardGlyph.NONE));
|
||||||
|
|
|
@ -11,6 +11,7 @@ import androidx.appcompat.widget.Toolbar;
|
||||||
import androidx.lifecycle.ViewModelProvider;
|
import androidx.lifecycle.ViewModelProvider;
|
||||||
import androidx.navigation.Navigation;
|
import androidx.navigation.Navigation;
|
||||||
|
|
||||||
|
import org.signal.core.util.ThreadUtil;
|
||||||
import org.signal.core.util.logging.Log;
|
import org.signal.core.util.logging.Log;
|
||||||
import org.thoughtcrime.securesms.LoggingFragment;
|
import org.thoughtcrime.securesms.LoggingFragment;
|
||||||
import org.thoughtcrime.securesms.R;
|
import org.thoughtcrime.securesms.R;
|
||||||
|
@ -52,14 +53,14 @@ public final class PaymentsTransferQrScanFragment extends LoggingFragment {
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
scanningThread = new ScanningThread();
|
scanningThread = new ScanningThread();
|
||||||
scanningThread.setScanListener(data -> {
|
scanningThread.setScanListener(data -> ThreadUtil.runOnMain(() -> {
|
||||||
try {
|
try {
|
||||||
viewModel.postQrData(MobileCoinPublicAddress.fromQr(data).getPaymentAddressBase58());
|
viewModel.postQrData(MobileCoinPublicAddress.fromQr(data).getPaymentAddressBase58());
|
||||||
Navigation.findNavController(requireView()).navigate(R.id.action_paymentsScanQr_pop);
|
Navigation.findNavController(requireView()).navigate(R.id.action_paymentsScanQr_pop);
|
||||||
} catch (MobileCoinPublicAddress.AddressException e) {
|
} catch (MobileCoinPublicAddress.AddressException e) {
|
||||||
Log.e(TAG, "Not a valid address");
|
Log.e(TAG, "Not a valid address");
|
||||||
}
|
}
|
||||||
});
|
}));
|
||||||
scannerView.onResume();
|
scannerView.onResume();
|
||||||
scannerView.setPreviewCallback(scanningThread);
|
scannerView.setPreviewCallback(scanningThread);
|
||||||
scanningThread.start();
|
scanningThread.start();
|
||||||
|
|
Ładowanie…
Reference in New Issue