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

Commit 08981f51 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "Contants: Modify ANR in group detial,when group has 500 member"

parents 448e3801 fa397f3f
Loading
Loading
Loading
Loading
+28 −15
Original line number Diff line number Diff line
@@ -305,26 +305,39 @@ public class GroupDetailFragment extends Fragment implements OnScrollListener {
            updateSize(data.getCount());
            mAdapter.setContactCursor(data);
            mMemberListView.setEmptyView(mEmptyView);
            getGroupMemberPhoneNumber(data);
        }

        @Override
        public void onLoaderReset(Loader<Cursor> loader) {}
    };

    private void getGroupMemberPhoneNumber(final Cursor data) {
        new Thread () {
            @Override
            public void run() {
                // For starting RCS group-chat.
                StringBuilder sb = new StringBuilder();
                mGroupMembersPhonesList.clear();
                while (data.moveToNext()) {
                    Long id = data.getLong(0);
                String phoneNumber = RCSUtil.getPhoneforContactId(mContext, id);
                    String phoneNumber = RCSUtil.getPhoneforContactId(mContext,
                            id);
                    sb.append(phoneNumber).append(";");
                String[] groupMemberPhones = RCSUtil.getAllPhoneNumberFromContactId(mContext, id)
                    String[] groupMemberPhones = RCSUtil
                            .getAllPhoneNumberFromContactId(mContext, id)
                            .split(";");
                    for (int i = 0; i < groupMemberPhones.length; i++) {
                    mGroupMembersPhonesList.add(RCSUtil.getFormatNumber(groupMemberPhones[i]));
                        mGroupMembersPhonesList.add(RCSUtil
                                .getFormatNumber(groupMemberPhones[i]));
                    }
                }
            Log.d(TAG,"mGroupMembersPhonesList:"+mGroupMembersPhonesList.toString());
                Log.d(TAG,"mGroupMembersPhonesList:"
                        + mGroupMembersPhonesList.toString());
                mGroupMembersPhones = sb.toString();
            }

        @Override
        public void onLoaderReset(Loader<Cursor> loader) {}
    };
        }.start();
    }

    private void bindGroupMetaData(Cursor cursor) {
        cursor.moveToPosition(-1);
+57 −48
Original line number Diff line number Diff line
@@ -2585,15 +2585,17 @@ public class RCSUtil {

    public static String getPhoneforContactId(Context context, long contactId) {

        String phone = null;
        String phone = "";
        Cursor phonesCursor = null;
        phonesCursor = RCSUtil.queryPhoneNumbers(context, contactId);
        if (phonesCursor == null) {
            return "";
        }
        try {
            if(null != phonesCursor) {
                if (phonesCursor.getCount() == 0) {
                    // No valid number
                    // signalError();
                    if (!phonesCursor.isClosed()) {
                        phonesCursor.close();
                    }
                    return phone;
                } else if (phonesCursor.getCount() == 1) {
                    // only one number, call it.
@@ -2619,38 +2621,45 @@ public class RCSUtil {
                        }
                    }
                }
            }
        } finally {
            if (null != phonesCursor) {
                phonesCursor.close();
            }
        }
        return phone;
    }

    public static String getAllPhoneNumberFromContactId(Context context, long contactId) {

        String phone = null;
        String phone = "";
        Cursor phonesCursor = null;
        StringBuilder sb = new StringBuilder();
        phonesCursor = RCSUtil.queryPhoneNumbers(context, contactId);
        if (phonesCursor == null) {
            return "";
        }

        try {
            if (phonesCursor != null) {
                if (phonesCursor.getCount() == 0) {
            // No valid number
            // signalError();
            phonesCursor.close();
            return phone;
                    phone = "";
                } else if (phonesCursor.getCount() == 1) {
                    // only one number, call it.
                    phone = phonesCursor.getString(phonesCursor
                            .getColumnIndex(Phone.NUMBER));
                } else {
                    while (phonesCursor.moveToNext()) {
                //
                        phone = phonesCursor.getString(phonesCursor
                                .getColumnIndex(Phone.NUMBER));
                        sb.append(phone).append(";");
                    }
                    phone = sb.toString();
                }
            }
        } finally {
            if (null != phonesCursor) {
                phonesCursor.close();
            }

        }
        return phone;
    }