package org.wikipedia.activity;
import android.content.pm.ActivityInfo;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.ColorRes;
import android.support.annotation.Nullable;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import com.squareup.otto.Subscribe;
import org.wikipedia.WikipediaApp;
import org.wikipedia.events.WikipediaZeroEnterEvent;
import org.wikipedia.settings.Prefs;
public abstract class BaseActivity extends AppCompatActivity {
private boolean destroyed;
private EventBusMethods busMethods;
@Override public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
return true;
default:
return false;
}
}
protected void requestFullUserOrientation() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_USER);
}
}
@Override protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
busMethods = new EventBusMethods();
WikipediaApp.getInstance().getBus().register(busMethods);
}
@Override protected void onDestroy() {
WikipediaApp.getInstance().getBus().unregister(busMethods);
busMethods = null;
super.onDestroy();
destroyed = true;
}
protected void setStatusBarColor(@ColorRes int color) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setStatusBarColor(ContextCompat.getColor(this, color));
}
}
@Override public boolean isDestroyed() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
return super.isDestroyed();
}
return destroyed;
}
private class EventBusMethods {
// todo: reevaluate lifecycle. the bus is active when this activity is paused and we show ui
@Subscribe public void on(WikipediaZeroEnterEvent event) {
if (Prefs.isZeroTutorialEnabled()) {
Prefs.setZeroTutorialEnabled(false);
WikipediaApp.getInstance().getWikipediaZeroHandler()
.showZeroTutorialDialog(BaseActivity.this);
}
}
}
}