Android Open Source - guerrillaprose Flickr Manager






From Project

Back to project page guerrillaprose.

License

The source code is released under:

GNU General Public License

If you think the Android project guerrillaprose 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 de.handler.mobile.android.bachelorapp.app.api.flickr;
/*from   www .j  a  v  a  2  s .  c  om*/
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;

import org.androidannotations.annotations.AfterInject;
import org.androidannotations.annotations.App;
import org.androidannotations.annotations.Background;
import org.androidannotations.annotations.Bean;
import org.androidannotations.annotations.EBean;
import org.androidannotations.annotations.rest.RestService;
import org.springframework.core.io.Resource;
import org.springframework.http.ResponseEntity;

import java.io.IOException;
import java.util.ArrayList;

import de.handler.mobile.android.bachelorapp.app.BachelorApp;
import de.handler.mobile.android.bachelorapp.app.api.RestServiceErrorHandler;
import de.handler.mobile.android.bachelorapp.app.api.flickr.flickrAuthor.FlickrAuthor;
import de.handler.mobile.android.bachelorapp.app.api.flickr.flickrJson.flickrPhotos.FlickrPhoto;
import de.handler.mobile.android.bachelorapp.app.controllers.Tag;
import de.handler.mobile.android.bachelorapp.app.interfaces.OnFlickrListener;

/**
 * Accumulates methods for the Flickr API
 * Flickr image retrieval is organized in 3 steps:
 * 1. get data (where to find the image, on which server, information about the author, etc.)
 * 2. get author for image
 * 3. get actual image
 */
@EBean
public class FlickrManager {

    @RestService
    FlickrDataRestService flickrDataRestService;

    @RestService
    FlickrPhotoRestService flickrPhotoRestService;

    @Bean
    RestServiceErrorHandler errorHandler;

    @App
    BachelorApp app;


    ArrayList<OnFlickrListener> listeners = new ArrayList<OnFlickrListener>();


    @AfterInject
    void prepareRestHandlers() {
        // Do not set the Context as errors from flickr servers are not
        // important enough for Toasts
        flickrDataRestService.setRestErrorHandler(errorHandler);
        flickrPhotoRestService.setRestErrorHandler(errorHandler);
    }

    public void addListener(OnFlickrListener listener) {
        listeners.add(listener);
    }

    /**
     * Get the information data for a tag
     */
    @Background
    public void getFlickrData(Tag tag) {
        app.setImageFromFlickr(true);
        FlickrJson data = flickrDataRestService.getFlickrImage(tag.getTag());
        for (OnFlickrListener listener : listeners) {
            listener.onFlickrDataReceived(data);
        }
    }


    /**
     * Get the photo data
     */
    @Background
    public void getFlickrPhoto(FlickrJson photoData, boolean isMobile) {
        Bitmap bitmap = null;
        if (photoData != null && photoData.getPhotos() != null) {

            for (FlickrPhoto photo : photoData.getPhotos().getPhoto()) {
                ResponseEntity<Resource> response;

                if (isMobile) {
                    // If only the mobile network is available take a small image
                    response = flickrPhotoRestService.getSmallFlickrPhoto(
                            photo.getFarm(),
                            photo.getServer(),
                            photo.getId(),
                            photo.getSecret());
                } else {
                    // If only wifi is available get a bigger one
                    response = flickrPhotoRestService.getFlickrPhoto(
                            photo.getFarm(),
                            photo.getServer(),
                            photo.getId(),
                            photo.getSecret());
                }

                try {
                    bitmap = BitmapFactory.decodeStream(response.getBody().getInputStream());

                    app.setTitleImage(bitmap);
                    app.setImageFromFlickr(true);
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (NullPointerException e) {
                    e.printStackTrace();
                }
            }
        }


        for (OnFlickrListener listener : listeners) {
            listener.onFlickrPhotoReceived(bitmap);
        }
    }


    /**
     * Get the author to the image
     */
    @Background
    public void getFlickrAuthor(FlickrJson photoData) {
        try {
            FlickrPhoto flickrPhoto = photoData.getPhotos().getPhoto()[0];
            FlickrAuthor author = flickrDataRestService.getAuthor(flickrPhoto.getOwner(), flickrPhoto.getId());

            String name = "";
            if (author.photo.owner.realname != null && !author.photo.owner.realname.equals("")) {
                name = author.photo.owner.realname;
            } else if (author.photo.owner.username != null) {
                name = author.photo.owner.username;
            }

            app.setTitleImageAuthor(name);
            for (OnFlickrListener listener : listeners) {
                listener.onFlickrAuthorReceived(photoData, name);
            }

        } catch (NullPointerException e) {
            e.printStackTrace();
            for (OnFlickrListener listener : listeners) {
                listener.onFlickrAuthorReceived(photoData, "");
            }
        } catch (ArrayIndexOutOfBoundsException e) {
            e.printStackTrace();
            for (OnFlickrListener listener : listeners) {
                listener.onFlickrAuthorReceived(photoData, "");
            }
        }
    }
}




Java Source Code List

de.handler.mobile.android.bachelorapp.app.BachelorApp.java
de.handler.mobile.android.bachelorapp.app.api.GuerrillaService.java
de.handler.mobile.android.bachelorapp.app.api.RestServiceErrorHandler.java
de.handler.mobile.android.bachelorapp.app.api.flickr.FlickrDataRestService.java
de.handler.mobile.android.bachelorapp.app.api.flickr.FlickrJson.java
de.handler.mobile.android.bachelorapp.app.api.flickr.FlickrManager.java
de.handler.mobile.android.bachelorapp.app.api.flickr.FlickrPhotoRestService.java
de.handler.mobile.android.bachelorapp.app.api.flickr.flickrAuthor.FlickrAuthor.java
de.handler.mobile.android.bachelorapp.app.api.flickr.flickrJson.FlickrPhotos.java
de.handler.mobile.android.bachelorapp.app.api.flickr.flickrJson.flickrPhotos.FlickrPhoto.java
de.handler.mobile.android.bachelorapp.app.controllers.MediaController.java
de.handler.mobile.android.bachelorapp.app.controllers.MediaTypeController.java
de.handler.mobile.android.bachelorapp.app.controllers.NetworkController.java
de.handler.mobile.android.bachelorapp.app.controllers.ProseController.java
de.handler.mobile.android.bachelorapp.app.controllers.Tag.java
de.handler.mobile.android.bachelorapp.app.controllers.UserController.java
de.handler.mobile.android.bachelorapp.app.database.DaoMaster.java
de.handler.mobile.android.bachelorapp.app.database.DaoSession.java
de.handler.mobile.android.bachelorapp.app.database.GuerrillaDao.java
de.handler.mobile.android.bachelorapp.app.database.GuerrillaProseDao.java
de.handler.mobile.android.bachelorapp.app.database.GuerrillaProse.java
de.handler.mobile.android.bachelorapp.app.database.Guerrilla.java
de.handler.mobile.android.bachelorapp.app.database.MediaDao.java
de.handler.mobile.android.bachelorapp.app.database.MediaTypeDao.java
de.handler.mobile.android.bachelorapp.app.database.MediaType.java
de.handler.mobile.android.bachelorapp.app.database.Media.java
de.handler.mobile.android.bachelorapp.app.helper.BitmapCache.java
de.handler.mobile.android.bachelorapp.app.helper.CustomNetworkImageView.java
de.handler.mobile.android.bachelorapp.app.interfaces.AppPreferences.java
de.handler.mobile.android.bachelorapp.app.interfaces.OnBackPressedListener.java
de.handler.mobile.android.bachelorapp.app.interfaces.OnFlickrListener.java
de.handler.mobile.android.bachelorapp.app.interfaces.OnLocationListener.java
de.handler.mobile.android.bachelorapp.app.interfaces.OnMediaListener.java
de.handler.mobile.android.bachelorapp.app.interfaces.OnMediaTypeListener.java
de.handler.mobile.android.bachelorapp.app.interfaces.OnProseListener.java
de.handler.mobile.android.bachelorapp.app.interfaces.OnUserListener.java
de.handler.mobile.android.bachelorapp.app.location.LocationHandler.java
de.handler.mobile.android.bachelorapp.app.security.Encryption.java
de.handler.mobile.android.bachelorapp.app.ui.AuthenticatorActivity.java
de.handler.mobile.android.bachelorapp.app.ui.BaseActivity.java
de.handler.mobile.android.bachelorapp.app.ui.BigPictureActivity.java
de.handler.mobile.android.bachelorapp.app.ui.MainActivity.java
de.handler.mobile.android.bachelorapp.app.ui.ProseGalleryActivity.java
de.handler.mobile.android.bachelorapp.app.ui.SplashActivity.java
de.handler.mobile.android.bachelorapp.app.ui.WebActivity.java
de.handler.mobile.android.bachelorapp.app.ui.adapters.ImageTagAdapter.java
de.handler.mobile.android.bachelorapp.app.ui.adapters.NavigationDrawerAdapter.java
de.handler.mobile.android.bachelorapp.app.ui.adapters.ProseListAdapter.java
de.handler.mobile.android.bachelorapp.app.ui.adapters.SectionsPagerAdapter.java
de.handler.mobile.android.bachelorapp.app.ui.dialogs.DeleteDialogFragment.java
de.handler.mobile.android.bachelorapp.app.ui.dialogs.ProseDialogFragment.java
de.handler.mobile.android.bachelorapp.app.ui.dialogs.VerifyUserDialogFrament.java
de.handler.mobile.android.bachelorapp.app.ui.fragments.BaseGridFragment.java
de.handler.mobile.android.bachelorapp.app.ui.fragments.ContentFragment.java
de.handler.mobile.android.bachelorapp.app.ui.fragments.ContentListFragment.java
de.handler.mobile.android.bachelorapp.app.ui.fragments.ContentTagFragment.java
de.handler.mobile.android.bachelorapp.app.ui.fragments.GalleryContainerFragment.java
de.handler.mobile.android.bachelorapp.app.ui.fragments.GalleryContentFragment.java
de.handler.mobile.android.bachelorapp.app.ui.fragments.GalleryTitleFragment.java
de.handler.mobile.android.bachelorapp.app.ui.fragments.HomeFragment.java
de.handler.mobile.android.bachelorapp.app.ui.fragments.ProseFragment.java
de.handler.mobile.android.bachelorapp.app.ui.fragments.TitleFragment.java