package com.mechinn.android.ouralliance.activity;
import android.app.Instrumentation;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GoogleApiAvailability;
import com.mechinn.android.ouralliance.Prefs;
import com.mechinn.android.ouralliance.R;
import com.mechinn.android.ouralliance.event.ActivityResult;
import de.greenrobot.event.EventBus;
import timber.log.Timber;
/**
* Created by mechinn on 4/3/14.
*/
public class OurAllianceActivity extends ActionBarActivity {
public static final String TAG = "OurAllianceActivity";
static final int REQUEST_CODE_RECOVER_PLAY_SERVICES = 1001;
protected AdView adView;
private AdRequest adRequest;
private AdListener adListener;
private Prefs prefs;
public Prefs getPrefs() {
return prefs;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Timber.d("request code: " + requestCode+" | result code: "+resultCode+" | data: "+data);
if(REQUEST_CODE_RECOVER_PLAY_SERVICES == requestCode) {
if (RESULT_OK == resultCode) {
adView.loadAd(adRequest);
} else {
adView.setVisibility(View.GONE);
}
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
prefs = new Prefs(this);
adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.build();
adListener = new AdListener() {
@Override
public void onAdClosed() {
super.onAdClosed();
}
@Override
public void onAdFailedToLoad(int errorCode) {
super.onAdFailedToLoad(errorCode);
adView.setVisibility(View.GONE);
}
@Override
public void onAdLeftApplication() {
super.onAdLeftApplication();
}
@Override
public void onAdOpened() {
super.onAdOpened();
}
@Override
public void onAdLoaded() {
super.onAdLoaded();
adView.setVisibility(View.VISIBLE);
}
};
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setLogo(R.mipmap.ic_launcher);
getSupportActionBar().setDisplayUseLogoEnabled(true);
}
@Override
protected void onStart() {
super.onStart();
adView = (AdView) this.findViewById(R.id.adView);
adView.setAdListener(adListener);
EventBus.getDefault().register(this);
}
@Override
protected void onResume() {
super.onResume();
showAd();
}
@Override
protected void onStop() {
EventBus.getDefault().unregister(this);
super.onStop();
}
public boolean showAd() {
if(getPrefs().isAdsDisabled()) {
adView.setVisibility(View.GONE);
return false;
}
// Look up the AdView as a resource and load a request.
int status = GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(this);
if (status != ConnectionResult.SUCCESS) {
if (!prefs.isGooglePlayServicesPrompted() && GoogleApiAvailability.getInstance().isUserResolvableError(status)) {
GoogleApiAvailability.getInstance().getErrorDialog(this, status, REQUEST_CODE_RECOVER_PLAY_SERVICES).show();
prefs.setGooglePlayServicesPrompted(true);
} else {
adView.setVisibility(View.GONE);
}
return false;
} else {
adView.loadAd(adRequest);
}
return true;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
this.getMenuInflater().inflate(R.menu.ouralliance, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case android.R.id.home:
if(this.getSupportFragmentManager().getBackStackEntryCount()>0) {
this.getSupportFragmentManager().popBackStack();
} else {
this.finish();
}
return true;
case R.id.analysis:
openActivity(AnalysisActivity.class);
return true;
case R.id.settings:
openActivity(SettingsActivity.class);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
protected void openActivity(Class activityClass) {
Intent intent = new Intent(this, activityClass);
startActivity(intent);
}
}