mirror of
https://github.com/bitwarden/android.git
synced 2024-12-25 10:28:28 +03:00
qs tile to quickly launch my vault (android)
This commit is contained in:
parent
ea1b584436
commit
5950c33a43
12 changed files with 96 additions and 20 deletions
|
@ -17,7 +17,7 @@
|
||||||
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
|
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
|
||||||
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
|
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
|
||||||
<AndroidUseLatestPlatformSdk>True</AndroidUseLatestPlatformSdk>
|
<AndroidUseLatestPlatformSdk>True</AndroidUseLatestPlatformSdk>
|
||||||
<TargetFrameworkVersion>v7.1</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v8.0</TargetFrameworkVersion>
|
||||||
<AndroidSupportedAbis>armeabi,armeabi-v7a,x86</AndroidSupportedAbis>
|
<AndroidSupportedAbis>armeabi,armeabi-v7a,x86</AndroidSupportedAbis>
|
||||||
<AndroidHttpClientHandlerType>Xamarin.Android.Net.AndroidClientHandler</AndroidHttpClientHandlerType>
|
<AndroidHttpClientHandlerType>Xamarin.Android.Net.AndroidClientHandler</AndroidHttpClientHandlerType>
|
||||||
<AndroidStoreUncompressedFileExtensions />
|
<AndroidStoreUncompressedFileExtensions />
|
||||||
|
@ -308,6 +308,7 @@
|
||||||
<Compile Include="Controls\ExtendedTextCellRenderer.cs" />
|
<Compile Include="Controls\ExtendedTextCellRenderer.cs" />
|
||||||
<Compile Include="Controls\ExtendedPickerRenderer.cs" />
|
<Compile Include="Controls\ExtendedPickerRenderer.cs" />
|
||||||
<Compile Include="Controls\ExtendedEntryRenderer.cs" />
|
<Compile Include="Controls\ExtendedEntryRenderer.cs" />
|
||||||
|
<Compile Include="MyVaultTileService.cs" />
|
||||||
<Compile Include="Services\HttpService.cs" />
|
<Compile Include="Services\HttpService.cs" />
|
||||||
<Compile Include="Services\AndroidKeyStoreStorageService.cs" />
|
<Compile Include="Services\AndroidKeyStoreStorageService.cs" />
|
||||||
<Compile Include="Services\LocalizeService.cs" />
|
<Compile Include="Services\LocalizeService.cs" />
|
||||||
|
@ -944,6 +945,9 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<AndroidResource Include="Resources\drawable-xxxhdpi\cog.png" />
|
<AndroidResource Include="Resources\drawable-xxxhdpi\cog.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AndroidResource Include="Resources\drawable\shield.png" />
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
|
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
|
||||||
<Import Project="..\..\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\build\Xamarin.Android.Support.Vector.Drawable.targets" Condition="Exists('..\..\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\build\Xamarin.Android.Support.Vector.Drawable.targets')" />
|
<Import Project="..\..\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\build\Xamarin.Android.Support.Vector.Drawable.targets" Condition="Exists('..\..\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\build\Xamarin.Android.Support.Vector.Drawable.targets')" />
|
||||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
|
|
|
@ -11,7 +11,7 @@ using XLabs.Ioc;
|
||||||
|
|
||||||
namespace Bit.Android
|
namespace Bit.Android
|
||||||
{
|
{
|
||||||
[Service(Permission = "android.permission.BIND_ACCESSIBILITY_SERVICE", Label = "bitwarden")]
|
[Service(Permission = global::Android.Manifest.Permission.BindAccessibilityService, Label = "bitwarden")]
|
||||||
[IntentFilter(new string[] { "android.accessibilityservice.AccessibilityService" })]
|
[IntentFilter(new string[] { "android.accessibilityservice.AccessibilityService" })]
|
||||||
[MetaData("android.accessibilityservice", Resource = "@xml/accessibilityservice")]
|
[MetaData("android.accessibilityservice", Resource = "@xml/accessibilityservice")]
|
||||||
public class AutofillService : AccessibilityService
|
public class AutofillService : AccessibilityService
|
||||||
|
|
|
@ -74,6 +74,7 @@ namespace Bit.Android
|
||||||
_settings = Resolver.Resolve<ISettings>();
|
_settings = Resolver.Resolve<ISettings>();
|
||||||
LoadApplication(new App.App(
|
LoadApplication(new App.App(
|
||||||
uri,
|
uri,
|
||||||
|
Intent.GetBooleanExtra("myVaultTile", false),
|
||||||
Resolver.Resolve<IAuthService>(),
|
Resolver.Resolve<IAuthService>(),
|
||||||
Resolver.Resolve<IConnectivity>(),
|
Resolver.Resolve<IConnectivity>(),
|
||||||
Resolver.Resolve<IUserDialogs>(),
|
Resolver.Resolve<IUserDialogs>(),
|
||||||
|
|
58
src/Android/MyVaultTileService.cs
Normal file
58
src/Android/MyVaultTileService.cs
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
using Android.App;
|
||||||
|
using Android.Content;
|
||||||
|
using Android.Service.QuickSettings;
|
||||||
|
using Java.Lang;
|
||||||
|
|
||||||
|
namespace Bit.Android
|
||||||
|
{
|
||||||
|
[Service(Permission = global::Android.Manifest.Permission.BindQuickSettingsTile,
|
||||||
|
Label = "@string/MyVault", Icon = "@drawable/shield")]
|
||||||
|
[IntentFilter(new string[] { ActionQsTile })]
|
||||||
|
public class MyVaultTileService : TileService
|
||||||
|
{
|
||||||
|
public override void OnTileAdded()
|
||||||
|
{
|
||||||
|
base.OnTileAdded();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnStartListening()
|
||||||
|
{
|
||||||
|
base.OnStartListening();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnStopListening()
|
||||||
|
{
|
||||||
|
base.OnStopListening();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnTileRemoved()
|
||||||
|
{
|
||||||
|
base.OnTileRemoved();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnClick()
|
||||||
|
{
|
||||||
|
base.OnClick();
|
||||||
|
|
||||||
|
if(IsLocked)
|
||||||
|
{
|
||||||
|
UnlockAndRun(new Runnable(() =>
|
||||||
|
{
|
||||||
|
LaunchMyVault();
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LaunchMyVault();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LaunchMyVault()
|
||||||
|
{
|
||||||
|
var intent = new Intent(this, typeof(SplashActivity));
|
||||||
|
intent.SetFlags(ActivityFlags.NewTask | ActivityFlags.SingleTop | ActivityFlags.ClearTop);
|
||||||
|
intent.PutExtra("myVaultTile", true);
|
||||||
|
StartActivityAndCollapse(intent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
28
src/Android/Resources/Resource.Designer.cs
generated
28
src/Android/Resources/Resource.Designer.cs
generated
|
@ -2769,8 +2769,8 @@ namespace Bit.Android
|
||||||
// aapt resource value: 0x7f0200e7
|
// aapt resource value: 0x7f0200e7
|
||||||
public const int notification_sm = 2130837735;
|
public const int notification_sm = 2130837735;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0200f9
|
// aapt resource value: 0x7f0200fa
|
||||||
public const int notification_template_icon_bg = 2130837753;
|
public const int notification_template_icon_bg = 2130837754;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0200e8
|
// aapt resource value: 0x7f0200e8
|
||||||
public const int paperclip = 2130837736;
|
public const int paperclip = 2130837736;
|
||||||
|
@ -2797,31 +2797,34 @@ namespace Bit.Android
|
||||||
public const int share_tools = 2130837743;
|
public const int share_tools = 2130837743;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0200f0
|
// aapt resource value: 0x7f0200f0
|
||||||
public const int splash_screen = 2130837744;
|
public const int shield = 2130837744;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0200f1
|
// aapt resource value: 0x7f0200f1
|
||||||
public const int star = 2130837745;
|
public const int splash_screen = 2130837745;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0200f2
|
// aapt resource value: 0x7f0200f2
|
||||||
public const int star_selected = 2130837746;
|
public const int star = 2130837746;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0200f3
|
// aapt resource value: 0x7f0200f3
|
||||||
public const int tools = 2130837747;
|
public const int star_selected = 2130837747;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0200f4
|
// aapt resource value: 0x7f0200f4
|
||||||
public const int tools_selected = 2130837748;
|
public const int tools = 2130837748;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0200f5
|
// aapt resource value: 0x7f0200f5
|
||||||
public const int trash = 2130837749;
|
public const int tools_selected = 2130837749;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0200f6
|
// aapt resource value: 0x7f0200f6
|
||||||
public const int upload = 2130837750;
|
public const int trash = 2130837750;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0200f7
|
// aapt resource value: 0x7f0200f7
|
||||||
public const int user = 2130837751;
|
public const int upload = 2130837751;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0200f8
|
// aapt resource value: 0x7f0200f8
|
||||||
public const int yubikey = 2130837752;
|
public const int user = 2130837752;
|
||||||
|
|
||||||
|
// aapt resource value: 0x7f0200f9
|
||||||
|
public const int yubikey = 2130837753;
|
||||||
|
|
||||||
static Drawable()
|
static Drawable()
|
||||||
{
|
{
|
||||||
|
@ -3756,6 +3759,9 @@ namespace Bit.Android
|
||||||
// aapt resource value: 0x7f080046
|
// aapt resource value: 0x7f080046
|
||||||
public const int Hello = 2131230790;
|
public const int Hello = 2131230790;
|
||||||
|
|
||||||
|
// aapt resource value: 0x7f08009a
|
||||||
|
public const int MyVault = 2131230874;
|
||||||
|
|
||||||
// aapt resource value: 0x7f08002e
|
// aapt resource value: 0x7f08002e
|
||||||
public const int abc_action_bar_home_description = 2131230766;
|
public const int abc_action_bar_home_description = 2131230766;
|
||||||
|
|
||||||
|
|
BIN
src/Android/Resources/drawable/shield.png
Normal file
BIN
src/Android/Resources/drawable/shield.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.2 KiB |
|
@ -5,4 +5,7 @@
|
||||||
accessibility service by tapping the toggle switch above, then press OK on the confirmation pop-up. You can then press
|
accessibility service by tapping the toggle switch above, then press OK on the confirmation pop-up. You can then press
|
||||||
the back button twice to return to the main bitwarden app.
|
the back button twice to return to the main bitwarden app.
|
||||||
</string>
|
</string>
|
||||||
|
<string name="MyVault">
|
||||||
|
My Vault
|
||||||
|
</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -23,7 +23,9 @@ namespace Bit.Android
|
||||||
base.OnResume();
|
base.OnResume();
|
||||||
var startupWork = new Task(() =>
|
var startupWork = new Task(() =>
|
||||||
{
|
{
|
||||||
StartActivity(new Intent(Application.Context, typeof(MainActivity)));
|
var mainIntent = new Intent(Application.Context, typeof(MainActivity));
|
||||||
|
mainIntent.PutExtra("myVaultTile", Intent.GetBooleanExtra("myVaultTile", false));
|
||||||
|
StartActivity(mainIntent);
|
||||||
});
|
});
|
||||||
|
|
||||||
startupWork.Start();
|
startupWork.Start();
|
||||||
|
|
|
@ -35,6 +35,7 @@ namespace Bit.App
|
||||||
|
|
||||||
public App(
|
public App(
|
||||||
string uri,
|
string uri,
|
||||||
|
bool myVault,
|
||||||
IAuthService authService,
|
IAuthService authService,
|
||||||
IConnectivity connectivity,
|
IConnectivity connectivity,
|
||||||
IUserDialogs userDialogs,
|
IUserDialogs userDialogs,
|
||||||
|
@ -71,7 +72,7 @@ namespace Bit.App
|
||||||
}
|
}
|
||||||
else if(authService.IsAuthenticated)
|
else if(authService.IsAuthenticated)
|
||||||
{
|
{
|
||||||
MainPage = new MainPage();
|
MainPage = new MainPage(myVault: myVault);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -7,7 +7,7 @@ namespace Bit.App.Pages
|
||||||
{
|
{
|
||||||
public class MainPage : ExtendedTabbedPage
|
public class MainPage : ExtendedTabbedPage
|
||||||
{
|
{
|
||||||
public MainPage(string uri = null)
|
public MainPage(string uri = null, bool myVault = false)
|
||||||
{
|
{
|
||||||
TintColor = Color.FromHex("3c8dbc");
|
TintColor = Color.FromHex("3c8dbc");
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ namespace Bit.App.Pages
|
||||||
Children.Add(toolsNavigation);
|
Children.Add(toolsNavigation);
|
||||||
Children.Add(settingsNavigation);
|
Children.Add(settingsNavigation);
|
||||||
|
|
||||||
if(uri != null)
|
if(myVault || uri != null)
|
||||||
{
|
{
|
||||||
SelectedItem = vaultNavigation;
|
SelectedItem = vaultNavigation;
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,6 +59,7 @@ namespace Bit.iOS
|
||||||
|
|
||||||
LoadApplication(new App.App(
|
LoadApplication(new App.App(
|
||||||
null,
|
null,
|
||||||
|
false,
|
||||||
Resolver.Resolve<IAuthService>(),
|
Resolver.Resolve<IAuthService>(),
|
||||||
Resolver.Resolve<IConnectivity>(),
|
Resolver.Resolve<IConnectivity>(),
|
||||||
Resolver.Resolve<IUserDialogs>(),
|
Resolver.Resolve<IUserDialogs>(),
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
<AndroidResgenFile>Resources\Resource.Designer.cs</AndroidResgenFile>
|
<AndroidResgenFile>Resources\Resource.Designer.cs</AndroidResgenFile>
|
||||||
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
|
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
|
||||||
<AndroidUseLatestPlatformSdk>True</AndroidUseLatestPlatformSdk>
|
<AndroidUseLatestPlatformSdk>True</AndroidUseLatestPlatformSdk>
|
||||||
<TargetFrameworkVersion>v7.1</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v8.0</TargetFrameworkVersion>
|
||||||
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
|
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
|
Loading…
Reference in a new issue