package com.anthony.app.module.github; import android.content.Context; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import com.anthony.app.R; import com.anthony.app.dagger.DaggerActivity; import com.anthony.app.dagger.DataRepository; import com.anthony.app.dagger.component.ActivityComponent; import com.anthony.library.base.WebviewDetailsActivity; import com.anthony.library.data.net.HttpSubscriber; import com.anthony.rvhelper.adapter.CommonAdapter; import com.anthony.rvhelper.base.ViewHolder; import com.anthony.rvhelper.divider.RecycleViewDivider; import java.util.List; import javax.inject.Inject; import butterknife.BindView; import rx.Subscription; /** * Created by Anthony on 2016/10/13. * Class Note: * load github user list from Github API */ public class GithubActivity extends DaggerActivity { @BindView(R.id.recycleView) RecyclerView recycleView; @Inject DataRepository mDataManager; private UserItemAdapter mUserItemAdapter; @Override protected int getContentViewID() { return R.layout.prj_rev_list; } @Override protected void initViewsAndEvents(Bundle savedInstanceState) { //recyclerView mUserItemAdapter = new UserItemAdapter(mContext); recycleView.addItemDecoration(new RecycleViewDivider(mContext, LinearLayoutManager.VERTICAL)); recycleView.setLayoutManager(new LinearLayoutManager(mContext)); recycleView.setAdapter(mUserItemAdapter); //load data ,what we get is String // mSubscription = mDataManager.loadUserFollowingString("CameloeAnthony") // .subscribe(new HttpSubscriber<String>() { // @Override // public void onNext(String s) { // Timber.i("response String is "+s); // } // }); // load data,what we get is List<GithubUser> Subscription subscription = mDataManager.loadUserFollowingList("CameloeAnthony") .subscribe(new HttpSubscriber<List<GithubUser>>() { @Override public void onNext(List<GithubUser> users) { mUserItemAdapter.addDataAll(users); mUserItemAdapter.notifyDataSetChanged(); } }); mSubscriptions.add(subscription); } @Override protected void injectDagger(ActivityComponent activityComponent) { activityComponent.inject(this); } public class UserItemAdapter extends CommonAdapter<GithubUser> { public UserItemAdapter(Context context) { super(context, R.layout.prj_icon_with_title); } @Override protected void convert(ViewHolder holder, final GithubUser user, int position) { holder.setImageUrl(R.id.item_header_icon, user.getAvatarUrl()); holder.setText(R.id.item_tv_title, user.getLogin()); //load webview when click holder.getConvertView().setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { WebviewDetailsActivity.start(mContext, user.getLogin(), user.getHtmlUrl()); } }); } } }