mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
Hide custom entries protected #65
This commit is contained in:
@@ -251,7 +251,7 @@ public class EntryActivity extends LockingHideActivity {
|
||||
|
||||
mEntry.getFields().doActionToAllCustomProtectedField((label, value) ->
|
||||
|
||||
entryContentsView.addExtraField(label, value.toString(), view ->
|
||||
entryContentsView.addExtraField(label, value, view ->
|
||||
clipboardHelper.timeoutCopyToClipboard(
|
||||
value.toString(),
|
||||
getString(R.string.copy_field, label)
|
||||
|
||||
@@ -57,7 +57,7 @@ import com.keepassdroid.tasks.ProgressTask;
|
||||
import com.keepassdroid.utils.MenuUtil;
|
||||
import com.keepassdroid.utils.Types;
|
||||
import com.keepassdroid.utils.Util;
|
||||
import com.keepassdroid.view.EntryEditNewField;
|
||||
import com.keepassdroid.view.EntryEditCustomField;
|
||||
import com.kunzisoft.keepass.R;
|
||||
|
||||
import java.util.UUID;
|
||||
@@ -201,7 +201,7 @@ public class EntryEditActivity extends LockingHideActivity
|
||||
View add = findViewById(R.id.add_new_field);
|
||||
add.setVisibility(View.VISIBLE);
|
||||
add.setOnClickListener(v -> {
|
||||
EntryEditNewField ees = new EntryEditNewField(EntryEditActivity.this);
|
||||
EntryEditCustomField ees = new EntryEditCustomField(EntryEditActivity.this);
|
||||
ees.setData("", new ProtectedString(false, ""));
|
||||
entryExtraFieldsContainer.addView(ees);
|
||||
|
||||
@@ -230,8 +230,8 @@ public class EntryEditActivity extends LockingHideActivity
|
||||
// Validate extra fields
|
||||
if (mEntry.allowExtraFields()) {
|
||||
for (int i = 0; i < entryExtraFieldsContainer.getChildCount(); i++) {
|
||||
EntryEditNewField entryEditNewField = (EntryEditNewField) entryExtraFieldsContainer.getChildAt(i);
|
||||
String key = entryEditNewField.getLabel();
|
||||
EntryEditCustomField entryEditCustomField = (EntryEditCustomField) entryExtraFieldsContainer.getChildAt(i);
|
||||
String key = entryEditCustomField.getLabel();
|
||||
if (key == null || key.length() == 0) {
|
||||
Toast.makeText(this, R.string.error_string_key, Toast.LENGTH_LONG).show();
|
||||
return false;
|
||||
@@ -277,7 +277,7 @@ public class EntryEditActivity extends LockingHideActivity
|
||||
newEntry.removeAllCustomFields();
|
||||
// Add extra fields from views
|
||||
for (int i = 0; i < entryExtraFieldsContainer.getChildCount(); i++) {
|
||||
EntryEditNewField view = (EntryEditNewField) entryExtraFieldsContainer.getChildAt(i);
|
||||
EntryEditCustomField view = (EntryEditCustomField) entryExtraFieldsContainer.getChildAt(i);
|
||||
String key = view.getLabel();
|
||||
String value = view.getValue();
|
||||
boolean protect = view.isProtected();
|
||||
@@ -339,10 +339,10 @@ public class EntryEditActivity extends LockingHideActivity
|
||||
if (mEntry.allowExtraFields()) {
|
||||
LinearLayout container = findViewById(R.id.advanced_container);
|
||||
mEntry.getFields().doActionToAllCustomProtectedField((key, value) -> {
|
||||
EntryEditNewField entryEditNewField = new EntryEditNewField(EntryEditActivity.this);
|
||||
entryEditNewField.setData(key, value);
|
||||
entryEditNewField.setFontVisibility(visibilityFontActivated);
|
||||
container.addView(entryEditNewField);
|
||||
EntryEditCustomField entryEditCustomField = new EntryEditCustomField(EntryEditActivity.this);
|
||||
entryEditCustomField.setData(key, value);
|
||||
entryEditCustomField.setFontVisibility(visibilityFontActivated);
|
||||
container.addView(entryEditCustomField);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -136,7 +136,6 @@ public abstract class ListNodesActivity extends LockingActivity
|
||||
|
||||
protected void assignListToNodeAdapter(RecyclerView recyclerView) {
|
||||
recyclerView.setScrollBarStyle(View.SCROLLBARS_INSIDE_INSET);
|
||||
// TODO mList.setTextFilterEnabled(true);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(this));
|
||||
recyclerView.setAdapter(mAdapter);
|
||||
}
|
||||
|
||||
@@ -64,7 +64,6 @@ public class ExtraFields implements Serializable, Cloneable {
|
||||
String key = pair.getKey();
|
||||
if (isNotStandardField(key)) {
|
||||
protectedFields.put(key, pair.getValue());
|
||||
// TODO Add hidden style for protection field
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.keepassdroid.database.security.ProtectedString;
|
||||
import com.keepassdroid.utils.Util;
|
||||
import com.kunzisoft.keepass.R;
|
||||
|
||||
@@ -151,6 +152,12 @@ public class EntryContentsView extends LinearLayout {
|
||||
} else {
|
||||
passwordView.setTransformationMethod(PasswordTransformationMethod.getInstance());
|
||||
}
|
||||
// Hidden style for custom fields
|
||||
for (int i = 0; i < extrasView.getChildCount(); i++) {
|
||||
View childCustomView = extrasView.getChildAt(i);
|
||||
if (childCustomView instanceof EntryCustomFieldProtected)
|
||||
((EntryCustomFieldProtected) childCustomView).setHiddenPasswordStyle(hiddenStyle);
|
||||
}
|
||||
}
|
||||
|
||||
public void assignURL(String url) {
|
||||
@@ -173,10 +180,14 @@ public class EntryContentsView extends LinearLayout {
|
||||
}
|
||||
}
|
||||
|
||||
public void addExtraField(String title, String value, OnClickListener onActionClickListener) {
|
||||
EntryNewField entryNewField = new EntryNewField(getContext(), null, title, value, onActionClickListener);
|
||||
entryNewField.applyFontVisibility(fontInVisibility);
|
||||
extrasView.addView(entryNewField);
|
||||
public void addExtraField(String title, ProtectedString value, OnClickListener onActionClickListener) {
|
||||
EntryCustomField entryCustomField;
|
||||
if (value.isProtected())
|
||||
entryCustomField = new EntryCustomFieldProtected(getContext(), null, title, value, onActionClickListener);
|
||||
else
|
||||
entryCustomField = new EntryCustomField(getContext(), null, title, value, onActionClickListener);
|
||||
entryCustomField.applyFontVisibility(fontInVisibility);
|
||||
extrasView.addView(entryCustomField);
|
||||
}
|
||||
|
||||
public void clearExtraFields() {
|
||||
|
||||
@@ -26,28 +26,29 @@ import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.keepassdroid.database.security.ProtectedString;
|
||||
import com.keepassdroid.utils.Util;
|
||||
import com.kunzisoft.keepass.R;
|
||||
|
||||
public class EntryNewField extends LinearLayout {
|
||||
public class EntryCustomField extends LinearLayout {
|
||||
|
||||
private TextView labelView;
|
||||
private TextView valueView;
|
||||
private ImageView actionImageView;
|
||||
protected TextView labelView;
|
||||
protected TextView valueView;
|
||||
protected ImageView actionImageView;
|
||||
|
||||
public EntryNewField(Context context) {
|
||||
public EntryCustomField(Context context) {
|
||||
this(context, null);
|
||||
}
|
||||
|
||||
public EntryNewField(Context context, AttributeSet attrs) {
|
||||
public EntryCustomField(Context context, AttributeSet attrs) {
|
||||
this(context, attrs, null, null);
|
||||
}
|
||||
|
||||
public EntryNewField(Context context, AttributeSet attrs, String title, String value) {
|
||||
public EntryCustomField(Context context, AttributeSet attrs, String title, ProtectedString value) {
|
||||
this(context, attrs, title, value, null);
|
||||
}
|
||||
|
||||
public EntryNewField(Context context, AttributeSet attrs, String label, String value, OnClickListener onClickActionListener) {
|
||||
public EntryCustomField(Context context, AttributeSet attrs, String label, ProtectedString value, OnClickListener onClickActionListener) {
|
||||
super(context, attrs);
|
||||
|
||||
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||
@@ -74,9 +75,9 @@ public class EntryNewField extends LinearLayout {
|
||||
}
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
public void setValue(ProtectedString value) {
|
||||
if (value != null) {
|
||||
valueView.setText(value);
|
||||
valueView.setText(value.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.keepassdroid.view;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.method.PasswordTransformationMethod;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
import com.keepassdroid.database.security.ProtectedString;
|
||||
|
||||
public class EntryCustomFieldProtected extends EntryCustomField{
|
||||
|
||||
public EntryCustomFieldProtected(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
public EntryCustomFieldProtected(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
}
|
||||
|
||||
public EntryCustomFieldProtected(Context context, AttributeSet attrs, String title, ProtectedString value) {
|
||||
super(context, attrs, title, value);
|
||||
}
|
||||
|
||||
public EntryCustomFieldProtected(Context context, AttributeSet attrs, String label, ProtectedString value, OnClickListener onClickActionListener) {
|
||||
super(context, attrs, label, value, onClickActionListener);
|
||||
}
|
||||
|
||||
public void setValue(ProtectedString value) {
|
||||
if (value != null) {
|
||||
valueView.setText(value.toString());
|
||||
setHiddenPasswordStyle(value.isProtected());
|
||||
}
|
||||
}
|
||||
|
||||
public void setHiddenPasswordStyle(boolean hiddenStyle) {
|
||||
if ( !hiddenStyle ) {
|
||||
valueView.setTransformationMethod(null);
|
||||
} else {
|
||||
valueView.setTransformationMethod(PasswordTransformationMethod.getInstance());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -34,21 +34,21 @@ import com.keepassdroid.database.security.ProtectedString;
|
||||
import com.keepassdroid.utils.Util;
|
||||
import com.kunzisoft.keepass.R;
|
||||
|
||||
public class EntryEditNewField extends RelativeLayout {
|
||||
public class EntryEditCustomField extends RelativeLayout {
|
||||
|
||||
private TextView labelView;
|
||||
private EditText valueView;
|
||||
private CompoundButton protectionCheckView;
|
||||
|
||||
public EntryEditNewField(Context context) {
|
||||
public EntryEditCustomField(Context context) {
|
||||
this(context, null);
|
||||
}
|
||||
|
||||
public EntryEditNewField(Context context, AttributeSet attrs) {
|
||||
public EntryEditCustomField(Context context, AttributeSet attrs) {
|
||||
this(context, attrs, 0);
|
||||
}
|
||||
|
||||
public EntryEditNewField(Context context, AttributeSet attrs, int defStyle) {
|
||||
public EntryEditCustomField(Context context, AttributeSet attrs, int defStyle) {
|
||||
super(context, attrs, defStyle);
|
||||
|
||||
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||
Reference in New Issue
Block a user