package com.jasonrobinson.racer.ui.base;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Typeface;
import android.os.Bundle;
import android.support.v4.app.NavUtils;
import android.support.v4.app.TaskStackBuilder;
import android.text.Spannable;
import android.text.SpannableString;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import com.jasonrobinson.racer.R;
import com.jasonrobinson.racer.analytics.AnalyticsManager;
import com.jasonrobinson.racer.db.DatabaseManager;
import com.jasonrobinson.racer.module.GraphHolder;
import com.jasonrobinson.racer.ui.settings.SettingsActivity;
import com.jasonrobinson.racer.util.CustomTypefaceSpan;
import com.jasonrobinson.racer.util.RawTypeface;
import com.jasonrobinson.racer.util.SettingsManager;
import com.metova.slim.Slim;
import butterknife.ButterKnife;
public class BaseActivityImpl {
AnalyticsManager mAnalyticsManager;
SettingsManager mSettingsManager;
DatabaseManager mDatabaseManager;
private Activity mActivity;
private boolean mShowSettingsMenu;
public BaseActivityImpl(Activity activity, boolean showSettingsMenu) {
mActivity = activity;
mShowSettingsMenu = showSettingsMenu;
mAnalyticsManager = GraphHolder.getInstance().get(AnalyticsManager.class);
mSettingsManager = GraphHolder.getInstance().get(SettingsManager.class);
mDatabaseManager = GraphHolder.getInstance().get(DatabaseManager.class);
}
public void onCreate(Bundle savedInstanceState) {
View layout = Slim.createLayout(mActivity, mActivity);
if (layout != null) {
mActivity.setContentView(layout);
}
Slim.injectExtras(mActivity.getIntent().getExtras(), mActivity);
mActivity.overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);
mActivity.setTitle(mActivity.getTitle());
}
public void onStart() {
mAnalyticsManager.onStart(mActivity);
}
public void onStop() {
mAnalyticsManager.onStop(mActivity);
}
public void onContentChanged() {
ButterKnife.inject(mActivity);
}
public void finish() {
}
public boolean onCreateOptionsMenu(Menu menu) {
if (mShowSettingsMenu) {
mActivity.getMenuInflater().inflate(R.menu.settings_menu, menu);
return true;
}
return false;
}
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == android.R.id.home) {
Intent upIntent = NavUtils.getParentActivityIntent(mActivity);
if (NavUtils.shouldUpRecreateTask(mActivity, upIntent)) {
TaskStackBuilder.create(mActivity).addNextIntentWithParentStack(upIntent).startActivities();
} else {
NavUtils.navigateUpFromSameTask(mActivity);
}
} else if (id == R.id.menu_settings) {
Intent intent = new Intent(mActivity, SettingsActivity.class);
mActivity.startActivity(intent);
} else {
return false;
}
return true;
}
public AnalyticsManager getAnalyticsManager() {
return mAnalyticsManager;
}
public SettingsManager getSettingsManager() {
return mSettingsManager;
}
public DatabaseManager getdDatabaseManager() {
return mDatabaseManager;
}
public CharSequence formatTitleText(CharSequence title) {
Typeface typeface = RawTypeface.obtain(mActivity, R.raw.fontin_regular);
if (typeface != null) {
SpannableString s = new SpannableString(title);
s.setSpan(new CustomTypefaceSpan(typeface), 0, s.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
title = s;
}
return title;
}
}