summaryrefslogtreecommitdiffstats
path: root/src/com/android/contacts/editor/ContactEditorBaseFragment.java
diff options
context:
space:
mode:
authorWalter Jang <wjang@google.com>2015-02-04 13:41:09 -0800
committerWalter Jang <wjang@google.com>2015-02-05 08:32:42 -0800
commit1eb21f12372b31794ef5a567013c1d2d98081120 (patch)
tree7f145fdcdc51157a5b79672afaecda81cc2a1562 /src/com/android/contacts/editor/ContactEditorBaseFragment.java
parentb55107303cc46906c265582a8931172f13d684b6 (diff)
downloadpackages_apps_Contacts-1eb21f12372b31794ef5a567013c1d2d98081120.tar.gz
packages_apps_Contacts-1eb21f12372b31794ef5a567013c1d2d98081120.tar.bz2
packages_apps_Contacts-1eb21f12372b31794ef5a567013c1d2d98081120.zip
Move join suggestion view to base contact edit fragment
So that we can keep setEnabled logic entirely within the base fragment. The rest of the join suggestion functionality will be ported to the base so it can be shared with the compact editor in a seperate CL. Bug 19124091 Change-Id: I4d494c9b0c2db8a6dba6d9d752d049f48848f731
Diffstat (limited to 'src/com/android/contacts/editor/ContactEditorBaseFragment.java')
-rw-r--r--src/com/android/contacts/editor/ContactEditorBaseFragment.java37
1 files changed, 27 insertions, 10 deletions
diff --git a/src/com/android/contacts/editor/ContactEditorBaseFragment.java b/src/com/android/contacts/editor/ContactEditorBaseFragment.java
index fcfb86d8c..e1a841a39 100644
--- a/src/com/android/contacts/editor/ContactEditorBaseFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorBaseFragment.java
@@ -69,6 +69,7 @@ import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
+import android.view.View;
import android.widget.LinearLayout;
import android.widget.Toast;
@@ -195,6 +196,7 @@ abstract public class ContactEditorBaseFragment extends Fragment implements
// Views
//
protected LinearLayout mContent;
+ protected View mAggregationSuggestionView;
//
// Parameters passed in on {@link #load}
@@ -721,7 +723,7 @@ abstract public class ContactEditorBaseFragment extends Fragment implements
return true;
}
- maybeSetEnabled(false);
+ setEnabled(false);
return doSaveAction(saveMode);
}
@@ -900,7 +902,7 @@ abstract public class ContactEditorBaseFragment extends Fragment implements
*/
protected void setStateForExistingContact(String displayName, boolean isUserProfile,
ImmutableList<RawContact> rawContacts) {
- maybeSetEnabled(true);
+ setEnabled(true);
mDefaultDisplayName = displayName;
mState.addAll(rawContacts.iterator());
@@ -933,8 +935,6 @@ abstract public class ContactEditorBaseFragment extends Fragment implements
/**
* Sets group metadata on all bound editors.
*/
- // TODO: can this be private? Does it really need to be called from
- // {@link ContactEditFragment#bindEdtiors}? If not we can remove mGroupMetaData too.
protected void setGroupMetaData() {
if (mGroupMetaData == null) {
return;
@@ -955,14 +955,31 @@ abstract public class ContactEditorBaseFragment extends Fragment implements
/**
* Set the enabled state of editors.
*/
- // TODO: The implementation in ContactEditorFragment can be moved to this class when
- // the aggregation Views are moved to the base and we can get rid of maybeSetEnabled
- abstract void setEnabled(boolean enabled);
-
- private void maybeSetEnabled(boolean enabled) {
+ private void setEnabled(boolean enabled) {
if (mEnabled != enabled) {
mEnabled = enabled;
- setEnabled(mEnabled);
+
+ // Enable/disable editors
+ if (mContent != null) {
+ int count = mContent.getChildCount();
+ for (int i = 0; i < count; i++) {
+ mContent.getChildAt(i).setEnabled(enabled);
+ }
+ }
+
+ // Enable/disable aggregation suggestion vies
+ if (mAggregationSuggestionView != null) {
+ LinearLayout itemList = (LinearLayout) mAggregationSuggestionView.findViewById(
+ R.id.aggregation_suggestions);
+ int count = itemList.getChildCount();
+ for (int i = 0; i < count; i++) {
+ itemList.getChildAt(i).setEnabled(enabled);
+ }
+ }
+
+ // Maybe invalidate the options menu
+ final Activity activity = getActivity();
+ if (activity != null) activity.invalidateOptionsMenu();
}
}