package de.greenrobot.event.util; import android.content.res.Resources; import android.util.Log; import de.greenrobot.event.EventBus; public class ErrorDialogConfig { protected final Resources resources; protected final int defaultTitleId; private final int defaultErrorMsgId; protected final ExceptionToResourceMapping mapping; protected EventBus eventBus; protected boolean logExceptions = true; protected String tagForLoggingExceptions; protected int defaultDialogIconId; protected Class<?> defaultEventTypeOnDialogClosed; public ErrorDialogConfig(Resources resources, int defaultTitleId, int defaultMsgId) { this.resources = resources; this.defaultTitleId = defaultTitleId; this.defaultErrorMsgId = defaultMsgId; mapping = new ExceptionToResourceMapping(); } public ErrorDialogConfig addMapping(Class<? extends Throwable> clazz, int msgId) { mapping.addMapping(clazz, msgId); return this; } public int getMessageIdForThrowable(final Throwable throwable) { Integer resId = mapping.mapThrowable(throwable); if (resId != null) { return resId; } else { Log.d(EventBus.TAG, "No specific message ressource ID found for " + throwable); return defaultErrorMsgId; } } public void setDefaultDialogIconId(int defaultDialogIconId) { this.defaultDialogIconId = defaultDialogIconId; } public void setDefaultEventTypeOnDialogClosed(Class<?> defaultEventTypeOnDialogClosed) { this.defaultEventTypeOnDialogClosed = defaultEventTypeOnDialogClosed; } public void disableExceptionLogging() { logExceptions = false; } public void setTagForLoggingExceptions(String tagForLoggingExceptions) { this.tagForLoggingExceptions = tagForLoggingExceptions; } public void setEventBus(EventBus eventBus) { this.eventBus = eventBus; } /** eventBus!=null ? eventBus: EventBus.getDefault() */ EventBus getEventBus() { return eventBus!=null ? eventBus: EventBus.getDefault(); } }