Android Open Source - android Chefs Store






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.repositories;
/*from w ww .  j a va2  s .  c o m*/
import android.content.Context;

import com.github.digin.android.listeners.OnParticipantQueryListener;
import com.github.digin.android.listeners.OnSingleParticipantQueryListener;
import com.github.digin.android.logging.Logger;
import com.github.digin.android.models.Chef;
import com.github.digin.android.tasks.ParseAllChefsTask;

import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;

/**
 * Class which handles downloading Chef data from parse, storing this
 * data locally, querying for cache information, etc.
 * <p/>
 * Created by mike on 7/11/14.
 */
public abstract class ChefsStore {

    /**
     * The local cache
     */
    private static List<Chef> chefCache;

    /**
     * Gets a list of all the chefs. This call always returns through the listener
     * provided. If a copy of the chefs is available locally (in memory) it is used.
     * Otherwise, this call reaches out to parse asynchronously, returns immediately,
     * and the list of chefs is provided to the listener on the UI thread.
     */
    public static void getChefs(Context context, final OnParticipantQueryListener<Chef> listener) {

        // Return the local list if it is available
        if (chefCache != null) {
            if (listener != null) {
                listener.onComplete(chefCache);
            }
            return;
        }

        // Query parse
        Logger.log(ChefsStore.class, "Updating local chefs list from Parse");
        ParseAllChefsTask task = new ParseAllChefsTask(context, new OnParticipantQueryListener<Chef>() {
            @Override
            public void onComplete(List<Chef> chefs) {

                // Sort the list
                Collections.sort(chefs, new Comparator<Chef>() {
                    public int compare(Chef lhs, Chef rhs) {
                        return lhs.getName().compareTo(rhs.getName());
                    }
                });

                // Store the returned list locally
                chefCache = chefs;

                // Alert the listener passed in to the storage framework
                if (listener != null) {
                    listener.onComplete(chefs);
                }

            }
        });
        task.execute();

    }

    /**
     * Forces this class to reach out to parse to update instead of getting from the local cache
     */
    public static void getChefsNoCache(Context context, final OnParticipantQueryListener<Chef> listener) {
        chefCache = null;
        getChefs(context, listener);
    }

    public static void getChefById(Context context, final String id, final OnSingleParticipantQueryListener<Chef> listener) {
        Logger.log(ChefsStore.class, "Getting chef for ID");
        getChefs(context, new OnParticipantQueryListener<Chef>() {
            @Override
            public void onComplete(List<Chef> chefs) {

                for (Chef chef : chefs) {
                    if (chef.getId().equals(id)) {
                        listener.onComplete(chef);
                        return;
                    }

                }
                Logger.log(ChefsStore.class, "Found no chef matching given ID");
                listener.onComplete(null);
            }
        });
    }

    public static void batchGetChefById(Context context, final Set<String> ids, final OnParticipantQueryListener<Chef> listener) {
        Logger.log(ChefsStore.class, "Getting a subset of chefs by id");

        getChefs(context, new OnParticipantQueryListener<Chef>() {
            public void onComplete(List<Chef> chefs) {

                List<Chef> subset = new LinkedList<Chef>();
                for (Chef chef : chefs) {
                    if (ids.contains(chef.getId())) {
                        subset.add(chef);
                    }
                }

                if (listener != null) {
                    listener.onComplete(subset);
                }

            }
        });

    }

}




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