Compare commits
5 Commits
v1.12-r5-t
...
2869-bug-b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
43addb3cdc | ||
|
|
f5f2adb88d | ||
|
|
f162e868b9 | ||
|
|
e5d28f0979 | ||
|
|
0e581a66c5 |
@@ -331,12 +331,17 @@ namespace keepass2android
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private bool hasRequestedKeyboardActivation = false;
|
||||||
protected override void OnStart()
|
protected override void OnStart()
|
||||||
{
|
{
|
||||||
base.OnStart();
|
base.OnStart();
|
||||||
if (PreferenceManager.GetDefaultSharedPreferences(this)
|
if (PreferenceManager.GetDefaultSharedPreferences(this)
|
||||||
.GetBoolean(GetString(Resource.String.UseKp2aKeyboardInKp2a_key), false))
|
.GetBoolean(GetString(Resource.String.UseKp2aKeyboardInKp2a_key), false)
|
||||||
|
&& (!hasRequestedKeyboardActivation))
|
||||||
{
|
{
|
||||||
|
//only try this once. if the user clicks cancel, we don't want to ask again
|
||||||
|
// (it may happen that the activity is restarted because of the NewTask flag immediately after the dialog)
|
||||||
|
hasRequestedKeyboardActivation = true;
|
||||||
CopyToClipboardService.ActivateKeyboard(this);
|
CopyToClipboardService.ActivateKeyboard(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1570,14 +1570,18 @@ namespace keepass2android
|
|||||||
|
|
||||||
base.OnPause();
|
base.OnPause();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private bool hasRequestedKeyboardActivation = false;
|
||||||
protected override void OnStart()
|
protected override void OnStart()
|
||||||
{
|
{
|
||||||
base.OnStart();
|
base.OnStart();
|
||||||
_starting = true;
|
_starting = true;
|
||||||
|
|
||||||
if (PreferenceManager.GetDefaultSharedPreferences(this)
|
if (PreferenceManager.GetDefaultSharedPreferences(this)
|
||||||
.GetBoolean(GetString(Resource.String.UseKp2aKeyboardInKp2a_key), false))
|
.GetBoolean(GetString(Resource.String.UseKp2aKeyboardInKp2a_key), false)
|
||||||
|
&& !hasRequestedKeyboardActivation)
|
||||||
{
|
{
|
||||||
|
hasRequestedKeyboardActivation = true;
|
||||||
CopyToClipboardService.ActivateKeyboard(this);
|
CopyToClipboardService.ActivateKeyboard(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,9 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:id="@+id/main_content"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:fitsSystemWindows="true">
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
@@ -14,6 +19,7 @@
|
|||||||
android:text="@string/switch_ime_text" />
|
android:text="@string/switch_ime_text" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
|
|
||||||
android:id="@+id/btn_reopen"
|
android:id="@+id/btn_reopen"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
@@ -25,4 +31,51 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/cancel" />
|
android:text="@string/cancel" />
|
||||||
|
|
||||||
|
<LinearLayout android:orientation="vertical"
|
||||||
|
android:paddingTop="64dp"
|
||||||
|
android:id="@+id/settings_notes_container"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
<TextView
|
||||||
|
android:paddingTop="12dp"
|
||||||
|
android:id="@+id/note_kp2a_switch_rooted"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/autoswitch_enabled_but_not_setup"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:paddingTop="12dp"
|
||||||
|
android:id="@+id/note_AutoFillTotp_prefs_ActivateKeyboard"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/switch_keyboard_for_totp_enabled"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:paddingTop="12dp"
|
||||||
|
android:id="@+id/note_UseKp2aKeyboardInKp2a"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/switch_keyboard_inside_kp2a_enabled"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/note_OpenKp2aKeyboardAutomatically"
|
||||||
|
android:paddingTop="12dp"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/switch_keyboard_on_search_enabled"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<Button
|
||||||
|
style="?attr/materialButtonOutlinedStyle"
|
||||||
|
android:id="@+id/btn_open_settings"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/IconVisibilityInfo_Android8_btnSettings" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||||
@@ -200,7 +200,7 @@
|
|||||||
<item>System</item>
|
<item>System</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
<string name="AcceptAllServerCertificates_default">WARN</string>
|
<string name="AcceptAllServerCertificates_default">ERROR</string>
|
||||||
<string-array name="AcceptAllServerCertificates_values">
|
<string-array name="AcceptAllServerCertificates_values">
|
||||||
<item>IGNORE</item>
|
<item>IGNORE</item>
|
||||||
<item>WARN</item>
|
<item>WARN</item>
|
||||||
|
|||||||
@@ -1249,5 +1249,9 @@
|
|||||||
<string name="kp2a_switch_on_sendgodone_summary">Switch back when pressing send/go/done</string>
|
<string name="kp2a_switch_on_sendgodone_summary">Switch back when pressing send/go/done</string>
|
||||||
<string name="qr_scanning_error_no_google_play_services">QR code scanning requires Google Play Services. Please install or update Google Play Services on your device.</string>
|
<string name="qr_scanning_error_no_google_play_services">QR code scanning requires Google Play Services. Please install or update Google Play Services on your device.</string>
|
||||||
<string name="english_ime_settings">Android keyboard settings</string>
|
<string name="english_ime_settings">Android keyboard settings</string>
|
||||||
|
<string name="autoswitch_enabled_but_not_setup">Note: You have enabled App - Settings - Password access - Keyboard switching - Auto-switch keyboard, but it doesn\'t seem to be configured correctly.</string>
|
||||||
|
<string name="switch_keyboard_for_totp_enabled">Note: You have enabled App - Password access - Autofill-Service - Autofill for TOTP entries. This can cause this window to show when you open an entry with a TOTP.</string>
|
||||||
|
<string name="switch_keyboard_inside_kp2a_enabled">Note: You have enabled App - Security - Use built-in keyboard inside Keepass2Android. This can cause this window to show when you open the app or edit an entry.</string>
|
||||||
|
<string name="switch_keyboard_on_search_enabled">Note: You have enabled App - Security - Password access - Keyboard switching - Switch keyboard. This can cause this window to show when you search for an entry from the browser.</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
@@ -6,6 +6,7 @@ using System.Threading;
|
|||||||
using Android.App;
|
using Android.App;
|
||||||
using Android.Content;
|
using Android.Content;
|
||||||
using Android.OS;
|
using Android.OS;
|
||||||
|
using Android.Preferences;
|
||||||
using Android.Runtime;
|
using Android.Runtime;
|
||||||
using Android.Util;
|
using Android.Util;
|
||||||
using Android.Views;
|
using Android.Views;
|
||||||
@@ -15,8 +16,8 @@ using keepass2android;
|
|||||||
|
|
||||||
namespace keepass2android
|
namespace keepass2android
|
||||||
{
|
{
|
||||||
[Activity(Label = AppNames.AppName, TaskAffinity = "", NoHistory = true)]
|
[Activity(Label = AppNames.AppName, Theme = "@style/Kp2aTheme_BlueActionBar")]
|
||||||
public class SwitchImeActivity : Activity
|
public class SwitchImeActivity : AndroidX.AppCompat.App.AppCompatActivity
|
||||||
{
|
{
|
||||||
protected override void OnCreate(Bundle savedInstanceState)
|
protected override void OnCreate(Bundle savedInstanceState)
|
||||||
{
|
{
|
||||||
@@ -24,7 +25,26 @@ namespace keepass2android
|
|||||||
SetContentView(Resource.Layout.switch_ime_activity_layout);
|
SetContentView(Resource.Layout.switch_ime_activity_layout);
|
||||||
FindViewById<Button>(Resource.Id.btn_reopen).Click += (sender, args) => TrySwitchKeyboard();
|
FindViewById<Button>(Resource.Id.btn_reopen).Click += (sender, args) => TrySwitchKeyboard();
|
||||||
FindViewById<Button>(Resource.Id.btn_cancel).Click += (sender, args) => Finish();
|
FindViewById<Button>(Resource.Id.btn_cancel).Click += (sender, args) => Finish();
|
||||||
|
FindViewById<Button>(Resource.Id.btn_open_settings).Click += (sender, args) => AppSettingsActivity.Launch(this);
|
||||||
|
|
||||||
|
var prefs = PreferenceManager.GetDefaultSharedPreferences(LocaleManager.LocalizedAppContext);
|
||||||
|
|
||||||
|
bool useKp2aKeyboardInKp2a = prefs.GetBoolean(GetString(Resource.String.UseKp2aKeyboardInKp2a_key), false);
|
||||||
|
bool kp2a_switch_rooted = prefs.GetBoolean("kp2a_switch_rooted", false);
|
||||||
|
bool AutoFillTotp_prefs_ActivateKeyboard = prefs.GetBoolean("AutoFillTotp_prefs_ActivateKeyboard_key", false);
|
||||||
|
bool OpenKp2aKeyboardAutomatically = prefs.GetBoolean(GetString(Resource.String.OpenKp2aKeyboardAutomatically_key), Resources.GetBoolean(Resource.Boolean.OpenKp2aKeyboardAutomatically_default));
|
||||||
|
|
||||||
|
FindViewById(Resource.Id.note_UseKp2aKeyboardInKp2a).Visibility = useKp2aKeyboardInKp2a ? ViewStates.Visible : ViewStates.Gone;
|
||||||
|
FindViewById(Resource.Id.note_kp2a_switch_rooted).Visibility = kp2a_switch_rooted ? ViewStates.Visible : ViewStates.Gone;
|
||||||
|
FindViewById(Resource.Id.note_AutoFillTotp_prefs_ActivateKeyboard).Visibility = AutoFillTotp_prefs_ActivateKeyboard ? ViewStates.Visible : ViewStates.Gone;
|
||||||
|
FindViewById(Resource.Id.note_OpenKp2aKeyboardAutomatically).Visibility = OpenKp2aKeyboardAutomatically ? ViewStates.Visible : ViewStates.Gone;
|
||||||
|
|
||||||
|
bool hasNote = useKp2aKeyboardInKp2a || kp2a_switch_rooted || AutoFillTotp_prefs_ActivateKeyboard || OpenKp2aKeyboardAutomatically;
|
||||||
|
((LinearLayout)FindViewById(Resource.Id.settings_notes_container)).Visibility = hasNote ? ViewStates.Visible : ViewStates.Gone;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private string Kp2aInputMethodName
|
private string Kp2aInputMethodName
|
||||||
{
|
{
|
||||||
get { return PackageName + "/keepass2android.softkeyboard.KP2AKeyboard"; }
|
get { return PackageName + "/keepass2android.softkeyboard.KP2AKeyboard"; }
|
||||||
|
|||||||
@@ -918,13 +918,15 @@ namespace keepass2android
|
|||||||
{
|
{
|
||||||
var prefs = PreferenceManager.GetDefaultSharedPreferences(LocaleManager.LocalizedAppContext);
|
var prefs = PreferenceManager.GetDefaultSharedPreferences(LocaleManager.LocalizedAppContext);
|
||||||
|
|
||||||
ValidationMode validationMode = ValidationMode.Warn;
|
ValidationMode validationMode = ValidationMode.Error;
|
||||||
|
|
||||||
string strValMode = prefs.GetString(LocaleManager.LocalizedAppContext.Resources.GetString(Resource.String.AcceptAllServerCertificates_key),
|
string strValMode = prefs.GetString(LocaleManager.LocalizedAppContext.Resources.GetString(Resource.String.AcceptAllServerCertificates_key),
|
||||||
LocaleManager.LocalizedAppContext.Resources.GetString(Resource.String.AcceptAllServerCertificates_default));
|
LocaleManager.LocalizedAppContext.Resources.GetString(Resource.String.AcceptAllServerCertificates_default));
|
||||||
|
|
||||||
if (strValMode == "IGNORE")
|
if (strValMode == "IGNORE")
|
||||||
validationMode = ValidationMode.Ignore;
|
validationMode = ValidationMode.Ignore;
|
||||||
|
else if (strValMode == "WARN")
|
||||||
|
validationMode = ValidationMode.Warn;
|
||||||
else if (strValMode == "ERROR")
|
else if (strValMode == "ERROR")
|
||||||
validationMode = ValidationMode.Error;
|
validationMode = ValidationMode.Error;
|
||||||
return validationMode;
|
return validationMode;
|
||||||
|
|||||||
@@ -732,11 +732,17 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<AndroidNativeLibrary Include="..\java\argon2\libs\armeabi-v7a\libargon2.so" Link="armeabi-v7a\libargon2.so" />
|
<AndroidNativeLibrary Include="..\java\argon2\libs\armeabi-v7a\libargon2.so" Link="armeabi-v7a\libargon2.so" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AndroidNativeLibrary Include="..\java\argon2\libs\x86\libargon2.so" Link="x86\libargon2.so" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AndroidNativeLibrary Include="..\java\argon2\libs\x86_64\libargon2.so" Link="x86_64\libargon2.so" />
|
||||||
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Xamarin.AndroidX.AppCompat" Version="1.7.0.5" />
|
<PackageReference Include="Xamarin.AndroidX.AppCompat" Version="1.7.0.5" />
|
||||||
<PackageReference Include="Xamarin.AndroidX.AppCompat.AppCompatResources" Version="1.7.0.5" />
|
<PackageReference Include="Xamarin.AndroidX.AppCompat.AppCompatResources" Version="1.7.0.5" />
|
||||||
<PackageReference Include="Xamarin.AndroidX.AutoFill" Version="1.1.0.30" />
|
<PackageReference Include="Xamarin.AndroidX.AutoFill" Version="1.1.0.30" />
|
||||||
<PackageReference Include="Xamarin.AndroidX.Biometric" Version="1.1.0.27" />
|
<PackageReference Include="Xamarin.AndroidX.Biometric" Version="1.1.0.6" />
|
||||||
<PackageReference Include="Xamarin.AndroidX.CoordinatorLayout" Version="1.3.0" />
|
<PackageReference Include="Xamarin.AndroidX.CoordinatorLayout" Version="1.3.0" />
|
||||||
<PackageReference Include="Xamarin.AndroidX.CursorAdapter" Version="1.0.0.31" />
|
<PackageReference Include="Xamarin.AndroidX.CursorAdapter" Version="1.0.0.31" />
|
||||||
<PackageReference Include="Xamarin.AndroidX.Lifecycle.Common" Version="2.8.7.2" />
|
<PackageReference Include="Xamarin.AndroidX.Lifecycle.Common" Version="2.8.7.2" />
|
||||||
|
|||||||
Reference in New Issue
Block a user