Cleanup GroupMembers classes

Remove redundant calls and fix some cursor stuff.

Bug: 29160869
Bug: 30287073
Change-Id: Ib38dde331480f9e02eae55ad5f1ba9b9ea55cf0b
diff --git a/src/com/android/contacts/activities/GroupMembersActivity.java b/src/com/android/contacts/activities/GroupMembersActivity.java
index edd93dd..f8efa85 100644
--- a/src/com/android/contacts/activities/GroupMembersActivity.java
+++ b/src/com/android/contacts/activities/GroupMembersActivity.java
@@ -25,7 +25,6 @@
 import android.os.Bundle;
 import android.provider.ContactsContract.RawContacts;
 import android.support.v4.view.GravityCompat;
-import android.support.v7.app.ActionBar;
 import android.util.Log;
 import android.view.Menu;
 import android.view.MenuItem;
diff --git a/src/com/android/contacts/group/GroupMembersAdapter.java b/src/com/android/contacts/group/GroupMembersAdapter.java
index 622db67..af1f61e 100644
--- a/src/com/android/contacts/group/GroupMembersAdapter.java
+++ b/src/com/android/contacts/group/GroupMembersAdapter.java
@@ -73,8 +73,8 @@
 
     public GroupMembersAdapter(Context context) {
         super(context, GroupMembersQuery.CONTACT_ID);
+
         mUnknownNameText = context.getText(R.string.missing_name);
-        setSectionHeaderDisplayEnabled(true);
     }
 
     /** Sets the ID of the group whose members will be displayed. */
@@ -83,7 +83,7 @@
     }
 
     /** Returns the lookup Uri for the contact at the given position in the underlying cursor. */
-    public Uri getContactLookupUri(int position) {
+    public Uri getContactUri(int position) {
         final Cursor cursor = (Cursor) getItem(position);
         final long contactId = cursor.getLong(GroupMembersQuery.CONTACT_ID);
         final String lookupKey = cursor.getString(GroupMembersQuery.CONTACT_LOOKUP_KEY);
@@ -135,13 +135,6 @@
         return ((Cursor) getItem(position)).getString(GroupMembersQuery.CONTACT_DISPLAY_NAME);
     }
 
-    public Uri getContactUri(int position) {
-        final Cursor cursor = (Cursor) getItem(position);
-        final long contactId = cursor.getLong(GroupMembersQuery.CONTACT_ID);
-        final String lookupKey = cursor.getString(GroupMembersQuery.CONTACT_LOOKUP_KEY);
-        return Contacts.getLookupUri(contactId, lookupKey);
-    }
-
     @Override
     protected ContactListItemView newView(Context context, int partition, Cursor cursor,
             int position, ViewGroup parent) {
@@ -155,7 +148,6 @@
     protected void bindView(View v, int partition, Cursor cursor, int position) {
         super.bindView(v, partition, cursor, position);
         final ContactListItemView view = (ContactListItemView) v;
-        bindViewId(view, cursor, GroupMembersQuery.CONTACT_ID);
         bindSectionHeaderAndDivider(view, position);
         bindName(view, cursor);
         bindPhoto(view, cursor);
diff --git a/src/com/android/contacts/group/GroupMembersFragment.java b/src/com/android/contacts/group/GroupMembersFragment.java
index 266e5fc..a187510 100644
--- a/src/com/android/contacts/group/GroupMembersFragment.java
+++ b/src/com/android/contacts/group/GroupMembersFragment.java
@@ -17,7 +17,6 @@
 
 import android.app.Activity;
 import android.app.LoaderManager.LoaderCallbacks;
-import android.content.Context;
 import android.content.CursorLoader;
 import android.content.Loader;
 import android.content.res.Configuration;
@@ -162,8 +161,15 @@
 
         @Override
         public boolean moveToPosition(int position) {
-            if (position >= mCount || position < 0) return false;
-            return super.moveToPosition(mIndex[position]);
+            if (position >= mCount) {
+                mPos = mCount;
+                return false;
+            } else if (position < 0) {
+                mPos = -1;
+                return false;
+            }
+            mPos = mIndex[position];
+            return super.moveToPosition(mPos);
         }
 
         @Override
@@ -397,8 +403,7 @@
             return;
         }
         if (mListener != null) {
-            final Uri contactLookupUri = getAdapter().getContactLookupUri(position);
-            mListener.onGroupMemberListItemClicked(position, contactLookupUri);
+            mListener.onGroupMemberListItemClicked(position, uri);
         }
     }
 
diff --git a/src/com/android/contacts/list/GroupMemberPickerFragment.java b/src/com/android/contacts/list/GroupMemberPickerFragment.java
index 519a6a9..6f4d0c0 100644
--- a/src/com/android/contacts/list/GroupMemberPickerFragment.java
+++ b/src/com/android/contacts/list/GroupMemberPickerFragment.java
@@ -148,8 +148,15 @@
 
         @Override
         public boolean moveToPosition(int position) {
-            if (position >= mCount || position < 0) return false;
-            return super.moveToPosition(mIndex[position]);
+            if (position >= mCount) {
+                mPos = mCount;
+                return false;
+            } else if (position < 0) {
+                mPos = -1;
+                return false;
+            }
+            mPos = mIndex[position];
+            return super.moveToPosition(mPos);
         }
 
         @Override