/* * ****************************************************************************** * Copyright (c) 2013-2014 Gabriele Mariotti. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ***************************************************************************** */ package it.gmariotti.cardslib.demo.fragment.v1; import android.content.Intent; 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.ScrollView; import android.widget.ShareActionProvider; import java.io.File; import it.gmariotti.cardslib.demo.R; import it.gmariotti.cardslib.demo.cards.GoogleNowStockCard; import it.gmariotti.cardslib.library.utils.BitmapUtils; import it.gmariotti.cardslib.library.view.CardView; /** * Card Examples * * @author Gabriele Mariotti (gabri.mariotti@gmail.com) */ public class StockCardFragment extends MaterialV1Fragment { protected ScrollView mScrollView; private CardView cardView; private ShareActionProvider mShareActionProvider; private File photofile; @Override protected int getSubTitleHeaderResourceId() { return R.string.header_title_subtitle_ex_gstock; } @Override protected int getTitleHeaderResourceId() { return R.string.header_title_group2; } @Override protected String getDocUrl() { return "https://github.com/gabrielemariotti/cardslib/blob/master/doc/CARD.md"; } @Override protected String getSourceUrl() { return "https://github.com/gabrielemariotti/cardslib/blob/master/demo/stock/src/main/java/it/gmariotti/cardslib/demo/fragment/v1/StockCardFragment.java"; } @Override public int getTitleResourceId() { return R.string.carddemo_title_stock_card; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.demo_fragment_stock_card, container, false); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.sharemenu, menu); // Locate MenuItem with ShareActionProvider MenuItem item = menu.findItem(R.id.carddemo_menu_item_share); // Fetch and store ShareActionProvider mShareActionProvider = (ShareActionProvider) item.getActionProvider(); mShareActionProvider.setShareIntent(getShareIntent()); super.onCreateOptionsMenu(menu,inflater); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); mScrollView = (ScrollView) getActivity().findViewById(R.id.card_scrollview); initCard(); if (photofile==null){ if (mShareActionProvider != null) { getActivity().invalidateOptionsMenu(); } } } /** * This method builds a simple card */ private void initCard() { //Create a Card GoogleNowStockCard card= new GoogleNowStockCard(getActivity()); //Set card in the cardView cardView = (CardView) getActivity().findViewById(R.id.carddemo_GoogleNowStock); cardView.setCard(card); } private Intent getShareIntent(){ if (cardView!=null){ photofile = BitmapUtils.createFileFromBitmap(cardView.createBitmap()); if (photofile!=null){ return BitmapUtils.createIntentFromImage(photofile); }else{ return getDefaultIntent(); } }else{ return getDefaultIntent(); } } /** Defines a default (dummy) share intent to initialze the action provider. * However, as soon as the actual content to be used in the intent * is known or changes, you must update the share intent by again calling * mShareActionProvider.setShareIntent() */ private Intent getDefaultIntent() { Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("image/*"); return intent; } }