package com.mopub.mobileads;
import android.app.Activity;
import android.graphics.drawable.StateListDrawable;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.RelativeLayout;
public abstract class BaseActivity extends Activity {
private static final float CLOSE_BUTTON_SIZE_DP = 50.0f;
private static final float CLOSE_BUTTON_PADDING_DP = 8.0f;
private ImageView mCloseButton;
private RelativeLayout mLayout;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
mLayout = new RelativeLayout(this);
final RelativeLayout.LayoutParams adViewLayout = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
adViewLayout.addRule(RelativeLayout.CENTER_IN_PARENT);
mLayout.addView(getAdView(), adViewLayout);
setContentView(mLayout);
showInterstitialCloseButton();
}
public abstract View getAdView();
protected void showInterstitialCloseButton() {
if (mCloseButton == null) {
StateListDrawable states = new StateListDrawable();
states.addState(new int[] {-android.R.attr.state_pressed},
getResources().getDrawable(R.drawable.close_button_normal));
states.addState(new int[] {android.R.attr.state_pressed},
getResources().getDrawable(R.drawable.close_button_pressed));
mCloseButton = new ImageButton(this);
mCloseButton.setImageDrawable(states);
mCloseButton.setBackgroundDrawable(null);
mCloseButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
finish();
}
});
}
final float scale = getResources().getDisplayMetrics().density;
int buttonSize = (int) (CLOSE_BUTTON_SIZE_DP * scale + 0.5f);
int buttonPadding = (int) (CLOSE_BUTTON_PADDING_DP * scale + 0.5f);
RelativeLayout.LayoutParams buttonLayout = new RelativeLayout.LayoutParams(
buttonSize, buttonSize);
buttonLayout.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
buttonLayout.setMargins(buttonPadding, 0, buttonPadding, 0);
mLayout.removeView(mCloseButton);
mLayout.addView(mCloseButton, buttonLayout);
}
protected void hideInterstitialCloseButton() {
mLayout.removeView(mCloseButton);
}
@Override
protected void onDestroy() {
mLayout.removeAllViews();
super.onDestroy();
}
}