// Path: app/src/main/java/com/gudong/appkit/utils/logger/Logger.java
// public class Logger {
//     private static Setting setting;
//     public static Setting init(String tag){
//         if (tag == null) {
//             throw new NullPointerException("tag may not be null");
//         }
//         if (tag.trim().length() == 0) {
//             throw new IllegalStateException("tag may not be empty");
//         }
//         setting = Setting.getInstance();
//         setting.setTag(tag);
//         return setting;
//     }
// 
// 
//     public static void i(String message){
//         log(Log.INFO, setting.getDefTag(), message);
//     }
// 
//     public static void e(String message){
//         log(Log.ERROR, setting.getDefTag(), message);
//     }
// 
//     public static void i(String tag,String message){
//         log(Log.INFO,tag, message);
//     }
// 
//     public static void e(String tag,String message){
//         log(Log.ERROR,tag, message);
//     }
// 
//     public static void d(String tag,String message){
//         log(Log.DEBUG,tag, message);
//     }
// 
//     public static void w(String tag,String message){
//         log(Log.WARN,tag, message);
//     }
// 
//     private static synchronized void log(int logType, String tag,String msg) {
//         if(setting == null){
//             throw new NullPointerException("before use Logger ,please init Logger in Application and set param");
//         }
//         if (setting.getLevel() == LogLevel.NONE) {
//             return;
//         }
//         String finalTag = formatTag(tag);
//         switch (logType){
//             case Log.INFO:
//                 Log.i(finalTag,msg);
//                 break;
//             case Log.ERROR:
//                 Log.e(finalTag,msg);
//                 break;
//             case Log.WARN:
//                 Log.w(finalTag,msg);
//                 break;
//             case Log.DEBUG:
//                 Log.d(finalTag,msg);
//                 break;
//         }
//     }
//     private static String formatTag(String tag) {
//         if (!TextUtils.isEmpty(tag) && !TextUtils.equals(setting.getDefTag(), tag)) {
//             return setting.getTag() + "-" + tag;
//         }
//         return setting.getTag();
//     }
// }


import java.util.Set;
import android.os.Bundle;
import com.gudong.appkit.utils.logger.Logger;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
     * @param event
     */
    public void triggerEvent(EEvent event, Bundle data) {
        Set<Subscribe>registerList = mEvents.get(event);
        if(registerList == null){
            return;
        }
        if(!registerList.isEmpty()){
            for (Iterator<Subscribe>it = registerList.iterator();it.hasNext();) {
                Subscribe subscribe = it.next();
                subscribe.update(event,data);
            }
        }
    }

    public void registerEvent(EEvent event,Subscribe subscribe) {
        Set<Subscribe> registerList = mEvents.get(event);
        if(registerList == null){
            registerList = new HashSet<Subscribe>();
        }
        if(registerList.isEmpty()){
            mEvents.put(event,registerList);
        }
        registerList.add(subscribe);
    }

    public void unregisterEvent(EEvent event,Subscribe subscribe){
        Set<Subscribe> registerList = mEvents.get(event);
        if(registerList!=null && !registerList.isEmpty()){
            registerList.remove(subscribe);
// Path: app/src/main/java/com/gudong/appkit/utils/logger/Logger.java
// public class Logger {
//     private static Setting setting;
//     public static Setting init(String tag){
//         if (tag == null) {
//             throw new NullPointerException("tag may not be null");
//         }
//         if (tag.trim().length() == 0) {
//             throw new IllegalStateException("tag may not be empty");
//         }
//         setting = Setting.getInstance();
//         setting.setTag(tag);
//         return setting;
//     }
// 
// 
//     public static void i(String message){
//         log(Log.INFO, setting.getDefTag(), message);
//     }
// 
//     public static void e(String message){
//         log(Log.ERROR, setting.getDefTag(), message);
//     }
// 
//     public static void i(String tag,String message){
//         log(Log.INFO,tag, message);
//     }
// 
//     public static void e(String tag,String message){
//         log(Log.ERROR,tag, message);
//     }
// 
//     public static void d(String tag,String message){
//         log(Log.DEBUG,tag, message);
//     }
// 
//     public static void w(String tag,String message){
//         log(Log.WARN,tag, message);
//     }
// 
//     private static synchronized void log(int logType, String tag,String msg) {
//         if(setting == null){
//             throw new NullPointerException("before use Logger ,please init Logger in Application and set param");
//         }
//         if (setting.getLevel() == LogLevel.NONE) {
//             return;
//         }
//         String finalTag = formatTag(tag);
//         switch (logType){
//             case Log.INFO:
//                 Log.i(finalTag,msg);
//                 break;
//             case Log.ERROR:
//                 Log.e(finalTag,msg);
//                 break;
//             case Log.WARN:
//                 Log.w(finalTag,msg);
//                 break;
//             case Log.DEBUG:
//                 Log.d(finalTag,msg);
//                 break;
//         }
//     }
//     private static String formatTag(String tag) {
//         if (!TextUtils.isEmpty(tag) && !TextUtils.equals(setting.getDefTag(), tag)) {
//             return setting.getTag() + "-" + tag;
//         }
//         return setting.getTag();
//     }
// }


// Path: app/src/main/java/com/gudong/appkit/event/EventCenter.java
import java.util.Set;
import android.os.Bundle;
import com.gudong.appkit.utils.logger.Logger;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;

     * @param event
     */
    public void triggerEvent(EEvent event, Bundle data) {
        Set<Subscribe>registerList = mEvents.get(event);
        if(registerList == null){
            return;
        }
        if(!registerList.isEmpty()){
            for (Iterator<Subscribe>it = registerList.iterator();it.hasNext();) {
                Subscribe subscribe = it.next();
                subscribe.update(event,data);
            }
        }
    }

    public void registerEvent(EEvent event,Subscribe subscribe) {
        Set<Subscribe> registerList = mEvents.get(event);
        if(registerList == null){
            registerList = new HashSet<Subscribe>();
        }
        if(registerList.isEmpty()){
            mEvents.put(event,registerList);
        }
        registerList.add(subscribe);
    }

    public void unregisterEvent(EEvent event,Subscribe subscribe){
        Set<Subscribe> registerList = mEvents.get(event);
        if(registerList!=null && !registerList.isEmpty()){
            registerList.remove(subscribe);
            Logger.i("unregister "+event.name());