package com.michaldabski.panoramio.photo_activity; import android.app.Fragment; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.ShareActionProvider; import com.android.volley.toolbox.NetworkImageView; import com.michaldabski.panoramio.R; import com.michaldabski.panoramio.models.Photo; import com.michaldabski.panoramio.utils.VolleySingleton; /** * Created by Michal on 10/08/2014. */ public class PhotoFragment extends Fragment implements View.OnClickListener { public static final String ARG_PHOTO = "photo"; Photo photo; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setRetainInstance(true); setHasOptionsMenu(true); photo = getArguments().getParcelable(ARG_PHOTO); } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); inflater.inflate(R.menu.photo, menu); MenuItem item = menu.findItem(R.id.actionSharePhotoUrl); ShareActionProvider actionProvider = (ShareActionProvider) item.getActionProvider(); Intent shareIntent = new Intent(Intent.ACTION_SEND); shareIntent.setData(Uri.parse(photo.getUrl())); shareIntent.setType("text/*"); shareIntent.putExtra(Intent.EXTRA_TEXT, photo.getUrl()); shareIntent.putExtra(Intent.EXTRA_SUBJECT, photo.getPhotoTitle()); actionProvider.setShareIntent(shareIntent); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.actionDetails: PhotoDetailsDialogFragment.newInstance(photo) .show(getFragmentManager(), PhotoDetailsDialogFragment.TAG); break; } return super.onOptionsItemSelected(item); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_photo, container, false); } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); NetworkImageView imageView = (NetworkImageView) view.findViewById(R.id.imgImage); imageView.setImageUrl(photo.getUrl(), VolleySingleton.getInstance(getActivity()).getImageLoader()); imageView.setOnClickListener(this); } public static PhotoFragment newInstance(Photo photo) { Bundle args = new Bundle(1); args.putParcelable(ARG_PHOTO, photo); PhotoFragment fragment = new PhotoFragment(); fragment.setArguments(args); return fragment; } void toggleFullscreen() { PhotoActivity photoActivity = (PhotoActivity) getActivity(); photoActivity.toggleFullscreen(); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.imgImage: toggleFullscreen(); break; } } }