package org.commcare.activities;
import android.view.Menu;
import android.view.MenuItem;
import org.commcare.preferences.DevSessionRestorer;
import org.commcare.preferences.DeveloperPreferences;
import org.javarosa.core.services.locale.Localization;
/**
* Any CC activity from which we want the user to be able to save the current session via an item
* in the options menu should subclass this class
*
* @author amstone
*/
public abstract class SaveSessionCommCareActivity<R> extends SessionAwareCommCareActivity<R> {
private static final int MENU_SAVE_SESSION = Menu.FIRST;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(Menu.NONE, MENU_SAVE_SESSION, Menu.NONE, Localization.get("menu.save.session"));
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
menu.findItem(MENU_SAVE_SESSION).setVisible(DeveloperPreferences.isSessionSavingEnabled());
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == MENU_SAVE_SESSION) {
DevSessionRestorer.saveSessionToPrefs();
return true;
}
return super.onOptionsItemSelected(item);
}
}