Android Open Source - protohipster Hipster List Fragment






From Project

Back to project page protohipster.

License

The source code is released under:

Apache License

If you think the Android project protohipster 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.flipper83.protohipster.feed.view.ui;
/*  w ww.  j  a  va  2s  .c o m*/
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;

import com.flipper83.protohipster.R;
import com.flipper83.protohipster.feed.view.provider.FeedProvider;
import com.flipper83.protohipster.feed.view.viewmodel.FeedViewModel;
import com.flipper83.protohipster.feed.view.viewmodel.HipsterViewModel;
import com.flipper83.protohipster.uibase.base.BaseFragment;
import com.flipper83.protohipster.uibase.transformation.TransformationBuilder;
import com.squareup.picasso.Picasso;

import java.util.List;

import javax.inject.Inject;

import rx.Observer;
import rx.Subscription;
import rx.android.concurrency.AndroidSchedulers;
import rx.schedulers.Schedulers;

/**
 * A placeholder fragment containing a simple view.
 */
public class HipsterListFragment extends BaseFragment {


    @Inject
    FeedProvider feedProvider;

    @Inject
    Picasso picasso;
    @Inject
    TransformationBuilder transformationBuilder;
    ListView listviewFeed;
    private FeedViewModel feed;
    private FeedAdapter feedAdapter;
    private Subscription subscriptionFeed;
    private Subscription subscriptionLike;

    public HipsterListFragment() {

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_proto, container, false);

        mapGUI(rootView);

        hookActionListeners();

        return rootView;
    }

    private void hookActionListeners() {
        listviewFeed.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int pos, long id) {
                subscriptionLike = feed.likeHipster(pos)
                        .subscribeOn(Schedulers.newThread())
                        .observeOn(AndroidSchedulers.mainThread())
                        .subscribe(observerLike);

                refreshData();
            }
        });
    }

    @Override
    public void onResume() {
        super.onResume();

        feed = feedProvider.getFeed();

        refreshData();

        subscriptionFeed = feed.populateFeed()
                .subscribeOn(Schedulers.newThread())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(observerPopulateFeed);


    }

    @Override
    public void onPause() {
        super.onPause();
        if (subscriptionFeed != null) {
            subscriptionFeed.unsubscribe();
        }

        if (subscriptionLike != null) {
            subscriptionLike.unsubscribe();
        }
    }

    private void mapGUI(View rootView) {
        listviewFeed = (ListView) rootView.findViewById(R.id.lv_feed);

    }

    private void refreshData() {
        List<HipsterViewModel> hipsters = feed.getHipsters();

        if (feedAdapter == null) {
            feedAdapter = new FeedAdapter(getActivity(), hipsters, picasso, transformationBuilder);
            listviewFeed.setAdapter(feedAdapter);
        } else {
            feedAdapter.notifyDataSetChanged();
        }
    }

    private Observer<? super HipsterViewModel> observerLike = new Observer<HipsterViewModel>() {
        @Override
        public void onCompleted() {
        }

        @Override
        public void onError(Throwable e) {
            //TODO MANAGE ERRORS
        }

        @Override
        public void onNext(HipsterViewModel args) {
            refreshData();
        }
    };

    private Observer<? super List<HipsterViewModel>> observerPopulateFeed =
            new Observer<List<HipsterViewModel>>() {
                @Override
                public void onCompleted() {

                }

                @Override
                public void onError(Throwable e) {
                    //TODO MANAGE ERRORS
                }

                @Override
                public void onNext(List<HipsterViewModel> args) {
                    refreshData();
                }
            };

}




Java Source Code List

com.flipper83.protohipster.daggerUtils.ForApplication.java
com.flipper83.protohipster.feed.datasource.api.Api.java
com.flipper83.protohipster.feed.datasource.api.call.ApiCall.java
com.flipper83.protohipster.feed.datasource.api.call.parse.GetLikesCall.java
com.flipper83.protohipster.feed.datasource.api.call.parse.LikeUserCall.java
com.flipper83.protohipster.feed.datasource.api.call.parse.ParseLikeTableDefinitions.java
com.flipper83.protohipster.feed.datasource.api.call.parse.response.GetLikesResponse.java
com.flipper83.protohipster.feed.datasource.api.call.rest.ApiRestCall.java
com.flipper83.protohipster.feed.datasource.api.call.rest.GetFeedCall.java
com.flipper83.protohipster.feed.datasource.api.call.rest.request.GetFeedRequest.java
com.flipper83.protohipster.feed.datasource.api.call.rest.response.GetFeedResponse.java
com.flipper83.protohipster.feed.datasource.api.callback.ApiResponseCallback.java
com.flipper83.protohipster.feed.datasource.api.model.UserApiEntry.java
com.flipper83.protohipster.feed.datasource.api.model.UserApiName.java
com.flipper83.protohipster.feed.datasource.api.model.UserApi.java
com.flipper83.protohipster.feed.datasource.interfaces.LikeDataSource.java
com.flipper83.protohipster.feed.datasource.interfaces.UserDataSource.java
com.flipper83.protohipster.feed.datasource.interfaces.callbacks.GetCountLikesCallback.java
com.flipper83.protohipster.feed.datasource.interfaces.callbacks.GetMyLikersCallback.java
com.flipper83.protohipster.feed.datasource.interfaces.callbacks.GetUserCallback.java
com.flipper83.protohipster.feed.datasource.interfaces.callbacks.LikeUserCallback.java
com.flipper83.protohipster.feed.datasource.module.DataSourceModule.java
com.flipper83.protohipster.feed.datasource.module.LikeDataSourceParse.java
com.flipper83.protohipster.feed.datasource.module.UserDataSourceImp.java
com.flipper83.protohipster.feed.datasource.module.api.ApiParse.java
com.flipper83.protohipster.feed.datasource.module.api.ApiRest.java
com.flipper83.protohipster.feed.domain.boundaries.FeedBoundary.java
com.flipper83.protohipster.feed.domain.boundaries.HipsterBoundary.java
com.flipper83.protohipster.feed.domain.boundaries.VotesBoundary.java
com.flipper83.protohipster.feed.domain.gateway.Hipster.java
com.flipper83.protohipster.feed.domain.interactors.GetFeed.java
com.flipper83.protohipster.feed.domain.interactors.GetMyLikers.java
com.flipper83.protohipster.feed.domain.interactors.LikeHipster.java
com.flipper83.protohipster.feed.domain.mappers.HipsterMapperManual.java
com.flipper83.protohipster.feed.domain.mappers.HipsterMapper.java
com.flipper83.protohipster.feed.domain.module.DomainModule.java
com.flipper83.protohipster.feed.domain.module.GetFeedImpl.java
com.flipper83.protohipster.feed.domain.module.GetMyLikersImpl.java
com.flipper83.protohipster.feed.domain.module.LikeHipsterImp.java
com.flipper83.protohipster.feed.view.module.FeedViewModule.java
com.flipper83.protohipster.feed.view.provider.FeedProvider.java
com.flipper83.protohipster.feed.view.ui.FeedAdapter.java
com.flipper83.protohipster.feed.view.ui.HipsterListFragment.java
com.flipper83.protohipster.feed.view.ui.ProtoActivity.java
com.flipper83.protohipster.feed.view.viewmodel.FeedViewModel.java
com.flipper83.protohipster.feed.view.viewmodel.HipsterViewModel.java
com.flipper83.protohipster.feed.view.viewmodel.mapper.HipsterViewMapperManual.java
com.flipper83.protohipster.feed.view.viewmodel.mapper.HipsterViewMapper.java
com.flipper83.protohipster.globalutils.cache.Cache.java
com.flipper83.protohipster.globalutils.cache.implementations.MapKeysCache.java
com.flipper83.protohipster.globalutils.interfaces.Logger.java
com.flipper83.protohipster.globalutils.module.AndroidModule.java
com.flipper83.protohipster.globalutils.module.GlobalModule.java
com.flipper83.protohipster.globalutils.module.LoggerProvider.java
com.flipper83.protohipster.globalutils.module.TLog.java
com.flipper83.protohipster.globalutils.rating.RatingCalculatorFiveStars.java
com.flipper83.protohipster.globalutils.rating.RatingCalculator.java
com.flipper83.protohipster.uibase.app.ProtoApplication.java
com.flipper83.protohipster.uibase.base.BaseActivity.java
com.flipper83.protohipster.uibase.base.BaseFragment.java
com.flipper83.protohipster.uibase.transformation.TransformationBuilder.java
com.flipper83.protohipster.uibase.transformation.privates.RoundAvatarTransformation.java
com.flipper83.protohipster.uibase.transformation.privates.TransformationBuilderPicasso.java