package cn.rongcloud.im.ui.fragment;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.jrmf360.rylib.JrmfClient;
import cn.rongcloud.im.App;
import cn.rongcloud.im.R;
import cn.rongcloud.im.SealConst;
import cn.rongcloud.im.SealUserInfoManager;
import cn.rongcloud.im.server.SealAction;
import cn.rongcloud.im.server.broadcast.BroadcastManager;
import cn.rongcloud.im.server.network.async.AsyncTaskManager;
import cn.rongcloud.im.server.network.async.OnDataListener;
import cn.rongcloud.im.server.network.http.HttpException;
import cn.rongcloud.im.server.response.VersionResponse;
import cn.rongcloud.im.server.widget.SelectableRoundedImageView;
import cn.rongcloud.im.ui.activity.AboutRongCloudActivity;
import cn.rongcloud.im.ui.activity.AccountSettingActivity;
import cn.rongcloud.im.ui.activity.MyAccountActivity;
import io.rong.imageloader.core.ImageLoader;
import io.rong.imkit.RongIM;
import io.rong.imlib.model.CSCustomServiceInfo;
import io.rong.imlib.model.UserInfo;
/**
* Created by AMing on 16/6/21.
* Company RongCloud
*/
public class MineFragment extends Fragment implements View.OnClickListener {
private static final int COMPARE_VERSION = 54;
public static final String SHOW_RED = "SHOW_RED";
private SharedPreferences sp;
private SelectableRoundedImageView imageView;
private TextView mName;
private ImageView mNewVersionView;
private boolean isHasNewVersion;
private String url;
private boolean isDebug;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View mView = inflater.inflate(R.layout.seal_mine_fragment, container, false);
isDebug = getContext().getSharedPreferences("config", getContext().MODE_PRIVATE).getBoolean("isDebug", false);
initViews(mView);
initData();
BroadcastManager.getInstance(getActivity()).addAction(SealConst.CHANGEINFO, new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
updateUserInfo();
}
});
compareVersion();
return mView;
}
private void compareVersion() {
AsyncTaskManager.getInstance(getActivity()).request(COMPARE_VERSION, new OnDataListener() {
@Override
public Object doInBackground(int requestCode, String parameter) throws HttpException {
return new SealAction(getActivity()).getSealTalkVersion();
}
@Override
public void onSuccess(int requestCode, Object result) {
if (result != null) {
VersionResponse response = (VersionResponse) result;
String[] s = response.getAndroid().getVersion().split("\\.");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.length; i++) {
sb.append(s[i]);
}
String[] s2 = SealConst.SEALTALKVERSION.split("\\.");
StringBuilder sb2 = new StringBuilder();
for (int i = 0; i < s2.length; i++) {
sb2.append(s2[i]);
}
if (Integer.parseInt(sb.toString()) > Integer.parseInt(sb2.toString())) {
mNewVersionView.setVisibility(View.VISIBLE);
url = response.getAndroid().getUrl();
isHasNewVersion = true;
BroadcastManager.getInstance(getActivity()).sendBroadcast(SHOW_RED);
}
}
}
@Override
public void onFailure(int requestCode, int state, Object result) {
}
});
}
private void initData() {
sp = getActivity().getSharedPreferences("config", Context.MODE_PRIVATE);
updateUserInfo();
}
private void initViews(View mView) {
mNewVersionView = (ImageView) mView.findViewById(R.id.new_version_icon);
imageView = (SelectableRoundedImageView) mView.findViewById(R.id.mine_header);
mName = (TextView) mView.findViewById(R.id.mine_name);
LinearLayout mUserProfile = (LinearLayout) mView.findViewById(R.id.start_user_profile);
LinearLayout mMineSetting = (LinearLayout) mView.findViewById(R.id.mine_setting);
LinearLayout mMineService = (LinearLayout) mView.findViewById(R.id.mine_service);
LinearLayout mMineXN = (LinearLayout) mView.findViewById(R.id.mine_xiaoneng);
LinearLayout mMineAbout = (LinearLayout) mView.findViewById(R.id.mine_about);
if(isDebug){
mMineXN.setVisibility(View.VISIBLE);
}else{
mMineXN.setVisibility(View.GONE);
}
mUserProfile.setOnClickListener(this);
mMineSetting.setOnClickListener(this);
mMineService.setOnClickListener(this);
mMineAbout.setOnClickListener(this);
mMineXN.setOnClickListener(this);
mView.findViewById(R.id.my_wallet).setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.start_user_profile:
startActivity(new Intent(getActivity(), MyAccountActivity.class));
break;
case R.id.mine_setting:
startActivity(new Intent(getActivity(), AccountSettingActivity.class));
break;
case R.id.mine_service:
CSCustomServiceInfo.Builder builder = new CSCustomServiceInfo.Builder();
builder.province("北京");
builder.city("北京");
RongIM.getInstance().startCustomerServiceChat(getActivity(), "KEFU146001495753714", "在线客服", builder.build());
// KEFU146001495753714 正式 KEFU145930951497220 测试 小能: zf_1000_1481459114694 zf_1000_1480591492399
break;
case R.id.mine_xiaoneng:
CSCustomServiceInfo.Builder builder1 = new CSCustomServiceInfo.Builder();
builder1.province("北京");
builder1.city("北京");
RongIM.getInstance().startCustomerServiceChat(getActivity(), "zf_1000_1481459114694", "在线客服", builder1.build());
break;
case R.id.mine_about:
mNewVersionView.setVisibility(View.GONE);
Intent intent = new Intent(getActivity(), AboutRongCloudActivity.class);
intent.putExtra("isHasNewVersion", isHasNewVersion);
if (!TextUtils.isEmpty(url)) {
intent.putExtra("url", url);
}
startActivity(intent);
break;
case R.id.my_wallet:
JrmfClient.intentWallet(getActivity());
break;
}
}
@Override
public void onDestroy() {
super.onDestroy();
}
private void updateUserInfo() {
String userId = sp.getString(SealConst.SEALTALK_LOGIN_ID, "");
String username = sp.getString(SealConst.SEALTALK_LOGIN_NAME, "");
String userPortrait = sp.getString(SealConst.SEALTALK_LOGING_PORTRAIT, "");
mName.setText(username);
if (!TextUtils.isEmpty(userId)) {
String portraitUri = SealUserInfoManager.getInstance().getPortraitUri
(new UserInfo(userId, username, Uri.parse(userPortrait)));
ImageLoader.getInstance().displayImage(portraitUri, imageView, App.getOptions());
}
}
}