package edu.mit.mitmobile2.news.view;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import edu.mit.mitmobile2.CommonActions;
import edu.mit.mitmobile2.Global;
import edu.mit.mitmobile2.IdEncoder;
import edu.mit.mitmobile2.MITMenuItem;
import edu.mit.mitmobile2.NewModule;
import edu.mit.mitmobile2.SliderNewModuleActivity;
import edu.mit.mitmobile2.SliderView;
import edu.mit.mitmobile2.news.NewsModule;
import edu.mit.mitmobile2.news.beans.NewsStory;
import edu.mit.mitmobile2.news.net.NewsDownloader;
public class NewsDetailsActivity extends SliderNewModuleActivity implements LoadingScreenListener, StorySliderListener {
static final String TAG = "NewsDetailsActivity";
public static final String STORY_ID_KEY = "story_id";
public static final String CATEGORY_ID_KEY = "category_id";
public static final String SEARCH_TERM_KEY = "search_term";
public static final String SEARCH_LIMIT = "search_limit";
//public static final String BOOKMARKS_KEY = "bookmarks";
//private static final String MENU_BOOKMARKED = "menu_bookmark";
//private static final String MENU_SHARE = "menu_share";
private Handler mHandler = new Handler();
boolean mBookmarks = false;
String mCategoryId = "";
String mSearchTerm = null;
//MITPlainSecondaryTitleBar mSecondaryTitleBar;
Context ctx;
//private int mLastSavedPosition;
public static String KEY_POSITION = "position";
static private NewsSliderAdapter mSliderAdapter;
//NewsModel mNewsModel;
//private MITMenuItem mBookmarkMenuItem;
NewsDownloader np;
/****************************************************/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
np = NewsDownloader.getInstance(this);
if (!mSliderAdapter.isLoading() && mSliderAdapter.getStoriesCount() == 0) {
finish();
return;
}
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
Bundle extras = getIntent().getExtras();
if (extras != null && extras.getString(STORY_ID_KEY)!=null){
mSliderAdapter.seekToNewsItem(extras.getString(STORY_ID_KEY));
refreshScreens();
}
}
@Override
protected List<MITMenuItem> getSecondaryMenuItems(){
ArrayList<MITMenuItem> items = new ArrayList<MITMenuItem>();
items.add(new MITMenuItem("share", "Share"));
return items;
}
@Override
public boolean isModuleHomeActivity() {
return false;
}
@Override
protected NewModule getNewModule() {
// TODO Auto-generated method stub
return new NewsModule();
}
@Override
protected void onOptionSelected(String optionId) {
//Toast.makeText(this,optionId,Toast.LENGTH_LONG).show();
if(optionId.equals("share")){
final NewsStory n = mSliderAdapter.getCurrentNewsItem();
mHandler.post(new Runnable() {
@Override
public void run() {
String url = "http://" + Global.getMobileWebDomain() + "/n/" + IdEncoder.shortenId(Integer.parseInt(n.getId()));
CommonActions.shareCustomContent(NewsDetailsActivity.this, n.getTitle(), n.getDek(), url);
}
});
}
}
@Override
protected SliderView.Adapter getSliderAdapter() {
Bundle extras = getIntent().getExtras();
String story_id = null;
if(extras.containsKey(STORY_ID_KEY)){
story_id = extras.getString(STORY_ID_KEY);
}
if(extras.containsKey(CATEGORY_ID_KEY)) {
mSliderAdapter = new NewsSliderCursorAdapter(this, extras.getString(CATEGORY_ID_KEY),"category",0,20, this, false);
} else if(extras.containsKey(SEARCH_TERM_KEY)) {
int search_limit = 20;
if(extras.containsKey(SEARCH_LIMIT)){
search_limit = extras.getInt(SEARCH_LIMIT);
}
mSliderAdapter = new NewsSliderCursorAdapter(this, extras.getString(SEARCH_TERM_KEY),"search",0,search_limit, this, false);
}
((NewsSliderCursorAdapter) mSliderAdapter).setStartStory(story_id);
((NewsSliderCursorAdapter) mSliderAdapter).setLoadingScreenListener(this);
return mSliderAdapter;
}
@Override
public void onStoriesLoaded() {
((NewsSliderCursorAdapter)mSliderAdapter).stopLoading();
refreshScreens();
}
@Override
public void onStorySelected(NewsStory newsItem) {
// TODO Auto-generated method stub
}
}