package net.coding.program.common.ui;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.loopj.android.http.RequestParams;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import net.coding.program.FootUpdate;
import net.coding.program.R;
import net.coding.program.common.Global;
import net.coding.program.common.ImageLoadTool;
import net.coding.program.common.StartActivity;
import net.coding.program.common.network.NetworkCallback;
import net.coding.program.common.network.NetworkImpl;
import net.coding.program.common.network.UmengFragment;
import net.coding.program.common.util.SingleToast;
import net.coding.program.user.UserDetailActivity_;
import org.json.JSONException;
import org.json.JSONObject;
/**
* Created by cc191954 on 14-8-11.
* 封装了图片下载
* 封装了网络请求
*/
public class BaseFragment extends UmengFragment implements NetworkCallback, FootUpdate.LoadMore, StartActivity {
protected NetworkImpl networkImpl;
protected LayoutInflater mInflater;
protected FootUpdate mFootUpdate = new FootUpdate();
protected View.OnClickListener mOnClickUser = new View.OnClickListener() {
@Override
public void onClick(View v) {
String globalKey = (String) v.getTag();
Intent intent = new Intent(getActivity(), UserDetailActivity_.class);
intent.putExtra("globalKey", globalKey);
startActivity(intent);
}
};
private ImageLoadTool imageLoadTool = new ImageLoadTool();
private ProgressDialog mProgressDialog;
protected void showProgressBar(boolean show) {
showProgressBar(show, "");
}
protected void setProgressBarProgress() {
if (mProgressDialog == null) {
return;
}
mProgressDialog.setIndeterminate(false);
mProgressDialog.setProgress(30);
}
protected void showProgressBar(boolean show, String message) {
if (mProgressDialog == null) {
return;
}
if (show) {
mProgressDialog.setMessage(message);
mProgressDialog.show();
} else {
mProgressDialog.hide();
}
}
public AppCompatActivity getActionBarActivity() {
return (AppCompatActivity) getActivity();
}
protected void showProgressBar(int messageId) {
String message = getString(messageId);
showProgressBar(true, message);
}
protected boolean progressBarIsShowing() {
return mProgressDialog.isShowing();
}
protected ImageLoadTool getImageLoad() {
return imageLoadTool;
}
@Override
public void loadMore() {
}
protected void initSetting() {
networkImpl.initSetting();
}
public boolean isLoadingFirstPage(String tag) {
return networkImpl.isLoadingFirstPage(tag);
}
public boolean isLoadingLastPage(String tag) {
return networkImpl.isLoadingLastPage(tag);
}
@Override
public void onCreate(Bundle saveInstanceState) {
super.onCreate(saveInstanceState);
mInflater = LayoutInflater.from(getActivity());
networkImpl = new NetworkImpl(getActivity(), this);
mProgressDialog = new ProgressDialog(getActivity());
mProgressDialog.setIndeterminate(true);
mProgressDialog.setCancelable(false);
mSingleToast = new SingleToast(getActivity());
}
@Override
public void onDestroy() {
if (mProgressDialog != null) {
mProgressDialog.dismiss();
mProgressDialog = null;
}
super.onDestroy();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
initSetting();
return super.onCreateView(inflater, container, savedInstanceState);
}
@Override
public void parseJson(int code, JSONObject respanse, String tag, int pos, Object data) throws JSONException {
}
protected void postNetwork(String url, RequestParams params, final String tag) {
networkImpl.loadData(url, params, tag, -1, null, NetworkImpl.Request.Post);
}
protected void postNetwork(String url, RequestParams params, final String tag, int dataPos, Object data) {
networkImpl.loadData(url, params, tag, dataPos, data, NetworkImpl.Request.Post);
}
@Override
public void getNetwork(String url, final String tag) {
networkImpl.loadData(url, null, tag, -1, null, NetworkImpl.Request.Get);
}
public void getNetwork(String url) {
networkImpl.loadData(url, null, url, -1, null, NetworkImpl.Request.Get);
}
protected void getNetwork(String url, final String tag, int dataPos, Object data) {
networkImpl.loadData(url, null, tag, dataPos, data, NetworkImpl.Request.Get);
}
public void putNetwork(String url, final String tag) {
networkImpl.loadData(url, null, tag, -1, null, NetworkImpl.Request.Put);
}
protected void showDialog(String title, String msg, DialogInterface.OnClickListener clickOk) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
AlertDialog dialog = builder.setTitle(title)
.setMessage(msg)
.setPositiveButton("确定", clickOk)
.setNegativeButton("取消", null)
.show();
}
protected void showDialog(String[] titles, DialogInterface.OnClickListener clickOk) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setItems(titles, clickOk).show();
}
public void putNetwork(String url, final String tag, int dataPos, Object data) {
networkImpl.loadData(url, null, tag, dataPos, data, NetworkImpl.Request.Put);
}
public void putNetwork(String url, RequestParams params, final String tag, Object data) {
networkImpl.loadData(url, params, tag, -1, data, NetworkImpl.Request.Put);
}
public void deleteNetwork(String url, final String tag) {
networkImpl.loadData(url, null, tag, -1, null, NetworkImpl.Request.Delete);
}
public void deleteNetwork(String url, final String tag, int dataPos, Object data) {
networkImpl.loadData(url, null, tag, dataPos, data, NetworkImpl.Request.Delete);
}
public void deleteNetwork(String url, final String tag, Object data) {
networkImpl.loadData(url, null, tag, -1, data, NetworkImpl.Request.Delete);
}
protected void getNextPageNetwork(String url, final String tag) {
networkImpl.getNextPageNetwork(url, tag);
}
public void showErrorMsg(int code, JSONObject json) {
if (code == NetworkImpl.NETWORK_ERROR) {
showButtomToast(R.string.connect_service_fail);
} else {
String msg = Global.getErrorMsg(json);
if (!msg.isEmpty()) {
showButtomToast(msg);
}
}
}
SingleToast mSingleToast;
public void showButtomToast(String msg) {
if (!isResumed() || mSingleToast == null) {
return;
}
mSingleToast.showButtomToast(msg);
}
public void showMiddleToast(int id) {
if (!isResumed() || mSingleToast == null) {
return;
}
mSingleToast.showMiddleToast(id);
}
public void showMiddleToast(String msg) {
if (!isResumed() || mSingleToast == null) {
return;
}
mSingleToast.showMiddleToast(msg);
}
public void showButtomToast(int messageId) {
if (!isResumed() || mSingleToast == null) {
return;
}
mSingleToast.showButtomToast(messageId);
}
protected void iconfromNetwork(ImageView view, String url) {
imageLoadTool.loadImage(view, Global.makeSmallUrl(view, url));
}
protected void iconfromNetwork(ImageView view, String url, DisplayImageOptions options) {
imageLoadTool.loadImage(view, Global.makeSmallUrl(view, url), options);
}
protected void showDialogLoading() {
if (getActivity() instanceof BaseActivity) {
((BaseActivity) getActivity()).showDialogLoading();
}
}
protected void hideProgressDialog() {
if (getActivity() instanceof BaseActivity) {
((BaseActivity) getActivity()).hideProgressDialog();
}
}
}