package com.mfh.comna.api.ui;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.ListView;
import com.mfh.comna.api.adapter.SearchConversationAdapter;
import com.mfh.comna.api.helper.SharedPreferencesHelper;
import com.mfh.comna.api.widgets.CustomSearchView;
import com.mfh.comna.bizz.login.logic.MfhLoginService;
import com.mfh.comna.bizz.msg.dao.EmbSessionDao;
import com.mfh.comna.bizz.msg.entity.EmbSession;
import com.mfh.comna.bizz.msg.logic.EmbSessionService;
import com.mfh.comn.bean.PageInfo;
import com.mfh.comna.R;
import com.mfh.comna.comn.bean.KvBean;
import com.mfh.comna.comn.logic.ServiceFactory;
import com.mfh.comna.view.BaseFragmentActive;
import java.util.List;
/**
* 搜索·会话
*
* */
public class SearchActivity extends BaseFragmentActive {
private CustomSearchView searchView;
private Button btnCancel;
private ListView mListView;
private SearchConversationAdapter mAdapter;
private EmbSessionDao sessionDao;
private static final int MAX_PAGE_SIZE = 100;
@Override
public int getLayoutId() {
return R.layout.activity_search;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sessionDao = ServiceFactory.getService(EmbSessionService.class).getDao();
btnCancel = (Button) findViewById(R.id.button_cancel);
btnCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setResult(Activity.RESULT_CANCELED);
finish();
}
});
initSearchViewEX();
mListView = (ListView) findViewById(R.id.listView);
mAdapter = new SearchConversationAdapter();
mListView.setAdapter(mAdapter);
}
@Override
protected void onPause() {
super.onPause();
// DeviceUtils.hideSoftInput();
}
@Override
protected void onResume() {
super.onResume();
if(sessionDao == null){
sessionDao = ServiceFactory.getService(EmbSessionService.class).getDao();
}
}
/**
* 初始化搜索框
* */
private void initSearchViewEX(){
searchView = (CustomSearchView) findViewById(com.mfh.comna.R.id.searchBar);
searchView.setHint(com.mfh.comna.R.string.search_bar_hint_conversation);
searchView.setListener(new CustomSearchView.CustomSearchViewListener() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
doSearchWork(charSequence.toString());
}
@Override
public void afterTextChanged(Editable editable) {
}
@Override
public void doSearch(String queryText) {
//TODO
doSearchWork(queryText);
}
});
}
private void doSearchWork(String queryText){
if(TextUtils.isEmpty(queryText)){
mAdapter.clearData();
mAdapter.notifyDataSetChanged();
return;
}
PageInfo pageInfo = new PageInfo(0, MAX_PAGE_SIZE);
List<EmbSession> result = sessionDao.queryMySessions(MfhLoginService.get().getLoginName(),
queryText, pageInfo);
mAdapter.clearData();
mAdapter.addDataItems(KvBean.exportToKvsDirect(result));
mAdapter.notifyDataSetChanged();
}
}