diff options
-rw-r--r-- | res/layout/compact_contact_editor_fragment.xml | 31 | ||||
-rw-r--r-- | res/values/strings.xml | 3 | ||||
-rw-r--r-- | src/com/android/contacts/editor/CompactContactEditorFragment.java | 10 | ||||
-rw-r--r-- | src/com/android/contacts/editor/CompactRawContactsEditorView.java | 33 |
4 files changed, 75 insertions, 2 deletions
diff --git a/res/layout/compact_contact_editor_fragment.xml b/res/layout/compact_contact_editor_fragment.xml index 58f426b49..6eb32a782 100644 --- a/res/layout/compact_contact_editor_fragment.xml +++ b/res/layout/compact_contact_editor_fragment.xml @@ -65,6 +65,37 @@ android:layout_height="wrap_content" android:orientation="vertical"/> + <LinearLayout + style="@style/SelectableItem" + android:id="@+id/more_fields" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" > + + <View + android:layout_width="match_parent" + android:layout_height="@dimen/divider_line_height" + android:background="@color/divider_line_color_light" /> + + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:paddingEnd="@dimen/expanding_entry_card_item_image_spacing" + android:gravity="center_vertical" + android:paddingBottom="@dimen/expanding_entry_card_button_padding_vertical" + android:paddingTop="@dimen/expanding_entry_card_button_padding_vertical" + android:text="@string/compact_editor_more_fields" + android:textAlignment="textEnd" + android:textColor="@color/expanding_entry_card_button_text_color" + android:textSize="@dimen/expanding_entry_card_title_text_size" /> + + <View + android:layout_width="match_parent" + android:layout_height="@dimen/divider_line_height" + android:background="@color/divider_line_color_light" /> + + </LinearLayout> + </com.android.contacts.editor.CompactRawContactsEditorView> </ScrollView> diff --git a/res/values/strings.xml b/res/values/strings.xml index 13243176d..30a652594 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -734,4 +734,7 @@ <!-- When a user tries to create an IM Hangouts field, an alert dialog pops up displaying this message. We don't want users entering email addresses of phone numbers into the IM field. [CHAR LIMIT=200] --> <string name="contact_editor_hangouts_im_alert">Hangouts works better when you enter the person\'s Hangouts identifier into the email field or phone field.</string> + + <!-- Button to expand the compact contact editor to show all available input fields. [CHAR LIMIT=60] --> + <string name="compact_editor_more_fields">More Fields</string> </resources> diff --git a/src/com/android/contacts/editor/CompactContactEditorFragment.java b/src/com/android/contacts/editor/CompactContactEditorFragment.java index 8294365e3..425f7ce50 100644 --- a/src/com/android/contacts/editor/CompactContactEditorFragment.java +++ b/src/com/android/contacts/editor/CompactContactEditorFragment.java @@ -28,11 +28,13 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; +import android.widget.Toast; /** * Contact editor with only the most important fields displayed initially. */ -public class CompactContactEditorFragment extends ContactEditorBaseFragment { +public class CompactContactEditorFragment extends ContactEditorBaseFragment implements + CompactRawContactsEditorView.Listener { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedState) { @@ -59,6 +61,7 @@ public class CompactContactEditorFragment extends ContactEditorBaseFragment { } CompactRawContactsEditorView editorView = (CompactRawContactsEditorView) mContent; + editorView.setListener(this); editorView.setState(mState, mViewIdGenerator); editorView.setEnabled(isEnabled()); editorView.setVisibility(View.VISIBLE); @@ -114,4 +117,9 @@ public class CompactContactEditorFragment extends ContactEditorBaseFragment { CompactContactEditorActivity.ACTION_JOIN_COMPLETED); mContext.startService(intent); } + + @Override + public void onExpandEditor() { + Toast.makeText(mContext, "Not yet implemented", Toast.LENGTH_SHORT).show(); + } } diff --git a/src/com/android/contacts/editor/CompactRawContactsEditorView.java b/src/com/android/contacts/editor/CompactRawContactsEditorView.java index d8dea6071..363fe8b7c 100644 --- a/src/com/android/contacts/editor/CompactRawContactsEditorView.java +++ b/src/com/android/contacts/editor/CompactRawContactsEditorView.java @@ -48,10 +48,23 @@ import java.util.List; * View to display information from multiple {@link RawContactDelta}s grouped together * (e.g. all the phone numbers from a {@link com.android.contacts.common.model.Contact} together. */ -public class CompactRawContactsEditorView extends LinearLayout { +public class CompactRawContactsEditorView extends LinearLayout implements View.OnClickListener { private static final String TAG = "CompactEditorView"; + /** + * Callbacks for hosts of {@link CompactRawContactsEditorView}s. + */ + public interface Listener { + + /** + * Invoked when the compact editor should be expanded to show all fields. + */ + public void onExpandEditor(); + } + + private Listener mListener; + private AccountTypeManager mAccountTypeManager; private LayoutInflater mLayoutInflater; private ViewIdGenerator mViewIdGenerator; @@ -62,6 +75,7 @@ public class CompactRawContactsEditorView extends LinearLayout { private ViewGroup mPhoneNumbers; private ViewGroup mEmails; private ViewGroup mOther; + private View mMoreFields; public CompactRawContactsEditorView(Context context) { super(context); @@ -71,6 +85,13 @@ public class CompactRawContactsEditorView extends LinearLayout { super(context, attrs); } + /** + * Sets the receiver for {@link CompactRawContactsEditorView} callbacks. + */ + public void setListener(Listener listener) { + mListener = listener; + } + @Override protected void onFinishInflate() { super.onFinishInflate(); @@ -85,6 +106,16 @@ public class CompactRawContactsEditorView extends LinearLayout { mPhoneNumbers = (LinearLayout) findViewById(R.id.phone_numbers); mEmails = (LinearLayout) findViewById(R.id.emails); mOther = (LinearLayout) findViewById(R.id.other); + mMoreFields = findViewById(R.id.more_fields); + mMoreFields.setOnClickListener(this); + } + + + @Override + public void onClick(View view) { + if (view.getId() == R.id.more_fields && mListener != null ) { + mListener.onExpandEditor(); + } } @Override |