package com.parttime.publish;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.CompoundButton;
import android.widget.RadioButton;
import com.parttime.common.head.ActivityHead;
import com.parttime.main.MainTabActivity;
import com.parttime.net.DefaultCallback;
import com.parttime.net.ErrorHandler;
import com.parttime.net.PublishRequest;
import com.parttime.publish.adapter.JobManageListAdapter;
import com.parttime.publish.vo.PublishActivityListVo;
import com.parttime.utils.CheckUtils;
import com.parttime.utils.IntentManager;
import com.parttime.widget.BaseXListView;
import com.qingmu.jianzhidaren.R;
import com.quark.jianzhidaren.BaseActivity;
import com.quark.utils.Logger;
import me.maxwin.view.XListView;
/**
* 兼职管理界面
* Created by wyw on 2015/7/26.
*/
public class JobManageActivity extends BaseActivity implements AdapterView.OnItemClickListener, CompoundButton.OnCheckedChangeListener, XListView.IXListViewListener {
public static final int PAGE_COUNT = 20;
private static final int REQUEST_JOB_DETAIL = 0x1000;
private BaseXListView mListViewMain;
private RadioButton mRadioRecruit;
private RadioButton mRadioAuditing;
private RadioButton mRadioUndercarriage;
private JobManageListAdapter mAdapterRecruit;
private JobManageListAdapter mAdapterAuditing;
private JobManageListAdapter mAdapterUndercarriag;
private JobManageListAdapter mCurrentAdapter;
private PublishActivityListVo mCurrentVo;
private int currentType;
private DefaultCallback mDefaultCallback = new DefaultCallback() {
@Override
public void success(Object obj) {
if (CheckUtils.isSafe(JobManageActivity.this)) {
showWait(false);
mCurrentVo = (PublishActivityListVo) obj;
if (mCurrentVo.type != null && mCurrentVo.type == currentType) {
runOnUiThread(new Runnable() {
@Override
public void run() {
if (mCurrentVo.pageNumber == 1) {
mCurrentAdapter.setAll(mCurrentVo.jobManageListVoList);
mListViewMain.updateRefreshTime();
} else {
mCurrentAdapter.addAll(mCurrentVo.jobManageListVoList);
}
mListViewMain.setLoadOver(mCurrentVo.jobManageListVoList.size(), PAGE_COUNT);
mListViewMain.stopRefresh();
mListViewMain.stopLoadMore();
}
});
}
}
}
@Override
public void failed(Object obj) {
showWait(false);
new ErrorHandler(JobManageActivity.this, obj);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_job_manage);
initControls();
bindListener();
bindData();
}
@Override
public void finish() {
IntentManager.goToMainTab(this, R.id.tv3);
super.finish();
}
@Override
protected void onResume() {
super.onResume();
}
private void bindData() {
mAdapterRecruit = new JobManageListAdapter(this);
mAdapterAuditing = new JobManageListAdapter(this);
mAdapterUndercarriag = new JobManageListAdapter(this);
mListViewMain.setAdapter(mAdapterRecruit);
mCurrentAdapter = mAdapterRecruit;
mRadioRecruit.setChecked(true);
refreshFirstPage();
}
private void bindListener() {
mListViewMain.setOnItemClickListener(this);
mRadioRecruit.setOnCheckedChangeListener(this);
mRadioAuditing.setOnCheckedChangeListener(this);
mRadioUndercarriage.setOnCheckedChangeListener(this);
mListViewMain.setXListViewListener(this);
}
private void initControls() {
mListViewMain = (BaseXListView) findViewById(R.id.listview_main);
mRadioRecruit = (RadioButton) findViewById(R.id.radio_recruit);
mRadioAuditing = (RadioButton) findViewById(R.id.radio_auditing);
mRadioUndercarriage = (RadioButton) findViewById(R.id.radio_undercarriage);
ActivityHead activityHead = new ActivityHead(this);
activityHead.setCenterTxt1(R.string.job_manage_title);
}
@Override
public void setBackButton() {
}
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
int position = i - 1;
if (position < mCurrentAdapter.getCount()) {
long jobId = mCurrentAdapter.getItemId(position);
IntentManager.openJobDetailActivity(this, REQUEST_JOB_DETAIL, (int) jobId, "");
} else {
showToast(R.string.error_date_and_refresh);
}
}
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
refreshFirstPage();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Logger.i("onActivityResult");
switch (requestCode) {
case REQUEST_JOB_DETAIL:
if (resultCode == RESULT_OK && data != null) {
boolean shouldRefresh = data.getBooleanExtra(JobDetailActivity.EXTRA_SHOULD_REFRESH, false);
if (shouldRefresh) {
refreshFirstPage();
}
}
break;
}
}
// 刷新第一页
private void refreshFirstPage() {
mCurrentVo = null;
showWait(true);
refreshListView();
}
private void loadMore() {
refreshListView();
}
private void refreshListView() {
int nextPageNumber = getNextPageNumber();
if (mRadioRecruit.isChecked()) {
// 招人中
currentType = PublishRequest.PUBLISH_ACTIVITY_LIST_TYPE_RECRUIT;
if (nextPageNumber == 1) {
mListViewMain.setAdapter(mAdapterRecruit);
mCurrentAdapter = mAdapterRecruit;
}
} else if (mRadioAuditing.isChecked()) {
// 待审核
currentType = PublishRequest.PUBLISH_ACTIVITY_LIST_TYPE_AUDITING;
if (nextPageNumber == 1) {
mListViewMain.setAdapter(mAdapterAuditing);
mCurrentAdapter = mAdapterAuditing;
}
} else {
// 已下架
currentType = PublishRequest.PUBLISH_ACTIVITY_LIST_TYPE_UNDERCARRIAGE;
if (nextPageNumber == 1) {
mListViewMain.setAdapter(mAdapterUndercarriag);
mCurrentAdapter = mAdapterUndercarriag;
}
}
if (nextPageNumber == 1) {
mCurrentAdapter.notifyDataSetChanged();
}
new PublishRequest().publishActivityList(nextPageNumber, PAGE_COUNT, currentType, queue, mDefaultCallback);
}
// 获取下一页页码
private int getNextPageNumber() {
return mCurrentVo == null ? 1 : mCurrentVo.pageNumber + 1;
}
@Override
public void onRefresh() {
refreshFirstPage();
}
@Override
public void onLoadMore() {
loadMore();
}
}