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

Commit 8b9aeff2 authored by Arne Coucheron's avatar Arne Coucheron Committed by Bruno Martins
Browse files

Revert "Automatically set SIM number to my profile"

This commit introduces an issue with the SIM number and users handling.

In Settings / System / About / Status / SIM Status, the field
"My phone number" will either be "Unknown" or the real number,
depending on what is stored on the SIM card.

If it is the real number, the "Current user" in Settings dashboard will
be listed as the number "2" instead of "Owner".

If it is "Unknown", the "Current user" is correctly shown as "Owner".
But if you open the AOSP Contacts app, edit your profile and add your
phone number, the current user will be shown as "2".

Correct: http://i65.tinypic.com/33vnofa.jpg
Bug: http://i63.tinypic.com/1zwoh2a.jpg

This reverts commit 7f3c3a32.

Change-Id: Idcab75bc99c5f1d47cd8645417e7d3ba27659a5c
parent d1c544e4
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -31,7 +31,6 @@ import android.util.Log;

import com.android.contacts.testing.InjectedServices;
import com.android.contacts.util.Constants;
import com.android.contacts.util.LocalProfile;
import com.android.contactsbind.analytics.AnalyticsUtil;

import com.google.common.annotations.VisibleForTesting;
@@ -131,7 +130,7 @@ public class ContactsApplication extends Application {
            // (and thus not have the get accounts permission).
            PreferenceManager.getDefaultSharedPreferences(context);
            getContentResolver().getType(ContentUris.withAppendedId(Contacts.CONTENT_URI, 1));
            LocalProfile.updateProfileWithSimNumber(context);

            return null;
        }

+0 −59
Original line number Diff line number Diff line
@@ -54,7 +54,6 @@ import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.ListPopupWindow;
import android.widget.TextView;
import android.widget.Toast;

import com.android.contacts.ContactSaveService;
@@ -88,7 +87,6 @@ import com.android.contacts.util.ContactDisplayUtils;
import com.android.contacts.util.ContactPhotoUtils;
import com.android.contacts.util.ImplicitIntentsUtil;
import com.android.contacts.util.MaterialColorMapUtils;
import com.android.contacts.util.SimUtil;
import com.android.contacts.util.UiClosables;
import com.android.contactsbind.HelpUtils;

@@ -1287,9 +1285,6 @@ public class ContactEditorFragment extends Fragment implements
        editorView.setEnabled(mEnabled);
        editorView.setVisibility(View.VISIBLE);

        if (mIsUserProfile) {
            disableSimNumberEditingIfNeeded(editorView);
        }
        // Refresh the ActionBar as the visibility of the join command
        // Activity can be null if we have been detached from the Activity.
        invalidateOptionsMenu();
@@ -1755,58 +1750,4 @@ public class ContactEditorFragment extends Fragment implements
    private RawContactEditorView getContent() {
        return (RawContactEditorView) mContent;
    }

    public void disableSimNumberEditingIfNeeded(ViewGroup viewGroup) {
        KindSectionView phoneSectionView = getPhoneSectionView(viewGroup);
        disableSimNumberEditingIfNeeded(getContext(), phoneSectionView);
    }

    private KindSectionView getPhoneSectionView(ViewGroup viewGroup) {
        for (int i = 0; i < viewGroup.getChildCount(); i++) {
            View child = viewGroup.getChildAt(i);
            if (child instanceof KindSectionView) {
                KindSectionView section = (KindSectionView)child;
                if (Phone.CONTENT_ITEM_TYPE.equals(section.getKind().mimeType)) {
                    return section;
                }
            } else if (child instanceof ViewGroup) {
                KindSectionView section = getPhoneSectionView((ViewGroup)child);
                if (section != null) {
                    return section;
                }
            }
        }
        return null;
    }

    private static void disableSimNumberEditingIfNeeded(Context context,
            KindSectionView phoneSectionView) {
        if (phoneSectionView == null) {
            return;
        }

        ViewGroup vg = (ViewGroup)phoneSectionView.findViewById(R.id.kind_editors);

        List<String> simNumbers = SimUtil.getLine1Numbers(context);

        for (String simNumber : simNumbers) {
            if (TextUtils.isEmpty(simNumber)) {
                continue;
            }
            TextFieldsEditorView row = null;
            for (int i = 0; i < vg.getChildCount(); i++) {
                row = (TextFieldsEditorView) vg.getChildAt(i);
                View editor = row.findViewById(R.id.editors);
                View editTextView = ((ViewGroup) editor).getChildAt(0);
                TextView editText = (TextView) editTextView;
                String number = editText.getText().toString();
                if (number.equals(simNumber)) {
                    row.setEnabled(false);
                    row.setAlpha(0.3f);
                    row.setDeleteButtonVisible(false);
                    break;
                }
            }
        }
    }
}
+0 −4
Original line number Diff line number Diff line
@@ -580,8 +580,4 @@ public class KindSectionView extends LinearLayout {
        }
        return emptyEditors;
    }

    public DataKind getKind() {
        return mKindSectionData.getDataKind();
    }
}
+0 −5
Original line number Diff line number Diff line
@@ -34,7 +34,6 @@ import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.Data;
import android.provider.ContactsContract.Directory;
import android.provider.ContactsContract.Groups;
import android.provider.ContactsContract.Profile;
import android.provider.ContactsContract.RawContacts;
import android.text.TextUtils;
import android.util.Log;
@@ -51,7 +50,6 @@ import com.android.contacts.model.dataitem.PhotoDataItem;
import com.android.contacts.util.Constants;
import com.android.contacts.util.ContactLoaderUtils;
import com.android.contacts.util.DataStatus;
import com.android.contacts.util.LocalProfile;
import com.android.contacts.util.UriUtils;

import com.google.common.collect.ImmutableList;
@@ -321,9 +319,6 @@ public class ContactLoader extends AsyncTaskLoader<Contact> {
                result = new Contact(mRequestedUri, cachedResult);
                resultIsCached = true;
            } else {
                if (mRequestedUri != null && Profile.CONTENT_URI.equals(mRequestedUri)) {
                    LocalProfile.updateProfileWithSimNumber(getContext());
                }
                if (uriCurrentFormat.getLastPathSegment().equals(Constants.LOOKUP_URI_ENCODED)) {
                    result = loadEncodedContactEntity(uriCurrentFormat, mLookupUri);
                } else {
+0 −3
Original line number Diff line number Diff line
@@ -34,7 +34,6 @@ import android.view.View;
import android.view.ViewGroup;

import com.android.contacts.R;
import com.android.contacts.activities.RequestPermissionsActivity;
import com.android.contacts.editor.SelectAccountDialogFragment;
import com.android.contacts.interactions.ImportDialogFragment;
import com.android.contacts.list.ProviderStatusWatcher;
@@ -68,8 +67,6 @@ public final class ContactsPreferenceActivity extends PreferenceActivity
        super.onCreate(savedInstanceState);
        mCompatDelegate.onCreate(savedInstanceState);

        // Request Requireied permission if needed
        RequestPermissionsActivity.startPermissionActivityIfNeeded(this);

        final ActionBar actionBar = mCompatDelegate.getSupportActionBar();
        if (actionBar != null) {
Loading