package com.mugua.mgvideo.ui.main;
|
|
import java.util.List;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
import android.content.Context;
|
import android.content.Intent;
|
import android.content.SharedPreferences;
|
import android.content.pm.PackageInfo;
|
import android.content.pm.PackageManager.NameNotFoundException;
|
import android.content.res.Resources;
|
import android.database.Cursor;
|
import android.net.Uri;
|
import android.os.Bundle;
|
import android.provider.Settings;
|
|
import androidx.loader.app.LoaderManager;
|
import androidx.loader.content.CursorLoader;
|
import androidx.loader.content.Loader;
|
|
import android.view.View;
|
import android.view.View.OnClickListener;
|
import android.widget.ImageView;
|
import android.widget.RelativeLayout;
|
import android.widget.TextView;
|
import android.widget.Toast;
|
|
import com.alibaba.android.arouter.launcher.ARouter;
|
import com.bumptech.glide.Glide;
|
import com.bumptech.glide.request.RequestOptions;
|
import com.google.gson.FieldNamingPolicy;
|
import com.google.gson.Gson;
|
import com.google.gson.GsonBuilder;
|
import com.google.gson.reflect.TypeToken;
|
import com.lcjian.library.RetainViewFragment;
|
import com.lcjian.library.content.ConnectivityChangeHelper;
|
import com.lcjian.library.content.ConnectivityChangeHelper.OnConnectivityChangeListener;
|
import com.lcjian.library.util.common.DimenUtils;
|
import com.lcjian.library.util.common.StringUtils;
|
import com.mugua.mgvideo.R;
|
import com.mugua.mgvideo.ui.mine.SuggestionActivity;
|
import com.mugua.mgvideo.util.ConfigUtil;
|
import com.umeng.analytics.MobclickAgent;
|
import com.umeng.socialize.ShareAction;
|
import com.umeng.socialize.UMShareListener;
|
import com.umeng.socialize.bean.SHARE_MEDIA;
|
import com.umeng.socialize.media.UMWeb;
|
import com.yeshi.base.ui.LoginActivity;
|
import com.yeshi.base.ui.PersonInfoActivity;
|
import com.yeshi.base.utils.RouteConstant;
|
import com.yeshi.base.utils.YouthUtil;
|
import com.yeshi.base.utils.http.BasicTextHttpResponseHandler;
|
import com.mugua.mgvideo.MGVideoAPI;
|
import com.mugua.mgvideo.db.MessageTable;
|
import com.mugua.mgvideo.entity.Banner;
|
import com.mugua.mgvideo.ui.mine.BrowserActivity;
|
import com.mugua.mgvideo.ui.mine.MyFavouriteActivity;
|
import com.mugua.mgvideo.ui.mine.SettingsActivity;
|
import com.mugua.mgvideo.ui.mine.WatchHistoryActivity;
|
import com.yeshi.base.utils.BeibeiConstant;
|
import com.mugua.mgvideo.util.GlideCircleTransform;
|
import com.mugua.mgvideo.widget.BadgeView;
|
import com.yeshi.ec.youth.ui.YouthActivity;
|
|
import static com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions.withCrossFade;
|
|
public class MineFragment extends RetainViewFragment implements
|
OnClickListener, LoaderManager.LoaderCallbacks<Cursor> {
|
private TextView tv_top_bar_left;
|
private TextView tv_top_bar_middle;
|
private TextView tv_favourites_count;
|
private TextView tv_accumulate_tip;
|
private TextView tv_score_tip;
|
private TextView tv_no_network;
|
|
private RelativeLayout rl_head;// 头部
|
private RelativeLayout rl_favourites;// 我的收藏
|
private RelativeLayout rl_accumulate;// 我的积分
|
private RelativeLayout rl_share;// 分享软件
|
private RelativeLayout rl_rate;// 去评价
|
private RelativeLayout rl_suggestion;// 帮助与反馈
|
private RelativeLayout rl_privacy;//隐私政策
|
private RelativeLayout rl_advice;//意见反馈
|
// private RelativeLayout rl_mine_message;// 我的消息
|
private RelativeLayout rl_settings;// 设置
|
private RelativeLayout rl_history;// 设置
|
|
// private BadgeView mBadgeView;
|
|
private BadgeView mUpdateBadgeView;
|
|
private ConnectivityChangeHelper mChangeHelper;
|
|
private TextView tv_userName;// 用户名
|
private ImageView iv_user_logo;// 用户头像
|
/**
|
* 用于表示登录状态
|
*/
|
public static boolean isLogin;
|
|
private boolean isHaveNewCom;// 是否存在新的评论消息
|
|
@Override
|
public int getContentResource() {
|
return R.layout.mine_fragment;
|
}
|
|
@Override
|
public void onCreateView(View contentView, Bundle savedInstanceState) {
|
|
ARouter.getInstance().inject(this);
|
tv_no_network = contentView.findViewById(R.id.tv_no_network);
|
tv_no_network.setOnClickListener(this);
|
contentView.findViewById(R.id.rl_youth).setOnClickListener(this);
|
|
mChangeHelper = new ConnectivityChangeHelper(getActivity(),
|
new OnConnectivityChangeListener() {
|
|
@Override
|
public void onNetworkUnAvailable() {
|
tv_no_network.setVisibility(View.VISIBLE);
|
}
|
|
@Override
|
public void onWiFiAvailable() {
|
tv_no_network.setVisibility(View.GONE);
|
}
|
|
@Override
|
public void onMobileAvailable() {
|
tv_no_network.setVisibility(View.GONE);
|
}
|
});
|
|
tv_top_bar_left = contentView
|
.findViewById(R.id.tv_top_bar_left);
|
tv_top_bar_middle = contentView
|
.findViewById(R.id.tv_top_bar_middle);
|
rl_favourites = contentView
|
.findViewById(R.id.rl_favourites);
|
tv_favourites_count = contentView
|
.findViewById(R.id.tv_favourites_count);
|
tv_accumulate_tip = contentView
|
.findViewById(R.id.tv_accumulate_tip);
|
tv_score_tip = contentView.findViewById(R.id.tv_score_tip);
|
rl_accumulate = contentView
|
.findViewById(R.id.rl_accumulate);
|
rl_share = contentView.findViewById(R.id.rl_share);
|
rl_rate = contentView.findViewById(R.id.rl_rate);
|
rl_head = contentView.findViewById(R.id.mine_rl_head);
|
rl_history = contentView.findViewById(R.id.rl_history);
|
rl_suggestion = contentView
|
.findViewById(R.id.rl_suggestion);
|
|
rl_privacy = contentView
|
.findViewById(R.id.rl_privacy);
|
|
rl_advice = contentView
|
.findViewById(R.id.rl_advice);
|
// rl_mine_message = contentView
|
// .findViewById(R.id.rl_mine_message);
|
tv_userName = contentView.findViewById(R.id.mine_tv_name);
|
iv_user_logo = (ImageView) contentView.findViewById(R.id.mine_ci_head);
|
// mBadgeView = new BadgeView(getActivity(), rl_mine_message);
|
// mBadgeView.setBackgroundResource(R.drawable.ic_red_dot);
|
// mBadgeView.setTextSize(1);
|
// mBadgeView.setText("");
|
// mBadgeView.setBadgeMargin(DimenUtils.dipToPixels(20, getActivity()));
|
|
rl_settings = contentView
|
.findViewById(R.id.rl_settings);
|
|
mUpdateBadgeView = new BadgeView(getActivity(), rl_settings);
|
mUpdateBadgeView.setBackgroundResource(R.drawable.ic_red_dot);
|
mUpdateBadgeView.setTextSize(1);
|
mUpdateBadgeView.setText("");
|
mUpdateBadgeView.setBadgeMargin(DimenUtils.dipToPixels(20,
|
getActivity()));
|
|
tv_top_bar_left.setVisibility(View.GONE);
|
tv_top_bar_left.setOnClickListener(this);
|
rl_favourites.setOnClickListener(this);
|
rl_accumulate.setOnClickListener(this);
|
rl_share.setOnClickListener(this);
|
rl_suggestion.setOnClickListener(this);
|
rl_privacy.setOnClickListener(this);
|
rl_advice.setOnClickListener(this);
|
// rl_mine_message.setOnClickListener(this);
|
rl_rate.setOnClickListener(this);
|
rl_head.setOnClickListener(this);
|
rl_settings.setOnClickListener(this);
|
tv_top_bar_middle.setText(R.string.mine);
|
tv_top_bar_left.setText(R.string.statement);
|
rl_history.setOnClickListener(this);
|
getLoaderManager().initLoader(0, null, this);
|
}
|
|
@Override
|
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
|
return new CursorLoader(getActivity(), MessageTable.CONTENT_URI, null,
|
MessageTable.MESSAGE_STATUS + " = ? ", new String[]{"0"},
|
MessageTable.UPDATE_TIME + " DESC");
|
}
|
|
@Override
|
public void onLoadFinished(Loader<Cursor> arg0, Cursor data) {
|
// Swap the new cursor in. (The framework will take care of closing the
|
// old cursor once we return.)
|
|
// if (data != null && data.getCount() != 0 || (isLogin &&
|
// isHaveNewCom)) {
|
// mBadgeView.show();
|
// } else {
|
// mBadgeView.hide();
|
// }
|
}
|
|
@Override
|
public void onLoaderReset(Loader<Cursor> arg0) {
|
// This is called when the last Cursor provided to onLoadFinished()
|
// above is about to be closed. We need to make sure we are no
|
// longer using it.
|
// if (isLogin && !isHaveNewCom) {
|
// mBadgeView.hide();
|
// }
|
}
|
|
@Override
|
public void onClick(View v) {
|
switch (v.getId()) {
|
case R.id.tv_top_bar_left: {// 声明
|
Intent intent = new Intent(getActivity(), BrowserActivity.class);
|
intent.putExtra("url", BeibeiConstant.HOST + "/new_video/"
|
+ "api_disclaimer.jsp?package="
|
+ getActivity().getPackageName());
|
startActivity(intent);
|
}
|
break;
|
case R.id.rl_favourites: {// 我的收藏
|
Intent intent = new Intent(getActivity(), MyFavouriteActivity.class);
|
startActivity(intent);
|
}
|
break;
|
case R.id.rl_history: {// 历史记录
|
Intent intent = new Intent(getActivity(),
|
WatchHistoryActivity.class);
|
startActivity(intent);
|
}
|
break;
|
case R.id.rl_share: {// 分享
|
// (new ShareDialogFragment()).show(getFragmentManager(),
|
// "ShareDialogFragment");
|
String shareContent = getShareContent();
|
UMWeb web = new UMWeb(getShareUrl());
|
String shareTitle = getResources().getString(R.string.app_name);
|
web.setTitle(shareTitle);
|
web.setDescription(shareContent);
|
new ShareAction(getActivity())
|
.withText(shareContent)
|
.withMedia(web)
|
.setDisplayList(SHARE_MEDIA.SINA, SHARE_MEDIA.QQ,
|
SHARE_MEDIA.WEIXIN).setCallback(shareListener)
|
.open();
|
}
|
break;
|
case R.id.rl_privacy:
|
startActivity(new Intent(getActivity(), BrowserActivity.class).putExtra("url", getString(R.string.privacy)));
|
break;
|
|
case R.id.rl_accumulate: {
|
// Intent intent = new Intent(getActivity(), AccumulateActivity.class);
|
// startActivity(intent);
|
}
|
break;
|
case R.id.mine_rl_head: {// 点击头像事件,跳转到登录界面
|
Intent intent = new Intent();
|
if (isLogin) {// 登录后 逻辑
|
// intent.setClass(getActivity(), PersonInfoActivity.class);
|
} else {// 登陆前
|
intent.setClass(getActivity(), LoginActivity.class);
|
startActivity(intent);
|
}
|
|
break;
|
}
|
case R.id.rl_rate: {
|
try {
|
Uri uri = Uri.parse("market://details?id="
|
+ getActivity().getPackageName());
|
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
|
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
startActivityForResult(intent, 100);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
break;
|
case R.id.rl_suggestion: {// 关于我们
|
// Intent intent = new Intent(getActivity(),
|
// HelpAndTicklingActivity.class);
|
// startActivity(intent);
|
Intent intent = new Intent(getActivity(), BrowserActivity.class);
|
intent.putExtra("url", getString(R.string.about_us_url));
|
startActivity(intent);
|
}
|
break;
|
// case R.id.rl_mine_message: {// 点击我的消息事件
|
// EventBus.getDefault().post(new NewComment(true));
|
// SharedPreferences preferences = getActivity().getSharedPreferences(
|
// "user", Context.MODE_PRIVATE);
|
// Editor editor = preferences.edit();
|
// editor.putBoolean("isCheckedCom", false);
|
//
|
// editor.commit();
|
// mBadgeView.hide();
|
// Intent intent = new Intent(getActivity(),
|
// SystemMessageActivity.class);
|
// startActivity(intent);
|
// }
|
// break;
|
case R.id.rl_settings: {// 设置
|
Intent intent = new Intent(getActivity(), SettingsActivity.class);
|
startActivity(intent);
|
}
|
break;
|
case R.id.tv_no_network: {
|
Intent intent = new Intent(Settings.ACTION_SETTINGS);
|
startActivity(intent);
|
}
|
break;
|
case R.id.rl_advice:
|
//意见反馈
|
startActivity(new Intent(getContext(), SuggestionActivity.class));
|
break;
|
|
case R.id.rl_youth:
|
// ARouter.getInstance().build(RouteConstant.PATH_YOUTH)
|
// .navigation();
|
getContext().startActivity(new Intent(getContext(), YouthActivity.class));
|
break;
|
}
|
}
|
|
UMShareListener shareListener = new UMShareListener() {
|
@Override
|
public void onStart(SHARE_MEDIA share_media) {
|
|
}
|
|
@Override
|
public void onResult(SHARE_MEDIA share_media) {
|
Toast.makeText(rl_share.getContext(), "分享成功!", Toast.LENGTH_LONG)
|
.show();
|
}
|
|
@Override
|
public void onError(SHARE_MEDIA share_media, Throwable throwable) {
|
Toast.makeText(rl_share.getContext(), "分享出错!" + throwable,
|
Toast.LENGTH_LONG).show();
|
}
|
|
@Override
|
public void onCancel(SHARE_MEDIA share_media) {
|
Toast.makeText(rl_share.getContext(), "分享取消!", Toast.LENGTH_LONG)
|
.show();
|
}
|
};
|
|
private String getShareContent() {
|
SharedPreferences preferences = getActivity().getSharedPreferences(
|
"user", Context.MODE_PRIVATE);
|
String shareContent = preferences.getString(
|
"share_content",
|
"牛逼的APP,什么样的新片,大片,电视剧都有---"
|
+ getResources().getString(R.string.app_name))
|
+ getShareUrl();
|
return shareContent;
|
}
|
|
private String getShareUrl() {
|
SharedPreferences preferences = getActivity().getSharedPreferences(
|
"user", Context.MODE_PRIVATE);
|
return preferences.getString("share_url", "http://yy.umgotv.com");
|
}
|
|
/**
|
* 初始化用户登录信息
|
*/
|
private void initLoginInfo() {
|
SharedPreferences sp_user = getActivity().getSharedPreferences("user",
|
Context.MODE_PRIVATE);
|
isLogin = !StringUtils.isEmpty(sp_user.getString("LoginUid", ""));// 获取登录状态
|
if (isLogin) {
|
String portrait = sp_user.getString("portrait", "");// 用户头像
|
String name = sp_user.getString("name", "");// 用户名称
|
// ImageLoader.getInstance().displayImage(qqFigureurl,
|
// iv_user_logo);
|
Glide.with(getActivity()).load(portrait).apply(new RequestOptions().placeholder(R.drawable.ic_portrait_default).error(R.drawable.ic_portrait_default))
|
.transform(new GlideCircleTransform(getActivity()))
|
.transition(withCrossFade()).into(iv_user_logo);
|
tv_userName.setText(name);
|
// 登录后 隐藏第二个内容 、隐藏右键头
|
getActivity().findViewById(R.id.mine_iv_rightarrow).setVisibility(
|
View.GONE);
|
getActivity().findViewById(R.id.mine_tv_name2).setVisibility(
|
View.GONE);
|
getActivity().findViewById(R.id.mine_tv_1).setVisibility(
|
View.VISIBLE);
|
} else {// 恢复登陆前的状态
|
tv_userName.setText(R.string.oauth);// 一键登录
|
iv_user_logo.setImageResource(R.drawable.img_head_portrait);// 默认头像
|
getActivity().findViewById(R.id.mine_iv_rightarrow).setVisibility(
|
View.VISIBLE);
|
getActivity().findViewById(R.id.mine_tv_name2).setVisibility(
|
View.VISIBLE);
|
getActivity().findViewById(R.id.mine_tv_1).setVisibility(View.GONE);
|
}
|
}
|
|
/**
|
* shizh用户信息的展示
|
*/
|
|
@Override
|
public void onResume() {
|
super.onResume();
|
// 获取缓存中的消息状态
|
SharedPreferences preferences = getActivity().getSharedPreferences(
|
"user", Context.MODE_PRIVATE);
|
isHaveNewCom = preferences.getBoolean("isCheckedCom", false);
|
if (!isLogin) {
|
initLoginInfo();
|
}
|
getUserInfo();
|
mChangeHelper.registerReceiver();
|
SharedPreferences preferences2 = getActivity().getSharedPreferences(
|
"update", Context.MODE_PRIVATE);
|
if (preferences2.getBoolean("status", false)) {
|
mUpdateBadgeView.show();
|
} else {
|
mUpdateBadgeView.hide();
|
}
|
|
if (YouthUtil.isOpenYouthMode(getContext())) {
|
rl_history.setVisibility(View.GONE);
|
rl_favourites.setVisibility(View.GONE);
|
} else {
|
rl_history.setVisibility(View.VISIBLE);
|
rl_favourites.setVisibility(View.VISIBLE);
|
}
|
}
|
|
@Override
|
public void onPause() {
|
super.onPause();
|
mChangeHelper.unregisterReceiver();
|
}
|
|
@Override
|
public void onDestroy() {
|
super.onDestroy();
|
isLogin = false;
|
}
|
|
public static String getVersionName(Context context) {
|
try {
|
PackageInfo pi = context.getPackageManager().getPackageInfo(
|
context.getPackageName(), 0);
|
return pi.versionName;
|
} catch (NameNotFoundException e) {
|
e.printStackTrace();
|
return "";
|
}
|
}
|
|
private void getUserInfo() {
|
SharedPreferences preferences = getActivity().getSharedPreferences(
|
"user", Context.MODE_PRIVATE);
|
String uid = preferences.getString("uid", "");
|
MGVideoAPI.getUserInfo(getActivity(), uid,
|
new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode,
|
Header[] headers, JSONObject jsonObject)
|
throws Exception {
|
if (jsonObject.getBoolean("IsPost")) {
|
JSONObject data = jsonObject.getJSONObject("Data");
|
Resources resources = getActivity().getResources();
|
tv_favourites_count.setText(resources.getString(
|
R.string.favourites_count,
|
data.getInt("CollectCount")));
|
tv_accumulate_tip.setText(resources.getString(
|
R.string.accumulate_tip,
|
data.getInt("Score")));
|
tv_score_tip.setText(resources.getString(
|
R.string.score_tip,
|
data.getInt("WatchCount")));
|
}
|
}
|
});
|
}
|
|
private void getUserBanner() {
|
SharedPreferences preferences = getActivity().getSharedPreferences(
|
"user", Context.MODE_PRIVATE);
|
String uid = preferences.getString("uid", "");
|
MGVideoAPI.getUserBanner(getActivity(), uid,
|
new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode,
|
Header[] headers, JSONObject jsonObject)
|
throws Exception {
|
if (jsonObject.getBoolean("IsPost")) {
|
Gson gson = new GsonBuilder().setFieldNamingPolicy(
|
FieldNamingPolicy.UPPER_CAMEL_CASE)
|
.create();
|
List<Banner> banners = gson.fromJson(jsonObject
|
.getJSONObject("Data").getJSONArray("data")
|
.toString(), new TypeToken<List<Banner>>() {
|
}.getType());
|
}
|
}
|
});
|
}
|
}
|