/**
* Copyright (C) 2016 Hyphenate Inc. 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.fanxin.huangfangyi.ui;
import com.hyphenate.chat.EMClient;
import com.hyphenate.chat.EMGroup;
import com.hyphenate.chat.EMGroupInfo;
import com.fanxin.huangfangyi.R;
import com.hyphenate.exceptions.HyphenateException;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
public class GroupSimpleDetailActivity extends BaseActivity {
private Button btn_add_group;
private TextView tv_admin;
private TextView tv_name;
private TextView tv_introduction;
private EMGroup group;
private String groupid;
private ProgressBar progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.em_activity_group_simle_details);
tv_name = (TextView) findViewById(R.id.name);
tv_admin = (TextView) findViewById(R.id.tv_admin);
btn_add_group = (Button) findViewById(R.id.btn_add_to_group);
tv_introduction = (TextView) findViewById(R.id.tv_introduction);
progressBar = (ProgressBar) findViewById(R.id.loading);
EMGroupInfo groupInfo = (EMGroupInfo) getIntent().getSerializableExtra("groupinfo");
String groupname = null;
if(groupInfo != null){
groupname = groupInfo.getGroupName();
groupid = groupInfo.getGroupId();
}else{
group = PublicGroupsSeachActivity.searchedGroup;
if(group == null)
return;
groupname = group.getGroupName();
groupid = group.getGroupId();
}
tv_name.setText(groupname);
if(group != null){
showGroupDetail();
return;
}
new Thread(new Runnable() {
public void run() {
//get detail from server
try {
group = EMClient.getInstance().groupManager().getGroupFromServer(groupid);
runOnUiThread(new Runnable() {
public void run() {
showGroupDetail();
}
});
} catch (final HyphenateException e) {
e.printStackTrace();
final String st1 = getResources().getString(R.string.Failed_to_get_group_chat_information);
runOnUiThread(new Runnable() {
public void run() {
progressBar.setVisibility(View.INVISIBLE);
Toast.makeText(GroupSimpleDetailActivity.this, st1+e.getMessage(), 1).show();
}
});
}
}
}).start();
}
//join the group
public void addToGroup(View view){
String st1 = getResources().getString(R.string.Is_sending_a_request);
final String st2 = getResources().getString(R.string.Request_to_join);
final String st3 = getResources().getString(R.string.send_the_request_is);
final String st4 = getResources().getString(R.string.Join_the_group_chat);
final String st5 = getResources().getString(R.string.Failed_to_join_the_group_chat);
final ProgressDialog pd = new ProgressDialog(this);
pd.setMessage(st1);
pd.setCanceledOnTouchOutside(false);
pd.show();
new Thread(new Runnable() {
public void run() {
try {
//if group is membersOnly,you need apply to join
if(group.isMembersOnly()){
EMClient.getInstance().groupManager().applyJoinToGroup(groupid, st2);
}else{
EMClient.getInstance().groupManager().joinGroup(groupid);
}
runOnUiThread(new Runnable() {
public void run() {
pd.dismiss();
if(group.isMembersOnly())
Toast.makeText(GroupSimpleDetailActivity.this, st3, 0).show();
else
Toast.makeText(GroupSimpleDetailActivity.this, st4, 0).show();
btn_add_group.setEnabled(false);
}
});
} catch (final HyphenateException e) {
e.printStackTrace();
runOnUiThread(new Runnable() {
public void run() {
pd.dismiss();
Toast.makeText(GroupSimpleDetailActivity.this, st5+e.getMessage(), 0).show();
}
});
}
}
}).start();
}
private void showGroupDetail() {
progressBar.setVisibility(View.INVISIBLE);
//get group detail, and you are not in, then show join button
if(!group.getMembers().contains(EMClient.getInstance().getCurrentUser()))
btn_add_group.setEnabled(true);
tv_name.setText(group.getGroupName());
tv_admin.setText(group.getOwner());
tv_introduction.setText(group.getDescription());
}
public void back(View view){
finish();
}
}