/*
|
* Copyright (c) 2020 WildFireChat. All rights reserved.
|
*/
|
|
package cn.wildfire.chat.kit.user;
|
|
import android.content.Intent;
|
import android.view.Menu;
|
import android.view.MenuItem;
|
import android.widget.Toast;
|
|
import androidx.lifecycle.ViewModelProviders;
|
|
import cn.wildfire.chat.kit.R;
|
import cn.wildfire.chat.kit.WfcBaseActivity;
|
import cn.wildfire.chat.kit.contact.ContactViewModel;
|
import cn.wildfire.chat.kit.contact.newfriend.InviteFriendActivity;
|
import cn.wildfirechat.model.UserInfo;
|
import cn.wildfirechat.remote.ChatManager;
|
|
public class UserInfoActivity extends WfcBaseActivity {
|
private UserInfo userInfo;
|
|
@Override
|
protected int contentLayout() {
|
return R.layout.fragment_container_activity;
|
}
|
|
@Override
|
protected void afterViews() {
|
if (!isDarkTheme()) {
|
setTitleBackgroundResource(R.color.white, false);
|
}
|
userInfo = getIntent().getParcelableExtra("userInfo");
|
if (userInfo == null) {
|
finish();
|
} else {
|
getSupportFragmentManager().beginTransaction()
|
.replace(R.id.containerFrameLayout, UserInfoFragment.newInstance(userInfo))
|
.commit();
|
}
|
}
|
|
@Override
|
protected int menu() {
|
return R.menu.user_info;
|
}
|
|
@Override
|
protected void afterMenus(Menu menu) {
|
super.afterMenus(menu);
|
ContactViewModel contactViewModel = ViewModelProviders.of(this).get(ContactViewModel.class);
|
|
MenuItem itemDelete = menu.findItem(R.id.delete);
|
MenuItem itemAddFriend = menu.findItem(R.id.addFriend);
|
MenuItem itemAddBlacklist = menu.findItem(R.id.addBlacklist);
|
MenuItem itemRemoveBlacklist = menu.findItem(R.id.removeBlacklist);
|
MenuItem itemSetAlias = menu.findItem(R.id.setAlias);
|
MenuItem itemSetFav = menu.findItem(R.id.setFav);
|
MenuItem itemRemoveFav = menu.findItem(R.id.removeFav);
|
MenuItem itemSetName = menu.findItem(R.id.setName);
|
|
if (ChatManager.Instance().getUserId().equals(userInfo.uid)) {
|
itemAddBlacklist.setEnabled(false);
|
itemAddBlacklist.setVisible(false);
|
itemAddFriend.setEnabled(false);
|
itemAddFriend.setVisible(false);
|
itemDelete.setEnabled(false);
|
itemDelete.setVisible(false);
|
itemRemoveBlacklist.setEnabled(false);
|
itemRemoveBlacklist.setVisible(false);
|
itemSetAlias.setEnabled(false);
|
itemSetAlias.setVisible(false);
|
itemSetName.setEnabled(true);
|
itemSetName.setVisible(true);
|
} else {
|
if (contactViewModel.isFriend(userInfo.uid)) {
|
itemAddFriend.setEnabled(false);
|
itemAddFriend.setVisible(false);
|
itemDelete.setEnabled(true);
|
itemDelete.setVisible(true);
|
itemSetAlias.setEnabled(true);
|
itemSetAlias.setVisible(true);
|
} else {
|
itemAddFriend.setEnabled(true);
|
itemAddFriend.setVisible(true);
|
itemDelete.setEnabled(false);
|
itemDelete.setVisible(false);
|
}
|
|
if (contactViewModel.isBlacklisted(userInfo.uid)) {
|
itemAddBlacklist.setEnabled(false);
|
itemAddBlacklist.setVisible(false);
|
itemRemoveBlacklist.setEnabled(true);
|
itemRemoveBlacklist.setVisible(true);
|
} else {
|
itemAddBlacklist.setEnabled(true);
|
itemAddBlacklist.setVisible(true);
|
itemRemoveBlacklist.setEnabled(false);
|
itemRemoveBlacklist.setVisible(false);
|
}
|
|
if (contactViewModel.isFav(userInfo.uid)) {
|
itemSetFav.setEnabled(false);
|
itemSetFav.setVisible(false);
|
itemRemoveFav.setEnabled(true);
|
itemRemoveFav.setVisible(true);
|
} else {
|
itemSetFav.setEnabled(true);
|
itemSetFav.setVisible(true);
|
itemRemoveFav.setEnabled(false);
|
itemRemoveFav.setVisible(false);
|
}
|
}
|
}
|
|
// android:id="@+id/delete"
|
// android:id="@+id/addFriend"
|
// android:id="@+id/addBlacklist"
|
// android:id="@+id/removeBlacklist"
|
// android:id="@+id/setAlias"
|
|
@Override
|
public boolean onOptionsItemSelected(MenuItem item) {
|
ContactViewModel contactViewModel = ViewModelProviders.of(this).get(ContactViewModel.class);
|
|
if (item.getItemId() == R.id.delete) {
|
contactViewModel.deleteFriend(userInfo.uid).observe(
|
this, booleanOperateResult -> {
|
if (booleanOperateResult.isSuccess()) {
|
Intent intent = new Intent(getPackageName() + ".main");
|
startActivity(intent);
|
} else {
|
Toast.makeText(this, "delete friend error " + booleanOperateResult.getErrorCode(), Toast.LENGTH_SHORT).show();
|
}
|
}
|
);
|
return true;
|
} else if (item.getItemId() == R.id.addFriend) {
|
Intent intent = new Intent(this, InviteFriendActivity.class);
|
intent.putExtra("userInfo", userInfo);
|
startActivity(intent);
|
return true;
|
} else if (item.getItemId() == R.id.addBlacklist) {
|
contactViewModel.setBlacklist(userInfo.uid, true).observe(
|
this, booleanOperateResult -> {
|
if (booleanOperateResult.isSuccess()) {
|
Toast.makeText(this, "设置成功", Toast.LENGTH_SHORT).show();
|
invalidateOptionsMenu();
|
} else {
|
Toast.makeText(this, "add blacklist error " + booleanOperateResult.getErrorCode(), Toast.LENGTH_SHORT).show();
|
}
|
}
|
);
|
return true;
|
} else if (item.getItemId() == R.id.removeBlacklist) {
|
contactViewModel.setBlacklist(userInfo.uid, false).observe(
|
this, booleanOperateResult -> {
|
if (booleanOperateResult.isSuccess()) {
|
Toast.makeText(this, "设置成功", Toast.LENGTH_SHORT).show();
|
invalidateOptionsMenu();
|
} else {
|
Toast.makeText(this, "remove blacklist error " + booleanOperateResult.getErrorCode(), Toast.LENGTH_SHORT).show();
|
}
|
}
|
);
|
return true;
|
} else if (item.getItemId() == R.id.setAlias) {
|
Intent intent = new Intent(this, SetAliasActivity.class);
|
intent.putExtra("userId", userInfo.uid);
|
startActivity(intent);
|
return true;
|
} else if (item.getItemId() == R.id.setFav) {
|
contactViewModel.setFav(userInfo.uid, true).observe(
|
this, booleanOperateResult -> {
|
if (booleanOperateResult.isSuccess()) {
|
Toast.makeText(this, "设置成功", Toast.LENGTH_SHORT).show();
|
invalidateOptionsMenu();
|
} else {
|
Toast.makeText(this, "set fav error " + booleanOperateResult.getErrorCode(), Toast.LENGTH_SHORT).show();
|
}
|
}
|
);
|
return true;
|
|
} else if (item.getItemId() == R.id.removeFav) {
|
contactViewModel.setFav(userInfo.uid, false).observe(
|
this, booleanOperateResult -> {
|
if (booleanOperateResult.isSuccess()) {
|
Toast.makeText(this, "设置成功", Toast.LENGTH_SHORT).show();
|
invalidateOptionsMenu();
|
} else {
|
Toast.makeText(this, "remove fav error " + booleanOperateResult.getErrorCode(), Toast.LENGTH_SHORT).show();
|
}
|
}
|
);
|
return true;
|
} else if (item.getItemId() == R.id.setName) {
|
Intent intent = new Intent(this, SetNameActivity.class);
|
intent.putExtra("userInfo", userInfo);
|
startActivity(intent);
|
return true;
|
}
|
return super.onOptionsItemSelected(item);
|
}
|
|
@Override
|
protected void onDestroy() {
|
super.onDestroy();
|
}
|
}
|