📄 vcardmerge.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 + -