com.chale22.ico01.fragments.FragmentContact.java Source code

Java tutorial

Introduction

Here is the source code for com.chale22.ico01.fragments.FragmentContact.java

Source

/*
 *
 * 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 com.chale22.ico01.fragments;

import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.Toast;

import com.afollestad.cardsui.Card;
import com.afollestad.cardsui.CardAdapter;
import com.afollestad.cardsui.CardBase;
import com.afollestad.cardsui.CardHeader;
import com.afollestad.cardsui.CardListView;
import com.afollestad.cardsui.CardListView.CardClickListener;
import com.chale22.ico01.R;
import com.chale22.ico01.R.drawable;
import com.chale22.ico01.R.id;
import com.chale22.ico01.R.layout;
import com.chale22.ico01.R.menu;
import com.chale22.ico01.R.string;

public class FragmentContact extends Fragment implements Card.CardMenuListener<Card> {

    private CardListView list;

    //The below items are the actions attached to the cards, i.e. what the cards will do, if you will not be using a card, you can remove the act   
    private void actGPlus() {
        Uri gplusuriString = Uri.parse(getString(R.string.gplus_link));
        Intent gplusIntent = new Intent("android.intent.action.VIEW", gplusuriString);
        try {
            startActivity(gplusIntent);
        } catch (ActivityNotFoundException e2) {
            e2.printStackTrace();
        }
    }

    private void actTwitter() {
        Uri twitteruriString = Uri.parse(getString(R.string.twitter_link));
        Intent twitterIntent = new Intent("android.intent.action.VIEW", twitteruriString);
        try {
            startActivity(twitterIntent);
        } catch (ActivityNotFoundException e2) {
            e2.printStackTrace();
        }
    }

    private void actFacebook() {
        Uri facebookuriString = Uri.parse(getString(R.string.facebook_link));
        Intent facebookIntent = new Intent("android.intent.action.VIEW", facebookuriString);
        try {
            startActivity(facebookIntent);
        } catch (ActivityNotFoundException e2) {
            e2.printStackTrace();
        }
    }

    private void actEmail() {
        Uri emailuriString = Uri.parse(getString(R.string.email_link));
        Intent emailIntent = new Intent("android.intent.action.VIEW", emailuriString);
        try {
            startActivity(emailIntent);
        } catch (ActivityNotFoundException e2) {
            e2.printStackTrace();
        }
    }

    private void actWeb() {
        Uri weburiString = Uri.parse(getString(R.string.web_link));
        Intent webIntent = new Intent("android.intent.action.VIEW", weburiString);
        try {
            startActivity(webIntent);
        } catch (ActivityNotFoundException e2) {
            e2.printStackTrace();
        }
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.fragment_contact, container, false);

        list = (CardListView) view.findViewById(R.id.ListView);
        list.setOnCardClickListener(new CardClickListener() {
            public void onCardClick(AdapterView<?> adapter, View view, int position, long arg) {

            }

            //The below section is what tells the card to perform the above action when clicked, make sure to remove the if of any card you are not using
            @Override
            public void onCardClick(int position, CardBase card, View view) {
                String str = card.getTitle();
                if (str.equals(getString(R.string.facebook))) {
                    actFacebook();
                }
                if (str.equals(getString(R.string.gplus))) {
                    actGPlus();
                }
                if (str.equals(getString(R.string.email))) {
                    actEmail();
                }
                if (str.equals(getString(R.string.twitter))) {
                    actTwitter();
                }
                if (str.equals(getString(R.string.web))) {
                    actWeb();
                }
            }
        });
        return view;
    }

    //The below are the cards to be displayed, if there is a social network you are not going to support, remove the card as well as the act and OnCardClick if statement
    @Override
    public void onStart() {
        super.onStart();
        CardAdapter<Card> cardsAdapter = new CardAdapter<Card>(getActivity()).setAccentColorRes(R.color.card_text)
                .setPopupMenu(R.menu.contact_popup, this);
        cardsAdapter.add(new CardHeader(getActivity(), R.string.socialheader));
        cardsAdapter.add(new Card(getString(R.string.gplus), getString(R.string.gplus_extra))
                .setThumbnail(getActivity(), R.drawable.apps_googleplus) // sets a thumbnail image from drawable resources
                .setPopupMenu(-1, null) // -1 disables the popup menu for this individual card
        );
        cardsAdapter.add(new Card(getString(R.string.twitter), getString(R.string.twitter_extra))
                .setThumbnail(getActivity(), R.drawable.apps_twitter) // sets a thumbnail image from drawable resources
                .setPopupMenu(-1, null) // -1 disables the popup menu for this individual card
        );
        cardsAdapter.add(new Card(getString(R.string.facebook), getString(R.string.facebook_extra))
                .setThumbnail(getActivity(), R.drawable.apps_facebook) // sets a thumbnail image from drawable resources
                .setPopupMenu(-1, null) // -1 disables the popup menu for this individual card
        );
        cardsAdapter.add(new CardHeader(getActivity(), R.string.emailheader));
        cardsAdapter.add(new Card(getString(R.string.email), getString(R.string.email_extra))
                .setThumbnail(getActivity(), R.drawable.apps_googlemail) // sets a thumbnail image from drawable resources
                .setPopupMenu(-1, null) // -1 disables the popup menu for this individual card
        );
        cardsAdapter.add(new CardHeader(getActivity(), R.string.webheader));
        cardsAdapter.add(new Card(getString(R.string.web), getString(R.string.web_extra))
                .setThumbnail(getActivity(), R.drawable.system_browser) // sets a thumbnail image from drawable resources
                .setPopupMenu(-1, null) // -1 disables the popup menu for this individual card
        );

        list.setAdapter(cardsAdapter);
    }

    @Override
    public void onMenuItemClick(Card card, MenuItem item) {
        Toast.makeText(getActivity(), card.getTitle() + ": " + item.getTitle(), Toast.LENGTH_SHORT).show();
    }

}