From 399ac289f80b7a40aa4210341db6b447cacdcf14 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 09 八月 2022 17:42:33 +0800 Subject: [PATCH] 广告升级,隐私政策整改 --- app/src/main/java/com/tejia/lijin/app/ui/main/RecommendTopFragment.java | 379 ++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 298 insertions(+), 81 deletions(-) diff --git a/app/src/main/java/com/tejia/lijin/app/ui/main/RecommendTopFragment.java b/app/src/main/java/com/tejia/lijin/app/ui/main/RecommendTopFragment.java index e5bb4bc..11ad4af 100644 --- a/app/src/main/java/com/tejia/lijin/app/ui/main/RecommendTopFragment.java +++ b/app/src/main/java/com/tejia/lijin/app/ui/main/RecommendTopFragment.java @@ -10,10 +10,10 @@ import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.graphics.Color; +import android.graphics.Typeface; import android.os.Build; import android.os.Bundle; import android.provider.Settings; -import android.text.TextPaint; import android.view.MotionEvent; import android.view.View; import android.view.Window; @@ -28,6 +28,7 @@ import com.alibaba.baichuan.trade.biz.login.AlibcLogin; import com.alibaba.baichuan.trade.biz.login.AlibcLoginCallback; import com.alibaba.fastjson.JSONArray; +import com.bumptech.glide.Glide; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; @@ -41,21 +42,25 @@ import com.tejia.lijin.app.entity.TrendsType; import com.tejia.lijin.app.entity.UserInfo; import com.tejia.lijin.app.entity.eventbus.UserProtocolEvent; +import com.tejia.lijin.app.entity.hongbao.LijinSendInfo; import com.tejia.lijin.app.sqlite.HomeConfigSQHelper; import com.tejia.lijin.app.ui.BrandRebate.BrandFragment; import com.tejia.lijin.app.ui.category.CategoryTypeActivity; +import com.tejia.lijin.app.ui.dialog.RecommendHbDialog; import com.tejia.lijin.app.ui.dialog.RedPacketHintDialog; import com.tejia.lijin.app.ui.dialog.ShapeLoadingDialog; import com.tejia.lijin.app.ui.dialog.UserGuideDialog; import com.tejia.lijin.app.ui.dialog.UserProtocolDialog; -import com.tejia.lijin.app.ui.gmtemplate.GmTemplateFragment; +import com.tejia.lijin.app.ui.gmtemplate.GmTemplateContentFragment; import com.tejia.lijin.app.ui.invite.ShareBrowserActivity; import com.tejia.lijin.app.ui.mine.ShoppingTrolleyActivity; import com.tejia.lijin.app.ui.recommend.RecommendCategoryFragment; -import com.tejia.lijin.app.ui.recommend.RecommendFragment; import com.tejia.lijin.app.ui.recommend.SearchActivity; +import com.tejia.lijin.app.ui.subview.HomeRecommendNavIndicator; import com.tejia.lijin.app.updateApp.UpdateApp; +import com.tejia.lijin.app.util.GlideCircleTransform; import com.tejia.lijin.app.util.JumpActivityUtil; +import com.tejia.lijin.app.util.SystemParamsUtil; import com.tejia.lijin.app.util.ToolUtil; import com.tejia.lijin.app.util.ui.HomeUIUtil; import com.tejia.lijin.app.util.umengCustomEvent.CategoryCustomEvent; @@ -69,15 +74,20 @@ import com.wpc.library.util.NetUtils; import com.wpc.library.util.SystemCommon; import com.wpc.library.util.cache.DiskLruCache; +import com.wpc.library.util.common.DimenUtils; import com.wpc.library.util.common.StorageUtils; import com.wpc.library.util.common.StringUtils; +import com.tejia.lijin.app.ui.recommend.RecommendFragment; import net.lucode.hackware.magicindicator.MagicIndicator; import net.lucode.hackware.magicindicator.ViewPagerHelper; +import net.lucode.hackware.magicindicator.buildins.UIUtil; import net.lucode.hackware.magicindicator.buildins.commonnavigator.CommonNavigator; import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter; import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerIndicator; import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerTitleView; +import net.lucode.hackware.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator; +import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.ClipPagerTitleView; import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.CommonPagerTitleView; import org.apache.http.Header; @@ -129,6 +139,15 @@ private int clickState = 0; //鐑棬鍔熻兘 private ImageView recommend_top_img; + + + //绂忓埄搴曢儴鎻愰啋 + private FrameLayout fl_fuli; + private ImageView iv_fuli_portrait; + private TextView tv_fuli_title; + private TextView tv_fuli_sub_title; + private TextView tv_time_h, tv_time_m, tv_time_s; + String tag1 = "config/getHomeConfig"; String tag2 = "navbar/getHomeItems"; @@ -206,7 +225,7 @@ result = getActivity().getResources().getDimensionPixelSize(resourceId); } //璁剧疆鐘舵�佹爮鏂囧瓧棰滆壊鍙婂浘鏍囦负娣辫壊 - getActivity().getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); +// getActivity().getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, result); // contentView.findViewById(R.id.v_status_bar).setLayoutParams(params); @@ -219,10 +238,11 @@ e.printStackTrace(); } } else { - contentView.findViewById(R.id.v_status_bar).setVisibility(View.GONE); + if (contentView.findViewById(R.id.v_status_bar) != null) + contentView.findViewById(R.id.v_status_bar).setVisibility(View.GONE); } - + contentView.findViewById(R.id.tv_course).setOnClickListener(this); recommend_top_img = contentView.findViewById(R.id.recommend_top_img);//鐑棬鍔熻兘 fl_search_content = contentView.findViewById(R.id.fl_search_content); fl_search_content.setOnClickListener(this); @@ -271,6 +291,8 @@ }); ll_no_data.setOnClickListener(this); + + initFuliFloat(contentView); MainCustomEvent.mainHome(getContext()); loadCacheData(); @@ -328,8 +350,8 @@ }, false);//寮哄埗妫�娴嬫洿鏂�-鍚�. //璁剧疆鑳屾櫙鑹� - contentView.findViewById(R.id.apl_search).setBackground(HomeUIUtil.getHomeTopBg("#FF227B", "#FF2A3E")); - magic_indicator.setBackground(HomeUIUtil.getHomeTopBg("#FF227B", "#FF2A3E")); + contentView.findViewById(R.id.apl_search).setBackground(HomeUIUtil.getHomeTopBg(getContext())); + magic_indicator.setBackground(HomeUIUtil.getHomeTopBg(getContext())); } @@ -374,6 +396,114 @@ } + private CommonNavigatorAdapter n1 = new CommonNavigatorAdapter() { + + @Override + public int getCount() { + return mList == null ? 0 : mList.size(); + } + + @Override + public IPagerTitleView getTitleView(final Context context, final int index) { + CommonPagerTitleView commonPagerTitleView = new CommonPagerTitleView(getContext()); + //璁剧疆鑷畾涔夊竷灞�鏂囦欢鍙妚iew璧嬪�� + commonPagerTitleView.setContentView(R.layout.item_recommend_nav); + commonPagerTitleView.setHovered(false); + final TextView tvTitle = commonPagerTitleView.findViewById(R.id.tv_title); + tvTitle.setHighlightColor(context.getResources().getColor(android.R.color.transparent)); + tvTitle.setText(mList.get(index).getName()); + tvTitle.setBackground(null); + + //tab鍒囨崲鐩戝惉 + commonPagerTitleView.setOnPagerTitleChangeListener(new CommonPagerTitleView.OnPagerTitleChangeListener() { + @Override + public void onSelected(int index, int totalCount) { + tvTitle.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD)); + } + + @Override + public void onDeselected(int index, int totalCount) { + tvTitle.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL)); + } + + @Override + public void onLeave(int index, int totalCount, float leavePercent, boolean leftToRight) { + + } + + @Override + public void onEnter(int index, int totalCount, float enterPercent, boolean leftToRight) { + + } + }); + + //tab鍗曚釜item鐐瑰嚮浜嬩欢鐩戝惉 + commonPagerTitleView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + pager.setCurrentItem(index); + } + }); + + return commonPagerTitleView; + } + + //姝や负tab鎸囩ず鍣ㄥ洖璋� + @Override + public IPagerIndicator getIndicator(Context context) { + int height = magic_indicator.getLayoutParams().height; //UIUtil.dip2px(context, 40); + HomeRecommendNavIndicator indicator = new HomeRecommendNavIndicator(context); + float navigatorHeight = DimenUtils.sp2px(context, 25); //context.getResources().getDimension(R.dimen.dp_130); + float borderWidth = UIUtil.dip2px(context, 1); + float lineHeight = navigatorHeight - 2 * borderWidth; + indicator.setLineHeight(lineHeight); + indicator.setRoundRadius(lineHeight / 2); + indicator.setXOffset(UIUtil.dip2px(context, 5)); + indicator.setYOffset((height - navigatorHeight) / 2); + indicator.setColors(Color.parseColor("#FFFFFF")); + return indicator; + } + }; + + + private CommonNavigatorAdapter n2 = new CommonNavigatorAdapter() { + + @Override + public int getCount() { + return mList == null ? 0 : mList.size(); + } + + @Override + public IPagerTitleView getTitleView(Context context, final int index) { + ClipPagerTitleView clipPagerTitleView = new ClipPagerTitleView(context); + clipPagerTitleView.setText(mList.get(index).getName()); + clipPagerTitleView.setTextColor(Color.parseColor("#FFFFFF")); + clipPagerTitleView.setClipColor(Color.WHITE); + clipPagerTitleView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + pager.setCurrentItem(index); + } + }); + return clipPagerTitleView; + } + + //姝や负tab鎸囩ず鍣ㄥ洖璋� + @Override + public IPagerIndicator getIndicator(Context context) { + int height = magic_indicator.getLayoutParams().height; //UIUtil.dip2px(context, 40); + LinePagerIndicator indicator = new LinePagerIndicator(context); + float navigatorHeight = DimenUtils.sp2px(context, 25); //context.getResources().getDimension(R.dimen.dp_130); + float borderWidth = UIUtil.dip2px(context, 1); + float lineHeight = navigatorHeight - 2 * borderWidth; + indicator.setLineHeight(lineHeight); + indicator.setRoundRadius(lineHeight / 2); + indicator.setYOffset((height - navigatorHeight) / 2); + indicator.setColors(Color.parseColor("#bc2a2a")); + return indicator; + } + }; + private void loadHomeNavData() { if (adapter == null) { @@ -389,67 +519,7 @@ if (commonNavigator == null) { commonNavigator = new CommonNavigator(getContext()); - commonNavigator.setAdapter(new CommonNavigatorAdapter() { - - @Override - public int getCount() { - return mList == null ? 0 : mList.size(); - } - - @Override - public IPagerTitleView getTitleView(Context context, final int index) { - CommonPagerTitleView commonPagerTitleView = new CommonPagerTitleView(getContext()); - //璁剧疆鑷畾涔夊竷灞�鏂囦欢鍙妚iew璧嬪�� - commonPagerTitleView.setContentView(R.layout.item_recommend_nav); - final TextView tvTitle = commonPagerTitleView.findViewById(R.id.tv_title); - tvTitle.setText(mList.get(index).getName()); - - //tab鍒囨崲鐩戝惉 - commonPagerTitleView.setOnPagerTitleChangeListener(new CommonPagerTitleView.OnPagerTitleChangeListener() { - @Override - public void onSelected(int index, int totalCount) { - tvTitle.setBackground(getResources().getDrawable(R.drawable.shape_recommend_nav_highlight_bg)); - TextPaint paint = tvTitle.getPaint(); - paint.setFakeBoldText(true); - } - - @Override - public void onDeselected(int index, int totalCount) { - tvTitle.setBackground(null); - TextPaint paint = tvTitle.getPaint(); - paint.setFakeBoldText(false); - } - - @Override - public void onLeave(int index, int totalCount, float leavePercent, boolean leftToRight) { - - } - - @Override - public void onEnter(int index, int totalCount, float enterPercent, boolean leftToRight) { - - } - }); - - //tab鍗曚釜item鐐瑰嚮浜嬩欢鐩戝惉 - commonPagerTitleView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - pager.setCurrentItem(index); - } - }); - - return commonPagerTitleView; - } - - //姝や负tab鎸囩ず鍣ㄥ洖璋� - @Override - public IPagerIndicator getIndicator(Context context) { -// LinePagerIndicator indicator = new LinePagerIndicator(context); -// indicator.setMode(LinePagerIndicator.MODE_WRAP_CONTENT); - return null; - } - }); + commonNavigator.setAdapter(n1); //璁剧疆缁檓agicIndicator magic_indicator.setNavigator(commonNavigator); ViewPagerHelper.bind(magic_indicator, pager); @@ -463,7 +533,6 @@ @Override public void onResume() { super.onResume(); - MobclickAgent.onPageStart("绮鹃��"); mChangeHelper.registerReceiver(); SharedPreferences sp = ll_recommend_content.getContext() .getSharedPreferences("user", MODE_PRIVATE); @@ -480,7 +549,7 @@ } }, 1000); - boolean isLogin = sp.getBoolean("isLogin", false); + boolean isLogin = UserUtil.isLogin(getContext()); if (isLogin) { getUserInfo(UserUtil.getUid(ShoppingApplication.application)); if (accountLogin && floatImgDetail != null) {//寮规闇�瑕佺櫥闄� @@ -517,6 +586,8 @@ if (isLogin && lastRquestHomeConfigUid == null) { getHomeConfig(); } + + getSendingHongbao(); } /* @@ -542,7 +613,6 @@ public void onPause() { super.onPause(); mChangeHelper.unregisterReceiver(); - MobclickAgent.onPageEnd("绮鹃��"); // Log.e("mResult", "棣栭〉onPause"); } @@ -592,6 +662,10 @@ startActivity(intent1); } } + break; + case R.id.tv_course: + //鏁欑▼ + startActivity(new Intent(getContext(), ShareBrowserActivity.class).putExtra("url", SystemParamsUtil.getNewerCourse(getContext()))); break; default: break; @@ -732,10 +806,6 @@ public void onClick(DialogInterface dialog, int which) { UserUtil.agreeUserProtocol(getContext()); dialog.dismiss(); - try { - ShoppingApi.userProtocolListener(getContext(), UserUtil.getUid(getContext()), 2, null); - } catch (Exception e) { - } if (shownUserGuide) {//鐢ㄦ埛寮曞宸茬粡鏄剧ず callback.onFinish(); } else {//闇�瑕佹樉绀虹敤鎴峰紩瀵� @@ -864,8 +934,7 @@ builder.setPositiveButton(new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - final boolean isLogin = getContext().getSharedPreferences("user", - MODE_PRIVATE).getBoolean("isLogin", false); + final boolean isLogin = UserUtil.isLogin(getContext()); if (accountLogin && !isLogin) { clickState = 3; UserUtil.jumpLogin(getContext()); @@ -976,8 +1045,7 @@ builder.setPositiveButton(new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - final boolean isLogin = getContext().getSharedPreferences("user", - MODE_PRIVATE).getBoolean("isLogin", false); + final boolean isLogin = UserUtil.isLogin(getContext()); if (accountLogin && !isLogin) { clickState = 4; UserUtil.jumpLogin(getContext()); @@ -1169,7 +1237,7 @@ CategoryCustomEvent.classHomeList(getContext(), mList.get(position).getName()); if (!StringUtils.isEmpty(mList.get(position).getType()) && mList.get(position).getType().equals("commonTemplate")) {//璺宠浆閫氱敤妯$増 //鏂板缓涓�涓狥ragment鏉ュ睍绀篤iewPager item鐨勫唴瀹癸紝骞朵紶閫掑弬鏁� - GmTemplateFragment fragment = new GmTemplateFragment(); + GmTemplateContentFragment fragment = new GmTemplateContentFragment(); Bundle args = new Bundle(); args.putString("key", mList.get(position).getParams().getString("key")); args.putString("type", mList.get(position).getParams().getInteger("type") + ""); @@ -1414,4 +1482,153 @@ } + private void initFuliFloat(View contentView) { + fl_fuli = contentView.findViewById(R.id.fl_fuli); + iv_fuli_portrait = contentView.findViewById(R.id.iv_portrait); + tv_fuli_title = contentView.findViewById(R.id.tv_title); + tv_fuli_sub_title = contentView.findViewById(R.id.tv_sub_title); + tv_time_h = contentView.findViewById(R.id.tv_time_h); + tv_time_m = contentView.findViewById(R.id.tv_time_m); + tv_time_s = contentView.findViewById(R.id.tv_time_s); + fl_fuli.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + showLijinHongBaoDialog(); + } + }); + } + + private Runnable lijinHongBaoRunnable = new Runnable() { + @Override + public void run() { + if (lijinSendInfo == null) { + if (fl_fuli != null) + fl_fuli.setVisibility(View.GONE); + return; + } + + //鍊掕鏃惰缃� + int leftTime = (int) ((lijinSendInfo.getExpireTime() - System.currentTimeMillis()) / 1000); + if (leftTime <= 0) { + if (fl_fuli != null) + fl_fuli.setVisibility(View.GONE); + //绉婚櫎SharePreference + SharedPreferences.Editor editor = getContext().getSharedPreferences("lijinHongBao", MODE_PRIVATE).edit(); + editor.remove(lijinSendInfo.getMd5()); + editor.commit(); + return; + } + //璁剧疆鏃堕棿 + int h = leftTime / (60 * 60); + int m = (leftTime - h * 60 * 60) / 60; + int s = leftTime % 60; + if (tv_time_h != null) + tv_time_h.setText(h < 10 ? ("0" + h) : (h + "")); + if (tv_time_m != null) + tv_time_m.setText(m < 10 ? ("0" + m) : (m + "")); + if (tv_time_s != null) + tv_time_s.setText(s < 10 ? ("0" + s) : (s + "")); + if (fl_fuli != null) { + fl_fuli.postDelayed(lijinHongBaoRunnable, 1000); + } + } + }; + + LijinSendInfo lijinSendInfo; + + /** + * 璁剧疆绂忓埄鏁版嵁 + */ + private void setFuliData() { + //绉婚櫎鐩戝惉 + fl_fuli.removeCallbacks(lijinHongBaoRunnable); + if (lijinSendInfo == null) { + fl_fuli.setVisibility(View.GONE); + } else { + fl_fuli.setVisibility(View.VISIBLE); + tv_fuli_title.setText(lijinSendInfo.getNotifyTitle()); + tv_fuli_sub_title.setText(lijinSendInfo.getNotifySubtitle()); + if (lijinHongBaoRunnable != null) + lijinHongBaoRunnable.run(); + if (lijinSendInfo.getUser() != null) { + Glide.with(this).load(lijinSendInfo.getUser().getPortrait()).transform(new GlideCircleTransform(getContext())).into(iv_fuli_portrait); + } else + Glide.with(this).load(R.drawable.ic_default_portrait_light).transform(new GlideCircleTransform(getContext())).into(iv_fuli_portrait); + } + } + + + //鏄剧ず绀奸噾绾㈠寘 + private void showLijinHongBaoDialog() { + final SharedPreferences sharedPreferences = getContext().getSharedPreferences("lijinHongBao", MODE_PRIVATE); + //鏄剧ず + new RecommendHbDialog.Builder(getContext()).setHBInfo(lijinSendInfo).setActionListener(new RecommendHbDialog.Builder.ILijinHongBaoAction() { + @Override + public void onClose() { + if (lijinSendInfo != null && !StringUtils.isNullOrEmpty(lijinSendInfo.getMd5())) { + SharedPreferences.Editor editor = sharedPreferences.edit(); + editor.putString(lijinSendInfo.getMd5(), new Gson().toJson(lijinSendInfo)); + editor.commit(); + } + + setFuliData(); + } + + @Override + public void onRecieveSuccess() { + //棰嗗彇鎴愬姛 + //绉婚櫎sharePrefer + + //绉婚櫎褰撳墠鐨刴d5 + if (lijinSendInfo != null) { + SharedPreferences.Editor editor = sharedPreferences.edit(); + editor.remove(lijinSendInfo.getMd5()); + editor.commit(); + lijinSendInfo = null; + } + setFuliData(); + } + }).create().show(); + + } + + /** + * 鑾峰彇鍙戦�佷腑鐨勭孩鍖� + */ + private synchronized void getSendingHongbao() { + + ShoppingApi.getSendingHongBao(getContext(), new BasicTextHttpResponseHandler() { + @Override + public void onStart() { + super.onStart(); + } + + @Override + public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { + super.onSuccessPerfect(statusCode, headers, jsonObject); + if (jsonObject.optInt("code") == 0) { + JSONObject data = jsonObject.optJSONObject("data"); + final LijinSendInfo sendInfo = new Gson().fromJson(data.toString(), LijinSendInfo.class); + lijinSendInfo = sendInfo; + final SharedPreferences sharedPreferences = getContext().getSharedPreferences("lijinHongBao", MODE_PRIVATE); + if (StringUtils.isNullOrEmpty(sharedPreferences.getString(sendInfo.getMd5(), ""))) + showLijinHongBaoDialog(); + else { + setFuliData(); + } + + } else { + lijinSendInfo = null; + setFuliData(); + } + } + + @Override + public void onFinish() { + super.onFinish(); + } + }); + } + + } -- Gitblit v1.8.0