package com.ladjzero.uzlee;
import android.content.Intent;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.ladjzero.hipda.Response;
import com.ladjzero.hipda.User;
import com.ladjzero.uzlee.utils.UilUtils;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.ArrayList;
import butterknife.Bind;
import butterknife.ButterKnife;
import butterknife.OnClick;
public class ActivityUser extends ActivityEasySlide {
LinearLayout mInfo;
View chat;
Button block;
User mUser;
int uid;
@Bind(R.id.user_info_img)
ImageView mImageView;
@Bind(R.id.name)
TextView mNameView;
@Bind(R.id.level)
TextView mLevelView;
@Bind(R.id.uid)
TextView mUid;
private LocalApi mLocalApi;
private AsyncTask mParseTask;
@OnClick(R.id.user_info_img)
public void onImageClick() {
if (mUser != null) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(UilUtils.getInstance().getFile(mUser.getImage())), "image/*");
startActivity(intent);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user);
ButterKnife.bind(this);
setSupportActionBar((Toolbar) findViewById(R.id.toolbar));
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
mInfo = (LinearLayout) findViewById(R.id.user_info_list);
chat = findViewById(R.id.chat);
block = (Button) findViewById(R.id.block);
chat.setVisibility(View.GONE);
block.setVisibility(View.GONE);
chat.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mUser != null) {
Intent intent = new Intent(ActivityUser.this, ActivityChat.class);
intent.putExtra("uid", mUser.getId());
intent.putExtra("name", mUser.getName());
startActivity(intent);
}
}
});
uid = getIntent().getIntExtra("uid", 0);
setProgressBarIndeterminateVisibility(true);
mLocalApi = App.getInstance().getCore().getLocalApi();
App.getInstance().getApi().getUser(uid, new Api.OnRespond() {
@Override
public void onRespond(Response res) {
if (res.isSuccess()) {
final User user = (User) res.getData();
ActivityUser.this.mUser = user;
if (user.getId() != mLocalApi.getUser().getId()) {
chat.setVisibility(View.VISIBLE);
block.setVisibility(View.VISIBLE);
}
ImageLoader.getInstance().displayImage(user.getImage(), mImageView);
mNameView.setText(user.getName());
setTitle(user.getName());
mNameView.getPaint().setFakeBoldText(true);
mLevelView.setText(user.getLevel());
mUid.setText("No." + user.getId());
for (String kv : propertyToString(user)) {
View view = getLayoutInflater().inflate(R.layout.user_info_row, null, false);
TextView key = (TextView) view.findViewById(R.id.key);
TextView value = (TextView) view.findViewById(R.id.value);
View more = view.findViewById(R.id.more);
String[] strings = kv.split(",");
key.setText(strings[0]);
value.setText(strings[1]);
if (strings[0].equals("发帖数量")) {
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(ActivityUser.this, ActivityUserThreads.class);
intent.putExtra("name", user.getName());
startActivity(intent);
}
});
more.setVisibility(View.VISIBLE);
} else {
more.setVisibility(View.INVISIBLE);
}
mInfo.addView(view);
}
} else {
showToast(res.getData().toString());
}
}
});
final String userName = getIntent().getStringExtra("name");
setTitle(userName);
updateBlockButton();
block.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
User banned = new User().setId(uid);
if (mLocalApi.getBanned().contains(banned)) {
mLocalApi.deleteBanned(banned);
} else {
mLocalApi.insertBanned(banned);
}
updateBlockButton();
}
});
}
private void updateBlockButton() {
if (mLocalApi.getBanned().contains(new User().setId(uid))) {
block.setText("移除黑名单");
block.setBackgroundResource(R.color.greenPrimary);
} else {
block.setText("加入黑名单");
block.setBackgroundResource(R.color.redPrimary);
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mParseTask != null && !mParseTask.isCancelled()) {
mParseTask.cancel(true);
}
}
public ArrayList<String> propertyToString(User user) {
ArrayList<String> strings = new ArrayList<>();
String qq = user.getQq();
String registerDate = user.getRegisterDateStr();
String totalThreads = user.getTotalThreads();
String points = user.getPoints();
if (qq != null && qq.length() > 0) strings.add("QQ," + qq);
strings.add("发帖数量," + totalThreads);
strings.add("积分," + points);
strings.add("注册日期," + registerDate);
return strings;
}
}