package com.vladstoick.Fragments; import android.content.Intent; import android.os.Bundle; import android.text.Html; import android.view.DragEvent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.ScrollView; import android.widget.TextView; import com.actionbarsherlock.app.SherlockFragment; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuInflater; import com.actionbarsherlock.view.MenuItem; import com.squareup.otto.Subscribe; import com.vladstoick.DataModel.NewsDataSource; import com.vladstoick.DataModel.NewsItem; import com.vladstoick.OttoBus.BusProvider; import com.vladstoick.OttoBus.NewsItemLoadedEvent; import com.vladstoick.stiridinromania.R; import com.vladstoick.stiridinromania.StiriApp; import java.text.DateFormat; import java.util.Date; import java.util.TimeZone; import butterknife.InjectView; import butterknife.Views; //import com.vladstoick.stiridinromania.myapp.dummy.DummyContent; /** * A fragment representing a single NewsItem detail screen. * This fragment is either contained in a {@link com.vladstoick.stiridinromania.NewsItemListActivity} * in two-pane mode (on tablets) or a {@link com.vladstoick.stiridinromania.NewsItemDetailActivity} * on handsets. */ public class NewsItemDetailFragment extends SherlockFragment { public static final String ARG_NEWSOURCE ="newsource_id"; public static final String ARG_ITEM = "item_id"; public static final String ARG_ITEMPOSITION = "item_position"; public static final String ARG_ITEM_JO = "item_jo"; private int isInMode = 0; public static final String ARG_MODE = "mode"; private NewsItem mItem; @InjectView(R.id.news_item_detail_webView) WebView mWebView; @InjectView(R.id.news_item_detail_title) TextView mTitle; @InjectView(R.id.news_item_detail_paperized) TextView mPaperized; @InjectView(R.id.news_item_detail_date) TextView mDate; // @InjectView(R.id.news_item_scrollview) ScrollView mScrollView; public NewsItemDetailFragment() { } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); if (savedInstanceState != null && savedInstanceState.containsKey(ARG_MODE)) isInMode = savedInstanceState.getInt(ARG_MODE); if (getArguments().containsKey(ARG_ITEM)) { String url =getArguments().getString(ARG_ITEM); mItem = NewsDataSource.getInstance().getNewsItem(url); } else if (getArguments().containsKey(ARG_ITEM_JO)){ mItem = getArguments().getParcelable(ARG_ITEM_JO); } } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putInt(ARG_MODE, isInMode); } @Subscribe public void onItemViewLoaded(NewsItemLoadedEvent event){ if(mItem.getUrlLink().equals(event.ni.getUrlLink()) ){ mItem = event.ni; mPaperized.setText(Html.fromHtml(mItem.getDescription())); } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_newsitem_detail, container, false); Views.inject(this, rootView); if (mItem != null) { mTitle.setText(mItem.getTitle()); mDate.setText(mItem.getPubDateAsString(getSherlockActivity().getApplicationContext())); if(!mItem.getDescription().equals("null")){ mPaperized.setText(Html.fromHtml(mItem.getDescription())); } else { BusProvider.getInstance().register(this); mPaperized.setText(getString(R.string.loading)); NewsDataSource.getInstance().paperizeNewsItem(mItem); } mWebView.setWebViewClient(new WebViewClient()); } return rootView; } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.news_item_detail_fragment, menu); super.onCreateOptionsMenu(menu, inflater); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_full_article: { if (isInMode == 0) { mWebView.setVisibility(View.VISIBLE); mTitle.setVisibility(View.GONE); mPaperized.setVisibility(View.GONE); mWebView.loadUrl(mItem.getUrlLink()); isInMode = 1; } else { mWebView.setVisibility(View.GONE); mTitle.setVisibility(View.VISIBLE); mPaperized.setVisibility(View.VISIBLE); isInMode = 0; } break; } case R.id.action_share: { Intent sharingIntent = new Intent(Intent.ACTION_SEND); sharingIntent.setType("text/plain"); String title = mItem.getTitle(); String body = mItem.getUrlLink() + " " + getString(R.string.share_end); sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, title); sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, body); startActivity(Intent.createChooser(sharingIntent, "Share via")); } } return super.onOptionsItemSelected(item); } }