⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vcardmerge.java

📁 goolge phone 目前没有开放的android 平台的源码
💻 JAVA
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) 
// Source File Name:   VCardMerge.java

package android.syncml.pim.vcreator;

import android.content.*;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.net.ContentURI;
import android.provider.MediaStore;
import android.provider.SyncMLTestContacts;
import android.util.Log;
import java.io.ByteArrayOutputStream;
import java.util.ArrayList;

// Referenced classes of package android.syncml.pim.vcreator:
//            ContactStruct, VCardCreator

public class VCardMerge
{
    public static class MergeResult
    {

        public static final int ACTION_INSERT = 1;
        public static final int ACTION_UPDATE = 2;
        public static final int ACTION_DELETE = 3;
        public int action;
        public String uri;
        public String vCard;

        public MergeResult()
        {
        }
    }


    public VCardMerge()
    {
        resultList = new ArrayList();
    }

    public void setParameter(ContentProvider provider, Context context, int vcardversion)
    {
        this.provider = provider;
        this.context = context;
        vcardVersion = vcardversion;
    }

    public ArrayList getMergeResult()
        throws Exception
    {
        Log.d("VCardMerge", "start getMergeResult...");
        if(provider == null)
        {
            Log.d("VCardMerge", "----------------------");
            Log.d("VCardMerge", "clientDiff is null!\n");
            Log.d("VCardMerge", "----------------------");
            return null;
        }
        Cursor delcur = provider.query(android.provider.SyncMLTestContacts.People.DELETED_CONTENT_URI, null, null, null, null, null, null);
        do
        {
            if(!delcur.next())
                break;
            String localid = delcur.getString(delcur.getColumnIndex("_sync_id"));
            if(!isNull(localid))
            {
                MergeResult res = new MergeResult();
                res.action = 3;
                res.uri = localid;
                res.vCard = null;
                resultList.add(res);
            }
        } while(true);
        delcur.close();
        Cursor cur = provider.query(android.provider.SyncMLTestContacts.People.CONTENT_URI, null, null, null, null, null, null);
        Log.d("VCardMerge", "load local changes");
        while(cur.next()) 
        {
            String name = cur.getString(cur.getColumnIndex("name"));
            if("syncmlfakeabcdefg".equals(name))
            {
                Log.d("VCardMerge", (new StringBuilder()).append(name).append("ingored. ").toString());
            } else
            {
                String vcard = createVCard(cur, false);
                String localid = cur.getString(cur.getColumnIndex("_sync_local_id"));
                String syncid = cur.getString(cur.getColumnIndex("_sync_id"));
                MergeResult res = new MergeResult();
                if(syncid == null)
                {
                    res.action = 1;
                    Log.d("VCardMerge", "add local changes");
                } else
                {
                    res.action = 2;
                    Log.d("VCardMerge", "update local changes");
                }
                res.uri = (new StringBuilder()).append("content://syncmltestcontacts/people/").append(localid).toString();
                res.vCard = vcard;
                resultList.add(res);
            }
        }
        cur.close();
        return resultList;
    }

    public ArrayList getMergeResultForSlowSync(IContentProvider provider)
        throws Exception
    {
        if(provider == null)
        {
            Log.d("VCardMerge", "----------------------");
            Log.d("VCardMerge", "clientDiff is null!\n");
            Log.d("VCardMerge", "----------------------");
            return null;
        }
        Log.d("VCardMerge", "getMergeResultForSlowSync");
        for(Cursor cur = provider.query(android.provider.SyncMLTestContacts.People.CONTENT_URI, null, null, null, null, null, null); cur.next();)
        {
            String name = cur.getString(cur.getColumnIndex("name"));
            if("syncmlfakeabcdefg".equals(name))
            {
                Log.d("VCardMerge", (new StringBuilder()).append(name).append("ingored. ").toString());
            } else
            {
                String vcard = createVCard(cur, true);
                String localid = cur.getString(cur.getColumnIndex("_id"));
                MergeResult res = new MergeResult();
                res.action = 1;
                res.uri = (new StringBuilder()).append("content://syncmltestcontacts/people/").append(localid).toString();
                res.vCard = vcard;
                resultList.add(res);
                Log.d("VCardMerge", (new StringBuilder()).append("insert ").append(res.uri).toString());
            }
        }

        return resultList;
    }

    public String createVCard(Cursor c, boolean isSlow)
    {
        ContactStruct stru;
        Exception e;
        stru = new ContactStruct();
        stru.company = c.getString(c.getColumnIndex("company"));
        Log.d("VCardMerge", (new StringBuilder()).append("Load company ").append(stru.company).toString());
        stru.name = c.getString(c.getColumnIndex("name"));
        stru.notes = c.getString(c.getColumnIndex("notes"));
        stru.title = c.getString(c.getColumnIndex("title"));
        String photo = c.getString(c.getColumnIndex("photo"));
        if(!isNull(photo))
        {
            Bitmap bmp = null;
            try
            {
                bmp = android.provider.MediaStore.Images.Media.getBitmap(context.createPackageContext("com.google.android.camera", 1).getContentResolver(), new ContentURI(photo));
                ByteArrayOutputStream out = new ByteArrayOutputStream();
                bmp.compress(android.graphics.Bitmap.CompressFormat.JPEG, 100, out);
                stru.photoBytes = out.toByteArray();
                stru.photoType = "image/jpeg";
            }
            // Misplaced declaration of an exception variable
            catch(Exception e)
            {
                e.printStackTrace();
                Log.d("VCardMerge", (new StringBuilder()).append("Failed to get image ").append(e.toString()).toString());
                Object obj = null;
            }
        }
        String personid = "";
        if(isSlow)
            personid = c.getString(c.getColumnIndex("_id"));
        else
            personid = c.getString(c.getColumnIndex("_sync_local_id"));
        try
        {
            Cursor phoneC;
            String data;
            String type;
            for(phoneC = context.getContentResolver().query(new ContentURI((new StringBuilder()).append("content://syncmltestcontacts/people/").append(personid).append("/phones").toString()), null, null, null, null); phoneC != null && phoneC.next(); stru.addPhoneList(data, type))
            {
                data = phoneC.getString(phoneC.getColumnIndex("number"));
                type = phoneC.getString(phoneC.getColumnIndex("type"));
            }

            if(phoneC != null)
                phoneC.close();
        }
        // Misplaced declaration of an exception variable
        catch(Cursor phoneC)
        {
            phoneC.printStackTrace();
            Log.d("VCardMerge", (new StringBuilder()).append("Failed to get image ").append(phoneC.toString()).toString());
        }
        try
        {
            Cursor contactMC;
            String data;
            String type;
            for(contactMC = context.getContentResolver().query(new ContentURI((new StringBuilder()).append("content://syncmltestcontacts/people/").append(personid).append("/contact_methods").toString()), null, null, null, null); contactMC != null && contactMC.next(); stru.addContactmethodList(data, type))
            {
                data = contactMC.getString(contactMC.getColumnIndex("data"));
                type = contactMC.getString(contactMC.getColumnIndex("kind"));
            }

            if(contactMC != null)
                contactMC.close();
        }
        // Misplaced declaration of an exception variable
        catch(Cursor contactMC)
        {
            contactMC.printStackTrace();
            Log.d("VCardMerge", (new StringBuilder()).append("Failed to get image ").append(contactMC.toString()).toString());
        }
        return VCardCreator.createVCard(stru, vcardVersion);
        contactMC;
        Log.d("VCardMerge", (new StringBuilder()).append("Failed to get image ").append(contactMC.toString()).toString());
        return null;
    }

    private static boolean isNull(String str)
    {
        return str == null || str.trim().equals("");
    }

    public static final int VERSION_VCARD21 = 1;
    public static final int VERSION_VCARD30 = 2;
    private static final String TAG = "VCardMerge";
    ContentProvider provider;
    Context context;
    int vcardVersion;
    ArrayList resultList;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -