package com.tejia.lijin.app.util.ui;
|
|
import android.app.Activity;
|
import android.app.Dialog;
|
import android.content.Context;
|
import android.content.DialogInterface;
|
import android.content.Intent;
|
import android.content.SharedPreferences;
|
import android.widget.Toast;
|
|
import com.google.gson.Gson;
|
import com.google.gson.GsonBuilder;
|
import com.google.gson.reflect.TypeToken;
|
import com.tejia.lijin.app.ShoppingApplication;
|
import com.tejia.lijin.app.ui.recommend.GoodsDetailActivity;
|
import com.tejia.lijin.app.util.Constant;
|
import com.tejia.lijin.app.util.user.UserUtil;
|
import com.wpc.library.util.security.MD5Utils;
|
import com.tejia.lijin.app.BasicTextHttpResponseHandler;
|
import com.tejia.lijin.app.ShoppingApi;
|
import com.tejia.lijin.app.entity.GiftCoupon;
|
import com.tejia.lijin.app.entity.TaoBaoGoodsBrief;
|
import com.tejia.lijin.app.entity.recommendinfo.ConvertLinkInfo;
|
import com.tejia.lijin.app.entity.recommendinfo.RecommendGoodsInfo;
|
import com.tejia.lijin.app.entity.recommendinfo.RecommendGoodsJumpInfo;
|
import com.tejia.lijin.app.ui.dialog.ConvertLinkDialog;
|
import com.tejia.lijin.app.ui.dialog.CopyLinkDialog;
|
import com.tejia.lijin.app.ui.dialog.CopyTitleDialog;
|
import com.tejia.lijin.app.ui.recommend.SearchResultActivity;
|
import com.tejia.lijin.app.util.ApkUtil;
|
import com.tejia.lijin.app.util.CopyGiftDialogUtils;
|
import com.tejia.lijin.app.util.DuplicateEventFilterUtil;
|
import com.tejia.lijin.app.util.ToolUtil;
|
import com.tejia.lijin.app.util.clipboard.ClipboardUtil;
|
import com.tejia.lijin.app.util.goods.GoodsDetailJumpUtil;
|
import com.tejia.lijin.app.util.umengCustomEvent.MainCustomEvent;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* 根据粘贴板的内容推荐
|
*/
|
public class ClipboardContentRecommendUtil {
|
|
|
/**
|
* 构建商品推荐弹框
|
*
|
* @param activity
|
* @param info
|
* @return
|
*/
|
public static CopyLinkDialog buildCopyLinkDialog(final Activity activity, final RecommendGoodsInfo info) {
|
CopyLinkDialog.Builder builder = new CopyLinkDialog.Builder(activity);
|
builder.setMessage(info);
|
builder.setPositiveButton("", new DialogInterface.OnClickListener() {
|
@Override
|
public void onClick(DialogInterface dialog, int which) {
|
MainCustomEvent.rmdTbgoodsRecommendResultClick(activity, "商品");
|
Intent intent = new Intent(activity, GoodsDetailActivity.class);
|
intent.putExtra("goodsId", info.getGoods().getGoodsId());
|
intent.putExtra("goodsType", info.getGoods().getGoodsType());
|
intent.putExtra("title", info.getGoods().getTitle());
|
intent.putExtra("from", "猜你喜欢");
|
activity.startActivity(intent);
|
dialog.dismiss();
|
}
|
});
|
builder.setNegativeButton("", new DialogInterface.OnClickListener() {
|
@Override
|
public void onClick(DialogInterface dialog, int which) {
|
dialog.dismiss();
|
}
|
});
|
return builder.create();
|
}
|
|
|
/**
|
* 猜你喜欢弹窗
|
*/
|
private static void isCopyLink(RecommendGoodsInfo info, Activity context) {
|
dialog = ClipboardContentRecommendUtil.buildCopyLinkDialog(context, info);
|
dialog.show();
|
}
|
|
/**
|
* 10 // 类型:10-免单券 11-奖励券 12-红包
|
* 弹窗
|
*
|
* @param giftCoupon
|
*/
|
private static void isGiftCoupon(final GiftCoupon giftCoupon, String type, Activity context) {
|
CopyGiftDialogUtils utils = new CopyGiftDialogUtils(context);
|
dialog = new Dialog(context);
|
utils.showCopyGiftDialog(giftCoupon, UserUtil.getUid(ShoppingApplication.application), dialog, type);
|
}
|
|
|
private static void addSearchHistory(String content, int page, Context context) {
|
List<String> mList = new ArrayList<>();
|
SharedPreferences sp = null;
|
if (page == 1) {
|
sp = context.getSharedPreferences("searchHistory", Context.MODE_PRIVATE);
|
} else if (page == 2) {
|
sp = context.getSharedPreferences("searchHistory_jd", Context.MODE_PRIVATE);
|
} else if (page == 3) {
|
sp = context.getSharedPreferences("searchHistory_pdd", Context.MODE_PRIVATE);
|
} else if (page == 4) {
|
sp = context.getSharedPreferences("searchHistory_vip", Context.MODE_PRIVATE);
|
} else if (page == 5) {
|
sp = context.getSharedPreferences("searchHistory_suning", Context.MODE_PRIVATE);
|
} else {
|
sp = context.getSharedPreferences("searchHistory", Context.MODE_PRIVATE);
|
}
|
int formNums = sp.getInt("searchNums", 0);
|
for (int i = 0; i < formNums; i++) {
|
String formItem = sp.getString("searchItem_" + (formNums - 1 - i), null);
|
mList.add(formItem);
|
}
|
SharedPreferences.Editor editor = sp.edit();
|
if (mList.contains(content)) {
|
mList.remove(content);
|
} else {
|
if (formNums >= 10) {
|
mList.remove(0);
|
}
|
}
|
mList.add(content);
|
editor.putInt("searchNums", mList.size());
|
for (int i = 0; i < mList.size(); i++) {
|
editor.putString("searchItem_" + i, mList.get(mList.size() - 1 - i));
|
}
|
editor.commit();
|
}
|
|
/**
|
* 智能搜索弹窗
|
*
|
* @param title
|
*/
|
private static void isCopyTitle(final String title, final Integer sourceType, final Activity context) {
|
CopyTitleDialog.Builder builder = new CopyTitleDialog.Builder(context);
|
builder.setMessage(title);
|
builder.setPositiveButton("", new DialogInterface.OnClickListener() {
|
@Override
|
public void onClick(DialogInterface dialog, int which) {
|
ClipboardUtil.emptyClipboard(context);
|
MainCustomEvent.rmdTbgoodsRecommendResultClick(context, "标题");
|
addSearchHistory(title, which, context);//淘宝//京东//拼多多
|
|
Intent intent = new Intent(context, SearchResultActivity.class);
|
intent.putExtra("content", title);
|
intent.putExtra("type", "normal");
|
intent.putExtra("page", sourceType == null ? 0 : (sourceType - 1));
|
intent.putExtra("from", "recommendSearch");
|
context.startActivity(intent);
|
dialog.dismiss();
|
}
|
});
|
builder.setNegativeButton("", new DialogInterface.OnClickListener() {
|
@Override
|
public void onClick(DialogInterface dialog, int which) {
|
ClipboardUtil.emptyClipboard(context);
|
dialog.dismiss();
|
}
|
});
|
dialog = builder.create();
|
dialog.show();
|
}
|
|
private static Dialog dialog = null;
|
|
public static void getRecommendInfo(String description, final Activity context) {
|
final String key = "clipboardRecommend-" + MD5Utils.getMD532(description);
|
if (!DuplicateEventFilterUtil.allowEvent(key, 2000))
|
return;
|
if (dialog != null && dialog.isShowing())
|
return;
|
ShoppingApi.getNewGoodsInfo(context, description, UserUtil.getUid(ShoppingApplication.application), new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
//防止重复弹框
|
if (jsonObject.optInt("code") == 0) {
|
JSONObject data = jsonObject.getJSONObject("data");
|
String type = data.optString("type");
|
MainCustomEvent.rmdTbgoodsRecommendResult(context, type.equalsIgnoreCase("1") ? "商品" : "标题");
|
|
if (type.equalsIgnoreCase("3")) {//猜你喜欢
|
Gson gson = new GsonBuilder().serializeNulls().create();
|
TaoBaoGoodsBrief taoBaoGoodsBrief = gson.fromJson(
|
data.optJSONObject("goods").toString(), new TypeToken<TaoBaoGoodsBrief>() {
|
}.getType());
|
JSONObject left = data.optJSONObject("left");
|
JSONObject right = data.optJSONObject("right");
|
RecommendGoodsJumpInfo leftJump = null;
|
RecommendGoodsJumpInfo rightJump = null;
|
if (left != null) {
|
leftJump = gson.fromJson(left.toString(), RecommendGoodsJumpInfo.class);
|
}
|
if (right != null) {
|
rightJump = gson.fromJson(right.toString(), RecommendGoodsJumpInfo.class);
|
}
|
isCopyLink(new RecommendGoodsInfo(taoBaoGoodsBrief, leftJump, rightJump), context);
|
} else if (type.equalsIgnoreCase("4")) {/**未加入淘宝联盟的情况(智能搜索弹窗-猜你喜欢)*/
|
Gson gson = new GsonBuilder().serializeNulls().create();
|
TaoBaoGoodsBrief taoBaoGoodsBrief = gson.fromJson(
|
data.optJSONObject("goods").toString(), new TypeToken<TaoBaoGoodsBrief>() {
|
}.getType());
|
JSONObject left = data.optJSONObject("left");
|
JSONObject right = data.optJSONObject("right");
|
RecommendGoodsJumpInfo leftJump = null;
|
RecommendGoodsJumpInfo rightJump = null;
|
if (left != null) {
|
leftJump = gson.fromJson(left.toString(), RecommendGoodsJumpInfo.class);
|
}
|
if (right != null) {
|
rightJump = gson.fromJson(right.toString(), RecommendGoodsJumpInfo.class);
|
}
|
dialog = ToolUtil.isNotTBAlliance(new RecommendGoodsInfo(taoBaoGoodsBrief, leftJump, rightJump), type, context);
|
} else if (type.equalsIgnoreCase("2")) {// 智能搜索弹窗
|
isCopyTitle(data.optJSONObject("data").optString("title"), data.optJSONObject("data").optInt("sourceType", Constant.GOODS_TYPE_TB), context);
|
} else if (type.equalsIgnoreCase("10") ||
|
type.equalsIgnoreCase("11") ||
|
type.equalsIgnoreCase("13")) {// 类型:10 // 类型:10-免单券 11-奖励券 13-红包
|
Gson gson = new GsonBuilder().serializeNulls().create();
|
GiftCoupon giftCoupon = gson.fromJson(jsonObject.optJSONObject("data")
|
.toString(), new TypeToken<GiftCoupon>() {
|
}.getType());
|
isGiftCoupon(giftCoupon, type, context);//弹窗10-免单券 11-奖励券 12-红包
|
} else if (type.equalsIgnoreCase("20")) {
|
data = jsonObject.optJSONObject("data").optJSONObject("data");
|
ConvertLinkInfo convertLinkInfo = new Gson().fromJson(data.toString(), ConvertLinkInfo.class);
|
dialog = new ConvertLinkDialog.Builder(context).setConvertLinkInfo(convertLinkInfo).create();
|
dialog.show();
|
}
|
} else if (jsonObject.optInt("code") == 1001) {// 用户未登录提示
|
Toast.makeText(context, jsonObject.optString("msg"), Toast.LENGTH_SHORT).show();
|
ApkUtil.setEmptyClipboardManager(context);
|
}
|
}
|
});
|
|
|
}
|
}
|