campaign recycylerview transformed to viewpager
This commit is contained in:
@@ -5,10 +5,8 @@ import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.support.v4.view.ViewPager;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.afollestad.materialdialogs.MaterialDialog;
|
||||
@@ -24,7 +22,7 @@ import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import butterknife.OnClick;
|
||||
import ch.pizzaleu.android.R;
|
||||
import ch.pizzaleu.android.adapter.recycler.CampaignBannerRecyclerAdapter;
|
||||
import ch.pizzaleu.android.adapter.pager.CampaignBannerPagerAdapter;
|
||||
import ch.pizzaleu.android.api.ApiConstants;
|
||||
import ch.pizzaleu.android.api.ApiEndPoints;
|
||||
import ch.pizzaleu.android.api.ApiErrorUtils;
|
||||
@@ -41,21 +39,23 @@ import ch.pizzaleu.android.model.CampaignBannerModel;
|
||||
import ch.pizzaleu.android.model.CategoryModel;
|
||||
import ch.pizzaleu.android.model.StoreModel;
|
||||
import ch.pizzaleu.android.model.cart.CartInfoModel;
|
||||
import me.relex.circleindicator.CircleIndicator;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Callback;
|
||||
import retrofit2.Response;
|
||||
|
||||
public class SplashActivity extends BaseActivity {
|
||||
|
||||
@BindView(R.id.campaignBannerRecyclerView) RecyclerView campaignBannerRecyclerView;
|
||||
@BindView(R.id.postCodeTextView) TextView postCodeTextView;
|
||||
@BindView(R.id.campaignsViewPager) ViewPager campaignsViewPager;
|
||||
@BindView(R.id.viewPagerIndicator) CircleIndicator viewPagerIndicator;
|
||||
|
||||
@BindString(R.string.alert_invalid_post_code) String choosePostCodeAlert;
|
||||
|
||||
private ArrayList<StoreModel> storeList = new ArrayList<>();
|
||||
private ArrayList<CampaignBannerModel> campaignBannerList = new ArrayList<>();
|
||||
private StoreModel selectedStoreModel;
|
||||
private CampaignBannerRecyclerAdapter campaignBannerRecyclerAdapter;
|
||||
private CampaignBannerPagerAdapter campaignBannerPagerAdapter;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
@@ -63,7 +63,6 @@ public class SplashActivity extends BaseActivity {
|
||||
setContentView(R.layout.activity_splash);
|
||||
ButterKnife.bind(this);
|
||||
//DisplayHelper.changeStatusColor();
|
||||
initCampaignBannerRecyclerView();
|
||||
if(NetworkHelper.isNetworkAvailable()){
|
||||
registerNotificationTag();
|
||||
getStoreList();
|
||||
@@ -73,11 +72,11 @@ public class SplashActivity extends BaseActivity {
|
||||
}
|
||||
}
|
||||
|
||||
private void initCampaignBannerRecyclerView(){
|
||||
campaignBannerRecyclerAdapter = new CampaignBannerRecyclerAdapter(campaignBannerList);
|
||||
campaignBannerRecyclerView.setAdapter(campaignBannerRecyclerAdapter);
|
||||
LinearLayoutManager layoutManager = new LinearLayoutManager(BaseActivity.currentActivity);
|
||||
campaignBannerRecyclerView.setLayoutManager(layoutManager);
|
||||
private void initCampaignViewPager(){
|
||||
campaignBannerPagerAdapter = new CampaignBannerPagerAdapter(getSupportFragmentManager(), campaignBannerList);
|
||||
campaignsViewPager.setAdapter(campaignBannerPagerAdapter);
|
||||
viewPagerIndicator.setViewPager(campaignsViewPager);
|
||||
viewPagerIndicator.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
@OnClick({R.id.choosePostCodeLayout, R.id.choosePostCodeButton})
|
||||
@@ -144,7 +143,7 @@ public class SplashActivity extends BaseActivity {
|
||||
campaignBannerList.clear();
|
||||
campaignBannerList.addAll(response.body().getData());
|
||||
sortCampaignBannerList();
|
||||
campaignBannerRecyclerAdapter.notifyDataSetChanged();
|
||||
initCampaignViewPager();
|
||||
}
|
||||
else {
|
||||
ApiErrorUtils.parseError(response);
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
package ch.pizzaleu.android.adapter.pager;
|
||||
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentManager;
|
||||
import android.support.v4.app.FragmentPagerAdapter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import ch.pizzaleu.android.fragment.CampaignBannerFragment;
|
||||
import ch.pizzaleu.android.model.CampaignBannerModel;
|
||||
|
||||
public class CampaignBannerPagerAdapter extends FragmentPagerAdapter {
|
||||
|
||||
private ArrayList<CampaignBannerModel> campaignBannerList = new ArrayList<>();
|
||||
|
||||
public CampaignBannerPagerAdapter(FragmentManager fm,
|
||||
ArrayList<CampaignBannerModel> campaignBannerList) {
|
||||
super(fm);
|
||||
this.campaignBannerList = campaignBannerList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Fragment getItem(int position) {
|
||||
return CampaignBannerFragment.newInstance(campaignBannerList.get(position));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return campaignBannerList.size();
|
||||
}
|
||||
}
|
||||
@@ -1,107 +0,0 @@
|
||||
package ch.pizzaleu.android.adapter.recycler;
|
||||
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import ch.pizzaleu.android.R;
|
||||
import ch.pizzaleu.android.helper.ImageLoadHelper;
|
||||
import ch.pizzaleu.android.model.CampaignBannerModel;
|
||||
|
||||
public class CampaignBannerRecyclerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
|
||||
|
||||
private final int HOLDER_CAMPAIGN_BANNER = 0;
|
||||
private final int HOLDER_SPACE = 1;
|
||||
|
||||
private ArrayList<CampaignBannerModel> bannerList = new ArrayList<>();
|
||||
|
||||
public static class CampaignBannerHolder extends RecyclerView.ViewHolder {
|
||||
|
||||
@BindView(R.id.campaignBannerImageView)
|
||||
ImageView campaignBannerImageView;
|
||||
|
||||
public CampaignBannerHolder(final View view) {
|
||||
super(view);
|
||||
ButterKnife.bind(this, view);
|
||||
}
|
||||
}
|
||||
|
||||
public static class SpaceViewHolder extends RecyclerView.ViewHolder{
|
||||
public SpaceViewHolder(final View view) {
|
||||
super(view);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
|
||||
if(position == bannerList.size())
|
||||
return HOLDER_SPACE;
|
||||
|
||||
return HOLDER_CAMPAIGN_BANNER;
|
||||
}
|
||||
|
||||
public CampaignBannerRecyclerAdapter(ArrayList<CampaignBannerModel> bannerList){
|
||||
this.bannerList = bannerList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
|
||||
|
||||
RecyclerView.ViewHolder viewHolder;
|
||||
View view;
|
||||
LayoutInflater inflater = LayoutInflater.from(viewGroup.getContext());
|
||||
|
||||
switch (viewType){
|
||||
|
||||
case HOLDER_SPACE:
|
||||
view = inflater.inflate(R.layout.row_space, viewGroup, false);
|
||||
viewHolder = new SpaceViewHolder(view);
|
||||
break;
|
||||
|
||||
// HOLDER_CAMPAIGN_BANNER
|
||||
default:
|
||||
view = inflater.inflate(R.layout.row_campaign_banner, viewGroup, false);
|
||||
viewHolder = new CampaignBannerHolder(view);
|
||||
break;
|
||||
}
|
||||
|
||||
return viewHolder;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
|
||||
switch (holder.getItemViewType()){
|
||||
case HOLDER_CAMPAIGN_BANNER :
|
||||
CampaignBannerHolder campaignBannerHolder = (CampaignBannerHolder) holder;
|
||||
ImageLoadHelper.loadImage(campaignBannerHolder.campaignBannerImageView, bannerList.get(position).getImageUrl());
|
||||
//ImageLoadHelper.loadImage(campaignBannerHolder.campaignBannerImageView, getSampleImageUrl(position));
|
||||
break;
|
||||
|
||||
case HOLDER_SPACE :
|
||||
SpaceViewHolder spaceViewHolder = (SpaceViewHolder) holder;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return bannerList.size() + 1 ;
|
||||
}
|
||||
|
||||
private String getSampleImageUrl(int position){
|
||||
if(position % 2 == 0){
|
||||
return "http://pizzaleu.ddns.net/pizza/images/angebot3.png";
|
||||
}
|
||||
else {
|
||||
return "http://pizzaleu.ddns.net/pizza/images/Pizza_Leu-Pizzapass.png";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package ch.pizzaleu.android.fragment;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.widget.AppCompatImageView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import ch.pizzaleu.android.R;
|
||||
import ch.pizzaleu.android.helper.ImageLoadHelper;
|
||||
import ch.pizzaleu.android.model.CampaignBannerModel;
|
||||
|
||||
public class CampaignBannerFragment extends BaseFragment {
|
||||
|
||||
@BindView(R.id.campaignBannerImageView) AppCompatImageView campaignBannerImageView;
|
||||
|
||||
public static final String FRAGMENT_NAME = "campaignFragment";
|
||||
private CampaignBannerModel campaignBannerModel;
|
||||
|
||||
public CampaignBannerFragment() {}
|
||||
|
||||
public static CampaignBannerFragment newInstance(CampaignBannerModel campaignBannerModel) {
|
||||
Bundle args = new Bundle();
|
||||
args.putSerializable("campaignBannerModel", campaignBannerModel);
|
||||
CampaignBannerFragment fragment = new CampaignBannerFragment();
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
View view = inflater.inflate(R.layout.fragment_campaign_banner, container, false);
|
||||
ButterKnife.bind(this, view);
|
||||
getDataFromArguments();
|
||||
initViews();
|
||||
return view;
|
||||
}
|
||||
|
||||
private void getDataFromArguments(){
|
||||
campaignBannerModel = (CampaignBannerModel) getArguments().getSerializable("campaignBannerModel");
|
||||
}
|
||||
|
||||
private void initViews(){
|
||||
ImageLoadHelper.loadImage(campaignBannerImageView, campaignBannerModel.getImageUrl());
|
||||
}
|
||||
}
|
||||
@@ -3,7 +3,9 @@ package ch.pizzaleu.android.model;
|
||||
import com.google.gson.annotations.Expose;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
public class CampaignBannerModel {
|
||||
import java.io.Serializable;
|
||||
|
||||
public class CampaignBannerModel implements Serializable {
|
||||
|
||||
@Expose
|
||||
@SerializedName("title")
|
||||
|
||||
Reference in New Issue
Block a user