package com.bestapp.yikuair.officialaccount;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.bestapp.yikuair.MainApp;
import com.bestapp.yikuair.OfficialAccountBaseActivity;
import com.bestapp.yikuair.R;
import com.bestapp.yikuair.fragments.ChatActivity;
import com.bestapp.yikuair.fragments.ChatMsgEntity;
import com.bestapp.yikuair.fragments.ClientSocket;
import com.bestapp.yikuair.utils.CustomToast;
import com.bestapp.yikuair.utils.DataUtil;
import com.bestapp.yikuair.utils.MessageInfo;
import com.bestapp.yikuair.utils.UserInfo;
public class SubAccountInfoActivity extends OfficialAccountBaseActivity {
private ImageView ico;
private TextView name;
private TextView intro;
private Button sub;
private Button show;
private boolean isSub;
private Button sub_cancel;
private Button noparasitism;
private Button parasitism;
private ClientSocket mClientSocket;
private String toId;
private String name_string;
private int num;
// private AccountInfomation accountInfomation;
public static SubAccountInfoActivity instance;
private Dialog mDialog;
public void showRoundProcessDialog() {
if (mDialog != null && !mDialog.isShowing()) {
mDialog.show();
mDialog.setCanceledOnTouchOutside(false);
mDialog.setContentView(R.layout.loading_dialog);
}
}
public void closeLoadingDialog() {
if (mDialog != null && mDialog.isShowing()) {
mDialog.dismiss();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_subscriptioner_info);
initView();
mClientSocket = new ClientSocket(this);
instance = this;
mDialog = new AlertDialog.Builder(this).create();
}
private void initView() {
Intent intent = getIntent();
// accountInfomation = (AccountInfomation) intent
// .getParcelableExtra("AccountInfomation");
num = intent.getIntExtra("AccountInfomation", 0);
name_string = MessageInfo.OfficeAccountList_MINE.get(num).getRealname();
String intro_string = null;
try {
intro_string = new String(
DataUtil.decodeBase64(MessageInfo.OfficeAccountList_MINE
.get(num).getSignature()));
} catch (Exception e) {
e.printStackTrace();
}
toId = MessageInfo.OfficeAccountList_MINE.get(num).getId();
isSub = MessageInfo.OfficeAccountList_MINE.get(num).isSub();
LinearLayout view = (LinearLayout) findViewById(R.id.ico_view);
ico = new ImageView(this);
ico.setBackgroundResource(R.drawable.ico_boy);
OfficialAccountFragment.instance.asyncImageLoader.loadBitmap(ico,
MessageInfo.OfficeAccountList_MINE.get(num).getHeadurl(), 1);
ico.setImageResource(R.drawable.personal_photo_frame);
ico.setLayoutParams(new LayoutParams((int) (getWidth() / 5.3 * 2.3),
(int) (getWidth() / 5.3 * 2.3)));
view.addView(ico);
noparasitism = (Button) findViewById(R.id.sub_info_sub_noparasitism);
parasitism = (Button) findViewById(R.id.sub_info_sub_parasitism);
name = (TextView) findViewById(R.id.sub_info_name);
intro = (TextView) findViewById(R.id.sub_info_intro);
sub = (Button) findViewById(R.id.sub_info_sub);
sub_cancel = (Button) findViewById(R.id.sub_info_cancel);
show = (Button) findViewById(R.id.sub_info_show);
name.setText(name_string);
if (intro_string != null && !intro_string.equals("")) {
intro_string = getString(R.string.signature) + intro_string;
} else {
intro_string = getString(R.string.signature)
+ MessageInfo.OfficeAccountList_MINE.get(num).getRealname();
}
intro.setText(intro_string);
if (isSub) {
show.setVisibility(View.VISIBLE);
sub.setVisibility(View.GONE);
noparasitism.setVisibility(View.VISIBLE);
parasitism.setVisibility(View.GONE);
sub_cancel.setVisibility(View.VISIBLE);
} else {
show.setVisibility(View.INVISIBLE);
sub.setVisibility(View.VISIBLE);
sub_cancel.setVisibility(View.GONE);
noparasitism.setVisibility(View.GONE);
parasitism.setVisibility(View.VISIBLE);
}
}
private void AddOfficialAccountSuccess() {
OfficialAccountFragment.instance.mDBOpenHelper
.insert(MessageInfo.OfficeAccountList_MINE.get(num)
.toStringArray());
isSub = true;
CustomToast.showToast(SubAccountInfoActivity.this,
getString(R.string.after_success_subscription), 1000);
show.setVisibility(View.VISIBLE);
sub.setVisibility(View.GONE);
sub_cancel.setVisibility(View.VISIBLE);
String sub_id = MainApp.preference.getSettings(UserInfo.db_id, "");
if (sub_id.equals("")) {
sub_id = MessageInfo.OfficeAccountList_MINE.get(num).getId() + ";";
} else {
sub_id = sub_id
+ MessageInfo.OfficeAccountList_MINE.get(num).getId() + ";";
}
MainApp.preference.setSettings(UserInfo.db_id, sub_id);
}
private void CancelOfficialAccountSuccess() {
isSub = false;
OfficialAccountFragment.instance.mDBOpenHelper.delete(
MessageInfo.OfficeAccountList_MINE.get(num).getId(), "");
CustomToast.showToast(
SubAccountInfoActivity.this,
getString(R.string.after_cancel_subscription).replace("ta",
name_string), 1000);
show.setVisibility(View.INVISIBLE);
sub.setVisibility(View.VISIBLE);
sub_cancel.setVisibility(View.GONE);
String sub_id = MainApp.preference.getSettings(UserInfo.db_id, "");
if (!sub_id.equals("")) {
sub_id = sub_id.replaceFirst(MessageInfo.OfficeAccountList_MINE
.get(num).getId() + ";", "");
}
MainApp.preference.setSettings(UserInfo.db_id, sub_id);
}
private void changeView() {
if (isSub) {
CancelOfficialAccountSuccess();
} else {
AddOfficialAccountSuccess();
}
closeLoadingDialog();
}
public void sub_info_show(View view) {
Intent intent = new Intent(this, ChatActivity.class);
intent.putExtra("Id", MessageInfo.OfficeAccountList_MINE.get(num)
.getId());
intent.putExtra("name", MessageInfo.OfficeAccountList_MINE.get(num)
.getRealname());
intent.putExtra("type", MessageInfo.OFFICEACCOUNT);
startActivityForResult(intent, 1);
overridePendingTransition(R.anim.in_from_right, R.anim.out_of_left);
}
public void sub_info_sub(View view) {
showRoundProcessDialog();
mClientSocket.SendAddOfficialAccount(UserInfo.db_id, toId);
}
public void sub_info_cancel(View view) {
showRoundProcessDialog();
mClientSocket.SendCancelOfficialAccount(UserInfo.db_id, toId);
}
public void sub_info_back(View view) {
Intent intent = new Intent(this, SubActivity.class);
intent.putExtra("sub", isSub);
intent.putExtra("content", MessageInfo.OfficeAccountList_MINE.get(num)
.getInformation());
intent.putExtra("fullTime", MessageInfo.OfficeAccountList_MINE.get(num)
.getTime());
setResult(1, intent);
finish();
overridePendingTransition(R.anim.in_from_left, R.anim.out_of_right);
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (data == null)
return;
if (data.hasExtra("userId")) {
String content = data.getStringExtra("content");
String fullTime = data.getStringExtra("fullTime");
MessageInfo.OfficeAccountList_MINE.get(num).setInformation(content);
MessageInfo.OfficeAccountList_MINE.get(num).setTime(fullTime);
}
}
private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
ChatMsgEntity entity = (ChatMsgEntity) bundle
.getSerializable("message");
Log.e("fuck", "=========" + entity);
if (entity.getChatType() == 4) {
changeView();
} else {
closeLoadingDialog();
}
}
};
@Override
public void onPause() {
super.onPause();
unRegisterBoradcastReceiver();
}
@Override
protected void onResume() {
registerBoradcastReceiver();
super.onResume();
}
private void registerBoradcastReceiver() {
IntentFilter myIntentFilter = new IntentFilter();
myIntentFilter.addAction(MessageInfo.MessageBroadCastName);
registerReceiver(mBroadcastReceiver, myIntentFilter);
}
private void unRegisterBoradcastReceiver() {
unregisterReceiver(mBroadcastReceiver);
}
}