package org.intermine.app.activity;
/*
* Copyright (C) 2015 InterMine
*
* This code may be freely distributed and modified under the
* terms of the GNU Lesser General Public Licence. This should
* be distributed with the code. See the LICENSE file for more
* information or http://www.gnu.org/copyleft/lesser.html.
*
*/
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import com.octo.android.robospice.SpiceManager;
import com.octo.android.robospice.request.SpiceRequest;
import com.octo.android.robospice.request.listener.RequestListener;
import org.intermine.app.InterMineApplication;
import org.intermine.app.R;
import org.intermine.app.dialog.AlertDialogFragment;
import org.intermine.app.storage.Storage;
import org.intermine.app.util.Views;
import javax.inject.Inject;
public abstract class BaseActivity extends ActionBarActivity implements
AlertDialogFragment.OnDialogDismissedListener {
public static final int UNAUTHORIZED_CODE = 0x3482;
@Inject
SpiceManager mSpiceManager;
@Inject
Storage mStorage;
// --------------------------------------------------------------------------------------------
// Lifecycle
// --------------------------------------------------------------------------------------------
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
InterMineApplication app = InterMineApplication.get(this);
app.inject(this);
}
@Override
protected void onStart() {
super.onStart();
mSpiceManager.start(this);
}
@Override
protected void onStop() {
try {
if (mSpiceManager.isStarted()) {
mSpiceManager.shouldStop();
}
} finally {
super.onStop();
}
}
// --------------------------------------------------------------------------------------------
// Callback Methods
// --------------------------------------------------------------------------------------------
@Override
public void onDialogDismissed(int code) {
}
// --------------------------------------------------------------------------------------------
// Helper Mehods
// --------------------------------------------------------------------------------------------
public void showStandardAlert(int messageId, int code) {
String message = getString(messageId);
showStandardAlert(null, message, code);
}
public void showStandardAlert(String message, int code) {
showStandardAlert(null, message, code);
}
public void showStandardAlert(String title, int messageId, int code) {
String message = getString(messageId);
showStandardAlert(null, message, code);
}
public void showStandardAlert(String title, String message, int code) {
Views.showDialogFragment(getFragmentManager(), AlertDialogFragment.newInstance(code, message));
}
public <T> void execute(SpiceRequest<T> request, RequestListener<T> listener) {
mSpiceManager.execute(request, listener);
}
public <T> void execute(SpiceRequest<T> request, Object requestCacheKey,
long cacheExpiryDuration, RequestListener<T> listener) {
mSpiceManager.execute(request, requestCacheKey, cacheExpiryDuration, listener);
}
public Storage getStorage() {
return mStorage;
}
}