package org.commcare.activities;
import android.os.Bundle;
import org.commcare.utils.SessionActivityRegistration;
import org.commcare.utils.SessionUnavailableException;
/**
* Manage redirection to login screen when session expiration occurs.
*
* @author Phillip Mates (pmates@dimagi.com)
*/
public abstract class SessionAwareCommCareActivity<R> extends CommCareActivity<R> {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
onCreateSessionSafe(savedInstanceState);
} catch (SessionUnavailableException e) {
SessionActivityRegistration.redirectToLogin(this);
}
}
protected void onCreateSessionSafe(Bundle savedInstanceState) {
}
@Override
protected void onResume() {
super.onResume();
boolean redirectedToLogin =
SessionActivityRegistration.handleOrListenForSessionExpiration(this);
if (!redirectedToLogin) {
onResumeSessionSafe();
}
}
protected void onResumeSessionSafe() {
}
@Override
protected void onPause() {
super.onPause();
SessionActivityRegistration.unregisterSessionExpirationReceiver(this);
}
}