package com.marshalchen.ultimaterecyclerview.demo.admobdemo;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.util.DisplayMetrics;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.Spinner;
import android.widget.TextView;
import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdSize;
import com.google.android.gms.ads.AdView;
import com.marshalchen.ultimaterecyclerview.quickAdapter.AdmobAdapter;
import com.marshalchen.ultimaterecyclerview.URLogs;
import com.marshalchen.ultimaterecyclerview.UltimateRecyclerView;
import com.marshalchen.ultimaterecyclerview.UltimateRecyclerviewViewHolder;
import com.marshalchen.ultimaterecyclerview.demo.R;
import com.marshalchen.ultimaterecyclerview.demo.modules.SampleDataboxset;
import com.marshalchen.ultimaterecyclerview.quickAdapter.easyRegularAdapter;
import com.marshalchen.ultimaterecyclerview.quickAdapter.BiAdAdapterSwitcher;
import com.marshalchen.ultimaterecyclerview.ui.AdGoogleDisplaySupport;
import java.util.ArrayList;
import java.util.List;
/**
* Created by hesk on 4/8/15.
*/
public class TestAdvancedAdmobActivity extends AppCompatActivity {
private UltimateRecyclerView ultimateRecyclerView;
private boolean admob_test_mode = false;
private LinearLayoutManager linearLayoutManager;
private Toolbar toolbar;
private BiAdAdapterSwitcher bi_sw;
public static class adap extends AdmobAdapter<RelativeLayout, String, SingleItemHolder> {
public adap(RelativeLayout v, List<String> L) {
super(v, false, 13, L, null);
}
@Override
protected int getNormalLayoutResId() {
return getIdRV();
}
@Override
protected SingleItemHolder newViewHolder(View mview) {
return new SingleItemHolder(mview, VIEW_TYPES.NORMAL);
}
/**
* binding normal view holder
*
* @param holder holder class
* @param data data
* @param position position
*/
@Override
protected void withBindHolder(SingleItemHolder holder, String data, int position) {
bindthisInhere(holder, data, position);
}
}
public static class regular extends easyRegularAdapter<String, SingleItemHolder> {
public regular(List list) {
super(list);
}
@Override
protected int getNormalLayoutResId() {
return getIdRV();
}
@Override
protected SingleItemHolder newViewHolder(View view) {
return new SingleItemHolder(view, VIEW_TYPES.NORMAL);
}
@Override
protected void withBindHolder(SingleItemHolder holderm, String data, int position) {
bindthisInhere(holderm, data, position);
}
}
private static void bindthisInhere(SingleItemHolder d, String data, int pos) {
d.textViewSample.setText(data);
d.num.setText("@:" + pos);
}
private static int getIdRV() {
return R.layout.countable_rv_adp;
}
private RelativeLayout createadmob() {
AdSize adSize = AdSize.SMART_BANNER;
DisplayMetrics dm = getResources().getDisplayMetrics();
double density = dm.density * 160;
double x = Math.pow(dm.widthPixels / density, 2);
double y = Math.pow(dm.heightPixels / density, 2);
double screenInches = Math.sqrt(x + y);
if (screenInches > 8) { // > 728 X 90
adSize = AdSize.LEADERBOARD;
} else if (screenInches > 6) { // > 468 X 60
adSize = AdSize.MEDIUM_RECTANGLE;
} else { // > 320 X 50
adSize = AdSize.BANNER;
}
adSize = AdSize.MEDIUM_RECTANGLE;
final AdView mAdView = new AdView(this);
mAdView.setAdSize(adSize);
mAdView.setAdUnitId("ca-app-pub-3940256099942544/6300978111");
// Create an ad request.
AdRequest.Builder adRequestBuilder = new AdRequest.Builder();
if (admob_test_mode)
// Optionally populate the ad request builder.
adRequestBuilder.addTestDevice(AdRequest.DEVICE_ID_EMULATOR);
// Start loading the ad.
mAdView.loadAd(adRequestBuilder.build());
DisplayMetrics displaymetrics = new DisplayMetrics();
final RelativeLayout layout = AdGoogleDisplaySupport.initialSupport(this, displaymetrics);
final double ratio = AdGoogleDisplaySupport.ratioMatching(displaymetrics);
final int ad_height = AdGoogleDisplaySupport.defaultHeight(displaymetrics);
AdGoogleDisplaySupport.panelAdjust(mAdView, (int) (ad_height * ratio));
// get display info
/* G.display_w = displayMetrics.widthPixels;
G.display_h = displayMetrics.heightPixels;
G.scale = Math.max(G.display_w/1280.0f, G.display_h/800.0f);*/
mAdView.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
super.onAdLoaded();
int h = mAdView.getLayoutParams().height;
AdGoogleDisplaySupport.scale(mAdView, ratio);
AdGoogleDisplaySupport.panelAdjust(mAdView, (int) (h * ratio));
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
}
});
layout.addView(mAdView);
return layout;
}
/**
* example 1 implementation of the switch view
*/
private BiAdAdapterSwitcher imple_switch_view(final UltimateRecyclerView rv) {
final adap adp1 = new adap(createadmob(), new ArrayList<String>());
final regular adp2 = new regular(new ArrayList<String>());
final BiAdAdapterSwitcher switchable = new BiAdAdapterSwitcher(rv, adp2, adp1);
return switchable;
}
private Handler osh = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_loadmore);
toolbar = (Toolbar) findViewById(R.id.tool_bar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
ultimateRecyclerView = (UltimateRecyclerView) findViewById(R.id.ultimate_recycler_view);
ultimateRecyclerView.setHasFixedSize(false);
linearLayoutManager = new LinearLayoutManager(this);
ultimateRecyclerView.setLayoutManager(linearLayoutManager);
ultimateRecyclerView.setRecylerViewBackgroundColor(Color.parseColor("#ffffff"));
/**
* example 2 implementation enhancement of list view
*/
bi_sw = imple_switch_view(ultimateRecyclerView)
.onEnableRefresh(100)
.EnableAutoDisableLoadMoreByMaxPages()
.onEnableLoadmore(R.layout.custom_bottom_progressbar, 2000, new BiAdAdapterSwitcher.onLoadMore() {
@Override
public boolean request_start(int current_page_no, int itemsCount, int maxLastVisiblePosition, final BiAdAdapterSwitcher bi, boolean refresh) {
osh.postDelayed(new Runnable() {
@Override
public void run() {
bi.load_more_data(SampleDataboxset.newList(5));
//test the max pages
bi.setMaxPages(10);
}
}, 2000);
return true;
}
});
TextView b = (TextView) findViewById(R.id.del);
b.setText("with Ad");
TextView a = (TextView) findViewById(R.id.add);
a.setText("with out Ad");
a.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
/**
* example 2 implementation enhancement of list view
* without advertisement configurations
*/
bi_sw.init(false);
}
});
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
/**
* example 2 implementation enhancement of list view
* with advertisement configuration
*/
bi_sw.init(true);
}
});
setup_spinner();
}
private void remove_all_items() {
bi_sw.removeALL();
}
private void setup_spinner() {
final Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinner.setPrompt("test functions");
ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1);
spinnerAdapter.add("noth");
spinnerAdapter.add("remove all");
spinner.setAdapter(spinnerAdapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
// ultimateRecyclerView.setItemAnimator(Type.values()[position].getAnimator());
// ultimateRecyclerView.getItemAnimator().setAddDuration(300);
// ultimateRecyclerView.getItemAnimator().setRemoveDuration(300);
if (position == 1) {
remove_all_items();
spinner.setSelection(0, true);
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
}