package com.metis.commentpart.activity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.widget.Toast;
import com.metis.base.activity.TitleBarActivity;
import com.metis.base.manager.AccountManager;
import com.metis.base.manager.RequestCallback;
import com.metis.base.module.Footer;
import com.metis.base.module.User;
import com.metis.base.widget.SearchView;
import com.metis.base.widget.adapter.delegate.FooterDelegate;
import com.metis.commentpart.R;
import com.metis.commentpart.adapter.TeacherCbAdapter;
import com.metis.commentpart.adapter.TeacherDecoration;
import com.metis.commentpart.adapter.delegate.TeacherCbDelegate;
import com.metis.commentpart.manager.StatusManager;
import com.metis.commentpart.manager.TeacherManager;
import com.metis.commentpart.module.Teacher;
import com.metis.msnetworklib.contract.ReturnInfo;
import java.util.ArrayList;
import java.util.List;
public class TeacherSearchActivity extends TitleBarActivity implements SearchView.OnSearchListener{
private String mRequestId = null;
private RecyclerView mTeacherRv = null;
private SearchView mSearchView = null;
private TeacherCbAdapter mTeacherCbAdapter = null;
private Footer mFooter = null;
private FooterDelegate mFooterDelegate = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_teacher_search);
mSearchView = new SearchView(this);
mSearchView.setOnSearchListener(this);
getTitleBar().setCenterView(mSearchView);
mTeacherRv = (RecyclerView)findViewById(R.id.teacher_list_recycler_view);
mTeacherRv.setLayoutManager(new LinearLayoutManager(this));
mTeacherRv.addItemDecoration(new TeacherDecoration());
mTeacherCbAdapter = new TeacherCbAdapter(this);
mTeacherRv.setAdapter(mTeacherCbAdapter);
mFooter = new Footer(Footer.STATE_IDLE);
mFooterDelegate = new FooterDelegate(mFooter);
}
@Override
public boolean showAsUpEnable() {
return true;
}
@Override
public void onSearchHappened(String content) {
if (TextUtils.isEmpty(content)) {
Toast.makeText(this, R.string.toast_empty_search_content, Toast.LENGTH_SHORT).show();
return;
}
User me = AccountManager.getInstance(this).getMe();
if (me == null) {
com.metis.base.ActivityDispatcher.loginActivityWhenAlreadyIn(this);
return;
}
mTeacherCbAdapter.clearDataList();
mFooter.setState(Footer.STATE_WAITTING);
mTeacherCbAdapter.addDataItem(mFooterDelegate);
mTeacherCbAdapter.notifyDataSetChanged();
StatusManager.getInstance(this).getAssessTeacher(1, content, me.getCookie(), 1, new RequestCallback<List<Teacher>>() {
@Override
public void callback(ReturnInfo<List<Teacher>> returnInfo, String callbackId) {
mSearchView.requestInputFocus();
if (returnInfo.isSuccess()) {
List<Teacher> teacherList = returnInfo.getData();
if (teacherList != null && !teacherList.isEmpty()) {
final int length = teacherList.size();
List<TeacherCbDelegate> delegates = new ArrayList<TeacherCbDelegate>();
for (int i = 0; i < length; i++) {
TeacherCbDelegate delegate = new TeacherCbDelegate(teacherList.get(i));
delegate.setChecked(TeacherManager.getInstance(TeacherSearchActivity.this).hasSelected(delegate));
delegates.add(delegate);
}
mTeacherCbAdapter.addDataList(0, delegates);
}
}
mFooter.setState(mTeacherCbAdapter.getItemCount() > 1 ? Footer.STATE_SUCCESS : Footer.STATE_NO_MORE);
mTeacherCbAdapter.notifyDataSetChanged();
}
});
}
@Override
public void onSearchClear() {
mTeacherCbAdapter.clearDataList();
mFooter.setState(Footer.STATE_IDLE);
mTeacherCbAdapter.addDataItem(mFooterDelegate);
mTeacherCbAdapter.notifyDataSetChanged();
}
}