Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9994f663 authored by Frank Sposaro's avatar Frank Sposaro
Browse files

Added push states for ContactTiles

-This does not include Starred Quick Contact for tablet.
--That view needs to be fixed with Bug: 5062027

Bug: 5044780
Change-Id: I2149f1cbf18904bf64611b65482b1ba7fcb42523
parent 9079f1ab
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -61,6 +61,12 @@
            android:layout_marginLeft="4dip"
            style="@style/ContactTileStatusText" />

        <ImageButton
            android:id="@+id/contact_tile_push_state"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="?android:attr/selectableItemBackground" />

    </RelativeLayout>

</view>
+7 −0
Original line number Diff line number Diff line
@@ -46,9 +46,16 @@
            android:textColor="@android:color/white"
            stlye="@style/ContactTileStarredName" />

        <ImageButton
            android:id="@+id/contact_tile_push_state"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="?android:attr/selectableItemBackground" />

        <ImageButton
            android:id="@+id/contact_tile_secondary_button"
            android:src="@drawable/ic_tab_unselected_contacts"
            android:background="?android:attr/selectableItemBackground"
            android:layout_height="@dimen/contact_tile_shadowbox_height"
            android:layout_width="wrap_content"
            android:layout_alignParentBottom="true"
+13 −13
Original line number Diff line number Diff line
@@ -19,19 +19,15 @@ import com.android.contacts.ContactPhotoManager;
import com.android.contacts.ContactTileLoaderFactory;
import com.android.contacts.GroupMemberLoader;
import com.android.contacts.R;
import com.android.contacts.model.AccountTypeManager;
import com.android.contacts.model.DataKind;
import com.android.contacts.list.ContactTileAdapter.DisplayType;

import android.content.ContentUris;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Email;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.Contacts;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
@@ -426,10 +422,19 @@ public class ContactTileAdapter extends BaseAdapter {
        }
    }

    private ContactTileView.Listener mContactTileListener = new ContactTileView.Listener() {
        @Override
        public void onClick(ContactTileView contactTileView) {
            if (mListener != null) {
                mListener.onContactSelected(contactTileView.getLookupUri());
            }
        }
    };

    /**
     * Acts as a row item composed of {@link ContactTileView}
     */
    private class ContactTileRow extends LinearLayout implements OnClickListener {
    private class ContactTileRow extends LinearLayout {
        private int mItemViewType;
        private int mLayoutResId;

@@ -454,7 +459,7 @@ public class ContactTileAdapter extends BaseAdapter {
            }

        private void addTileFromEntry(ContactEntry entry, int tileIndex) {
            ContactTileView contactTile = null;
            final ContactTileView contactTile;

            if (getChildCount() <= tileIndex) {
                switch (mItemViewType) {
@@ -476,7 +481,7 @@ public class ContactTileAdapter extends BaseAdapter {
                contactTile.setLayoutParams(new LinearLayout.LayoutParams(0,
                        LinearLayout.LayoutParams.WRAP_CONTENT, 1.0f));
                contactTile.setPhotoManager(mPhotoManager);
                contactTile.setOnClickListener(this);
                contactTile.setListener(mContactTileListener);
                addView(contactTile);
            } else {
                contactTile = (ContactTileView) getChildAt(tileIndex);
@@ -484,11 +489,6 @@ public class ContactTileAdapter extends BaseAdapter {
            contactTile.setClickable(entry != null);
            contactTile.loadFromContact(entry);
        }

        @Override
        public void onClick(View v) {
            mListener.onContactSelected(((ContactTileView) v).getLookupUri());
        }
    }

    /**
+8 −10
Original line number Diff line number Diff line
@@ -20,9 +20,7 @@ import com.android.contacts.R;
import android.content.Context;
import android.content.Intent;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;

/**
@@ -30,8 +28,7 @@ import android.widget.ImageButton;
 * in a perfect square like the {@link ContactTileStarredView}. However it adds in an additional
 * touch target for a secondary action.
 */
public class ContactTileSecondaryTargetView extends ContactTileStarredView
        implements OnClickListener {
public class ContactTileSecondaryTargetView extends ContactTileStarredView {

    private final static String TAG = ContactTileSecondaryTargetView.class.getSimpleName();

@@ -44,12 +41,13 @@ public class ContactTileSecondaryTargetView extends ContactTileStarredView
    @Override
    protected void onFinishInflate() {
        super.onFinishInflate();
        mSecondaryButton = (ImageButton) findViewById(R.id.contact_tile_secondary_button);
        mSecondaryButton.setOnClickListener(this);
    }

        mSecondaryButton = (ImageButton) findViewById(R.id.contact_tile_secondary_button);
        mSecondaryButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                getContext().startActivity(new Intent(Intent.ACTION_VIEW, getLookupUri()));
            }
        });
    }
}
+27 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.QuickContactBadge;
import android.widget.TextView;
@@ -46,6 +47,8 @@ public class ContactTileView extends FrameLayout {
    private TextView mPhoneLabel;
    private TextView mPhoneNumber;
    private ContactPhotoManager mPhotoManager = null;
    private ImageButton mPushState;
    private Listener mListener;

    public ContactTileView(Context context, AttributeSet attrs) {
        super(context, attrs);
@@ -63,6 +66,22 @@ public class ContactTileView extends FrameLayout {
        mStatus = (TextView) findViewById(R.id.contact_tile_status);
        mPhoneLabel = (TextView) findViewById(R.id.contact_tile_phone_type);
        mPhoneNumber = (TextView) findViewById(R.id.contact_tile_phone_number);
        mPushState = (ImageButton) findViewById(R.id.contact_tile_push_state);

        OnClickListener listener = new OnClickListener() {
            @Override
            public void onClick(View v) {
                if (mListener != null) {
                    mListener.onClick(ContactTileView.this);
                }
            }
        };

        if(mPushState != null) {
            mPushState.setOnClickListener(listener);
        } else {
            setOnClickListener(listener);
        }
    }

    public void setPhotoManager(ContactPhotoManager photoManager) {
@@ -130,7 +149,15 @@ public class ContactTileView extends FrameLayout {
        }
    }

    public void setListener(Listener listener) {
        mListener = listener;
    }

    public Uri getLookupUri() {
        return mLookupUri;
    }

    public interface Listener {
        void onClick(ContactTileView contactTileView);
    }
}