Merge "Import revised translations. DO NOT MERGE" into honeycomb
diff --git a/res/layout/navigation_bar.xml b/res/layout/navigation_bar.xml
index 7840430..803705c 100644
--- a/res/layout/navigation_bar.xml
+++ b/res/layout/navigation_bar.xml
@@ -30,7 +30,7 @@
android:gravity="center_vertical"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/search_label"
- android:minWidth="220dip" />
+ android:minWidth="@dimen/action_bar_filter_min_width" />
<view
class="com.android.contacts.list.ContactListFilterView"
@@ -40,7 +40,8 @@
android:layout_height="match_parent"
android:layout_gravity="left|center_vertical"
android:focusable="true"
- android:minWidth="220dip" >
+ android:minWidth="@dimen/action_bar_filter_min_width"
+ >
<ImageView
android:id="@+id/icon"
android:scaleType="fitCenter"
@@ -55,7 +56,9 @@
android:layout_width="wrap_content"
android:gravity="center_vertical"
android:textAppearance="?android:attr/textAppearanceMedium"
- android:ellipsize="end" />
+ android:ellipsize="end"
+ android:singleLine="true"
+ android:maxWidth="@dimen/action_bar_filter_max_width" />
</view>
<SearchView
@@ -63,8 +66,8 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
- android:layout_marginLeft="32dip"
- android:maxWidth="300dip"
+ android:layout_marginLeft="@dimen/action_bar_search_spacing"
+ android:maxWidth="@dimen/action_bar_search_max_width"
android:iconifiedByDefault="false" />
</LinearLayout>
diff --git a/res/values-xlarge-land/dimens.xml b/res/values-xlarge-land/dimens.xml
index 85bd3a8..52c521e 100644
--- a/res/values-xlarge-land/dimens.xml
+++ b/res/values-xlarge-land/dimens.xml
@@ -15,4 +15,8 @@
-->
<resources>
<dimen name="quick_contact_width">452dip</dimen>
+ <dimen name="action_bar_filter_min_width">220dip</dimen>
+ <dimen name="action_bar_filter_max_width">300dip</dimen>
+ <dimen name="action_bar_search_max_width">336dip</dimen>
+ <dimen name="action_bar_search_spacing">32dip</dimen>
</resources>
diff --git a/res/values-xlarge/dimens.xml b/res/values-xlarge/dimens.xml
index 058e2cf..6ffbb31 100644
--- a/res/values-xlarge/dimens.xml
+++ b/res/values-xlarge/dimens.xml
@@ -18,4 +18,8 @@
<dimen name="aggregation_suggestion_icon_size">64dip</dimen>
<dimen name="quick_contact_width">356dip</dimen>
<dimen name="contact_name_text_size">26sp</dimen>
+ <dimen name="action_bar_filter_min_width">120dip</dimen>
+ <dimen name="action_bar_filter_max_width">120dip</dimen>
+ <dimen name="action_bar_search_max_width">300dip</dimen>
+ <dimen name="action_bar_search_spacing">12dip</dimen>
</resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index d55ebd6..0b2cffd 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -60,4 +60,17 @@
<!-- Font size used for the contact name in the detail and the editor -->
<dimen name="contact_name_text_size">18sp</dimen>
+
+ <!-- Minimum width of the filter selector in the action bar -->
+ <dimen name="action_bar_filter_min_width">100dip</dimen>
+
+ <!-- Maximum width of the filter selector in the action bar -->
+ <dimen name="action_bar_filter_max_width">100dip</dimen>
+
+ <!-- Maximum width of the search field in the action bar -->
+ <dimen name="action_bar_search_max_width">100dip</dimen>
+
+ <!-- Spacing on the left the search field in the action bar -->
+ <dimen name="action_bar_search_spacing">12dip</dimen>
+
</resources>
diff --git a/src/com/android/contacts/editor/ContactEditorFragment.java b/src/com/android/contacts/editor/ContactEditorFragment.java
index d9c577e..b117d77 100644
--- a/src/com/android/contacts/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorFragment.java
@@ -227,6 +227,7 @@
private long mLoaderStartTime;
private int mStatus;
+ private boolean mSaveOnStop = true;
private AggregationSuggestionEngine mAggregationSuggestionEngine;
private long mAggregationSuggestionsRawContactId;
@@ -265,8 +266,9 @@
if (mAggregationSuggestionEngine != null) {
mAggregationSuggestionEngine.quit();
}
+
// If anything was left unsaved, save it now but keep the editor open.
- if (!getActivity().isChangingConfigurations() && mStatus == Status.EDITING) {
+ if (!getActivity().isChangingConfigurations() && mStatus == Status.EDITING && mSaveOnStop) {
save(SaveMode.RELOAD);
}
}
@@ -321,6 +323,7 @@
@Override
public void onStart() {
+ mSaveOnStop = true;
getLoaderManager().initLoader(LOADER_GROUPS, null, mGroupLoaderListener);
super.onStart();
}
@@ -736,6 +739,7 @@
// Launch gallery to crop the photo
final Intent intent = getCropImageIntent(Uri.fromFile(f));
+ mSaveOnStop = false;
startActivityForResult(intent, REQUEST_CODE_PHOTO_PICKED_WITH_DATA);
} catch (Exception e) {
Log.e(TAG, "Cannot crop image", e);
@@ -1821,6 +1825,7 @@
mCurrentPhotoFile = new File(PHOTO_DIR, getPhotoFileName());
final Intent intent = getTakePickIntent(mCurrentPhotoFile);
+ mSaveOnStop = false;
startActivityForResult(intent, REQUEST_CODE_CAMERA_WITH_DATA);
} catch (ActivityNotFoundException e) {
Toast.makeText(mContext, R.string.photoPickerNotFoundText,
@@ -1837,6 +1842,7 @@
try {
// Launch picker to choose photo for selected contact
final Intent intent = getPhotoPickIntent();
+ mSaveOnStop = false;
startActivityForResult(intent, REQUEST_CODE_PHOTO_PICKED_WITH_DATA);
} catch (ActivityNotFoundException e) {
Toast.makeText(mContext, R.string.photoPickerNotFoundText,
diff --git a/src/com/android/contacts/list/ContactEntryListFragment.java b/src/com/android/contacts/list/ContactEntryListFragment.java
index 6bdfd97..70eb0db 100644
--- a/src/com/android/contacts/list/ContactEntryListFragment.java
+++ b/src/com/android/contacts/list/ContactEntryListFragment.java
@@ -432,6 +432,12 @@
}
protected void onPartitionLoaded(int partitionIndex, Cursor data) {
+ if (partitionIndex >= mAdapter.getPartitionCount()) {
+ // When we get unsolicited data, ignore it. This could happen
+ // when we are switching from search mode to the default mode.
+ return;
+ }
+
mAdapter.changeCursor(partitionIndex, data);
showCount(partitionIndex, data);