Crash fixes (#1869)

* Crash fixes

* added HasAutofillService to DeviceActionService
This commit is contained in:
mp-bw 2022-04-01 12:07:14 -04:00 committed by GitHub
parent 1f58b0cabe
commit 88f6b60b97
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 29 additions and 18 deletions

View file

@ -43,23 +43,22 @@ namespace Bit.Droid.Services
public Task<bool> ValidateIntegrityAsync(string bioIntegrityKey = null) public Task<bool> ValidateIntegrityAsync(string bioIntegrityKey = null)
{ {
// bioIntegrityKey used in iOS only
if (Build.VERSION.SdkInt < BuildVersionCodes.M) if (Build.VERSION.SdkInt < BuildVersionCodes.M)
{ {
return Task.FromResult(true); return Task.FromResult(true);
} }
_keystore.Load(null);
IKey key = _keystore.GetKey(KeyName, null);
Cipher cipher = Cipher.GetInstance(Transformation);
if (key == null || cipher == null)
{
return Task.FromResult(true);
}
try try
{ {
_keystore.Load(null);
var key = _keystore.GetKey(KeyName, null);
var cipher = Cipher.GetInstance(Transformation);
if (key == null || cipher == null)
{
return Task.FromResult(true);
}
cipher.Init(CipherMode.EncryptMode, key); cipher.Init(CipherMode.EncryptMode, key);
} }
catch (KeyPermanentlyInvalidatedException e) catch (KeyPermanentlyInvalidatedException e)

View file

@ -674,7 +674,7 @@ namespace Bit.Droid.Services
else else
{ {
var data = new Intent(); var data = new Intent();
if (cipher == null) if (cipher?.Login == null)
{ {
data.PutExtra("canceled", "true"); data.PutExtra("canceled", "true");
} }
@ -734,6 +734,11 @@ namespace Bit.Droid.Services
return Accessibility.AccessibilityHelpers.OverlayPermitted(); return Accessibility.AccessibilityHelpers.OverlayPermitted();
} }
public bool HasAutofillService()
{
return true;
}
public void OpenAccessibilityOverlayPermissionSettings() public void OpenAccessibilityOverlayPermissionSettings()
{ {
var activity = (MainActivity)CrossCurrentActivity.Current.Activity; var activity = (MainActivity)CrossCurrentActivity.Current.Activity;

View file

@ -35,6 +35,7 @@ namespace Bit.App.Abstractions
void Background(); void Background();
bool AutofillAccessibilityServiceRunning(); bool AutofillAccessibilityServiceRunning();
bool AutofillAccessibilityOverlayPermitted(); bool AutofillAccessibilityOverlayPermitted();
bool HasAutofillService();
bool AutofillServiceEnabled(); bool AutofillServiceEnabled();
void DisableAutofillService(); void DisableAutofillService();
bool AutofillServicesEnabled(); bool AutofillServicesEnabled();

View file

@ -192,7 +192,8 @@ namespace Bit.App.Pages
public void UpdateEnabled() public void UpdateEnabled()
{ {
AutofillServiceToggled = _deviceActionService.AutofillServiceEnabled(); AutofillServiceToggled =
_deviceActionService.HasAutofillService() && _deviceActionService.AutofillServiceEnabled();
AccessibilityToggled = _deviceActionService.AutofillAccessibilityServiceRunning(); AccessibilityToggled = _deviceActionService.AutofillAccessibilityServiceRunning();
DrawOverToggled = _deviceActionService.AutofillAccessibilityOverlayPermitted(); DrawOverToggled = _deviceActionService.AutofillAccessibilityOverlayPermitted();
} }

View file

@ -66,9 +66,9 @@ namespace Bit.App.Pages
public void Init(AppOptions appOptions) public void Init(AppOptions appOptions)
{ {
_appOptions = appOptions; _appOptions = appOptions;
Uri = appOptions.Uri; Uri = appOptions?.Uri;
string name = null; string name = null;
if (Uri.StartsWith(Constants.AndroidAppProtocol)) if (Uri?.StartsWith(Constants.AndroidAppProtocol) ?? false)
{ {
name = Uri.Substring(Constants.AndroidAppProtocol.Length); name = Uri.Substring(Constants.AndroidAppProtocol.Length);
} }

View file

@ -208,10 +208,10 @@ namespace Bit.Core.Services
if (_accessTokenForDecoding == null) if (_accessTokenForDecoding == null)
{ {
await GetTokenAsync(); await GetTokenAsync();
} if (_accessTokenForDecoding == null)
if (_accessTokenForDecoding == null) {
{ return false;
return false; }
} }
var decoded = DecodeToken(); var decoded = DecodeToken();
if (decoded?["amr"] == null) if (decoded?["amr"] == null)

View file

@ -392,6 +392,11 @@ namespace Bit.iOS.Core.Services
throw new NotImplementedException(); throw new NotImplementedException();
} }
public bool HasAutofillService()
{
return false;
}
public bool AutofillServiceEnabled() public bool AutofillServiceEnabled()
{ {
throw new NotImplementedException(); throw new NotImplementedException();