Projects >> open-keychain >>b4aec3114d9911cf9aef0d14ee697e5131b2853f

Chunk
Conflicting content
        CertifyActionsParcel actions = new CertifyActionsParcel(mStaticRing1.getMasterKeyId());
        actions.add(new CertifyAction(mStaticRing2.getMasterKeyId(),
<<<<<<< HEAD
                mStaticRing2.getPublicKey().getUnorderedUserIds(), null));
        CertifyResult result = op.certify(actions, null);
=======
                mStaticRing2.getPublicKey().getUnorderedUserIds()));
        CertifyResult result = op.certify(actions, new CryptoInputParcel(mKeyPhrase1), null);
>>>>>>> baac30508d24dcda6135bf8ae338c99d8c3b8ad8

        Assert.assertTrue("certification must succeed", result.success());
Solution content
        CertifyActionsParcel actions = new CertifyActionsParcel(mStaticRing1.getMasterKeyId());
        actions.add(new CertifyAction(mStaticRing2.getMasterKeyId(),
                mStaticRing2.getPublicKey().getUnorderedUserIds()));
        CertifyResult result = op.certify(actions, new CryptoInputParcel(mKeyPhrase1), null);

        Assert.assertTrue("certification must succeed", result.success());
File
CertifyOperationTest.java
Developer's decision
Version 2
Kind of conflict
Method invocation
Variable
Chunk
Conflicting content
import java.io.Serializable;
import java.nio.ByteBuffer;
import java.util.ArrayList;
<<<<<<< HEAD
import java.util.List;
=======
import java.util.Date;
import java.util.Map;
>>>>>>> baac30508d24dcda6135bf8ae338c99d8c3b8ad8

import org.sufficientlysecure.keychain.pgp.WrappedUserAttribute;
import org.sufficientlysecure.keychain.service.input.CryptoInputParcel;
Solution content
import java.io.Serializable;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.List;
import java.util.Date;
import java.util.Map;

import org.sufficientlysecure.keychain.pgp.WrappedUserAttribute;
import org.sufficientlysecure.keychain.service.input.CryptoInputParcel;
File
CertifyActionsParcel.java
Developer's decision
Concatenation
Kind of conflict
Import
Chunk
Conflicting content
 * This activity encapsulates a DialogFragment to emulate a dialog.
 */
public class PassphraseDialogActivity extends FragmentActivity {
<<<<<<< HEAD
    public static final String MESSAGE_DATA_PASSPHRASE = "passphrase";
    public static final String EXTRA_KEY_ID = "key_id";
=======
    public static final String RESULT_CRYPTO_INPUT = "result_data";
>>>>>>> baac30508d24dcda6135bf8ae338c99d8c3b8ad8

    public static final String EXTRA_REQUIRED_INPUT = "required_input";
    public static final String EXTRA_SUBKEY_ID = "secret_key_id";
Solution content
 * This activity encapsulates a DialogFragment to emulate a dialog.
 */
public class PassphraseDialogActivity extends FragmentActivity {

    public static final String RESULT_CRYPTO_INPUT = "result_data";

    public static final String EXTRA_REQUIRED_INPUT = "required_input";
    public static final String EXTRA_SUBKEY_ID = "secret_key_id";
File
PassphraseDialogActivity.java
Developer's decision
Version 2
Kind of conflict
Attribute
Chunk
Conflicting content
            } else {
                // also return passphrase back to activity
                Intent returnIntent = new Intent();
<<<<<<< HEAD
                returnIntent.putExtra(MESSAGE_DATA_PASSPHRASE, passphrase);
                returnIntent.putExtra(EXTRA_KEY_ID, mSecretRing.getMasterKeyId());
                returnIntent.putExtra(EXTRA_SUBKEY_ID, mSubKeyId);
=======
                returnIntent.putExtra(RESULT_CRYPTO_INPUT, inputParcel);
>>>>>>> baac30508d24dcda6135bf8ae338c99d8c3b8ad8
                getActivity().setResult(RESULT_OK, returnIntent);
            }
Solution content
            } else {
                // also return passphrase back to activity
                Intent returnIntent = new Intent();
                returnIntent.putExtra(RESULT_CRYPTO_INPUT, inputParcel);
                getActivity().setResult(RESULT_OK, returnIntent);
            }
File
PassphraseDialogActivity.java
Developer's decision
Version 2
Kind of conflict
Method invocation
Chunk
Conflicting content
        mNfcHelper = new NfcHelper(this, mProviderHelper);
        mNfcHelper.initNfc(mDataUri);

<<<<<<< HEAD
=======
        if (savedInstanceState == null && getIntent().hasExtra(EXTRA_DISPLAY_RESULT)) {
            OperationResult result = getIntent().getParcelableExtra(EXTRA_DISPLAY_RESULT);
            result.createNotify(this).show();
        }

        startFragment(savedInstanceState, mDataUri);

        if (savedInstanceState == null && getIntent().hasExtra(EXTRA_NFC_AID)) {
            Intent intent = getIntent();
            byte[] nfcFingerprints = intent.getByteArrayExtra(EXTRA_NFC_FINGERPRINTS);
            String nfcUserId = intent.getStringExtra(EXTRA_NFC_USER_ID);
            byte[] nfcAid = intent.getByteArrayExtra(EXTRA_NFC_AID);
            showYubiKeyFragment(nfcFingerprints, nfcUserId, nfcAid);
        }

>>>>>>> baac30508d24dcda6135bf8ae338c99d8c3b8ad8
    }

    @Override
Solution content
        mNfcHelper = new NfcHelper(this, mProviderHelper);
        mNfcHelper.initNfc(mDataUri);

        if (savedInstanceState == null && getIntent().hasExtra(EXTRA_DISPLAY_RESULT)) {
            OperationResult result = getIntent().getParcelableExtra(EXTRA_DISPLAY_RESULT);
            result.createNotify(this).show();
        }

        startFragment(savedInstanceState, mDataUri);

        if (savedInstanceState == null && getIntent().hasExtra(EXTRA_NFC_AID)) {
            Intent intent = getIntent();
            byte[] nfcFingerprints = intent.getByteArrayExtra(EXTRA_NFC_FINGERPRINTS);
            String nfcUserId = intent.getStringExtra(EXTRA_NFC_USER_ID);
            byte[] nfcAid = intent.getByteArrayExtra(EXTRA_NFC_AID);
            showYubiKeyFragment(nfcFingerprints, nfcUserId, nfcAid);
        }

    }

    @Override
File
ViewKeyActivity.java
Developer's decision
Version 2
Kind of conflict
If statement
Method invocation
Chunk
Conflicting content
                    mActionEncryptFile.setVisibility(View.VISIBLE);
                    mActionEncryptText.setVisibility(View.VISIBLE);

<<<<<<< HEAD
                    // invokeBeam is available from API 21
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                        mActionNfc.setVisibility(View.VISIBLE);
                    } else {
                        mActionNfc.setVisibility(View.GONE);
=======
                    mMasterKeyId = data.getLong(INDEX_MASTER_KEY_ID);
                    mFingerprint = KeyFormattingUtils.convertFingerprintToHex(data.getBlob(INDEX_FINGERPRINT));

                    mIsSecret = data.getInt(INDEX_HAS_ANY_SECRET) != 0;
                    mHasEncrypt = data.getInt(INDEX_HAS_ENCRYPT) != 0;
                    mIsRevoked = data.getInt(INDEX_IS_REVOKED) > 0;
                    mIsExpired = data.getInt(INDEX_IS_EXPIRED) != 0;
                    mIsVerified = data.getInt(INDEX_VERIFIED) > 0;

                    // if the refresh animation isn't playing
                    if (!mRotate.hasStarted() && !mRotateSpin.hasStarted()) {
                        // re-create options menu based on mIsSecret, mIsVerified
                        supportInvalidateOptionsMenu();
                        // this is done at the end of the animation otherwise
>>>>>>> baac30508d24dcda6135bf8ae338c99d8c3b8ad8
                    }
                    mFab.setVisibility(View.VISIBLE);
                    mFab.setIconDrawable(getResources().getDrawable(R.drawable.ic_repeat_white_24dp));
Solution content
                    mActionEncryptFile.setVisibility(View.VISIBLE);
                    mActionEncryptText.setVisibility(View.VISIBLE);

                    // invokeBeam is available from API 21
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                        mActionNfc.setVisibility(View.VISIBLE);
                    } else {
                        mActionNfc.setVisibility(View.GONE);
                    }
                    mFab.setVisibility(View.VISIBLE);
                    mFab.setIconDrawable(getResources().getDrawable(R.drawable.ic_repeat_white_24dp));
File
ViewKeyActivity.java
Developer's decision
Version 1
Kind of conflict
Attribute
Comment
If statement
Method invocation
Chunk
Conflicting content
                                State.UNVERIFIED, R.color.icons, true);
                        color = getResources().getColor(R.color.android_orange_light);

<<<<<<< HEAD
=======
                        mActionEncryptFile.setVisibility(View.GONE);
                        mActionEncryptText.setVisibility(View.GONE);
                        mActionNfc.setVisibility(View.GONE);
                        mFab.setVisibility(View.GONE);
                        mQrCodeLayout.setVisibility(View.GONE);
                    } else if (mIsSecret) {
                        mStatusText.setText(R.string.view_key_my_key);
                        mStatusImage.setVisibility(View.GONE);
                        color = getResources().getColor(R.color.primary);
                        // reload qr code only if the fingerprint changed
                        if (!mFingerprint.equals(mQrCodeLoaded)) {
                            loadQrCode(mFingerprint);
                        }
                        photoTask.execute(mMasterKeyId);
                        mQrCodeLayout.setVisibility(View.VISIBLE);

                        // and place leftOf qr code
                        RelativeLayout.LayoutParams nameParams = (RelativeLayout.LayoutParams)
                                mName.getLayoutParams();
                        // remove right margin
                        nameParams.setMargins(FormattingUtils.dpToPx(this, 48), 0, 0, 0);
                        if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
                            nameParams.setMarginEnd(0);
                        }
                        nameParams.addRule(RelativeLayout.LEFT_OF, R.id.view_key_qr_code_layout);
                        mName.setLayoutParams(nameParams);

                        RelativeLayout.LayoutParams statusParams = (RelativeLayout.LayoutParams)
                                mStatusText.getLayoutParams();
                        statusParams.setMargins(FormattingUtils.dpToPx(this, 48), 0, 0, 0);
                        if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
                            statusParams.setMarginEnd(0);
                        }
                        statusParams.addRule(RelativeLayout.LEFT_OF, R.id.view_key_qr_code_layout);
                        mStatusText.setLayoutParams(statusParams);

                        mActionEncryptFile.setVisibility(View.VISIBLE);
                        mActionEncryptText.setVisibility(View.VISIBLE);

                        // invokeBeam is available from API 21
                        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                            mActionNfc.setVisibility(View.VISIBLE);
                        } else {
                            mActionNfc.setVisibility(View.GONE);
                        }
>>>>>>> baac30508d24dcda6135bf8ae338c99d8c3b8ad8
                        mFab.setVisibility(View.VISIBLE);
                    }
                }
Solution content
                                State.UNVERIFIED, R.color.icons, true);
                        color = getResources().getColor(R.color.android_orange_light);

                        mFab.setVisibility(View.VISIBLE);
                    }
                }
File
ViewKeyActivity.java
Developer's decision
Version 1
Kind of conflict
Cast expression
Comment
If statement
Method invocation
Variable
Chunk
Conflicting content
import android.support.v4.app.LoaderManager;
import android.support.v4.content.Loader;
import android.support.v7.widget.CardView;
<<<<<<< HEAD
import android.transition.Fade;
import android.transition.Transition;
import android.transition.TransitionInflater;
=======
>>>>>>> baac30508d24dcda6135bf8ae338c99d8c3b8ad8
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
Solution content
import android.support.v4.app.LoaderManager;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
import android.support.v7.widget.CardView;
import android.transition.Fade;
import android.transition.Transition;
import android.transition.TransitionInflater;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
File
ViewKeyFragment.java
Developer's decision
Concatenation
Kind of conflict
Import
Chunk
Conflicting content
import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.compatibility.DialogFragmentWorkaround;
<<<<<<< HEAD
import org.sufficientlysecure.keychain.ui.adapter.LinkedIdsAdapter;
=======
import org.sufficientlysecure.keychain.provider.KeychainContract;
>>>>>>> baac30508d24dcda6135bf8ae338c99d8c3b8ad8
import org.sufficientlysecure.keychain.ui.adapter.UserIdsAdapter;
import org.sufficientlysecure.keychain.ui.dialog.UserIdInfoDialogFragment;
import org.sufficientlysecure.keychain.ui.linked.LinkedIdViewFragment;
Solution content
import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.compatibility.DialogFragmentWorkaround;
import org.sufficientlysecure.keychain.ui.adapter.LinkedIdsAdapter;
import org.sufficientlysecure.keychain.provider.KeychainContract;
import org.sufficientlysecure.keychain.ui.adapter.UserIdsAdapter;
import org.sufficientlysecure.keychain.ui.dialog.UserIdInfoDialogFragment;
import org.sufficientlysecure.keychain.ui.linked.LinkedIdViewFragment;
File
ViewKeyFragment.java
Developer's decision
Concatenation
Kind of conflict
Import
Chunk
Conflicting content
    ImageView mSystemContactPicture;
    TextView mSystemContactName;

<<<<<<< HEAD
    private static final int LOADER_ID_USER_IDS = 0;
    private static final int LOADER_ID_LINKED_IDS = 1;
=======
    private static final int LOADER_ID_UNIFIED = 0;
    private static final int LOADER_ID_USER_IDS = 1;
    private static final int LOADER_ID_LINKED_CONTACT = 2;

    private static final String LOADER_EXTRA_LINKED_CONTACT_MASTER_KEY_ID
            = "loader_linked_contact_master_key_id";
    private static final String LOADER_EXTRA_LINKED_CONTACT_IS_SECRET
            = "loader_linked_contact_is_secret";
>>>>>>> baac30508d24dcda6135bf8ae338c99d8c3b8ad8

    private UserIdsAdapter mUserIdsAdapter;
    private LinkedIdsAdapter mLinkedIdsAdapter;
Solution content
    ImageView mSystemContactPicture;
    TextView mSystemContactName;

    private static final int LOADER_ID_UNIFIED = 0;
    private static final int LOADER_ID_USER_IDS = 1;
    private static final int LOADER_ID_LINKED_CONTACT = 2;
    private static final int LOADER_ID_LINKED_IDS = 3;

    private static final String LOADER_EXTRA_LINKED_CONTACT_MASTER_KEY_ID
            = "loader_linked_contact_master_key_id";
    private static final String LOADER_EXTRA_LINKED_CONTACT_IS_SECRET
            = "loader_linked_contact_is_secret";

    private UserIdsAdapter mUserIdsAdapter;
    private LinkedIdsAdapter mLinkedIdsAdapter;
File
ViewKeyFragment.java
Developer's decision
Manual
Kind of conflict
Attribute
Chunk
Conflicting content
        context.startActivity(intent);
    }

<<<<<<< HEAD
    private void loadData(Uri dataUri, boolean isSecret, byte[] fingerprint) {
=======
    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        Uri dataUri = getArguments().getParcelable(ARG_DATA_URI);
        if (dataUri == null) {
            Log.e(Constants.TAG, "Data missing. Should be Uri of key!");
            getActivity().finish();
            return;
        }

        loadData(dataUri);
    }

    // These are the rows that we will retrieve.
    static final String[] UNIFIED_PROJECTION = new String[]{
            KeychainContract.KeyRings._ID,
            KeychainContract.KeyRings.MASTER_KEY_ID,
            KeychainContract.KeyRings.USER_ID,
            KeychainContract.KeyRings.IS_REVOKED,
            KeychainContract.KeyRings.IS_EXPIRED,
            KeychainContract.KeyRings.VERIFIED,
            KeychainContract.KeyRings.HAS_ANY_SECRET,
            KeychainContract.KeyRings.FINGERPRINT,
            KeychainContract.KeyRings.HAS_ENCRYPT
    };

    static final int INDEX_MASTER_KEY_ID = 1;
    static final int INDEX_USER_ID = 2;
    static final int INDEX_IS_REVOKED = 3;
    static final int INDEX_IS_EXPIRED = 4;
    static final int INDEX_VERIFIED = 5;
    static final int INDEX_HAS_ANY_SECRET = 6;
    static final int INDEX_FINGERPRINT = 7;
    static final int INDEX_HAS_ENCRYPT = 8;

    private static final String[] RAWCONTACT_PROJECTION = {
            ContactsContract.RawContacts.CONTACT_ID
    };

    private static final int INDEX_CONTACT_ID = 0;

    private void loadData(Uri dataUri) {
>>>>>>> baac30508d24dcda6135bf8ae338c99d8c3b8ad8
        mDataUri = dataUri;
        mIsSecret = isSecret;
        mFingerprint = fingerprint;
Solution content
        context.startActivity(intent);
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        Uri dataUri = getArguments().getParcelable(ARG_DATA_URI);
        if (dataUri == null) {
            Log.e(Constants.TAG, "Data missing. Should be Uri of key!");
            getActivity().finish();
            return;
        }

        loadData(dataUri);
    }

    // These are the rows that we will retrieve.
    static final String[] UNIFIED_PROJECTION = new String[]{
            KeychainContract.KeyRings._ID,
            KeychainContract.KeyRings.MASTER_KEY_ID,
            KeychainContract.KeyRings.USER_ID,
            KeychainContract.KeyRings.IS_REVOKED,
            KeychainContract.KeyRings.IS_EXPIRED,
            KeychainContract.KeyRings.VERIFIED,
            KeychainContract.KeyRings.HAS_ANY_SECRET,
            KeychainContract.KeyRings.FINGERPRINT,
            KeychainContract.KeyRings.HAS_ENCRYPT
    };

    static final int INDEX_MASTER_KEY_ID = 1;
    @SuppressWarnings("unused")
    static final int INDEX_USER_ID = 2;
    @SuppressWarnings("unused")
    static final int INDEX_IS_REVOKED = 3;
    @SuppressWarnings("unused")
    static final int INDEX_IS_EXPIRED = 4;
    @SuppressWarnings("unused")
    static final int INDEX_VERIFIED = 5;
    static final int INDEX_HAS_ANY_SECRET = 6;
    static final int INDEX_FINGERPRINT = 7;
    @SuppressWarnings("unused")
    static final int INDEX_HAS_ENCRYPT = 8;

    private static final String[] RAWCONTACT_PROJECTION = {
            ContactsContract.RawContacts.CONTACT_ID
    };

    private static final int INDEX_CONTACT_ID = 0;

    private void loadData(Uri dataUri) {
        mDataUri = dataUri;
File
ViewKeyFragment.java
Developer's decision
Manual
Kind of conflict
Annotation
Array initializer
Attribute
Comment
Method declaration
Method invocation
Method signature
Chunk
Conflicting content
            case LOADER_ID_USER_IDS:
                return UserIdsAdapter.createLoader(getActivity(), mDataUri);

<<<<<<< HEAD
            case LOADER_ID_LINKED_IDS:
                return LinkedIdsAdapter.createLoader(getActivity(), mDataUri);
=======
            //we need a separate loader for linked contact to ensure refreshing on verification
            case LOADER_ID_LINKED_CONTACT: {
                //passed in args to explicitly specify their need
                long masterKeyId = args.getLong(LOADER_EXTRA_LINKED_CONTACT_MASTER_KEY_ID);
                boolean isSecret = args.getBoolean(LOADER_EXTRA_LINKED_CONTACT_IS_SECRET);

                Uri baseUri;
                if (isSecret)
                    baseUri = ContactsContract.Profile.CONTENT_RAW_CONTACTS_URI;
                else
                    baseUri = ContactsContract.RawContacts.CONTENT_URI;

                return new CursorLoader(
                        getActivity(),
                        baseUri,
                        RAWCONTACT_PROJECTION,
                        ContactsContract.RawContacts.ACCOUNT_TYPE + "=? AND " +
                                ContactsContract.RawContacts.SOURCE_ID + "=? AND " +
                                ContactsContract.RawContacts.DELETED + "=?",
                        new String[]{//"0" for "not deleted"
                                Constants.ACCOUNT_TYPE,
                                Long.toString(masterKeyId),
                                "0"
                        },
                        null);
            }
>>>>>>> baac30508d24dcda6135bf8ae338c99d8c3b8ad8

            default:
                return null;
Solution content
                return UserIdsAdapter.createLoader(getActivity(), mDataUri);
            }

            case LOADER_ID_LINKED_IDS: {
                return LinkedIdsAdapter.createLoader(getActivity(), mDataUri);
            }

            //we need a separate loader for linked contact to ensure refreshing on verification
            case LOADER_ID_LINKED_CONTACT: {
                //passed in args to explicitly specify their need
                long masterKeyId = args.getLong(LOADER_EXTRA_LINKED_CONTACT_MASTER_KEY_ID);
                boolean isSecret = args.getBoolean(LOADER_EXTRA_LINKED_CONTACT_IS_SECRET);

                Uri baseUri;
                if (isSecret)
                    baseUri = ContactsContract.Profile.CONTENT_RAW_CONTACTS_URI;
                else
                    baseUri = ContactsContract.RawContacts.CONTENT_URI;

                return new CursorLoader(
                        getActivity(),
                        baseUri,
                        RAWCONTACT_PROJECTION,
                        ContactsContract.RawContacts.ACCOUNT_TYPE + "=? AND " +
                                ContactsContract.RawContacts.SOURCE_ID + "=? AND " +
                                ContactsContract.RawContacts.DELETED + "=?",
                        new String[]{//"0" for "not deleted"
                                Constants.ACCOUNT_TYPE,
                                Long.toString(masterKeyId),
                                "0"
                        },
                        null);
            }

            default:
                return null;
File
ViewKeyFragment.java
Developer's decision
Manual
Kind of conflict
Case statement
Comment
If statement
Method invocation
Return statement
Variable
Chunk
Conflicting content
            }
        // Swap the new cursor in. (The framework will take care of closing the
        // old cursor once we return.)
        switch (loader.getId()) {
<<<<<<< HEAD
=======
            case LOADER_ID_UNIFIED: {
                if (data.moveToFirst()) {

                    mIsSecret = data.getInt(INDEX_HAS_ANY_SECRET) != 0;

                    // load user ids after we know if it's a secret key
                    mUserIdsAdapter = new UserIdsAdapter(getActivity(), null, 0, !mIsSecret, null);
                    mUserIds.setAdapter(mUserIdsAdapter);
                    getLoaderManager().initLoader(LOADER_ID_USER_IDS, null, this);

                    long masterKeyId = data.getLong(INDEX_MASTER_KEY_ID);
                    // we need to load linked contact here to prevent lag introduced by loader
                    // for the linked contact
                    long contactId = ContactHelper.findContactId(
                            getActivity().getContentResolver(),
                            masterKeyId);
                    loadLinkedSystemContact(contactId);

                    Bundle linkedContactData = new Bundle();
                    linkedContactData.putLong(LOADER_EXTRA_LINKED_CONTACT_MASTER_KEY_ID, masterKeyId);
                    linkedContactData.putBoolean(LOADER_EXTRA_LINKED_CONTACT_IS_SECRET, mIsSecret);

                    // initialises loader for contact query so we can listen to any updates
                    getLoaderManager().initLoader(LOADER_ID_LINKED_CONTACT, linkedContactData, this);

                    break;
                }
>>>>>>> baac30508d24dcda6135bf8ae338c99d8c3b8ad8
            case LOADER_ID_USER_IDS: {
                mUserIdsAdapter.swapCursor(cursor);
                loadLinkedSystemContact(KeyFormattingUtils.convertFingerprintToKeyId(mFingerprint));
Solution content
        // Swap the new cursor in. (The framework will take care of closing the
        // old cursor once we return.)
        switch (loader.getId()) {
            case LOADER_ID_UNIFIED: {
                if (data.moveToFirst()) {

                    mIsSecret = data.getInt(INDEX_HAS_ANY_SECRET) != 0;
                    mFingerprint = data.getBlob(INDEX_FINGERPRINT);

                    // load user ids after we know if it's a secret key
                    mUserIdsAdapter = new UserIdsAdapter(getActivity(), null, 0, !mIsSecret, null);
                    mUserIds.setAdapter(mUserIdsAdapter);
                    getLoaderManager().initLoader(LOADER_ID_USER_IDS, null, this);

                    mLinkedIdsAdapter =
                            new LinkedIdsAdapter(getActivity(), null, 0, mIsSecret, mLinkedIdsExpander);
                    mLinkedIds.setAdapter(mLinkedIdsAdapter);
                    getLoaderManager().initLoader(LOADER_ID_LINKED_IDS, null, this);

                    long masterKeyId = data.getLong(INDEX_MASTER_KEY_ID);
                    // we need to load linked contact here to prevent lag introduced by loader
                    // for the linked contact
                    long contactId = ContactHelper.findContactId(
                            getActivity().getContentResolver(),
                            masterKeyId);
                    loadLinkedSystemContact(contactId);

                    Bundle linkedContactData = new Bundle();
                    linkedContactData.putLong(LOADER_EXTRA_LINKED_CONTACT_MASTER_KEY_ID, masterKeyId);
                    linkedContactData.putBoolean(LOADER_EXTRA_LINKED_CONTACT_IS_SECRET, mIsSecret);

                    // initialises loader for contact query so we can listen to any updates
                    getLoaderManager().initLoader(LOADER_ID_LINKED_CONTACT, linkedContactData, this);

                    break;
                }
            }

            case LOADER_ID_USER_IDS: {
File
ViewKeyFragment.java
Developer's decision
Manual
Kind of conflict
Case statement
If statement
Chunk
Conflicting content
                break;
            }

<<<<<<< HEAD
            case LOADER_ID_LINKED_IDS: {
                mLinkedIdsCard.setVisibility(cursor.getCount() > 0 ? View.VISIBLE : View.GONE);
                mLinkedIdsAdapter.swapCursor(cursor);
                break;
            }
=======
            case LOADER_ID_LINKED_CONTACT: {
                if (data.moveToFirst()) {// if we have a linked contact
                    long contactId = data.getLong(INDEX_CONTACT_ID);
                    loadLinkedSystemContact(contactId);
                }
                break;
            }

>>>>>>> baac30508d24dcda6135bf8ae338c99d8c3b8ad8
        }
        setContentShown(true);
    }
Solution content
                break;
            }

            case LOADER_ID_LINKED_IDS: {
                mLinkedIdsCard.setVisibility(data.getCount() > 0 ? View.VISIBLE : View.GONE);
                mLinkedIdsAdapter.swapCursor(data);
                break;
            }

            case LOADER_ID_LINKED_CONTACT: {
                if (data.moveToFirst()) {// if we have a linked contact
                    long contactId = data.getLong(INDEX_CONTACT_ID);
                    loadLinkedSystemContact(contactId);
                }
                break;
            }

        }
        setContentShown(true);
    }
File
ViewKeyFragment.java
Developer's decision
Manual
Kind of conflict
Break statement
Case statement
If statement
Method invocation