package com.mcxiaoke.apptoolkit.app;
import android.os.Bundle;
import android.os.Looper;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.actionbarsherlock.view.MenuItem;
import com.actionbarsherlock.view.Window;
import com.mcxiaoke.apptoolkit.AppContext;
/**
* Project: DoubanShuo
* User: com.mcxiaoke
* Date: 13-5-30
* Time: 上午9:58
*/
public class UIBaseSupport extends SherlockFragmentActivity {
protected static final boolean DEBUG = AppContext.isDebug();
protected void debug(String message) {
AppContext.v(message);
}
protected void error(String message) {
AppContext.e(message);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
}
@Override
protected void onResume() {
super.onResume();
}
@Override
protected void onPause() {
super.onPause();
}
@Override
protected void onPostResume() {
super.onPostResume();
}
@Override
protected void onStop() {
super.onStop();
}
@Override
protected void onStart() {
super.onStart();
}
@Override
protected void onDestroy() {
super.onDestroy();
}
@Override
public void onBackPressed() {
super.onBackPressed();
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
}
@Override
protected void onTitleChanged(CharSequence title, int color) {
super.onTitleChanged(title, color);
}
@Override
public void onContentChanged() {
super.onContentChanged();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (android.R.id.home == item.getItemId()) {
onHomeClick();
return true;
}
return super.onOptionsItemSelected(item);
}
protected void onHomeClick() {
onBackPressed();
}
private boolean mRefreshing;
public boolean isRefreshing() {
return mRefreshing;
}
private void showActionBarProgress() {
ensureMainThread();
mRefreshing = true;
invalidateOptionsMenu();
}
private void hideActionBarProgress() {
ensureMainThread();
mRefreshing = false;
invalidateOptionsMenu();
}
protected void showProgressIndicator() {
setSupportProgressBarIndeterminateVisibility(true);
}
protected void hideProgressIndicator() {
setSupportProgressBarIndeterminateVisibility(false);
}
public void showProgress() {
if (hasRefreshAction()) {
showActionBarProgress();
} else {
showProgressIndicator();
}
}
public void hideProgress() {
if (hasRefreshAction()) {
hideActionBarProgress();
} else {
hideProgressIndicator();
}
}
protected void ensureMainThread() {
Looper looper = Looper.myLooper();
if (looper != null && looper != getMainLooper()) {
throw new IllegalStateException("Only call this from your main thread.");
}
}
protected boolean hasRefreshAction() {
return false;
}
}