/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.content; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import android.content.Context; import android.text.TextUtils; import com.galaxy.meetup.client.android.R; import com.galaxy.meetup.server.client.domain.DeepLinkData; import com.galaxy.meetup.server.client.domain.PackagingServiceClient; /** * * @author sihai * */ public class DbEmbedDeepLink extends DbSerializer { protected List mClientPackageNames; protected String mDeepLinkId; protected String mLabel; protected String mUrl; protected DbEmbedDeepLink() { } public DbEmbedDeepLink(DeepLinkData deeplinkdata, String s) { mClientPackageNames = new ArrayList(); if(deeplinkdata.client != null) { Iterator iterator = deeplinkdata.client.iterator(); do { if(!iterator.hasNext()) break; PackagingServiceClient packagingserviceclient = (PackagingServiceClient)iterator.next(); if(!TextUtils.isEmpty(packagingserviceclient.androidPackageName) && TextUtils.equals("ANDROID", packagingserviceclient.type)) mClientPackageNames.add(packagingserviceclient.androidPackageName); } while(true); } mDeepLinkId = deeplinkdata.deepLinkId; mUrl = deeplinkdata.url; mLabel = s; } public static DbEmbedDeepLink deserialize(byte abyte0[]) { DbEmbedDeepLink dbembeddeeplink; if(abyte0 == null) { dbembeddeeplink = null; } else { ByteBuffer bytebuffer = ByteBuffer.wrap(abyte0); dbembeddeeplink = new DbEmbedDeepLink(); dbembeddeeplink.mClientPackageNames = (ArrayList)getShortStringList(bytebuffer); dbembeddeeplink.mDeepLinkId = getShortString(bytebuffer); dbembeddeeplink.mLabel = getShortString(bytebuffer); dbembeddeeplink.mUrl = getShortString(bytebuffer); } return dbembeddeeplink; } public static byte[] serialize(DeepLinkData deeplinkdata, String s) throws IOException { DbEmbedDeepLink dbembeddeeplink = new DbEmbedDeepLink(deeplinkdata, s); ByteArrayOutputStream bytearrayoutputstream = new ByteArrayOutputStream(128); DataOutputStream dataoutputstream = new DataOutputStream(bytearrayoutputstream); putShortStringList(dataoutputstream, dbembeddeeplink.mClientPackageNames); putShortString(dataoutputstream, dbembeddeeplink.mDeepLinkId); putShortString(dataoutputstream, dbembeddeeplink.mLabel); putShortString(dataoutputstream, dbembeddeeplink.mUrl); byte abyte0[] = bytearrayoutputstream.toByteArray(); dataoutputstream.close(); return abyte0; } public final List getClientPackageNames() { return mClientPackageNames; } public final String getDeepLinkId() { return mDeepLinkId; } public final String getLabelOrDefault(Context context) { String s; if(TextUtils.isEmpty(mLabel)) s = context.getString(R.string.app_invite_default_action); else s = mLabel; return s; } public final String getUrl() { return mUrl; } }