package com.fancl.iloyalty.activity.whatshot; import java.util.List; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.ViewGroup.LayoutParams; import android.widget.ExpandableListView; import android.widget.ExpandableListView.OnGroupClickListener; import android.widget.RelativeLayout; import com.fancl.iloyalty.Constants; import com.fancl.iloyalty.R; import com.fancl.iloyalty.activity.MainTabActivity; import com.fancl.iloyalty.activity.magazine.MagazineHomeActivity; import com.fancl.iloyalty.adapter.ViewFlowImageAdapter; import com.fancl.iloyalty.adapter.ViewFlowImageAdapter.ImageItemClickedListener; import com.fancl.iloyalty.adapter.WhatsHotHomeExpandListViewAdapter; import com.fancl.iloyalty.exception.FanclException; import com.fancl.iloyalty.exception.GeneralException; import com.fancl.iloyalty.factory.CustomServiceFactory; import com.fancl.iloyalty.item.CircleFlowIndicator; import com.fancl.iloyalty.item.ViewFlow; import com.fancl.iloyalty.pojo.HotItem; import com.fancl.iloyalty.util.LogController; public class WhatsHotHomeActivity extends MainTabActivity { // WRT <<iloyalty_flow_V1.7_20120713.pdf>> screen 2.1, 2.2, 2.3 private View whatsHotLayout; private ViewFlow viewFlow; private List<HotItem> bannerList; private WhatsHotHomeExpandListViewAdapter exAdapter; private ExpandableListView exList; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); headerTitleTextView.setText(this.getResources().getString(R.string.whats_hot_btn)); this.loadBannerListFromDatabase(); this.setupSpaceLayout(); this.setupMenuButtonListener(0, true); this.setupThumbnail(); } private void setupSpaceLayout() { // Space Layout whatsHotLayout = (RelativeLayout) this.getLayoutInflater().inflate( R.layout.whats_hot_home_page, null); spaceLayout.addView(whatsHotLayout, new LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); // Thumbnail View Flow Loop viewFlow = (ViewFlow) findViewById(R.id.viewflow_loop); // Expandable List exAdapter = new WhatsHotHomeExpandListViewAdapter(this, this, handler); exList = (ExpandableListView)findViewById(R.id.whats_hot_home_page_list_view); exList.setAdapter(exAdapter); exList.setGroupIndicator(null); exList.setDivider(null); exList.setOnGroupClickListener(new OnGroupClickListener() { @Override public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) { if (groupPosition != 4) { String[] titles = new String[] { "campaign,shop", "product", "reading", "promotion" }; Intent intent = new Intent(WhatsHotHomeActivity.this, WhatsHotListActivity.class); intent.putExtra(Constants.WHATS_HOT_HOT_ITEM_TYPE_KEY, titles[groupPosition]); startActivity(intent); try { CustomServiceFactory.getSettingService().addUserLogWithSection("Hot Item", "Hot Item ("+titles[groupPosition]+")", "", "", "", "View", ""); } catch (FanclException e) { // TODO Auto-generated catch block e.printStackTrace(); } } else { Intent intent = new Intent(WhatsHotHomeActivity.this, MagazineHomeActivity.class); startActivity(intent); try { CustomServiceFactory.getSettingService().addUserLogWithSection("Hot Item", "Hot Item (Magazine)", "", "", "", "View", ""); } catch (FanclException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return true; // This way the expander cannot be collapsed } }); } private void setupThumbnail() { if (bannerList == null) { return; } ImageItemClickedListener tmpImageItemClickedListener = new ImageItemClickedListener() { @Override public void onImageItemClicked(int position) { // TODO Auto-generated method stub LogController.log("on item click: " + position); HotItem tmpHotItem = bannerList.get(position); startActivity(CustomServiceFactory.getDetailContentService().getDetailContentActivity(tmpHotItem, WhatsHotHomeActivity.this, true, null, 0)); try { CustomServiceFactory.getSettingService().addUserLogWithSection("Hot Item", "Highlight Item", tmpHotItem.getLinkRecordType(), tmpHotItem.getObjectId(), tmpHotItem.getTitleEn(), "View", ""); } catch (FanclException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }; viewFlow.setAdapter(new ViewFlowImageAdapter(this, tmpImageItemClickedListener, bannerList)); viewFlow.setmSideBuffer(bannerList.size()); CircleFlowIndicator indic = (CircleFlowIndicator) findViewById(R.id.viewflowindic); viewFlow.setFlowIndicator(indic); viewFlow.setTimeSpan(4500); viewFlow.setSelection(bannerList.size() * 1000); } private void loadBannerListFromDatabase() { try { bannerList = CustomServiceFactory.getPromotionService() .getHighlightBannerList(); } catch (GeneralException e) { // TODO: handle exception e.printStackTrace(); } } @Override protected void onResume() { super.onResume(); if (viewFlow != null) { if (bannerList != null) { if (bannerList.size() > 0) { viewFlow.startAutoFlowTimer(); } } } } @Override protected void onPause() { super.onPause(); if (viewFlow != null) { if (bannerList != null) { if (bannerList.size() > 0) { viewFlow.stopAutoFlowTimer(); } } } } public void relaodUnreadContent() { exAdapter.resetListContent(); } }