Android Open Source - android Brewery Details Fragment






From Project

Back to project page android.

License

The source code is released under:

Apache License

If you think the Android project android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.github.digin.android.fragments;
/*from   w  ww .jav a  2s . com*/
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import com.github.digin.android.R;
import com.github.digin.android.logging.AnalyticsHelper;
import com.github.digin.android.models.Brewery;
import com.github.digin.android.models.Winery;
import com.github.digin.android.repositories.BreweryStore;
import com.github.digin.android.repositories.FavoritesStore;
import com.github.digin.android.repositories.WineryStore;
import com.loopj.android.image.SmartImageView;

/**
 * This is not actually an extension. They are just similar and I don't have time to pull it.
 */
public class BreweryDetailsFragment extends ParticipantDetailsFragment<Brewery> implements View.OnClickListener {

    public static BreweryDetailsFragment newInstance(Brewery brewery) {
        Bundle b = new Bundle();
        b.putString("ID", brewery.getId());

        BreweryDetailsFragment details = new BreweryDetailsFragment();
        details.setArguments(b);
        return details;
    }


    private Button favoriteButton, yelpButton;
    private Button webButton;


    @Override
    public int getHeaderResource() {
        return R.layout.beer_header_image;
    }


    @Override
    public int getContentResource() {
        return R.layout.participant_content;
    }

    @Override
    public void fillContent() {

        getView().setBackgroundColor(Color.BLACK);

        getActivity().getActionBar().setTitle(getParticipant().getName());

        TextView name = (TextView) getView().findViewById(R.id.nameText);
        name.setText( getParticipant().getName() );

        SmartImageView siv = (SmartImageView) getView().findViewById(R.id.logo);
        siv.setImageUrl( getParticipant().getThumbnail() );

        // prepare buttons

        yelpButton = (Button) getView().findViewById(R.id.details_button_yelp);
        if (getParticipant().getYelpURL() == null || getParticipant().getYelpURL().equals("")) {
            yelpButton.setVisibility(View.GONE);
        } else {
            yelpButton.setOnClickListener(this);
        }

        webButton = (Button) getView().findViewById(R.id.details_button_website);
        webButton.setOnClickListener(this);

        favoriteButton = (Button) getView().findViewById(R.id.details_button_favorite);
        favoriteButton.setOnClickListener(this);

        if (FavoritesStore.contains(getActivity(), getParticipant())) {
            favoriteButton.setText("Unfavorite");
        }
    }

    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        AnalyticsHelper.sendScreenView(getActivity(), BreweryDetailsFragment.class, getParticipant().getName());
    }

    @Override
    public void onClick(View v) {

        switch (v.getId()) {
            case R.id.details_button_favorite:
                setFavorite();
                break;
            case R.id.details_button_yelp:
                goToYelp();
                break;
            case R.id.details_button_website:
                goToWeb();
                break;
        }

    }

    private void goToWeb() {

        if (getParticipant().getWebsite() == null || getParticipant().getWebsite().equals("")) {
            Toast.makeText(getActivity(), "We are sorry, this participant does not have a website.", Toast.LENGTH_SHORT).show();
            return;
        }
        Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(getParticipant().getWebsite()));
        AnalyticsHelper.sendEvent(getActivity(), "Details_Item_Click", "Web", getParticipant().getName());
        startActivity(browserIntent);
    }

    private void setFavorite() {
        boolean isFavorited = FavoritesStore.contains(getActivity(), getParticipant());
        if (isFavorited) {
            FavoritesStore.removeFavorite(getActivity(), getParticipant());
            favoriteButton.setText("Add to favorites");
            AnalyticsHelper.sendEvent(getActivity(), "Details_Item_Click", "Unfavorite", getParticipant().getName());
        } else {
            FavoritesStore.storeFavorite(getActivity(), getParticipant());
            favoriteButton.setText("Unfavorite");
            AnalyticsHelper.sendEvent(getActivity(), "Details_Item_Click", "Favorite", getParticipant().getName());
        }
    }

    private void goToYelp() {
        if (getParticipant().getYelpURL() == null || getParticipant().getYelpURL().equals("")) {
            Toast.makeText(getActivity(), "This participant doesn't appear to have a Yelp page", Toast.LENGTH_SHORT).show();
            return;
        }
        Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(getParticipant().getYelpURL()));
        AnalyticsHelper.sendEvent(getActivity(), "Details_Item_Click", "Yelp", getParticipant().getName());
        startActivity(browserIntent);
    }

    @Override
    public void queryParticipant(String id) {
        BreweryStore.getBreweryById(getActivity(), id, this);
    }
}




Java Source Code List

com.github.digin.android.ApplicationTest.java
com.github.digin.android.DiginApplication.java
com.github.digin.android.ImageCacheEntry.java
com.github.digin.android.NavDrawerController.java
com.github.digin.android.NavDrawerItem.java
com.github.digin.android.Utils.java
com.github.digin.android.activities.MainActivity.java
com.github.digin.android.adapters.ChefListAdapter.java
com.github.digin.android.adapters.NavDrawerAdapter.java
com.github.digin.android.adapters.ParticipantListAdapter.java
com.github.digin.android.constants.LocationDataHolder.java
com.github.digin.android.constants.MapOverlayData.java
com.github.digin.android.constants.ParseID.java
com.github.digin.android.constants.ParseKeys.java
com.github.digin.android.constants.Station.java
com.github.digin.android.exceptions.InvalidClassException.java
com.github.digin.android.factories.BreweryFactory.java
com.github.digin.android.factories.ChefFactory.java
com.github.digin.android.factories.WineryFactory.java
com.github.digin.android.fragments.BoundedMapFragment.java
com.github.digin.android.fragments.BreweriesFragment.java
com.github.digin.android.fragments.BreweryDetailsFragment.java
com.github.digin.android.fragments.ChefListFragment.java
com.github.digin.android.fragments.DetailsFragment.java
com.github.digin.android.fragments.DeveloperFragment.java
com.github.digin.android.fragments.DiginAboutFragment.java
com.github.digin.android.fragments.FavoritesFragment.java
com.github.digin.android.fragments.LineupListFragment.java
com.github.digin.android.fragments.ParticipantDetailsFragment.java
com.github.digin.android.fragments.WineriesFragment.java
com.github.digin.android.fragments.WineryDetailsFragment.java
com.github.digin.android.listeners.OnBoundsQueryListener.java
com.github.digin.android.listeners.OnBoundsRetrievalListener.java
com.github.digin.android.listeners.OnParticipantQueryListener.java
com.github.digin.android.listeners.OnSingleParticipantQueryListener.java
com.github.digin.android.logging.AnalyticsHelper.java
com.github.digin.android.logging.Logger.java
com.github.digin.android.models.Brewery.java
com.github.digin.android.models.Chef.java
com.github.digin.android.models.ParseBackedModel.java
com.github.digin.android.models.Participant.java
com.github.digin.android.models.TemporaryParticipantPlaceholder.java
com.github.digin.android.models.Winery.java
com.github.digin.android.models.map.BoundPoint.java
com.github.digin.android.models.map.Bounds.java
com.github.digin.android.repositories.BoundsStore.java
com.github.digin.android.repositories.BreweryStore.java
com.github.digin.android.repositories.ChefsStore.java
com.github.digin.android.repositories.FavoritesStore.java
com.github.digin.android.repositories.WineryStore.java
com.github.digin.android.tasks.ParseAllBoundsTask.java
com.github.digin.android.tasks.ParseAllBreweriesTask.java
com.github.digin.android.tasks.ParseAllChefsTask.java
com.github.digin.android.tasks.ParseAllWineriesTask.java
com.nirhart.parallaxscroll.views.ParallaxExpandableListView.java
com.nirhart.parallaxscroll.views.ParallaxListViewHelper.java
com.nirhart.parallaxscroll.views.ParallaxListView.java
com.nirhart.parallaxscroll.views.ParallaxScrollView.java
com.nirhart.parallaxscroll.views.ParallaxedView.java