package com.android.pc.ioc.event.util; import com.android.pc.ioc.event.EventBus; import android.content.res.Resources; import android.util.Log; public class ErrorDialogConfig { final Resources resources; final int defaultTitleId; final int defaultErrorMsgId; final ExceptionToResourceMapping mapping; EventBus eventBus; boolean logExceptions = true; String tagForLoggingExceptions; int defaultDialogIconId; 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(); } }