Projects >> open-keychain >>34fca975d764cfdda61ae30c31fbb0ce81807df6

Chunk
Conflicting content
        /**
         * Use if multiple items get returned
         */
<<<<<<< HEAD
        public static final String CONTENT_TYPE = "vnd.android.cursor.dir/vnd.sufficientlysecure.openkeychain.api_app.accounts";
=======
        public static final String CONTENT_TYPE =
            "vnd.android.cursor.dir/vnd.thialfihar.apg.api_app.accounts";
>>>>>>> 11b08c4d985854ded125d5a43e8a13207dee393d

        /**
         * Use if a single item is returned
Solution content
        /**
         * Use if multiple items get returned
         */
        public static final String CONTENT_TYPE = "vnd.android.cursor.dir/vnd.sufficientlysecure.openkeychain.api_app.accounts";

        /**
         * Use if a single item is returned
File
KeychainContract.java
Developer's decision
Version 1
Kind of conflict
Attribute
Chunk
Conflicting content
        /**
         * Use if a single item is returned
         */
<<<<<<< HEAD
        public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/vnd.sufficientlysecure.openkeychain.api_app.account";
=======
        public static final String CONTENT_ITEM_TYPE =
            "vnd.android.cursor.item/vnd.thialfihar.apg.api_app.account";
>>>>>>> 11b08c4d985854ded125d5a43e8a13207dee393d

        public static Uri buildBaseUri(String packageName) {
            return CONTENT_URI.buildUpon().appendEncodedPath(packageName).appendPath(PATH_ACCOUNTS)
Solution content
        /**
         * Use if a single item is returned
         */
        public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/vnd.sufficientlysecure.openkeychain.api_app.account";

        public static Uri buildBaseUri(String packageName) {
            return CONTENT_URI.buildUpon().appendEncodedPath(packageName).appendPath(PATH_ACCOUNTS)
File
KeychainContract.java
Developer's decision
Version 1
Kind of conflict
Attribute
Chunk
Conflicting content
import org.spongycastle.openpgp.PGPPublicKeyRing;
import org.spongycastle.openpgp.PGPSecretKeyRing;
import org.sufficientlysecure.keychain.Constants;
<<<<<<< HEAD
import org.sufficientlysecure.keychain.pgp.PgpConversionHelper;
import org.sufficientlysecure.keychain.provider.KeychainContract.ApiAppsColumns;
=======
>>>>>>> 11b08c4d985854ded125d5a43e8a13207dee393d
import org.sufficientlysecure.keychain.provider.KeychainContract.ApiAppsAccountsColumns;
import org.sufficientlysecure.keychain.provider.KeychainContract.ApiAppsColumns;
import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRingsColumns;
Solution content
import org.spongycastle.openpgp.PGPPublicKeyRing;
import org.spongycastle.openpgp.PGPSecretKeyRing;
import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.pgp.PgpConversionHelper;
import org.sufficientlysecure.keychain.provider.KeychainContract.ApiAppsColumns;
import org.sufficientlysecure.keychain.provider.KeychainContract.ApiAppsAccountsColumns;
import org.sufficientlysecure.keychain.provider.KeychainContract.ApiAppsColumns;
import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRingsColumns;
File
KeychainDatabase.java
Developer's decision
Version 1
Kind of conflict
Import
Chunk
Conflicting content
    /**
     * Build ContentProviderOperation to add PGPPublicKey to database corresponding to a keyRing
     */
<<<<<<< HEAD
    private static ContentProviderOperation buildPublicKeyOperations(Context context,
                                                                     long masterKeyId, PGPPublicKey key, int rank) throws IOException {

=======
    private static ContentProviderOperation buildPublicKeyOperations(
        Context context, long keyRingRowId, PGPPublicKey key, int rank) throws IOException {
>>>>>>> 11b08c4d985854ded125d5a43e8a13207dee393d
        ContentValues values = new ContentValues();
        values.put(Keys.MASTER_KEY_ID, masterKeyId);
        values.put(Keys.RANK, rank);
Solution content
    /**
     * Build ContentProviderOperation to add PGPPublicKey to database corresponding to a keyRing
     */
    private static ContentProviderOperation buildPublicKeyOperations(Context context,
                                                                     long masterKeyId, PGPPublicKey key, int rank) throws IOException {

        ContentValues values = new ContentValues();
        values.put(Keys.MASTER_KEY_ID, masterKeyId);
        values.put(Keys.RANK, rank);
File
ProviderHelper.java
Developer's decision
Version 1
Kind of conflict
Method signature
Chunk
Conflicting content
        if (expiryDate != null) {
            values.put(Keys.EXPIRY, expiryDate.getTime() / 1000);
        }
<<<<<<< HEAD
=======
        values.put(Keys.KEY_RING_ROW_ID, keyRingRowId);
        values.put(Keys.KEY_DATA, key.getEncoded());
        values.put(Keys.RANK, rank);
        values.put(Keys.FINGERPRINT, key.getFingerprint());

        Uri uri = Keys.buildPublicKeysUri(Long.toString(keyRingRowId));

        return ContentProviderOperation.newInsert(uri).withValues(values).build();
    }

    /**
     * Build ContentProviderOperation to add PublicUserIds to database corresponding to a keyRing
     */
    private static ContentProviderOperation buildPublicUserIdOperations(
        Context context, long keyRingRowId, String userId, int rank) {
        ContentValues values = new ContentValues();
        values.put(UserIds.KEY_RING_ROW_ID, keyRingRowId);
        values.put(UserIds.USER_ID, userId);
        values.put(UserIds.RANK, rank);
>>>>>>> 11b08c4d985854ded125d5a43e8a13207dee393d

        Uri uri = Keys.buildKeysUri(Long.toString(masterKeyId));
Solution content
        if (expiryDate != null) {
            values.put(Keys.EXPIRY, expiryDate.getTime() / 1000);
        }

        Uri uri = Keys.buildKeysUri(Long.toString(masterKeyId));
File
ProviderHelper.java
Developer's decision
Version 1
Kind of conflict
Comment
Method invocation
Method signature
Return statement
Variable
Chunk
Conflicting content
    /**
     * Build ContentProviderOperation to add PGPSecretKey to database corresponding to a keyRing
     */
<<<<<<< HEAD
    private static ContentProviderOperation buildSecretKeyOperations(Context context,
                                                                     long masterKeyId, PGPSecretKey key, int rank) throws IOException {
        return buildPublicKeyOperations(context, masterKeyId, key.getPublicKey(), rank);
=======
    private static ContentProviderOperation buildSecretKeyOperations(
        Context context, long keyRingRowId, PGPSecretKey key, int rank) throws IOException {
        ContentValues values = new ContentValues();

        boolean hasPrivate = true;
        if (key.isMasterKey()) {
            if (key.isPrivateKeyEmpty()) {
                hasPrivate = false;
            }
        }

        values.put(Keys.KEY_ID, key.getKeyID());
        values.put(Keys.IS_MASTER_KEY, key.isMasterKey());
        values.put(Keys.ALGORITHM, key.getPublicKey().getAlgorithm());
        values.put(Keys.KEY_SIZE, key.getPublicKey().getBitStrength());
        values.put(Keys.CAN_CERTIFY, (PgpKeyHelper.isCertificationKey(key) && hasPrivate));
        values.put(Keys.CAN_SIGN, (PgpKeyHelper.isSigningKey(key) && hasPrivate));
        values.put(Keys.CAN_ENCRYPT, PgpKeyHelper.isEncryptionKey(key));
        values.put(Keys.IS_REVOKED, key.getPublicKey().isRevoked());
        values.put(Keys.CREATION, PgpKeyHelper.getCreationDate(key).getTime() / 1000);
        Date expiryDate = PgpKeyHelper.getExpiryDate(key);
        if (expiryDate != null) {
            values.put(Keys.EXPIRY, expiryDate.getTime() / 1000);
        }
        values.put(Keys.KEY_RING_ROW_ID, keyRingRowId);
        values.put(Keys.KEY_DATA, key.getEncoded());
        values.put(Keys.RANK, rank);
        values.put(Keys.FINGERPRINT, key.getPublicKey().getFingerprint());

        Uri uri = Keys.buildSecretKeysUri(Long.toString(keyRingRowId));

        return ContentProviderOperation.newInsert(uri).withValues(values).build();
>>>>>>> 11b08c4d985854ded125d5a43e8a13207dee393d
    }

    /**
Solution content
    /**
     * Build ContentProviderOperation to add PGPSecretKey to database corresponding to a keyRing
     */
    private static ContentProviderOperation buildSecretKeyOperations(Context context,
                                                                     long masterKeyId, PGPSecretKey key, int rank) throws IOException {
        return buildPublicKeyOperations(context, masterKeyId, key.getPublicKey(), rank);
    }

    /**
File
ProviderHelper.java
Developer's decision
Version 1
Kind of conflict
If statement
Method invocation
Method signature
Return statement
Variable
Chunk
Conflicting content
    /**
     * Build ContentProviderOperation to add PublicUserIds to database corresponding to a keyRing
     */
<<<<<<< HEAD
    private static ContentProviderOperation buildUserIdOperations(Context context,
                                                                  long masterKeyId, String userId, int rank) {
=======
    private static ContentProviderOperation buildSecretUserIdOperations(
        Context context, long keyRingRowId, String userId, int rank) {
>>>>>>> 11b08c4d985854ded125d5a43e8a13207dee393d
        ContentValues values = new ContentValues();
        values.put(UserIds.MASTER_KEY_ID, masterKeyId);
        values.put(UserIds.USER_ID, userId);
Solution content
    /**
     * Build ContentProviderOperation to add PublicUserIds to database corresponding to a keyRing
     */
    private static ContentProviderOperation buildUserIdOperations(Context context,
                                                                  long masterKeyId, String userId, int rank) {
        ContentValues values = new ContentValues();
        values.put(UserIds.MASTER_KEY_ID, masterKeyId);
        values.put(UserIds.USER_ID, userId);
File
ProviderHelper.java
Developer's decision
Version 1
Kind of conflict
Method signature
Chunk
Conflicting content
        return false;

<<<<<<< HEAD
        /*
            String[] projection = new String[]{
                    KeyRings.MASTER_KEY_ID,
                    "(SELECT COUNT(sign_keys." + Keys._ID + ") FROM " + Tables.KEYS
                            + " AS sign_keys WHERE sign_keys." + Keys.KEY_RING_ROW_ID + " = "
                            + KeychainDatabase.Tables.KEY_RINGS + "." + KeyRings._ID
                            + " AND sign_keys." + Keys.CAN_CERTIFY + " = '1' AND " + Keys.IS_MASTER_KEY
                            + " = 1) AS sign",};
=======
    public static boolean getMasterKeyCanCertify(Context context, Uri queryUri) {
        String[] projection = new String[] {
                KeyRings.MASTER_KEY_ID,
                "(SELECT COUNT(sign_keys." + Keys._ID + ") FROM " + Tables.KEYS
                        + " AS sign_keys WHERE sign_keys." + Keys.KEY_RING_ROW_ID + " = "
                        + KeychainDatabase.Tables.KEY_RINGS + "." + KeyRings._ID
                        + " AND sign_keys." + Keys.CAN_CERTIFY + " = '1' AND " + Keys.IS_MASTER_KEY
                        + " = 1) AS sign",
        };
>>>>>>> 11b08c4d985854ded125d5a43e8a13207dee393d

            ContentResolver cr = context.getContentResolver();
            Cursor cursor = cr.query(queryUri, projection, null, null, null);
Solution content
        return false;

        /*
            String[] projection = new String[]{
                    KeyRings.MASTER_KEY_ID,
                    "(SELECT COUNT(sign_keys." + Keys._ID + ") FROM " + Tables.KEYS
                            + " AS sign_keys WHERE sign_keys." + Keys.KEY_RING_ROW_ID + " = "
                            + KeychainDatabase.Tables.KEY_RINGS + "." + KeyRings._ID
                            + " AND sign_keys." + Keys.CAN_CERTIFY + " = '1' AND " + Keys.IS_MASTER_KEY
                            + " = 1) AS sign",};

            ContentResolver cr = context.getContentResolver();
            Cursor cursor = cr.query(queryUri, projection, null, null, null);
File
ProviderHelper.java
Developer's decision
Version 1
Kind of conflict
Comment
Method invocation
Method signature
Variable
Chunk
Conflicting content
                    ProviderHelper.saveKeyRing(this, keyRing);
                    setProgress(R.string.progress_done, 100, 100);
                } else {
<<<<<<< HEAD
                    PgpKeyOperation keyOperations = new PgpKeyOperation(new ProgressScaler(this, 0, 90, 100));
                    PGPSecretKeyRing privkey = ProviderHelper.getPGPSecretKeyRing(this, masterKeyId);
                    PGPPublicKeyRing pubkey = ProviderHelper.getPGPPublicKeyRing(this, masterKeyId);
                    PgpKeyOperation.Pair pair =
=======
                    PgpKeyOperation keyOperations =
                        new PgpKeyOperation(new ProgressScaler(this, 0, 90, 100));
                    PGPSecretKeyRing privkey =
                        ProviderHelper.getPGPSecretKeyRingByMasterKeyId(this, masterKeyId);
                    PGPPublicKeyRing pubkey =
                        ProviderHelper.getPGPPublicKeyRingByMasterKeyId(this, masterKeyId);
                    PgpKeyOperation.Pair pair =
>>>>>>> 11b08c4d985854ded125d5a43e8a13207dee393d
                        keyOperations.buildSecretKey(privkey, pubkey, saveParams);
                    setProgress(R.string.progress_saving_key_ring, 90, 100);
                    ProviderHelper.saveKeyRing(this, pair.first);
Solution content
                    ProviderHelper.saveKeyRing(this, keyRing);
                    setProgress(R.string.progress_done, 100, 100);
                } else {
                    PgpKeyOperation keyOperations = new PgpKeyOperation(new ProgressScaler(this, 0, 90, 100));
                    PGPSecretKeyRing privkey = ProviderHelper.getPGPSecretKeyRing(this, masterKeyId);
                    PGPPublicKeyRing pubkey = ProviderHelper.getPGPPublicKeyRing(this, masterKeyId);
                    PgpKeyOperation.Pair pair =
                        keyOperations.buildSecretKey(privkey, pubkey, saveParams);
                    setProgress(R.string.progress_saving_key_ring, 90, 100);
                    ProviderHelper.saveKeyRing(this, pair.first);
File
KeychainIntentService.java
Developer's decision
Version 1
Kind of conflict
Method invocation
Variable
Chunk
Conflicting content
                // TODO: why isn't this triggered on my tablet - one of many ui problems
                // I've had with this device. A code compatibility issue or a Samsung fail?
                return true;
<<<<<<< HEAD
            }
            return true;
        case R.id.menu_key_edit_delete:
            long rowId= ProviderHelper.getRowId(this,mDataUri);
            Uri convertUri = KeychainContract.KeyRings.buildSecretKeyRingUri(Long.toString(rowId));
            // Message is received after key is deleted
            Handler returnHandler = new Handler() {
                @Override
                public void handleMessage(Message message) {
                    if (message.what == DeleteKeyDialogFragment.MESSAGE_OKAY) {
                        setResult(RESULT_CANCELED);
                        finish();
=======
            case R.id.menu_key_edit_cancel:
                cancelClicked();
                return true;
            case R.id.menu_key_edit_export_file:
                if (needsSaving()) {
                    Toast.makeText(this, R.string.error_save_first, Toast.LENGTH_LONG).show();
                } else {
                    long masterKeyId = ProviderHelper.getMasterKeyId(this, mDataUri);
                    long[] ids = new long[] {masterKeyId};
                    mExportHelper.showExportKeysDialog(
                        ids, Id.type.secret_key, Constants.Path.APP_DIR_FILE_SEC, null);
                    return true;
                }
                return true;
            case R.id.menu_key_edit_delete:
                long rowId = ProviderHelper.getRowId(this, mDataUri);
                Uri convertUri = KeychainContract.KeyRings.buildSecretKeyRingsUri(Long.toString(rowId));
                // Message is received after key is deleted
                Handler returnHandler = new Handler() {
                    @Override
                    public void handleMessage(Message message) {
                        if (message.what == DeleteKeyDialogFragment.MESSAGE_OKAY) {
                            setResult(RESULT_CANCELED);
                            finish();
                        }
>>>>>>> 11b08c4d985854ded125d5a43e8a13207dee393d
                    }
                };
                mExportHelper.deleteKey(convertUri, returnHandler);
Solution content
                // TODO: why isn't this triggered on my tablet - one of many ui problems
                // I've had with this device. A code compatibility issue or a Samsung fail?
                return true;
            case R.id.menu_key_edit_cancel:
                cancelClicked();
                return true;
            case R.id.menu_key_edit_export_file:
                if (needsSaving()) {
                    Toast.makeText(this, R.string.error_save_first, Toast.LENGTH_LONG).show();
                } else {
                    long masterKeyId = ProviderHelper.getMasterKeyId(this, mDataUri);
                long[] ids = new long[]{masterKeyId};
                mExportHelper.showExportKeysDialog(ids, Id.type.secret_key, Constants.Path.APP_DIR_FILE_SEC,
                        null);
                    return true;
                }
                return true;
            case R.id.menu_key_edit_delete:
                long rowId= ProviderHelper.getRowId(this,mDataUri);
                Uri convertUri = KeychainContract.KeyRings.buildSecretKeyRingUri(Long.toString(rowId));
                    // Message is received after key is deleted
                    Handler returnHandler = new Handler() {
                        @Override
                        public void handleMessage(Message message) {
                            if (message.what == DeleteKeyDialogFragment.MESSAGE_OKAY) {
                                setResult(RESULT_CANCELED);
                                finish();
                            }
                    }};
                mExportHelper.deleteKey(convertUri, returnHandler);
File
EditKeyActivity.java
Developer's decision
Manual
Kind of conflict
Case statement
Comment
If statement
Method invocation
Return statement
Variable
Chunk
Conflicting content
                        }
                        case R.id.menu_key_list_multi_export: {
                            ids = mStickyList.getWrappedList().getCheckedItemIds();
<<<<<<< HEAD
                            long[] masterKeyIds = new long[2*ids.length];
                            /* TODO! redo
=======
                            long[] masterKeyIds = new long[2 * ids.length];
>>>>>>> 11b08c4d985854ded125d5a43e8a13207dee393d
                            ArrayList allPubRowIds =
                                    ProviderHelper.getPublicKeyRingsRowIds(getActivity());
                            for (int i = 0; i < ids.length; i++) {
Solution content
                        }
                        case R.id.menu_key_list_multi_export: {
                            ids = mStickyList.getWrappedList().getCheckedItemIds();
                            long[] masterKeyIds = new long[2*ids.length];
                            /* TODO! redo
                            ArrayList allPubRowIds =
                                    ProviderHelper.getPublicKeyRingsRowIds(getActivity());
                            for (int i = 0; i < ids.length; i++) {
File
KeyListFragment.java
Developer's decision
Version 1
Kind of conflict
Comment
Method invocation
Variable
Chunk
Conflicting content
                                    masterKeyIds[i] =
                                        ProviderHelper.getSecretMasterKeyId(getActivity(), ids[i]);
                                }
<<<<<<< HEAD
                            }*/
                            ExportHelper mExportHelper = new ExportHelper((ActionBarActivity) getActivity());
=======
                            }
                            ExportHelper mExportHelper =
                                new ExportHelper((ActionBarActivity) getActivity());
>>>>>>> 11b08c4d985854ded125d5a43e8a13207dee393d
                            mExportHelper
                                    .showExportKeysDialog(masterKeyIds, Id.type.public_key,
                                            Constants.Path.APP_DIR_FILE_PUB,
Solution content
                                    masterKeyIds[i] =
                                        ProviderHelper.getSecretMasterKeyId(getActivity(), ids[i]);
                                }
                            }*/
                            ExportHelper mExportHelper = new ExportHelper((ActionBarActivity) getActivity());
                            mExportHelper
                                    .showExportKeysDialog(masterKeyIds, Id.type.public_key,
                                            Constants.Path.APP_DIR_FILE_PUB,
File
KeyListFragment.java
Developer's decision
Version 1
Kind of conflict
Method invocation
Variable
Chunk
Conflicting content
                KeyRings._ID,
                KeyRings.MASTER_KEY_ID,
                UserIds.USER_ID,
<<<<<<< HEAD
                "(SELECT COUNT(*) FROM " + Tables.KEYS + " AS k"
                    + " WHERE k." + Keys.MASTER_KEY_ID + " = "
                        + KeychainDatabase.Tables.KEYS + "." + KeyRings.MASTER_KEY_ID
                            + " AND k." + Keys.CAN_CERTIFY + " = '1'"
                    + ") AS cert",
                "(SELECT COUNT(*) FROM " + Tables.KEYS + " AS k"
                    +" WHERE k." + Keys.MASTER_KEY_ID + " = "
                        + KeychainDatabase.Tables.KEYS + "." + Keys.MASTER_KEY_ID
                            + " AND k." + Keys.IS_REVOKED + " = '0'"
                            + " AND k." + Keys.CAN_SIGN + " = '1'"
                    + ") AS " + SelectKeyCursorAdapter.PROJECTION_ROW_AVAILABLE,
                "(SELECT COUNT(*) FROM " + Tables.KEYS + " AS k"
                    + " WHERE k." + Keys.MASTER_KEY_ID + " = "
                        + KeychainDatabase.Tables.KEYS + "." + Keys.MASTER_KEY_ID
                            + " AND k." + Keys.IS_REVOKED + " = '0'"
                            + " AND k." + Keys.CAN_SIGN + " = '1'"
                            + " AND k." + Keys.CREATION + " <= '" + now + "'"
                            + " AND ( k." + Keys.EXPIRY + " IS NULL OR k." + Keys.EXPIRY + " >= '" + now + "' )"
                    + ") AS " + SelectKeyCursorAdapter.PROJECTION_ROW_VALID, };
=======
                "(SELECT COUNT(cert_keys." + Keys._ID + ") FROM " + Tables.KEYS
                        + " AS cert_keys WHERE cert_keys." + Keys.KEY_RING_ROW_ID + " = "
                        + KeychainDatabase.Tables.KEY_RINGS + "." + KeyRings._ID + " AND cert_keys."
                        + Keys.CAN_CERTIFY + " = '1') AS cert",
                "(SELECT COUNT(available_keys." + Keys._ID + ") FROM " + Tables.KEYS
                        + " AS available_keys WHERE available_keys." + Keys.KEY_RING_ROW_ID + " = "
                        + KeychainDatabase.Tables.KEY_RINGS + "." + KeyRings._ID
                        + " AND available_keys." + Keys.IS_REVOKED + " = '0' AND  available_keys."
                        + Keys.CAN_SIGN + " = '1') AS "
                        + SelectKeyCursorAdapter.PROJECTION_ROW_AVAILABLE,
                "(SELECT COUNT(valid_keys." + Keys._ID + ") FROM " + Tables.KEYS
                        + " AS valid_keys WHERE valid_keys." + Keys.KEY_RING_ROW_ID + " = "
                        + KeychainDatabase.Tables.KEY_RINGS + "." + KeyRings._ID + " AND valid_keys."
                        + Keys.IS_REVOKED + " = '0' AND valid_keys." + Keys.CAN_SIGN
                        + " = '1' AND valid_keys." + Keys.CREATION + " <= '" + now + "' AND "
                        + "(valid_keys." + Keys.EXPIRY + " IS NULL OR valid_keys." + Keys.EXPIRY
                        + " >= '" + now + "')) AS " + SelectKeyCursorAdapter.PROJECTION_ROW_VALID,
        };
>>>>>>> 11b08c4d985854ded125d5a43e8a13207dee393d

        String orderBy = UserIds.USER_ID + " ASC";
Solution content
                KeyRings._ID,
                KeyRings.MASTER_KEY_ID,
                UserIds.USER_ID,
                "(SELECT COUNT(*) FROM " + Tables.KEYS + " AS k"
                    + " WHERE k." + Keys.MASTER_KEY_ID + " = "
                        + KeychainDatabase.Tables.KEYS + "." + KeyRings.MASTER_KEY_ID
                            + " AND k." + Keys.CAN_CERTIFY + " = '1'"
                    + ") AS cert",
                "(SELECT COUNT(*) FROM " + Tables.KEYS + " AS k"
                    +" WHERE k." + Keys.MASTER_KEY_ID + " = "
                        + KeychainDatabase.Tables.KEYS + "." + Keys.MASTER_KEY_ID
                            + " AND k." + Keys.IS_REVOKED + " = '0'"
                            + " AND k." + Keys.CAN_SIGN + " = '1'"
                    + ") AS " + SelectKeyCursorAdapter.PROJECTION_ROW_AVAILABLE,
                "(SELECT COUNT(*) FROM " + Tables.KEYS + " AS k"
                    + " WHERE k." + Keys.MASTER_KEY_ID + " = "
                        + KeychainDatabase.Tables.KEYS + "." + Keys.MASTER_KEY_ID
                            + " AND k." + Keys.IS_REVOKED + " = '0'"
                            + " AND k." + Keys.CAN_SIGN + " = '1'"
                            + " AND k." + Keys.CREATION + " <= '" + now + "'"
                            + " AND ( k." + Keys.EXPIRY + " IS NULL OR k." + Keys.EXPIRY + " >= '" + now + "' )"
                    + ") AS " + SelectKeyCursorAdapter.PROJECTION_ROW_VALID, };

        String orderBy = UserIds.USER_ID + " ASC";
File
SelectSecretKeyFragment.java
Developer's decision
Version 1
Kind of conflict
Variable
Chunk
Conflicting content
    private SelectSecretKeyCallback mCallback;

<<<<<<< HEAD
    private static final int REQUEST_CODE_SELECT_KEY = 8882;

    private static final int LOADER_ID = 0;

    //The Projection we will retrieve, Master Key ID is for convenience sake,
    //to avoid having to pass the Key Around
    final String[] PROJECTION = new String[] {
            KeychainContract.Keys.MASTER_KEY_ID,
            KeychainContract.UserIds.USER_ID
    };
    final int INDEX_MASTER_KEY_ID = 0;
    final int INDEX_USER_ID = 1;
=======
    private static final String[] PROJECTION = new String[] {
        KeychainContract.UserIds.USER_ID,
        KeychainContract.KeyRings.MASTER_KEY_ID,
    };
    private static final int INDEX_USER_ID = 0;
    private static final int INDEX_MASTER_KEY_ID = 1;
>>>>>>> 11b08c4d985854ded125d5a43e8a13207dee393d

    public interface SelectSecretKeyCallback {
        void onKeySelected(long secretKeyId);
Solution content

    private SelectSecretKeyCallback mCallback;

    private static final int REQUEST_CODE_SELECT_KEY = 8882;
    private static final int LOADER_ID = 0;

    //The Projection we will retrieve, Master Key ID is for convenience sake,
    //to avoid having to pass the Key Around
    final String[] PROJECTION = new String[] {
            KeychainContract.Keys.MASTER_KEY_ID,
            KeychainContract.UserIds.USER_ID
    };
    final int INDEX_MASTER_KEY_ID = 0;
    final int INDEX_USER_ID = 1;

    public interface SelectSecretKeyCallback {
        void onKeySelected(long secretKeyId);
File
SelectSecretKeyLayoutFragment.java
Developer's decision
Version 1
Kind of conflict
Attribute
Comment
Method invocation
Chunk
Conflicting content
        return view;
    }

<<<<<<< HEAD
    //For AppSettingsFragment
    public void selectKey(long masterKeyId) {
        Uri buildUri = KeychainContract.KeyRings.buildGenericKeyRingUri(String.valueOf(masterKeyId));
        mReceivedUri = buildUri;
        getActivity().getSupportLoaderManager().restartLoader(LOADER_ID, null, this);
=======
    public void selectKey(Uri keyUri) {
        mReceivedUri = keyUri;
        getActivity().getSupportLoaderManager().restartLoader(0, null, this);
>>>>>>> 11b08c4d985854ded125d5a43e8a13207dee393d
    }

    private void startSelectKeyActivity() {
Solution content
        return view;
    }

    //For AppSettingsFragment
    public void selectKey(long masterKeyId) {
        Uri buildUri = KeychainContract.KeyRings.buildGenericKeyRingUri(String.valueOf(masterKeyId));
        mReceivedUri = buildUri;
        getActivity().getSupportLoaderManager().restartLoader(LOADER_ID, null, this);
    }

    private void startSelectKeyActivity() {
File
SelectSecretKeyLayoutFragment.java
Developer's decision
Version 1
Kind of conflict
Attribute
Comment
Method invocation
Method signature
Variable
Chunk
Conflicting content
    @Override
    public Loader onCreateLoader(int id, Bundle args) {
<<<<<<< HEAD
        Uri uri = KeychainContract.KeyRings.buildUnifiedKeyRingUri(mReceivedUri);
        //We don't care about the Loader id
        return new CursorLoader(getActivity(), uri, PROJECTION, null, null, null);
=======
        return new CursorLoader(getActivity(), mReceivedUri, PROJECTION, null, null, null);
>>>>>>> 11b08c4d985854ded125d5a43e8a13207dee393d
    }

    @Override
Solution content
    @Override
    public Loader onCreateLoader(int id, Bundle args) {
        Uri uri = KeychainContract.KeyRings.buildUnifiedKeyRingUri(mReceivedUri);
        //We don't care about the Loader id
        return new CursorLoader(getActivity(), uri, PROJECTION, null, null, null);
    }

    @Override
File
SelectSecretKeyLayoutFragment.java
Developer's decision
Version 1
Kind of conflict
Comment
Method invocation
Return statement
Variable
Chunk
Conflicting content
                uploadToKeyserver(mDataUri);
                return true;
            case R.id.menu_key_view_export_file:
<<<<<<< HEAD
                long masterKeyId = Long.valueOf(mDataUri.getLastPathSegment());
                long[] ids = new long[]{masterKeyId};
=======
                long masterKeyId =
                        ProviderHelper.getPublicMasterKeyId(this,
                            Long.valueOf(mDataUri.getLastPathSegment()));
                long[] ids = new long[] {masterKeyId};
>>>>>>> 11b08c4d985854ded125d5a43e8a13207dee393d
                mExportHelper.showExportKeysDialog(ids, Id.type.public_key,
                        Constants.Path.APP_DIR_FILE_PUB, null);
                return true;
Solution content
                uploadToKeyserver(mDataUri);
                return true;
            case R.id.menu_key_view_export_file:
                long masterKeyId = Long.valueOf(mDataUri.getLastPathSegment());
                long[] ids = new long[]{masterKeyId};
                mExportHelper.showExportKeysDialog(ids, Id.type.public_key,
                        Constants.Path.APP_DIR_FILE_PUB, null);
                return true;
File
ViewKeyActivity.java
Developer's decision
Version 1
Kind of conflict
Method invocation
Variable