Android Open Source - android Parse All Bounds Task






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.tasks;
//from  w  w w .ja va  2s  .  c  om
import android.content.Context;
import android.os.AsyncTask;
import android.os.Handler;

import com.github.digin.android.constants.ParseID;
import com.github.digin.android.listeners.OnBoundsQueryListener;
import com.github.digin.android.logging.Logger;
import com.github.digin.android.models.map.BoundPoint;
import com.github.digin.android.models.map.Bounds;
import com.google.android.gms.maps.model.LatLng;
import com.parse.ParseException;
import com.parse.ParseGeoPoint;
import com.parse.ParseObject;
import com.parse.ParseQuery;

import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by mike on 8/10/14.
 */
public class ParseAllBoundsTask extends AsyncTask<Void, Void, Void> {

    private Context context;
    private OnBoundsQueryListener listener;

    public ParseAllBoundsTask(Context context, OnBoundsQueryListener listener) {
        this.context = context;
        this.listener = listener;
    }

    @Override
    protected Void doInBackground(Void... params) {
        Logger.log(ParseAllChefsTask.class, "Starting background download of all bounds data from Parse");

        // Create a parse query for the entire chefs table
        ParseQuery<ParseObject> query = ParseQuery.getQuery(ParseID.CLASS_BOUNDS);

        // Execute the query
        List<ParseObject> queryResult = null;
        try {
            queryResult = query.find();

        } catch (ParseException e) {
            Logger.err(ParseAllChefsTask.class, "An error was thrown during a Parse query for all bounds", e);

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

        Map<String, Bounds> map = new HashMap<String, Bounds>();

        // Convert all the parse objects to bound points
        for (ParseObject parseObject : queryResult) {

            String name = parseObject.getString(ParseID.F_BOUNDS_NAME);

            Bounds bounds = map.get(name);
            if (bounds == null) {
                bounds = new Bounds();
                bounds.setName(name);
                map.put(name, bounds);
            }

            BoundPoint point = new BoundPoint();
            point.setOrder(parseObject.getInt(ParseID.F_BOUNDS_ORDER));

            ParseGeoPoint pgPoint = parseObject.getParseGeoPoint(ParseID.F_BOUNDS_LOC);
            LatLng latLng = new LatLng(pgPoint.getLatitude(), pgPoint.getLongitude());
            point.setPoint(latLng);

            bounds.getBounds().add(point);

        }

        // Order each of the bounds lists in the map
        for (String key : map.keySet()) {

            Bounds bounds = map.get(key);

            Collections.sort(bounds.getBounds(), new Comparator<BoundPoint>() {
                public int compare(BoundPoint lhs, BoundPoint rhs) {
                    return lhs.getOrder() - rhs.getOrder();
                }
            });

        }

        // Alert the listener
        if (listener != null) {
            alert(map);
        }

        return null;
    }

    private void alert(final Map<String, Bounds> map) {

        Handler handler = new Handler(context.getMainLooper());

        handler.post(new Runnable() {
            public void run() {
                listener.onComplete(map);
            }
        });


    }

}




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