package com.netease.nim.uikit.common.badger;

import android.os.Build;
import android.os.Handler;
import android.util.Log;

import com.netease.nim.uikit.api.NimUIKit;
import com.netease.nim.uikit.common.framework.infra.Handlers;

import me.leolin.shortcutbadger.ShortcutBadger;

/**
 * APP图标未读数红点更新接口
 * https://github.com/leolin310148/ShortcutBadger
 * <p>
 * Created by huangjun on 2017/7/25.
 */

public class Badger {
    private static final String TAG = "Badger";

    private static Handler handler;

    private static boolean support = false;

    static {
        support = Build.VERSION.SDK_INT < Build.VERSION_CODES.O;
    }

    public static void updateBadgerCount(final int unreadCount) {
        if (!support) {
            return; // O版本及以上不再支持
        }

        if (handler == null) {
            handler = Handlers.sharedInstance().newHandler("Badger");
        }

        handler.removeCallbacksAndMessages(null);
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                int badgerCount = unreadCount;
                if (badgerCount < 0) {
                    badgerCount = 0;
                } else if (badgerCount > 99) {
                    badgerCount = 99;
                }

                boolean res = ShortcutBadger.applyCount(NimUIKit.getContext(), badgerCount);
                if (!res) {
                    support = false; // 如果失败就不要再使用了!
                }
                Log.i(TAG, "update badger count " + (res ? "success" : "failed"));
            }
        }, 200);
    }
}