Merge "Import revised translations."
diff --git a/src/com/android/contacts/editor/ContactEditorFragment.java b/src/com/android/contacts/editor/ContactEditorFragment.java
index 2f1c7ff..fd8ba4e 100644
--- a/src/com/android/contacts/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorFragment.java
@@ -234,6 +234,7 @@
private boolean mAutoAddToDefaultGroup;
private boolean mEnabled = true;
+ private boolean mRequestFocus;
public ContactEditorFragment() {
}
@@ -412,6 +413,8 @@
setIntentExtras(mIntentExtras);
mIntentExtras = null;
+ mRequestFocus = true;
+
bindEditors();
}
@@ -508,6 +511,8 @@
mState.add(insert);
}
+ mRequestFocus = true;
+
bindEditors();
}
@@ -552,6 +557,10 @@
if (editor instanceof RawContactEditorView) {
final RawContactEditorView rawContactEditor = (RawContactEditorView) editor;
final TextFieldsEditorView nameEditor = rawContactEditor.getNameEditor();
+ if (mRequestFocus) {
+ nameEditor.requestFocus();
+ mRequestFocus = false;
+ }
nameEditor.setEditorListener(new EditorListener() {
@Override
@@ -572,6 +581,8 @@
}
}
+ mRequestFocus = false;
+
bindGroupMetaData();
// Show editor now that we've loaded state
@@ -581,6 +592,7 @@
// Activity can be null if we have been detached from the Activity
final Activity activity = getActivity();
if (activity != null) activity.invalidateOptionsMenu();
+
}
private void bindGroupMetaData() {
@@ -809,7 +821,8 @@
}
private boolean revert() {
- if (mState == null || mState.buildDiff().isEmpty()) {
+ final AccountTypeManager accountTypes = AccountTypeManager.getInstance(mContext);
+ if (mState == null || !EntityModifier.hasChanges(mState, accountTypes)) {
doRevertAction();
} else {
CancelEditDialogFragment.show(this);
diff --git a/src/com/android/contacts/editor/KindSectionView.java b/src/com/android/contacts/editor/KindSectionView.java
index 4ce8dda..aaeafac 100644
--- a/src/com/android/contacts/editor/KindSectionView.java
+++ b/src/com/android/contacts/editor/KindSectionView.java
@@ -269,7 +269,13 @@
}
final View newField = createEditorView(values);
- newField.requestFocus();
+ post(new Runnable() {
+
+ @Override
+ public void run() {
+ newField.requestFocus();
+ }
+ });
// For non-lists (e.g. Notes we can only have one field. in that case we need to disable
// the add button
diff --git a/src/com/android/contacts/model/EntityModifier.java b/src/com/android/contacts/model/EntityModifier.java
index a447694..4505142 100644
--- a/src/com/android/contacts/model/EntityModifier.java
+++ b/src/com/android/contacts/model/EntityModifier.java
@@ -443,22 +443,21 @@
*/
public static boolean isEmpty(ValuesDelta values, DataKind kind) {
if (Photo.CONTENT_ITEM_TYPE.equals(kind.mimeType)) {
- return false;
+ return values.isInsert() && values.getAsByteArray(Photo.PHOTO) == null;
}
// No defined fields mean this row is always empty
if (kind.fieldList == null) return true;
- boolean hasValues = false;
for (EditField field : kind.fieldList) {
// If any field has values, we're not empty
final String value = values.getAsString(field.column);
if (ContactsUtils.isGraphic(value)) {
- hasValues = true;
+ return false;
}
}
- return !hasValues;
+ return true;
}
/**