package com.jdroid.android.sample.ui.google.admob;
import android.os.Bundle;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import com.google.android.gms.ads.AdSize;
import com.jdroid.android.fragment.FragmentHelper;
import com.jdroid.android.google.admob.AdViewType;
import com.jdroid.android.google.admob.helpers.BaseAdViewHelper;
import com.jdroid.android.google.admob.helpers.NativeExpressAdViewHelper;
import com.jdroid.android.recycler.AbstractRecyclerFragment;
import com.jdroid.android.recycler.RecyclerViewAdapter;
import com.jdroid.android.recycler.RecyclerViewType;
import com.jdroid.android.sample.R;
import com.jdroid.android.sample.application.AndroidAppContext;
import com.jdroid.android.sample.ui.recyclerview.SimpleRecyclerFragment;
import com.jdroid.android.sample.usecase.SampleItemsUseCase;
import com.jdroid.java.collections.Lists;
import java.util.List;
public class AdRecyclerFragment extends AbstractRecyclerFragment {
private SampleItemsUseCase sampleItemsUseCase;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sampleItemsUseCase = new SampleItemsUseCase();
}
@Override
public void onStart() {
super.onStart();
registerUseCase(sampleItemsUseCase, this, FragmentHelper.UseCaseTrigger.ONCE);
}
@Override
public void onStop() {
super.onStop();
unregisterUseCase(sampleItemsUseCase, this);
}
@Override
public void onFinishUseCase() {
executeOnUIThread(new Runnable() {
@Override
public void run() {
List<RecyclerViewType> recyclerViewTypes = Lists.<RecyclerViewType>newArrayList(new StringRecyclerViewType(), new MyAdViewType());
List<Object> items = Lists.newArrayList();
for(String each : sampleItemsUseCase.getItems()) {
items.add(each);
if (each.equals("three")) {
BaseAdViewHelper baseAdViewHelper = new NativeExpressAdViewHelper();
baseAdViewHelper.setAdSize(new AdSize(AdSize.FULL_WIDTH, 80));
baseAdViewHelper.setAdUnitId(AndroidAppContext.SAMPLE_SMALL_NATIVE_AD_EXPRESS_AD_UNIT_ID);
items.add(baseAdViewHelper);
}
}
setAdapter(new RecyclerViewAdapter(recyclerViewTypes, items));
dismissLoading();
}
});
}
public class StringRecyclerViewType extends RecyclerViewType<String, SimpleRecyclerFragment.StringViewHolder> {
@Override
protected Integer getLayoutResourceId() {
return R.layout.item;
}
@Override
protected Class<String> getItemClass() {
return String.class;
}
@Override
public RecyclerView.ViewHolder createViewHolderFromView(View view) {
SimpleRecyclerFragment.StringViewHolder viewHolder = new SimpleRecyclerFragment.StringViewHolder(view);
viewHolder.textView = findView(view, R.id.name);
return viewHolder;
}
@Override
public void fillHolderFromItem(String item, SimpleRecyclerFragment.StringViewHolder holder) {
holder.textView.setText(item);
}
@Override
public AbstractRecyclerFragment getAbstractRecyclerFragment() {
return AdRecyclerFragment.this;
}
@Override
public void onItemSelected(String item, View view) {
getAdapter().removeItem(item);
}
}
public class MyAdViewType extends AdViewType {
@Override
protected Integer getLayoutResourceId() {
return R.layout.native_ad_express;
}
@Override
public AbstractRecyclerFragment getAbstractRecyclerFragment() {
return AdRecyclerFragment.this;
}
}
}