diff --git a/src/Android/Accessibility/AccessibilityService.cs b/src/Android/Accessibility/AccessibilityService.cs index 1345a5cef..d57ae56a9 100644 --- a/src/Android/Accessibility/AccessibilityService.cs +++ b/src/Android/Accessibility/AccessibilityService.cs @@ -15,7 +15,7 @@ using Bit.Core.Utilities; namespace Bit.Droid.Accessibility { - [Service(Permission = Android.Manifest.Permission.BindAccessibilityService, Label = "Bitwarden")] + [Service(Permission = Android.Manifest.Permission.BindAccessibilityService, Label = "Bitwarden", Exported = true)] [IntentFilter(new string[] { "android.accessibilityservice.AccessibilityService" })] [MetaData("android.accessibilityservice", Resource = "@xml/accessibilityservice")] [Register("com.x8bit.bitwarden.Accessibility.AccessibilityService")] diff --git a/src/Android/Android.csproj b/src/Android/Android.csproj index f85cd5c15..ac444d7a9 100644 --- a/src/Android/Android.csproj +++ b/src/Android/Android.csproj @@ -15,7 +15,7 @@ Properties\AndroidManifest.xml Resources Assets - v11.0 + v12.1 Xamarin.Android.Net.AndroidClientHandler @@ -213,6 +213,9 @@ + + + @@ -280,6 +283,8 @@ + + \ No newline at end of file diff --git a/src/Android/Autofill/AutofillHelpers.cs b/src/Android/Autofill/AutofillHelpers.cs index 8ec3416bd..f1984dbff 100644 --- a/src/Android/Autofill/AutofillHelpers.cs +++ b/src/Android/Autofill/AutofillHelpers.cs @@ -19,6 +19,7 @@ using AndroidX.AutoFill.Inline; using AndroidX.AutoFill.Inline.V1; using Bit.Core.Abstractions; using SaveFlags = Android.Service.Autofill.SaveFlags; +using Bit.Droid.Utilities; namespace Bit.Droid.Autofill { @@ -270,8 +271,7 @@ namespace Bit.Droid.Autofill return null; } intent.PutExtra("autofillFrameworkUri", uri); - var pendingIntent = PendingIntent.GetActivity(context, ++_pendingIntentId, intent, - PendingIntentFlags.CancelCurrent); + var pendingIntent = PendingIntent.GetActivity(context, ++_pendingIntentId, intent, AndroidHelpers.AddPendingIntentMutabilityFlag(PendingIntentFlags.CancelCurrent, true)); var overlayPresentation = BuildOverlayPresentation( AppResources.AutofillWithBitwarden, @@ -324,7 +324,7 @@ namespace Bit.Droid.Autofill // InlinePresentation requires nonNull pending intent (even though we only utilize one for the // "my vault" presentation) so we're including an empty one here pendingIntent = PendingIntent.GetService(context, 0, new Intent(), - PendingIntentFlags.OneShot | PendingIntentFlags.UpdateCurrent); + AndroidHelpers.AddPendingIntentMutabilityFlag(PendingIntentFlags.OneShot | PendingIntentFlags.UpdateCurrent, true)); } var slice = CreateInlinePresentationSlice( inlinePresentationSpec, diff --git a/src/Android/Autofill/AutofillService.cs b/src/Android/Autofill/AutofillService.cs index 07171eb9e..97bc07ae4 100644 --- a/src/Android/Autofill/AutofillService.cs +++ b/src/Android/Autofill/AutofillService.cs @@ -15,7 +15,7 @@ using Bit.Core.Utilities; namespace Bit.Droid.Autofill { - [Service(Permission = Manifest.Permission.BindAutofillService, Label = "Bitwarden")] + [Service(Permission = Manifest.Permission.BindAutofillService, Label = "Bitwarden", Exported = true)] [IntentFilter(new string[] { "android.service.autofill.AutofillService" })] [MetaData("android.autofill", Resource = "@xml/autofillservice")] [Register("com.x8bit.bitwarden.Autofill.AutofillService")] diff --git a/src/Android/MainActivity.cs b/src/Android/MainActivity.cs index 8d5385e37..627fea1f3 100644 --- a/src/Android/MainActivity.cs +++ b/src/Android/MainActivity.cs @@ -9,7 +9,7 @@ using Android.Content.Res; using Android.Nfc; using Android.OS; using Android.Runtime; -using AndroidX.Core.Content; +using Android.Views; using Bit.App.Abstractions; using Bit.App.Models; using Bit.App.Utilities; @@ -49,7 +49,7 @@ namespace Bit.Droid { var eventUploadIntent = new Intent(this, typeof(EventUploadReceiver)); _eventUploadPendingIntent = PendingIntent.GetBroadcast(this, 0, eventUploadIntent, - PendingIntentFlags.UpdateCurrent); + AndroidHelpers.AddPendingIntentMutabilityFlag(PendingIntentFlags.UpdateCurrent, false)); var policy = new StrictMode.ThreadPolicy.Builder().PermitAll().Build(); StrictMode.SetThreadPolicy(policy); @@ -278,7 +278,7 @@ namespace Bit.Droid { var intent = new Intent(this, Class); intent.AddFlags(ActivityFlags.SingleTop); - var pendingIntent = PendingIntent.GetActivity(this, 0, intent, 0); + var pendingIntent = PendingIntent.GetActivity(this, 0, intent, AndroidHelpers.AddPendingIntentMutabilityFlag(0, false)); // register for all NDEF tags starting with http och https var ndef = new IntentFilter(NfcAdapter.ActionNdefDiscovered); ndef.AddDataScheme("http"); diff --git a/src/Android/Properties/AndroidManifest.xml b/src/Android/Properties/AndroidManifest.xml index 07ace3546..6b2809ee8 100644 --- a/src/Android/Properties/AndroidManifest.xml +++ b/src/Android/Properties/AndroidManifest.xml @@ -1,6 +1,6 @@  - + diff --git a/src/Android/Resources/drawable-night-v26/splash_screen_round.xml b/src/Android/Resources/drawable-night-v26/splash_screen_round.xml new file mode 100644 index 000000000..dc4c7209e --- /dev/null +++ b/src/Android/Resources/drawable-night-v26/splash_screen_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/Android/Resources/drawable-v26/splash_screen_round.xml b/src/Android/Resources/drawable-v26/splash_screen_round.xml new file mode 100644 index 000000000..602f055dd --- /dev/null +++ b/src/Android/Resources/drawable-v26/splash_screen_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/Android/Resources/drawable/logo_rounded.xml b/src/Android/Resources/drawable/logo_rounded.xml new file mode 100644 index 000000000..860d4c963 --- /dev/null +++ b/src/Android/Resources/drawable/logo_rounded.xml @@ -0,0 +1,14 @@ + + + + + diff --git a/src/Android/Resources/values-night/styles.xml b/src/Android/Resources/values-night/styles.xml index 7e5a4074e..edfaaa455 100644 --- a/src/Android/Resources/values-night/styles.xml +++ b/src/Android/Resources/values-night/styles.xml @@ -4,6 +4,7 @@