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 w w . j a v a 2 s . 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