Android Open Source - epgreader-android Photo Item Fragment






From Project

Back to project page epgreader-android.

License

The source code is released under:

Apache License

If you think the Android project epgreader-android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.jeffpalm.android.epg.app;
/*from   ww  w . java 2 s . c om*/
import java.io.IOException;

import android.app.Activity;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.android.imagedownloader.ImageDownloader;
import com.jeffpalm.android.epg.app.R;

/**
 * A fragment to show a title and photo for a link item.
 */
public class PhotoItemFragment extends EPGReaderFragment {

  public static final String TITLE = "title";
  public static final String IMAGE_URL = "image.url";
  public static final String SHARE_URL = "share.url";

  private static final String TAG = "PhotoItemFragment";

  private ImageDownloader imageDownloader;
  private UrlHandler urlHandler;

  interface UrlHandler {
    void show(String url);
  }

  public void setUrlHandler(UrlHandler urlHandler) {
    this.urlHandler = urlHandler;
  }

  @Override
  public void onAttach(Activity activity) {
    super.onAttach(activity);
    imageDownloader = EPGReaderUtil.newImageDownloader();
  }

  @Override
  protected void onActivityCreatedInternal(Bundle savedInstanceState) {
    Bundle args = getArguments();
    String title = args.getString(TITLE);
    String imageUrl = args.getString(IMAGE_URL);
    String shareUrl = args.getString(SHARE_URL);
    setTitle(title);
    setImageUrl(imageUrl);
    setupShareButton(shareUrl);
  }

  private void setupShareButton(final String shareUrl) {
    Button viewButton = (Button) getView().findViewById(R.id.buttonView);
    viewButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        showUrl(shareUrl);
      }
    });
  }

  private void showUrl(String url) {
    if (urlHandler != null) {
      urlHandler.show(url);
    }
  }

  private void setTitle(String title) {
    TextView view = (TextView) getView().findViewById(R.id.titleText);
    view.setText(title);
  }

  private void setImageUrl(String imageUrl) {
    ImageView view = (ImageView) getView().findViewById(R.id.imageView);
    imageDownloader.download(imageUrl, view);
  }

  @Override
  public void onStart() {
    super.onStart();
    // Replace the thumbnail URL with a nicer image
    Bundle args = getArguments();
    String shareUrl = args.getString(SHARE_URL);
    findNicerPhoto(shareUrl);
  }

  private void findNicerPhoto(final String shareUrl) {
    AsyncTask<String, Integer, Uri> getVideoUrlTask = new AsyncTask<String, Integer, Uri>() {
      @Override
      protected Uri doInBackground(String... params) {
        try {
          return new EPGReaderUrlFinder().getPhotoUrl(shareUrl);
        } catch (IOException e) {
          Log.e(TAG, "Finding photo url for " + shareUrl, e);
        }
        return null;
      }

      @Override
      protected void onPostExecute(Uri result) {
        if (result != null) {
          setImageUrl(result.toString());
        }
      }
    };
    getVideoUrlTask.execute(shareUrl);
  }

  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_photo_item, container, false);
    return view;
  }
}




Java Source Code List

com.example.android.imagedownloader.ImageDownloader.java
com.jeffpalm.android.epg.AbstractEPGItem.java
com.jeffpalm.android.epg.AbstractEPGNode.java
com.jeffpalm.android.epg.EPGContentTest.java
com.jeffpalm.android.epg.EPGContent.java
com.jeffpalm.android.epg.EPGIndexTest.java
com.jeffpalm.android.epg.EPGIndex.java
com.jeffpalm.android.epg.EPGItemTestCase.java
com.jeffpalm.android.epg.EPGItem.java
com.jeffpalm.android.epg.EPGLinkItemTest.java
com.jeffpalm.android.epg.EPGLinkItem.java
com.jeffpalm.android.epg.EPGNode.java
com.jeffpalm.android.epg.EPGParserTest.java
com.jeffpalm.android.epg.EPGParser.java
com.jeffpalm.android.epg.EPGSectionTest.java
com.jeffpalm.android.epg.EPGSection.java
com.jeffpalm.android.epg.EPGTestUtil.java
com.jeffpalm.android.epg.EPG.java
com.jeffpalm.android.epg.app.DefaultOnActivityCreatedNotifier.java
com.jeffpalm.android.epg.app.EPGApplication.java
com.jeffpalm.android.epg.app.EPGReaderConstants.java
com.jeffpalm.android.epg.app.EPGReaderFragment.java
com.jeffpalm.android.epg.app.EPGReaderItemListFragment.java
com.jeffpalm.android.epg.app.EPGReaderPreferencesActivity.java
com.jeffpalm.android.epg.app.EPGReaderSharedPrefs.java
com.jeffpalm.android.epg.app.EPGReaderUrlFinder.java
com.jeffpalm.android.epg.app.EPGReaderUtil.java
com.jeffpalm.android.epg.app.Feature.java
com.jeffpalm.android.epg.app.FeedLoader.java
com.jeffpalm.android.epg.app.HeaderFragment.java
com.jeffpalm.android.epg.app.ItemListActivity.java
com.jeffpalm.android.epg.app.ItemListAdapter.java
com.jeffpalm.android.epg.app.ItemListFragment.java
com.jeffpalm.android.epg.app.NoContentFragment.java
com.jeffpalm.android.epg.app.OnActivityCreatedNotifier.java
com.jeffpalm.android.epg.app.PhotoGalleryAdapter.java
com.jeffpalm.android.epg.app.PhotoGalleryFragment.java
com.jeffpalm.android.epg.app.PhotoItemFragment.java
com.jeffpalm.android.epg.app.VideoItemFragment.java
com.jeffpalm.android.epg.app.WebItemFragment.java
com.jeffpalm.android.tmz.model.AbstractTMZItem.java
com.jeffpalm.android.tmz.model.AbstractTMZNode.java
com.jeffpalm.android.tmz.model.DefaultTMZAdapter.java
com.jeffpalm.android.tmz.model.TMZAdapter.java
com.jeffpalm.android.tmz.model.TMZContentCache.java
com.jeffpalm.android.tmz.model.TMZContentTest.java
com.jeffpalm.android.tmz.model.TMZContent.java
com.jeffpalm.android.tmz.model.TMZFactoryHelper.java
com.jeffpalm.android.tmz.model.TMZFactoryHolder.java
com.jeffpalm.android.tmz.model.TMZFactoryTest.java
com.jeffpalm.android.tmz.model.TMZFactory.java
com.jeffpalm.android.tmz.model.TMZIndexTest.java
com.jeffpalm.android.tmz.model.TMZIndexWrapperTest.java
com.jeffpalm.android.tmz.model.TMZIndexWrapper.java
com.jeffpalm.android.tmz.model.TMZIndex.java
com.jeffpalm.android.tmz.model.TMZItemTestCase.java
com.jeffpalm.android.tmz.model.TMZItem.java
com.jeffpalm.android.tmz.model.TMZLinkItemTest.java
com.jeffpalm.android.tmz.model.TMZLinkItem.java
com.jeffpalm.android.tmz.model.TMZNode.java
com.jeffpalm.android.tmz.model.TMZSectionTest.java
com.jeffpalm.android.tmz.model.TMZSection.java
com.jeffpalm.android.tmz.model.TMZTestCase.java
com.jeffpalm.android.tmz.model.TMZTestUtil.java
com.jeffpalm.android.tmz.model.TMZTest.java
com.jeffpalm.android.tmz.model.TMZWrapperTest.java
com.jeffpalm.android.tmz.model.TMZWrapper.java
com.jeffpalm.android.tmz.model.TMZ.java
com.jeffpalm.android.util.Asserts.java
com.jeffpalm.android.util.ExpandableValueTest.java
com.jeffpalm.android.util.ExpandableValue.java
com.jeffpalm.android.util.ShiftSetTest.java
com.jeffpalm.android.util.ShiftSet.java
com.jeffpalm.android.util.TMZUrlFinderTest.java
com.jeffpalm.android.util.UtilTest.java
com.jeffpalm.android.util.Util.java
com.jeffpalm.android.util.urls.DatabaseHandler.java
com.jeffpalm.android.util.urls.DatabaseHelper.java
com.jeffpalm.android.util.urls.StringInputStream.java
com.jeffpalm.android.util.urls.URLCache.java
com.jeffpalm.android.util.urls.WriteToDatabaseOnCloseInputStream.java