Merge branch 'release/2.9.1'

This commit is contained in:
J-Jamet
2020-11-03 12:17:15 +01:00
20 changed files with 133 additions and 80 deletions

View File

@@ -1,3 +1,10 @@
KeePassDX(2.9.1)
* Copy password from generator #697
* Fix Magikeyboard not fully visible #772
* Fix change font size #770
* Fix crash #774
* Small fixes #771
KeePassDX(2.9) KeePassDX(2.9)
* Upgrade to Android API 30 #723 * Upgrade to Android API 30 #723
* Save new credentials with Autofill #524 * Save new credentials with Autofill #524

View File

@@ -11,8 +11,8 @@ android {
applicationId "com.kunzisoft.keepass" applicationId "com.kunzisoft.keepass"
minSdkVersion 14 minSdkVersion 14
targetSdkVersion 30 targetSdkVersion 30
versionCode = 44 versionCode = 45
versionName = "2.9" versionName = "2.9.1"
multiDexEnabled true multiDexEnabled true
testApplicationId = "com.kunzisoft.keepass.tests" testApplicationId = "com.kunzisoft.keepass.tests"

View File

@@ -1,19 +1,30 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android" <vector xmlns:android="http://schemas.android.com/apk/res/android"
android:viewportWidth="108" xmlns:aapt="http://schemas.android.com/aapt"
android:viewportHeight="108" android:viewportWidth="108"
android:width="108dp" android:viewportHeight="108"
android:height="108dp"> android:width="108dp"
android:height="108dp">
<group <group
android:translateY="-332"> android:translateY="-332">
<group <group
android:translateY="332"> android:translateY="332">
<path <path
android:pathData="M65.728516 32.791016L58.052734 35.904297 56.173828 48.380859 35.306641 69.267578 35.238281 73.759766 69.478516 108 108 108 108 70.810547 73.09375 35.904297 65.728516 32.791016Z" android:pathData="M65.728516 32.791016L58.052734 35.904297 56.173828 48.380859 35.306641 69.267578 35.238281 73.759766 69.478516 108 108 108 108 70.810547 73.09375 35.904297 65.728516 32.791016Z"
android:fillColor="@color/long_shadow"
android:strokeLineJoin="round" android:strokeLineJoin="round"
android:strokeLineCap="round" android:strokeLineCap="round"
android:strokeMiterLimit="4" /> android:strokeMiterLimit="4" >
<aapt:attr name="android:fillColor">
<gradient
android:endColor="#0000"
android:endX="80"
android:endY="80"
android:startColor="#4e000000"
android:startX="0"
android:startY="0"
android:type="linear"/>
</aapt:attr>
</path>
</group> </group>
<group <group
android:scaleX="0.3939503" android:scaleX="0.3939503"

View File

@@ -1,19 +1,30 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android" <vector xmlns:android="http://schemas.android.com/apk/res/android"
android:viewportWidth="108" xmlns:aapt="http://schemas.android.com/aapt"
android:viewportHeight="108" android:viewportWidth="108"
android:width="108dp" android:viewportHeight="108"
android:height="108dp"> android:width="108dp"
android:height="108dp">
<group <group
android:translateY="-332"> android:translateY="-332">
<group <group
android:translateY="332"> android:translateY="332">
<path <path
android:pathData="M65.728516 32.791016L58.052734 35.904297 56.173828 48.380859 35.306641 69.267578 35.238281 73.759766 69.478516 108 108 108 108 70.810547 73.09375 35.904297 65.728516 32.791016Z" android:pathData="M65.728516 32.791016L58.052734 35.904297 56.173828 48.380859 35.306641 69.267578 35.238281 73.759766 69.478516 108 108 108 108 70.810547 73.09375 35.904297 65.728516 32.791016Z"
android:fillColor="@color/long_shadow"
android:strokeLineJoin="round" android:strokeLineJoin="round"
android:strokeLineCap="round" android:strokeLineCap="round"
android:strokeMiterLimit="4" /> android:strokeMiterLimit="4" >
<aapt:attr name="android:fillColor">
<gradient
android:endColor="#0000"
android:endX="80"
android:endY="80"
android:startColor="#4e000000"
android:startX="0"
android:startY="0"
android:type="linear"/>
</aapt:attr>
</path>
</group> </group>
<group <group
android:scaleX="0.3939503" android:scaleX="0.3939503"

View File

@@ -26,13 +26,11 @@ import com.google.android.material.textfield.TextInputLayout
import androidx.fragment.app.DialogFragment import androidx.fragment.app.DialogFragment
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import android.view.View import android.view.View
import android.widget.Button import android.widget.*
import android.widget.CompoundButton
import android.widget.EditText
import android.widget.SeekBar
import com.kunzisoft.keepass.R import com.kunzisoft.keepass.R
import com.kunzisoft.keepass.password.PasswordGenerator import com.kunzisoft.keepass.password.PasswordGenerator
import com.kunzisoft.keepass.settings.PreferencesUtil import com.kunzisoft.keepass.settings.PreferencesUtil
import com.kunzisoft.keepass.timeout.ClipboardHelper
import com.kunzisoft.keepass.view.applyFontVisibility import com.kunzisoft.keepass.view.applyFontVisibility
class GeneratePasswordDialogFragment : DialogFragment() { class GeneratePasswordDialogFragment : DialogFragment() {
@@ -78,6 +76,15 @@ class GeneratePasswordDialogFragment : DialogFragment() {
passwordInputLayoutView = root?.findViewById(R.id.password_input_layout) passwordInputLayoutView = root?.findViewById(R.id.password_input_layout)
passwordView = root?.findViewById(R.id.password) passwordView = root?.findViewById(R.id.password)
passwordView?.applyFontVisibility() passwordView?.applyFontVisibility()
val passwordCopyView: ImageView? = root?.findViewById(R.id.password_copy_button)
passwordCopyView?.visibility = if(PreferencesUtil.allowCopyPasswordAndProtectedFields(activity))
View.VISIBLE else View.GONE
val clipboardHelper = ClipboardHelper(activity)
passwordCopyView?.setOnClickListener {
clipboardHelper.timeoutCopyToClipboard(passwordView!!.text.toString(),
getString(R.string.copy_field,
getString(R.string.entry_password)))
}
lengthTextView = root?.findViewById(R.id.length) lengthTextView = root?.findViewById(R.id.length)

View File

@@ -89,9 +89,6 @@ class NodeAdapter (private val context: Context)
get() = mNodeSortedList.size() <= 0 get() = mNodeSortedList.size() <= 0
init { init {
this.mInfoTextDefaultDimension = context.resources.getDimension(R.dimen.list_medium_size_default)
this.mSubtextDefaultDimension = context.resources.getDimension(R.dimen.list_small_size_default)
this.mNumberChildrenTextDefaultDimension = context.resources.getDimension(R.dimen.list_tiny_size_default)
this.mIconDefaultDimension = context.resources.getDimension(R.dimen.list_icon_size_default) this.mIconDefaultDimension = context.resources.getDimension(R.dimen.list_icon_size_default)
assignPreferences() assignPreferences()
@@ -284,7 +281,13 @@ class NodeAdapter (private val context: Context)
} else { } else {
mInflater.inflate(R.layout.item_list_nodes_entry, parent, false) mInflater.inflate(R.layout.item_list_nodes_entry, parent, false)
} }
return NodeViewHolder(view) val nodeViewHolder = NodeViewHolder(view)
mInfoTextDefaultDimension = nodeViewHolder.text.textSize
mSubtextDefaultDimension = nodeViewHolder.subText.textSize
nodeViewHolder.numberChildren?.let {
mNumberChildrenTextDefaultDimension = it.textSize
}
return nodeViewHolder
} }
override fun onBindViewHolder(holder: NodeViewHolder, position: Int) { override fun onBindViewHolder(holder: NodeViewHolder, position: Int) {

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<gradient xmlns:android="http://schemas.android.com/apk/res/android"
android:endColor="#0000"
android:endX="80"
android:endY="80"
android:startColor="#4e000000"
android:startX="0"
android:startY="0"
android:type="linear"/>

View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:color="@color/transparent"/>
</selector>

View File

@@ -33,27 +33,45 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:orientation="vertical">
<com.google.android.material.textfield.TextInputLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/password_input_layout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
app:passwordToggleEnabled="true"
app:passwordToggleTint="?attr/colorAccent"
android:importantForAccessibility="no"
android:importantForAutofill="no">
<com.google.android.material.textfield.TextInputEditText <com.google.android.material.textfield.TextInputLayout
android:id="@+id/password" android:id="@+id/password_input_layout"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@+id/password_copy_button"
android:importantForAccessibility="no" android:importantForAccessibility="no"
android:importantForAutofill="no" android:importantForAutofill="no"
android:ems="10" app:passwordToggleEnabled="true"
android:maxLines="3" app:passwordToggleTint="?attr/colorAccent">
android:hint="@string/hint_generated_password"
android:inputType="textPassword|textMultiLine" <com.google.android.material.textfield.TextInputEditText
tools:ignore="TextFields" /> android:id="@+id/password"
</com.google.android.material.textfield.TextInputLayout> android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/hint_generated_password"
android:importantForAccessibility="no"
android:importantForAutofill="no"
android:inputType="textPassword|textMultiLine"
android:maxLines="3"
tools:ignore="TextFields" />
</com.google.android.material.textfield.TextInputLayout>
<androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/password_copy_button"
style="@style/KeepassDXStyle.ImageButton.Simple"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:contentDescription="@string/menu_copy"
android:src="@drawable/ic_content_copy_white_24dp" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.appcompat.widget.AppCompatButton <androidx.appcompat.widget.AppCompatButton
android:id="@+id/generate_password_button" android:id="@+id/generate_password_button"

View File

@@ -17,11 +17,10 @@
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with KeePassDX. If not, see <http://www.gnu.org/licenses/>. along with KeePassDX. If not, see <http://www.gnu.org/licenses/>.
--> -->
<androidx.constraintlayout.widget.ConstraintLayout <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
android:paddingTop="4dp" android:paddingTop="4dp"
android:paddingBottom="8dp" android:paddingBottom="8dp"
@@ -30,19 +29,17 @@
<TextView <TextView
android:id="@+id/magikeyboard_entry_text" android:id="@+id/magikeyboard_entry_text"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@+id/magikeyboard_view"
android:background="@color/keyboard_background" android:background="@color/keyboard_background"
android:gravity="center" android:gravity="center"
android:textColor="@color/white"/> android:textColor="@color/white"/>
<com.kunzisoft.keepass.view.MagikeyboardView <com.kunzisoft.keepass.view.MagikeyboardView
android:id="@+id/magikeyboard_view" android:id="@+id/magikeyboard_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="wrap_content"
android:paddingTop="4dp" android:paddingTop="4dp"
app:layout_constraintBottom_toBottomOf="parent"
android:background="@color/keyboard_background" android:background="@color/keyboard_background"
android:keyBackground="@drawable/key_background" android:keyBackground="@drawable/key_background"
android:keyTextColor="@color/white" android:keyTextColor="@color/white"
android:popupLayout="@layout/keyboard_popup_fields" /> android:popupLayout="@layout/keyboard_popup_fields" />
</androidx.constraintlayout.widget.ConstraintLayout> </LinearLayout>

View File

@@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@@ -287,9 +287,6 @@
</string-array> </string-array>
<!-- Text Size --> <!-- Text Size -->
<dimen name="list_tiny_size_default" translatable="false">9dp</dimen>
<dimen name="list_small_size_default" translatable="false">14dp</dimen>
<dimen name="list_medium_size_default" translatable="false">16dp</dimen>
<dimen name="list_icon_size_default" translatable="false">32dp</dimen> <dimen name="list_icon_size_default" translatable="false">32dp</dimen>
<string name="list_size_string_small" translatable="false">small</string> <string name="list_size_string_small" translatable="false">small</string>
<string name="list_size_string_medium" translatable="false">medium</string> <string name="list_size_string_medium" translatable="false">medium</string>

View File

@@ -1,19 +1,30 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android" <vector xmlns:android="http://schemas.android.com/apk/res/android"
android:viewportWidth="108" xmlns:aapt="http://schemas.android.com/aapt"
android:viewportHeight="108" android:viewportWidth="108"
android:width="108dp" android:viewportHeight="108"
android:height="108dp"> android:width="108dp"
android:height="108dp">
<group <group
android:translateY="-332"> android:translateY="-332">
<group <group
android:translateY="332"> android:translateY="332">
<path <path
android:pathData="M65.728516 32.791016L58.052734 35.904297 56.173828 48.380859 35.306641 69.267578 35.238281 73.759766 69.478516 108 108 108 108 70.810547 73.09375 35.904297 65.728516 32.791016Z" android:pathData="M65.728516 32.791016L58.052734 35.904297 56.173828 48.380859 35.306641 69.267578 35.238281 73.759766 69.478516 108 108 108 108 70.810547 73.09375 35.904297 65.728516 32.791016Z"
android:fillColor="@color/long_shadow"
android:strokeLineJoin="round" android:strokeLineJoin="round"
android:strokeLineCap="round" android:strokeLineCap="round"
android:strokeMiterLimit="4" /> android:strokeMiterLimit="4" >
<aapt:attr name="android:fillColor">
<gradient
android:endColor="#0000"
android:endX="80"
android:endY="80"
android:startColor="#4e000000"
android:startX="0"
android:startY="0"
android:type="linear"/>
</aapt:attr>
</path>
</group> </group>
<group <group
android:scaleX="0.3939503" android:scaleX="0.3939503"

View File

@@ -71,5 +71,6 @@ platform :android do
gradle( gradle(
task: 'clean' task: 'clean'
) )
sh("git", "checkout", ".")
end end
end end

View File

@@ -0,0 +1,5 @@
* Copy password from generator #697
* Fix Magikeyboard not fully visible #772
* Fix change font size #770
* Fix crash #774
* Small fixes #771

View File

@@ -16,9 +16,8 @@
KeePassDX is <b>open source</b> and <b>ad-free</b>. KeePassDX is <b>open source</b> and <b>ad-free</b>.
You can donate or buy the <a href="https://play.google.com/store/apps/details?id=com.kunzisoft.keepass.pro">pro version</a> You can donate or buy the pro version for better service and a quick development of features you want: <a href="https://play.google.com/store/apps/details?id=com.kunzisoft.keepass.pro">https://play.google.com/store/apps/details?id=com.kunzisoft.keepass.pro</a>
for better service and a quick development of features you want.
The project is constantly evolving. Do not hesitate to check the development status of the next updates: <a href="https://github.com/Kunzisoft/KeePassDX/projects">Ongoing tasks</a> The project is constantly evolving. Do not hesitate to check the development status of the next updates: <a href="https://github.com/Kunzisoft/KeePassDX/projects">https://github.com/Kunzisoft/KeePassDX/projects</a>
Send issues to: <a href="https://github.com/Kunzisoft/KeePassDX/issues">https://github.com/Kunzisoft/KeePassDX/issues</a> Send issues to: <a href="https://github.com/Kunzisoft/KeePassDX/issues">https://github.com/Kunzisoft/KeePassDX/issues</a>

View File

@@ -0,0 +1,5 @@
* Copie du mot de passe depuis le générateur #697
* Correction Magiclavier non complètement visible #772
* Correction du changement de police #770
* Correction de crash #774
* Petites corrections #771

View File

@@ -16,9 +16,8 @@
KeePassDX est <b>open source</b> et <b>sans publicité</b>. KeePassDX est <b>open source</b> et <b>sans publicité</b>.
Vous pouvez faire un don ou acheter la <a href="https://play.google.com/store/apps/details?id=com.kunzisoft.keepass.pro">version pro</a> Vous pouvez faire un don ou acheter la version pro pour un meilleur service et un développement rapide des fonctionnalités que vous souhaitez : <a href="https://play.google.com/store/apps/details?id=com.kunzisoft.keepass.pro">https://play.google.com/store/apps/details?id=com.kunzisoft.keepass.pro</a>
pour un meilleur service et un développement rapide des fonctionnalités que vous souhaitez.
Le projet est en constante évolution. N'hésitez pas à vérifier l'état de développement des prochaines mises à jour : <a href="https://github.com/Kunzisoft/KeePassDX/projects">Tâches en cours</a> Le projet est en constante évolution. N'hésitez pas à vérifier l'état de développement des prochaines mises à jour : <a href="https://github.com/Kunzisoft/KeePassDX/projects">https://github.com/Kunzisoft/KeePassDX/projects</a>
Vous avez un bug : <a href="https://github.com/Kunzisoft/KeePassDX/issues">https://github.com/Kunzisoft/KeePassDX/issues</a> Vous avez un bug : <a href="https://github.com/Kunzisoft/KeePassDX/issues">https://github.com/Kunzisoft/KeePassDX/issues</a>

View File

@@ -16,9 +16,8 @@
KeePassDX は <b>オープンソース</b>かつ<b>広告なし</b>です。 KeePassDX は <b>オープンソース</b>かつ<b>広告なし</b>です。
寄付または <a href="https://play.google.com/store/apps/details?id=com.kunzisoft.keepass.pro">pro バージョン</a>の購入は 寄付または pro バージョンの購入はサービスの改善と必要な機能の迅速な開発につながります: <a href="https://play.google.com/store/apps/details?id=com.kunzisoft.keepass.pro">https://play.google.com/store/apps/details?id=com.kunzisoft.keepass.pro</a>
サービスの改善と必要な機能の迅速な開発につながります。
プロジェクトは常に発展しています。次のアップデートの開発状況を迷わずチェック: <a href="https://github.com/Kunzisoft/KeePassDX/projects">進行中の作業</a> プロジェクトは常に発展しています。次のアップデートの開発状況を迷わずチェック: <a href="https://github.com/Kunzisoft/KeePassDX/projects">https://github.com/Kunzisoft/KeePassDX/projects</a>
Issue を送る: <a href="https://github.com/Kunzisoft/KeePassDX/issues">https://github.com/Kunzisoft/KeePassDX/issues</a> Issue を送る: <a href="https://github.com/Kunzisoft/KeePassDX/issues">https://github.com/Kunzisoft/KeePassDX/issues</a>