package org.theotech.ceaselessandroid.fragment; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.Fragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; import com.joanzapata.iconify.widget.IconTextView; import com.squareup.picasso.Picasso; import com.squareup.picasso.Transformation; import org.theotech.ceaselessandroid.R; import org.theotech.ceaselessandroid.cache.CacheManager; import org.theotech.ceaselessandroid.cache.LocalDailyCacheManagerImpl; import org.theotech.ceaselessandroid.scripture.ScriptureData; import org.theotech.ceaselessandroid.util.AnalyticsUtils; import org.theotech.ceaselessandroid.util.Constants; import org.theotech.ceaselessandroid.util.Installation; import java.io.File; import java.util.ArrayList; import java.util.List; import butterknife.Bind; import butterknife.ButterKnife; import jp.wasabeef.picasso.transformations.BlurTransformation; public class ScriptureCardSupportFragment extends Fragment implements ICardPageFragment { private static final String TAG = ScriptureCardSupportFragment.class.getSimpleName(); @Bind(R.id.verse_image) ImageView verseImage; @Bind(R.id.verse_image_reflection) ImageView verseImageReflection; @Bind(R.id.verse_text_container) RelativeLayout verseTextContainer; @Bind(R.id.verse_title) TextView verseTitle; @Bind(R.id.verse_text) TextView verseText; @Bind(R.id.verse_share) IconTextView verseShare; private CacheManager cacheManager = null; public ScriptureCardSupportFragment() { // Required empty public constructor } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); cacheManager = LocalDailyCacheManagerImpl.getInstance(getActivity()); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // create view and bind View view = inflater.inflate(R.layout.fragment_support_scripture_card, container, false); ButterKnife.bind(this, view); drawVerseImage(); // verse title and text final ScriptureData scriptureData = getScripture(); verseShare.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent sharingIntent = new Intent(Intent.ACTION_SEND); sharingIntent.setType("text/plain"); String shareContent = scriptureData.getText() + " " + scriptureData.getCitation() + " " + scriptureData.getLink(); sharingIntent.putExtra(Intent.EXTRA_TEXT, shareContent); AnalyticsUtils.sendEventWithCategory(AnalyticsUtils.getDefaultTracker(getActivity()), getString(R.string.ga_scripture_card_actions), getString(R.string.ga_tapped_share_scripture), Installation.id(getActivity())); startActivity(Intent.createChooser(sharingIntent, "Share via")); } }); return view; } private ScriptureData getScripture() { ScriptureData scriptureData = cacheManager.getCachedScripture(); if (scriptureData == null) { scriptureData = new ScriptureData(getString(R.string.default_verse_text), getString(R.string.default_verse_citation), getString(R.string.default_verse_link), null); } populateVerse(scriptureData.getCitation(), scriptureData.getText()); return scriptureData; } private void drawVerseImage() { File currentBackgroundImage = new File(getActivity().getCacheDir(), Constants.CURRENT_BACKGROUND_IMAGE); List<Transformation> transformations = new ArrayList<>(); transformations.add(new BlurTransformation(getActivity(), 25, 4)); if (currentBackgroundImage.exists()) { Log.d(TAG, "Showing verse image"); Picasso.with(getActivity()).load(currentBackgroundImage) .fit() .centerCrop() .into(verseImage); Picasso.with(getActivity()).load(currentBackgroundImage) .fit() .centerCrop() .transform(transformations) .into(verseImageReflection); } else { Log.d(TAG, "Showing default verse image"); Picasso.with(getActivity()).load(R.drawable.at_the_beach) .fit() .centerCrop() .into(verseImage); Picasso.with(getActivity()).load(R.drawable.at_the_beach) .fit() .centerCrop() .transform(transformations) .into(verseImageReflection); } } private void populateVerse(String citation, String text) { verseTitle.setText(citation); verseText.setText(text); } @Override public String getCardName() { return "VerseCard"; } }