package com.netease.nim.uikit.team.activity;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import com.netease.nim.uikit.NimUIKit;
import com.netease.nim.uikit.R;
import com.netease.nim.uikit.cache.SimpleCallback;
import com.netease.nim.uikit.cache.TeamDataCache;
import com.netease.nim.uikit.common.activity.UI;
import com.netease.nim.uikit.model.ToolBarOptions;
import com.netease.nim.uikit.team.adapter.TeamMemberListAdapter;
import com.netease.nim.uikit.team.model.TeamExtras;
import com.netease.nim.uikit.team.model.TeamRequestCode;
import com.netease.nim.uikit.team.ui.DividerItemDecoration;
import com.netease.nimlib.sdk.team.model.Team;
import com.netease.nimlib.sdk.team.model.TeamMember;
import java.util.List;
/**
* Created by hzchenkang on 2016/12/2.
*/
public class TeamMemberListActivity extends UI {
private static final String EXTRA_ID = "EXTRA_ID";
private TeamMemberListAdapter adapter;
private String teamId;
public static void start(Context context, String tid) {
Intent intent = new Intent();
intent.putExtra(EXTRA_ID, tid);
intent.setClass(context, TeamMemberListActivity.class);
((Activity) context).startActivityForResult(intent, TeamRequestCode.REQUEST_TEAM_AIT_MEMBER);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.nim_team_member_list_layout);
parseIntent();
initViews();
initData();
}
private void initViews() {
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.member_list);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
adapter = new TeamMemberListAdapter(this);
recyclerView.setAdapter(adapter);
recyclerView.addItemDecoration(new DividerItemDecoration(
this, DividerItemDecoration.VERTICAL_LIST));
adapter.setListener(new TeamMemberListAdapter.ItemClickListener() {
@Override
public void onItemClick(TeamMember member) {
Intent intent = new Intent();
intent.putExtra(TeamExtras.RESULT_EXTRA_DATA, member);
setResult(Activity.RESULT_OK, intent);
finish();
}
});
ToolBarOptions options = new ToolBarOptions();
options.titleString = "选择提醒的人";
setToolBar(R.id.toolbar, options);
}
private void parseIntent() {
teamId = getIntent().getStringExtra(EXTRA_ID);
}
private void initData() {
Team t = TeamDataCache.getInstance().getTeamById(teamId);
if (t != null) {
updateTeamMember(t);
} else {
TeamDataCache.getInstance().fetchTeamById(teamId, new SimpleCallback<Team>() {
@Override
public void onResult(boolean success, Team result) {
if (success && result != null) {
updateTeamMember(result);
} else {
//
}
}
});
}
}
private void updateTeamMember(Team team) {
TeamDataCache.getInstance().fetchTeamMemberList(teamId, new SimpleCallback<List<TeamMember>>() {
@Override
public void onResult(boolean success, List<TeamMember> members) {
if (success && members != null && !members.isEmpty()) {
// filter self
for (TeamMember member : members) {
if (member.getAccount().equals(NimUIKit.getAccount())) {
members.remove(member);
break;
}
}
adapter.updateData(members);
}
}
});
}
}