/** * Copyright (C) 2013-2014 EaseMob Technologies. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.hx.hxchat.activity; import java.util.ArrayList; import java.util.List; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.os.Bundle; import android.text.Editable; import android.text.TextPaint; import android.text.TextWatcher; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.inputmethod.InputMethodManager; import android.view.ViewGroup; import android.widget.AbsListView; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.FrameLayout; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.ListView; import android.widget.ProgressBar; import android.widget.RelativeLayout; import android.widget.TextView; import com.easemob.chat.EMGroup; import com.easemob.chat.EMGroupInfo; import com.easemob.chat.EMGroupManager; import com.easemob.exceptions.EaseMobException; import com.hx.hxchat.adapter.DefaultAdapter; import com.hx.hxchat.domain.GroupInfo; import com.hx.hxchat.domain.User; import com.hx.hxchat.holder.BaseHolder; import com.hx.hxchat.holder.GroupListInfoHolder; import com.hx.hxchat.holder.PublicGroupsListItemHolder; import com.hx.hxchat.holder.protocol.GroupsListProtocol; import com.hx.hxchat.holder.protocol.PublicGroupsListProtocol; import com.hx.hxchat.utils.LoadUserAvatar; import com.hx.hxchat.utils.UserUtils; import com.hx.hxchat.utils.LoadUserAvatar.ImageDownloadedCallBack; import com.mgw.member.R; import com.mgw.member.ottoEvent.BusProvider; import com.mgw.member.ui.widget.LoadingPage; import com.mgw.member.ui.widget.LoadingPage.LoadResult; import com.mgw.member.uitls.FileUtils; import com.mgw.member.uitls.LogUtils; import com.mgw.member.uitls.UIUtils; public class PublicGroupsActivity extends HXBaseActivity implements OnClickListener { public static final String TAG = PublicGroupsActivity.class.getSimpleName(); private ProgressBar pb; private ListView listView; private EditText query; private ImageButton clearSearch; private PublicGroupsAdapter adapter; // 各区域布局及其holder private FrameLayout fl_list; private GroupListInfoHolder GInfoHolder; private InputMethodManager inputMethodManager; private LoadingPage page; /** 初始化布局 */ protected void initViewBase() { BusProvider.getInstance().register(this); page = new LoadingPage(this) { @Override public LoadResult load() { return PublicGroupsActivity.this.load(); } @Override public View createLoadedView() { return PublicGroupsActivity.this.createLoadedView(); } @Override protected View createLoadingView() { // TODO Auto-generated method stub View view = UIUtils.inflate(R.layout.activity_public_groups); FrameLayout findViewById = (FrameLayout) view.findViewById(R.id.fl_content); View viewloading = super.createLoadingView(); view.findViewById(R.id.back).setOnClickListener(PublicGroupsActivity.this); findViewById.addView(viewloading); return view; } @Override protected View createErrorView() { View view = UIUtils.inflate(R.layout.activity_public_groups); FrameLayout findViewById = (FrameLayout) view.findViewById(R.id.fl_content); View viewloading = super.createErrorView(); view.findViewById(R.id.back).setOnClickListener(PublicGroupsActivity.this); findViewById.addView(viewloading); return view; } @Override protected View createEmptyView() { // TODO Auto-generated method stub View view = UIUtils.inflate(R.layout.activity_public_groups); FrameLayout findViewById = (FrameLayout) view.findViewById(R.id.fl_content); View viewloading = super.createEmptyView(); view.findViewById(R.id.back).setOnClickListener(PublicGroupsActivity.this); findViewById.addView(viewloading); return view; } }; setContentView(page); page.show(); } protected View createLoadedView() { View view = UIUtils.inflate(R.layout.activity_public_groups); listView = (ListView) view.findViewById(R.id.list); adapter = new PublicGroupsAdapter(this, 1, mDatas, listView); view.findViewById(R.id.back).setOnClickListener(this); listView.setAdapter(adapter); adapter.notifyDataSetChanged(); return view; } private class PublicGroupsAdapter extends DefaultAdapter<GroupInfo> { private Context context; public PublicGroupsAdapter(Context context, int resource, List<GroupInfo> datas, AbsListView listView) { super(context, resource, datas, listView); this.context=context; } @Override protected BaseHolder<GroupInfo> getHolder() { return new PublicGroupsListItemHolder(); } @Override public void onItemClickInner(int position) { EMGroupInfo info = new EMGroupInfo(getItem(position).getGroupId(), getItem(position).getGroupName()); context.startActivity(new Intent(PublicGroupsActivity.this, GroupSimpleDetailActivity.class).putExtra("groupinfo", info)); } } private List<GroupInfo> mDatas; protected LoadResult load() { PublicGroupsListProtocol protocol = new PublicGroupsListProtocol(); protocol.setPackageName(TAG); mDatas = protocol.load(0); if (mDatas == null) { return LoadResult.ERROR; } return LoadResult.SUCCEED; } private boolean isRes = false; @Override public void onResume() { super.onResume(); // if (isRes) { // load(); // GInfoHolder.setData(mDatas); // isRes = false; // } } // @Override // protected void onCreate(Bundle savedInstanceState) { // super.onCreate(savedInstanceState); // setContentView(R.layout.activity_public_groups); // // pb = (ProgressBar) findViewById(R.id.progressBar); // listView = (ListView) findViewById(R.id.list); // // new Thread(new Runnable() { // public void run() { // try { // // 从服务器获取所用公开的群聊 // final List<EMGroupInfo> groupsList = // EMGroupManager.getInstance().getAllPublicGroupsFromServer(); // // final List<EMGroup> group = new ArrayList<EMGroup>(); // for (EMGroupInfo dd : groupsList) { // // LogUtils.i(TAG, "groupsList:id" + dd.getGroupId()); // EMGroup groupFromServer = // EMGroupManager.getInstance().getGroupFromServer(dd.getGroupId()); // group.add(groupFromServer); // // } // // runOnUiThread(new Runnable() { // // public void run() { // pb.setVisibility(View.INVISIBLE); // adapter = new GroupsAdapter(PublicGroupsActivity.this, 1, group); // listView.setAdapter(adapter); // // // 设置item点击事件 // listView.setOnItemClickListener(new OnItemClickListener() { // // @Override // public void onItemClick(AdapterView<?> parent, View view, int position, // long id) { // // EMGroupInfo info = new // EMGroupInfo(adapter.getItem(position).getGroupId(), // adapter.getItem(position).getGroupName()); // // startActivity(new Intent(PublicGroupsActivity.this, // GroupSimpleDetailActivity.class).putExtra("groupinfo", info)); // } // }); // // // 搜索框 // query = (EditText) findViewById(R.id.query); // // 搜索框中清除button // clearSearch = (ImageButton) findViewById(R.id.search_clear); // query.addTextChangedListener(new TextWatcher() { // public void onTextChanged(CharSequence s, int start, int before, int // count) { // // adapter.getFilter().filter(s); // if (s.length() > 0) { // clearSearch.setVisibility(View.VISIBLE); // } else { // clearSearch.setVisibility(View.INVISIBLE); // } // } // // public void beforeTextChanged(CharSequence s, int start, int count, int // after) { // } // // public void afterTextChanged(Editable s) { // } // }); // clearSearch.setOnClickListener(new OnClickListener() { // @Override // public void onClick(View v) { // query.getText().clear(); // // } // }); // } // }); // } catch (EaseMobException e) { // e.printStackTrace(); // runOnUiThread(new Runnable() { // public void run() { // pb.setVisibility(View.INVISIBLE); // // } // }); // } // } // }).start(); // } @Override public void onClick(View v) { switch (v.getId()) { case R.id.back: finish(); break; default: break; } } }