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

Commit 123d1a88 authored by Steve Kondik's avatar Steve Kondik
Browse files

Merge branch 'donut' of git://github.com/Wysie/android_packages_apps_Contacts into donut

parents 8cba2905 317f7fad
Loading
Loading
Loading
Loading
+75 −43
Original line number Diff line number Diff line
@@ -466,6 +466,8 @@ public final class EditContactActivity extends Activity implements View.OnClickL
        } else {
            setTitle(getResources().getText(R.string.editContact_title_insert));
        }
        
        loadCurrentMembership();
    }

    private void setupSections() {
@@ -2527,7 +2529,45 @@ public final class EditContactActivity extends Activity implements View.OnClickL
        CharSequence[] groupsCharSeq = null;           
        boolean[] checkedValues = null;
        
            Cursor cursor = mResolver.query(Groups.CONTENT_URI, GROUPS_PROJECTION, null, null, Groups.DEFAULT_SORT_ORDER);
            
            try {
                if (cursor.moveToFirst()) {
                    while (cursor.moveToNext()) {            
                        String name = cursor.getString(
                                cursor.getColumnIndex(Groups.NAME));

                        groups.add(name);                
                    }
                }

                groupsCharSeq = groups.toArray(new CharSequence[groups.size()]);                

                checkedValues = new boolean[groups.size()];

                for (boolean b : checkedValues) {
                    b = false;
                }
                
                if (!(mState == STATE_INSERT)) {

                    for (int i = 0; i < selectedGroups.size(); i++) {
                      int j = groups.indexOf(selectedGroups.get(i));

                        if (j != -1) {
                            checkedValues[j] = true;
                        }
                    }
                }
            } finally {
                cursor.close();
            }

            builder.setMultiChoiceItems(groupsCharSeq, checkedValues,
                    confirmGroupSelectionListener);  
        
        // If selected groups already has something inside, we use it
        /*
        if (selectedGroups.size() > 0) {

            groupsCharSeq = groups.toArray(
@@ -2553,8 +2593,6 @@ public final class EditContactActivity extends Activity implements View.OnClickL
            Cursor cursor = mResolver.query(Groups.CONTENT_URI, GROUPS_PROJECTION, null,
                    null, Groups.DEFAULT_SORT_ORDER);
            try {
                groups = new ArrayList<CharSequence>();

                if (cursor.moveToFirst()) {
                    while (cursor.moveToNext()) {            
                        String name = cursor.getString(
@@ -2566,40 +2604,6 @@ public final class EditContactActivity extends Activity implements View.OnClickL

                groupsCharSeq = groups.toArray(new CharSequence[groups.size()]);                

                if (!(mState == STATE_INSERT)) {
                long personId = ContentUris.parseId(mUri);

                Cursor groupCursor = mResolver.query(GroupMembership.CONTENT_URI,
                        GROUP_MEMBERSHIP_PROJECTION,
                        GroupMembership.PERSON_ID + "='" + personId + "'", null,
                        null);
                Cursor cur = null;

                if (groupCursor != null) {
                    while (groupCursor.moveToNext()) {
                        cur = mResolver.query(Groups.CONTENT_URI,
                                GROUPS_PROJECTION,
                                Contacts.Groups._ID + "='"
                                + groupCursor.getString(
                                groupCursor.getColumnIndex(
                                        GroupMembership.GROUP_ID))
                                        + "'",
                                        null,
                                        null);
                        if (cur != null) {
                            if (cur.moveToFirst()) {
                                currentMembership.add(
                                        cur.getString(
                                                cur.getColumnIndex(Groups.NAME)));
                            }
                            cur.close();
                        }
                    }
                    groupCursor.close();
                    
                }
                }

                checkedValues = new boolean[groups.size()];

                for (boolean b : checkedValues) {
@@ -2625,6 +2629,34 @@ public final class EditContactActivity extends Activity implements View.OnClickL
                    confirmGroupSelectionListener);           

        }
        */
    }
    
    private void loadCurrentMembership() {
        if (!(mState == STATE_INSERT)) {
            long personId = ContentUris.parseId(mUri);
            
            Cursor groupCursor = mResolver.query(GroupMembership.CONTENT_URI, GROUP_MEMBERSHIP_PROJECTION,
                                GroupMembership.PERSON_ID + "='" + personId + "'", null, null);
            Cursor cur = null;
            
            if (groupCursor != null) {
                while (groupCursor.moveToNext()) {
                    cur = mResolver.query(Groups.CONTENT_URI, GROUPS_PROJECTION, Contacts.Groups._ID + "='" 
                            + groupCursor.getString(groupCursor.getColumnIndex(GroupMembership.GROUP_ID))
                            + "'", null, null);
                    
                    if (cur != null) {
                        if (cur.moveToFirst()) {
                            currentMembership.add(cur.getString(cur.getColumnIndex(Groups.NAME)));
                        }
                            cur.close();
                        }
                }
                groupCursor.close();
            }
        }        
        selectedGroups = (ArrayList) currentMembership.clone();      
    }

    private DialogInterface.OnClickListener confirmGroupChangesListener = new DialogInterface.OnClickListener() {