package com.qiwenge.android.utils; import android.content.Context; import android.util.Log; import com.liuguangqiang.framework.utils.encrypt.Md5; import com.qiwenge.android.constant.Constants; import com.qiwenge.android.entity.Book; import java.util.HashSet; import java.util.List; import java.util.Set; import cn.jpush.android.api.JPushInterface; import cn.jpush.android.api.TagAliasCallback; /** * Created by Eric on 14/12/3. */ public class PushUtils { private final static int STATUS_SUCCESS = 0; private final static int STATUS_TIMEOUT = 6002; private final static int RETRY_COUNT = 5; private final static String PUSH_MANAGER = "PUSH_MANAGER"; private final static String IS_OPEN = "IS_OPEN"; private Context mContext; public PushUtils(Context context) { mContext = context; } public void setAlias() { if (LoginManager.isLogin()) { setAlias(LoginManager.getUser().getId(), RETRY_COUNT); } else { clearAlias(); } } private void setAlias(final String alias, final int retryCount) { JPushInterface.setAlias(mContext, alias, new TagAliasCallback() { @Override public void gotResult(int i, String s, Set<String> strings) { if (i == STATUS_TIMEOUT && retryCount > 0) { setAlias(alias, retryCount - 1); } else if (i == STATUS_SUCCESS) { Log.i("PushUtils", alias); } } }); } //TODO setTags stg_bookid_mirrorid public void setTags(List<Book> books) { // Set<String> tags = new HashSet<>(); // String format; // if (Constants.DEBUG) { // format = "stg_%s"; // } else { // format = "%s"; // } // for (Book book : books) { // tags.add(String.format(format, Md5.encode(book.getId() + "_" + book.currentMirrorId()))); // } // // Set<String> filterTags = JPushInterface.filterValidTags(tags); // // setTags(filterTags, RETRY_COUNT); } private void setTags(final Set<String> tags, final int retryCount) { JPushInterface.setTags(mContext, tags, new TagAliasCallback() { @Override public void gotResult(int i, String s, Set<String> strings) { if (i == STATUS_TIMEOUT && retryCount > 0) { setTags(tags, retryCount - 1); } else if (i == STATUS_SUCCESS) { } } }); } public void clearAlias() { Log.i("PushUtils", "clearAlias"); setAlias("", RETRY_COUNT); } }