package hillfly.wifichat.common;
import hillfly.wifichat.common.dialog.FlippingLoadingDialog;
import hillfly.wifichat.common.socket.udp.UDPMessageListener;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import android.app.Fragment;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
public abstract class BaseFragment extends Fragment {
protected UDPMessageListener mUDPListener;
protected View mView;
protected FlippingLoadingDialog mLoadingDialog;
protected List<AsyncTask<Void, Void, Boolean>> mAsyncTasks = new ArrayList<AsyncTask<Void, Void, Boolean>>();
public BaseFragment() {
super();
}
public BaseFragment(Context context) {
mUDPListener = UDPMessageListener.getInstance(context);
}
@Override
public View
onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
initViews();
initEvents();
init();
return mView;
}
@Override
public void onDestroy() {
clearAsyncTask();
mUDPListener = null;
mLoadingDialog = null;
super.onDestroy();
}
protected abstract void initViews();
protected abstract void initEvents();
protected abstract void init();
public View findViewById(int id) {
return mView.findViewById(id);
}
protected void putAsyncTask(AsyncTask<Void, Void, Boolean> asyncTask) {
mAsyncTasks.add(asyncTask.execute());
}
public void clearAsyncTask() {
Iterator<AsyncTask<Void, Void, Boolean>> iterator = mAsyncTasks.iterator();
while (iterator.hasNext()) {
AsyncTask<Void, Void, Boolean> asyncTask = iterator.next();
if (asyncTask != null && !asyncTask.isCancelled()) {
asyncTask.cancel(true);
}
}
mAsyncTasks.clear();
}
protected void showLoadingDialog(String text) {
if (mLoadingDialog == null) {
mLoadingDialog = new FlippingLoadingDialog(getActivity(), "请求提交中");
}
if (text != null) {
mLoadingDialog.setText(text);
}
mLoadingDialog.show();
}
protected void dismissLoadingDialog() {
if (mLoadingDialog.isShowing()) {
mLoadingDialog.dismiss();
}
}
/** 短暂显示Toast提示(来自res) **/
protected void showShortToast(int resId) {
Toast.makeText(getActivity(), getString(resId), Toast.LENGTH_SHORT).show();
}
protected void showShortToast(CharSequence charStr) {
Toast.makeText(getActivity(), charStr, Toast.LENGTH_SHORT).show();
}
/** 通过Class跳转界面 **/
protected void startActivity(Context context, Class<?> cls) {
Intent in = new Intent(context, cls);
startActivity(in);
}
}