mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
Change remote views when the database is open
This commit is contained in:
@@ -138,14 +138,14 @@ class KeeAutofillService : AutofillService() {
|
|||||||
items, parseResult, inlineSuggestionsRequest)
|
items, parseResult, inlineSuggestionsRequest)
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
{
|
{ openedDatabase ->
|
||||||
// Show UI if no search result
|
// Show UI if no search result
|
||||||
showUIForEntrySelection(parseResult,
|
showUIForEntrySelection(parseResult, openedDatabase,
|
||||||
searchInfo, inlineSuggestionsRequest, callback)
|
searchInfo, inlineSuggestionsRequest, callback)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
// Show UI if database not open
|
// Show UI if database not open
|
||||||
showUIForEntrySelection(parseResult,
|
showUIForEntrySelection(parseResult, null,
|
||||||
searchInfo, inlineSuggestionsRequest, callback)
|
searchInfo, inlineSuggestionsRequest, callback)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -153,6 +153,7 @@ class KeeAutofillService : AutofillService() {
|
|||||||
|
|
||||||
@SuppressLint("RestrictedApi")
|
@SuppressLint("RestrictedApi")
|
||||||
private fun showUIForEntrySelection(parseResult: StructureParser.Result,
|
private fun showUIForEntrySelection(parseResult: StructureParser.Result,
|
||||||
|
database: Database?,
|
||||||
searchInfo: SearchInfo,
|
searchInfo: SearchInfo,
|
||||||
inlineSuggestionsRequest: InlineSuggestionsRequest?,
|
inlineSuggestionsRequest: InlineSuggestionsRequest?,
|
||||||
callback: FillCallback) {
|
callback: FillCallback) {
|
||||||
@@ -163,16 +164,48 @@ class KeeAutofillService : AutofillService() {
|
|||||||
val intentSender = AutofillLauncherActivity.getAuthIntentSenderForSelection(this,
|
val intentSender = AutofillLauncherActivity.getAuthIntentSenderForSelection(this,
|
||||||
searchInfo, inlineSuggestionsRequest)
|
searchInfo, inlineSuggestionsRequest)
|
||||||
val responseBuilder = FillResponse.Builder()
|
val responseBuilder = FillResponse.Builder()
|
||||||
val remoteViewsUnlock: RemoteViews = if (!parseResult.webDomain.isNullOrEmpty()) {
|
val remoteViewsUnlock: RemoteViews = if (database == null) {
|
||||||
RemoteViews(packageName, R.layout.item_autofill_unlock_web_domain).apply {
|
if (!parseResult.webDomain.isNullOrEmpty()) {
|
||||||
setTextViewText(R.id.autofill_web_domain_text, parseResult.webDomain)
|
RemoteViews(
|
||||||
}
|
packageName,
|
||||||
} else if (!parseResult.applicationId.isNullOrEmpty()) {
|
R.layout.item_autofill_unlock_web_domain
|
||||||
RemoteViews(packageName, R.layout.item_autofill_unlock_app_id).apply {
|
).apply {
|
||||||
setTextViewText(R.id.autofill_app_id_text, parseResult.applicationId)
|
setTextViewText(
|
||||||
|
R.id.autofill_web_domain_text,
|
||||||
|
parseResult.webDomain
|
||||||
|
)
|
||||||
|
}
|
||||||
|
} else if (!parseResult.applicationId.isNullOrEmpty()) {
|
||||||
|
RemoteViews(packageName, R.layout.item_autofill_unlock_app_id).apply {
|
||||||
|
setTextViewText(
|
||||||
|
R.id.autofill_app_id_text,
|
||||||
|
parseResult.applicationId
|
||||||
|
)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
RemoteViews(packageName, R.layout.item_autofill_unlock)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
RemoteViews(packageName, R.layout.item_autofill_unlock)
|
if (!parseResult.webDomain.isNullOrEmpty()) {
|
||||||
|
RemoteViews(
|
||||||
|
packageName,
|
||||||
|
R.layout.item_autofill_select_entry_web_domain
|
||||||
|
).apply {
|
||||||
|
setTextViewText(
|
||||||
|
R.id.autofill_web_domain_text,
|
||||||
|
parseResult.webDomain
|
||||||
|
)
|
||||||
|
}
|
||||||
|
} else if (!parseResult.applicationId.isNullOrEmpty()) {
|
||||||
|
RemoteViews(packageName, R.layout.item_autofill_select_entry_app_id).apply {
|
||||||
|
setTextViewText(
|
||||||
|
R.id.autofill_app_id_text,
|
||||||
|
parseResult.applicationId
|
||||||
|
)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
RemoteViews(packageName, R.layout.item_autofill_select_entry)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tell the autofill framework the interest to save credentials
|
// Tell the autofill framework the interest to save credentials
|
||||||
|
|||||||
9
app/src/main/res/drawable/ic_arrow_right_green_24dp.xml
Normal file
9
app/src/main/res/drawable/ic_arrow_right_green_24dp.xml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportHeight="24"
|
||||||
|
android:viewportWidth="24">
|
||||||
|
<path
|
||||||
|
android:fillColor="@color/green"
|
||||||
|
android:pathData="M10,17l5,-5 -5,-5v10z"/>
|
||||||
|
</vector>
|
||||||
42
app/src/main/res/layout/item_autofill_select_entry.xml
Normal file
42
app/src/main/res/layout/item_autofill_select_entry.xml
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?><!--
|
||||||
|
* Copyright (C) 2017 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
-->
|
||||||
|
<LinearLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="?android:attr/windowBackground"
|
||||||
|
android:minHeight="?android:attr/listPreferredItemHeightSmall"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="24dp"
|
||||||
|
android:layout_height="24dp"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:layout_marginStart="12dp"
|
||||||
|
android:layout_marginLeft="12dp"
|
||||||
|
android:contentDescription="@string/app_name"
|
||||||
|
android:src="@drawable/ic_arrow_right_green_24dp"/>
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:text="@string/autofill_select_entry"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:paddingRight="12dp"
|
||||||
|
android:paddingEnd="12dp"
|
||||||
|
android:paddingLeft="12dp"
|
||||||
|
android:paddingStart="12dp"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceListItemSmall" />
|
||||||
|
</LinearLayout>
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?><!--
|
||||||
|
* Copyright (C) 2017 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
-->
|
||||||
|
<LinearLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
<include
|
||||||
|
layout="@layout/item_autofill_app_id"/>
|
||||||
|
<include
|
||||||
|
layout="@layout/item_autofill_select_entry"/>
|
||||||
|
</LinearLayout>
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?><!--
|
||||||
|
* Copyright (C) 2017 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
-->
|
||||||
|
<LinearLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
<include
|
||||||
|
layout="@layout/item_autofill_web_domain"/>
|
||||||
|
<include
|
||||||
|
layout="@layout/item_autofill_select_entry"/>
|
||||||
|
</LinearLayout>
|
||||||
@@ -203,6 +203,7 @@
|
|||||||
<string name="autofill_sign_in_prompt">Mit KeePassDX anmelden</string>
|
<string name="autofill_sign_in_prompt">Mit KeePassDX anmelden</string>
|
||||||
<string name="set_autofill_service_title">Standarddienst für automatisches Ausfüllen festlegen</string>
|
<string name="set_autofill_service_title">Standarddienst für automatisches Ausfüllen festlegen</string>
|
||||||
<string name="autofill_explanation_summary">Automatisches Ausfüllen aktivieren, um Formulare schnell in anderen Apps auszufüllen</string>
|
<string name="autofill_explanation_summary">Automatisches Ausfüllen aktivieren, um Formulare schnell in anderen Apps auszufüllen</string>
|
||||||
|
<string name="autofill_select_entry">Eintrag auswählen</string>
|
||||||
<string name="clipboard">Zwischenablage</string>
|
<string name="clipboard">Zwischenablage</string>
|
||||||
<string name="biometric_delete_all_key_title">Verschlüsselungsschlüssel löschen</string>
|
<string name="biometric_delete_all_key_title">Verschlüsselungsschlüssel löschen</string>
|
||||||
<string name="biometric_delete_all_key_summary">Alle Verschlüsselungsschlüssel löschen, die mit der modernen Entsperrerkennung zusammenhängen</string>
|
<string name="biometric_delete_all_key_summary">Alle Verschlüsselungsschlüssel löschen, die mit der modernen Entsperrerkennung zusammenhängen</string>
|
||||||
|
|||||||
@@ -171,6 +171,7 @@
|
|||||||
<string name="autofill_sign_in_prompt">Se connecter avec KeePassDX</string>
|
<string name="autofill_sign_in_prompt">Se connecter avec KeePassDX</string>
|
||||||
<string name="set_autofill_service_title">Définir le service de remplissage automatique par défaut</string>
|
<string name="set_autofill_service_title">Définir le service de remplissage automatique par défaut</string>
|
||||||
<string name="autofill_explanation_summary">Activer le remplissage automatique pour remplir rapidement des formulaires dans d’autres applications</string>
|
<string name="autofill_explanation_summary">Activer le remplissage automatique pour remplir rapidement des formulaires dans d’autres applications</string>
|
||||||
|
<string name="autofill_select_entry">Sélectionner une entrée</string>
|
||||||
<string name="password_size_title">Taille du mot de passe généré</string>
|
<string name="password_size_title">Taille du mot de passe généré</string>
|
||||||
<string name="password_size_summary">Défini la taille par défaut des mots de passe générés</string>
|
<string name="password_size_summary">Défini la taille par défaut des mots de passe générés</string>
|
||||||
<string name="list_password_generator_options_title">Caractères de mot de passe</string>
|
<string name="list_password_generator_options_title">Caractères de mot de passe</string>
|
||||||
|
|||||||
@@ -352,6 +352,7 @@
|
|||||||
<string name="autofill_service_name">KeePassDX form autofilling</string>
|
<string name="autofill_service_name">KeePassDX form autofilling</string>
|
||||||
<string name="autofill_sign_in_prompt">Sign in with KeePassDX</string>
|
<string name="autofill_sign_in_prompt">Sign in with KeePassDX</string>
|
||||||
<string name="autofill_explanation_summary">Enable autofilling to quickly fill out forms in other apps</string>
|
<string name="autofill_explanation_summary">Enable autofilling to quickly fill out forms in other apps</string>
|
||||||
|
<string name="autofill_select_entry">Select entry</string>
|
||||||
<string name="set_autofill_service_title">Set default autofill service</string>
|
<string name="set_autofill_service_title">Set default autofill service</string>
|
||||||
<string name="autofill_preference_title">Autofill settings</string>
|
<string name="autofill_preference_title">Autofill settings</string>
|
||||||
<string name="password_size_title">Generated password size</string>
|
<string name="password_size_title">Generated password size</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user