/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.network; import java.io.IOException; import android.os.Bundle; import android.util.Log; import com.galaxy.meetup.client.android.api.CallToActionData; import com.galaxy.meetup.client.util.EsLog; import com.galaxy.meetup.server.client.domain.MediaLayout; import com.galaxy.meetup.server.client.domain.response.LinkPreviewResponse; import com.galaxy.meetup.server.client.util.JsonUtil; /** * * @author sihai * */ public class ApiaryActivityFactory { public static ApiaryActivity getApiaryActivity(Bundle bundle, CallToActionData calltoactiondata) { ApiaryActivity apiaryactivity; if(bundle == null) throw new NullPointerException("Content deep-link metadata must not be null."); try { if(EsLog.isLoggable("ApiaryActivityFactory", 3)) Log.d("ApiaryActivityFactory", bundle.toString()); apiaryactivity = new ApiaryActivity(); apiaryactivity.setContentDeepLinkMetadata(bundle); if(calltoactiondata != null) apiaryactivity.setCallToActionMetadata(calltoactiondata); } catch (IOException e) { Log.e("Create ApiaryActivity failed", e.getMessage()); apiaryactivity = null; } return apiaryactivity; } public static ApiaryActivity getApiaryActivity(LinkPreviewResponse linkpreviewresponse) { if(linkpreviewresponse == null) throw new NullPointerException(""); if(EsLog.isLoggable("ApiaryActivityFactory", 3)) Log.d("ApiaryActivityFactory", JsonUtil.toJsonString(linkpreviewresponse)); if(linkpreviewresponse.mediaLayout == null || linkpreviewresponse.mediaLayout.isEmpty()) throw new IllegalArgumentException("Media layout must be specified"); MediaLayout medialayout = (MediaLayout)linkpreviewresponse.mediaLayout.get(0); Object obj; if("WEBPAGE".equals(medialayout.layoutType)) obj = new ApiaryArticleActivity(); else if("VIDEO".equals(medialayout.layoutType)) obj = new ApiaryVideoActivity(); else if("SKYJAM_PREVIEW".equals(medialayout.layoutType)) obj = new ApiarySkyjamActivity(); else if("SKYJAM_PREVIEW_ALBUM".equals(medialayout.layoutType)) { obj = new ApiarySkyjamActivity(); } else if("IMAGE".equals(medialayout.layoutType)) { obj = new ApiaryPhotoAlbumActivity(); } else { throw new RuntimeException(String.format("Unknown type:%s", medialayout.layoutType)); } try { ((ApiaryActivity) (obj)).setLinkPreview(linkpreviewresponse); } catch(IOException ioexception) { obj = null; } return ((ApiaryActivity) (obj)); } }