/* * ****************************************************************************** * 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.nativeview; import android.os.AsyncTask; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Toast; import java.util.ArrayList; import it.gmariotti.cardslib.demo.R; import it.gmariotti.cardslib.demo.fragment.BaseMaterialFragment; import it.gmariotti.cardslib.library.cards.ProgressCard; import it.gmariotti.cardslib.library.cards.actions.BaseSupplementalAction; import it.gmariotti.cardslib.library.cards.actions.IconSupplementalAction; import it.gmariotti.cardslib.library.cards.actions.TextSupplementalAction; import it.gmariotti.cardslib.library.cards.material.MaterialLargeImageCard; import it.gmariotti.cardslib.library.internal.Card; import it.gmariotti.cardslib.library.view.CardViewNative; /** * @author Gabriele Mariotti (gabri.mariotti@gmail.com) */ public class NativeMaterialCardFragment extends BaseMaterialFragment { public static final int SIMULATED_REFRESH_LENGTH = 3000; ProgressCard progressCard; @Override protected int getSubTitleHeaderResourceId() { return R.string.header_title_subtitle_ex_material; } @Override protected int getTitleHeaderResourceId() { return R.string.header_title_group1; } @Override protected String getDocUrl() { return null; } @Override protected String getSourceUrl() { return "https://github.com/gabrielemariotti/cardslib/blob/master/demo/stock/src/main/java/it/gmariotti/cardslib/demo/fragment/nativeview/NativeMaterialCardFragment.java"; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.demo_fragment_native_materialcard, container, false); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); initCards(); } private void initCards() { init_largeimage_text(); init_largeimage(); //initProgressCard(); } /** * Builds a Material Card with Large Image and Text */ private void init_largeimage_text() { ArrayList<BaseSupplementalAction> actions = new ArrayList<BaseSupplementalAction>(); // Set supplemental actions TextSupplementalAction t1 = new TextSupplementalAction(getActivity(), R.id.text1); t1.setOnActionClickListener(new BaseSupplementalAction.OnActionClickListener() { @Override public void onClick(Card card, View view) { Toast.makeText(getActivity()," Click on Text SHARE ",Toast.LENGTH_SHORT).show(); } }); actions.add(t1); TextSupplementalAction t2 = new TextSupplementalAction(getActivity(), R.id.text2); t2.setOnActionClickListener(new BaseSupplementalAction.OnActionClickListener() { @Override public void onClick(Card card, View view) { Toast.makeText(getActivity()," Click on Text LEARN ",Toast.LENGTH_SHORT).show(); } }); actions.add(t2); //Create a Card, set the title over the image and set the thumbnail MaterialLargeImageCard card = MaterialLargeImageCard.with(getActivity()) .setTextOverImage("Italian Beaches") .setTitle("This is my favorite local beach") .setSubTitle("A wonderful place") .useDrawableId(R.drawable.sea) .setupSupplementalActions(R.layout.carddemo_native_material_supplemental_actions_large, actions) .build(); card.setOnClickListener(new Card.OnCardClickListener() { @Override public void onClick(Card card, View view) { Toast.makeText(getActivity()," Click on ActionArea ",Toast.LENGTH_SHORT).show(); } }); //Set card in the CardViewNative CardViewNative cardView = (CardViewNative) getActivity().findViewById(R.id.carddemo_largeimage_text); cardView.setCard(card); } /** * Builds a Material Card with Large and small icons as supplemental actions */ private void init_largeimage() { // Set supplemental actions as icon ArrayList<BaseSupplementalAction> actions = new ArrayList<BaseSupplementalAction>(); IconSupplementalAction t1 = new IconSupplementalAction(getActivity(), R.id.ic1); t1.setOnActionClickListener(new BaseSupplementalAction.OnActionClickListener() { @Override public void onClick(Card card, View view) { Toast.makeText(getActivity()," Click on Text SHARE ",Toast.LENGTH_SHORT).show(); } }); actions.add(t1); IconSupplementalAction t2 = new IconSupplementalAction(getActivity(), R.id.ic2); t2.setOnActionClickListener(new BaseSupplementalAction.OnActionClickListener() { @Override public void onClick(Card card, View view) { Toast.makeText(getActivity()," Click on Text LEARN ",Toast.LENGTH_SHORT).show(); } }); actions.add(t2); MaterialLargeImageCard card = MaterialLargeImageCard.with(getActivity()) .setTextOverImage("Italian Beaches") .useDrawableId(R.drawable.im_beach) .setupSupplementalActions(R.layout.carddemo_native_material_supplemental_actions_large_icon,actions ) .build(); card.setOnClickListener(new Card.OnCardClickListener() { @Override public void onClick(Card card, View view) { Toast.makeText(getActivity()," Click on ActionArea ",Toast.LENGTH_SHORT).show(); } }); //Set card in the CardViewNative CardViewNative cardView = (CardViewNative) getActivity().findViewById(R.id.carddemo_largeimage); cardView.setCard(card); } private void initProgressCard(){ /* progressCard = new ProgressCard(getActivity()); progressCard.setUseProgressBar(true); CardHeader header = new CardHeader(getActivity()); header.setTitle("Progress Card"); header.setPopupMenu(R.menu.update,new CardHeader.OnClickCardHeaderPopupMenuListener() { @Override public void onMenuItemClick(BaseCard card, MenuItem item) { if (item.getItemId() == R.id.action_update){ new UpdateAsyncTask(4000).execute(); progressCard.updateProgressBar(false, false); progressCard.notifyDataSetChanged(); } } }); progressCard.addCardHeader(header); //Set card in the CardViewNative final CardViewNative cardView = (CardViewNative) getActivity().findViewById(R.id.carddemo_progress); cardView.setCard(progressCard); */ /** * Simulate Refresh with 4 seconds sleep */ new UpdateAsyncTask(SIMULATED_REFRESH_LENGTH).execute(); progressCard.updateProgressBar(false, false); } /** * Only for test */ class UpdateAsyncTask extends AsyncTask<Void, Void, Void>{ int mRefresh_lenght = SIMULATED_REFRESH_LENGTH; UpdateAsyncTask(int refresh_lenght){ mRefresh_lenght = refresh_lenght; } @Override protected Void doInBackground(Void... params) { try { Thread.sleep(mRefresh_lenght); } catch (InterruptedException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(Void result) { super.onPostExecute(result); // Notify PullToRefreshAttacher that the refresh has finished progressCard.setTitle("Updated card "); progressCard.updateProgressBar(true, true); progressCard.notifyDataSetChanged(); } } /* // //Create a Card MaterialLargeImageCard cardx = new MaterialLargeImageCard(getActivity()); cardx.setTextOverImage("Italian Beaches"); cardx.addCardThumbnail(new MyMaterialCardThumbnail(getActivity())); cardx.setTitle("This is my favorite local beach"); TextSupplementalAction t1 = new TextSupplementalAction(getActivity(), R.id.text1); t1.setOnActionClickListener(new BaseSupplementalAction.OnActionClickListener() { @Override public void onClick(Card card, View view) { Toast.makeText(getActivity()," Click on Text SHARE ",Toast.LENGTH_SHORT).show(); } }); cardx.addSupplementalAction(t1); TextSupplementalAction t2 = new TextSupplementalAction(getActivity(), R.id.text2); t2.setOnActionClickListener(new BaseSupplementalAction.OnActionClickListener() { @Override public void onClick(Card card, View view) { Toast.makeText(getActivity()," Click on Text LEARN ",Toast.LENGTH_SHORT).show(); } }); cardx.addSupplementalAction(t2); cardx.setLayout_supplemental_actions_id(R.layout.carddemo_native_material_supplemental_actions_large); cardx.build(); //Set card in the CardViewNative CardViewNative cardViewz = (CardViewNative) getActivity().findViewById(R.id.carddemo_largeimage); cardViewz.setCard(cardx); } public class MyMaterialCardThumbnail extends MaterialLargeImageCardThumbnail { public MyMaterialCardThumbnail(Context context) { super(context); setExternalUsage(true); } @Override public void setupInnerViewElements(ViewGroup parent, View imageView) { super.setupInnerViewElements(parent, imageView); Picasso.with(getContext()) .load("https://lh5.googleusercontent.com/-squZd7FxR8Q/UyN5UrsfkqI/AAAAAAAAbAo/VoDHSYAhC_E/s96/new%2520profile%2520%25282%2529.jpg") .into((ImageView) imageView); } } */ }