// Path: provider/src/main/java/com/raygun/raygun4android/messages/crashreporting/RaygunBreadcrumbMessage.java
// public class RaygunBreadcrumbMessage {
//     private String message;
//     private String category;
//     private int level;
//     private String type = "Manual";
//     private Map<String, Object> customData;
//     private Long timestamp = System.currentTimeMillis();
//     private String className;
//     private String methodName;
//     private Integer lineNumber;
// 
//     public static class Builder {
//         private String message;
//         private String category;
//         private int level = RaygunBreadcrumbLevel.INFO.ordinal();
//         private Map<String, Object> customData = new WeakHashMap<>();
//         private String className;
//         private String methodName;
//         private Integer lineNumber;
// 
//         public Builder(String message) {
//             this.message = message;
//         }
// 
//         public Builder category(String category) {
//             this.category = category;
//             return this;
//         }
// 
//         public Builder level(RaygunBreadcrumbLevel level) {
//             this.level = level.ordinal();
//             return this;
//         }
// 
//         public Builder customData(Map<String, Object> customData) {
//             this.customData = customData;
//             return this;
//         }
// 
//         public Builder className(String className) {
//             this.className = className;
//             return this;
//         }
// 
//         public Builder methodName(String methodName) {
//             this.methodName = methodName;
//             return this;
//         }
// 
//         public Builder lineNumber(Integer lineNumber) {
//             this.lineNumber = lineNumber;
//             return this;
//         }
// 
//         public RaygunBreadcrumbMessage build() {
//             return new RaygunBreadcrumbMessage(this);
//         }
//     }
// 
//     public String getMessage() {
//         return message;
//     }
// 
//     public String getCategory() {
//         return category;
//     }
// 
//     public RaygunBreadcrumbLevel getLevel() {
//         return RaygunBreadcrumbLevel.values()[level];
//     }
// 
//     public Map<String, Object> getCustomData() {
//         return customData;
//     }
// 
//     public String getClassName() {
//         return className;
//     }
// 
//     public String getMethodName() {
//         return methodName;
//     }
// 
//     public Integer getLineNumber() {
//         return lineNumber;
//     }
// 
//     private RaygunBreadcrumbMessage(Builder builder) {
//         message = builder.message;
//         category = builder.category;
//         level = builder.level;
//         customData = builder.customData;
//         className = builder.className;
//         methodName = builder.methodName;
//         lineNumber = builder.lineNumber;
//     }
// }
// 
// Path: provider/src/main/java/com/raygun/raygun4android/messages/crashreporting/RaygunMessage.java
// public class RaygunMessage {
//     private String occurredOn;
//     private RaygunMessageDetails details;
// 
//     public RaygunMessage() {
//         details = new RaygunMessageDetails();
// 
//         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
//             LocalDateTime utcDateTime = LocalDateTime.now(ZoneId.of("UTC"));
//             occurredOn = utcDateTime.toString();
//         } else {
//             @SuppressLint("SimpleDateFormat") SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
//             df.setTimeZone(TimeZone.getTimeZone("UTC"));
//             occurredOn = df.format(Calendar.getInstance().getTime());
//         }
//     }
// 
//     public RaygunMessageDetails getDetails() {
//         return details;
//     }
// 
//     public void setDetails(RaygunMessageDetails details) {
//         this.details = details;
//     }
// 
//     public String getOccurredOn() {
//         return occurredOn;
//     }
// 
//     public void setOccurredOn(String occurredOn) {
//         this.occurredOn = occurredOn;
//     }
// }


import android.content.Context;
import com.raygun.raygun4android.messages.crashreporting.RaygunBreadcrumbMessage;
import com.raygun.raygun4android.messages.crashreporting.RaygunMessage;
import java.util.List;
import java.util.Map;
package com.raygun.raygun4android;




public interface IRaygunMessageBuilder {
    RaygunMessage build();

    IRaygunMessageBuilder setMachineName(String machineName);

    IRaygunMessageBuilder setExceptionDetails(Throwable throwable);

    IRaygunMessageBuilder setClientDetails();

    IRaygunMessageBuilder setEnvironmentDetails(Context context);

    IRaygunMessageBuilder setVersion(String version);

    IRaygunMessageBuilder setTags(List tags);

    IRaygunMessageBuilder setCustomData(Map customData);

    IRaygunMessageBuilder setAppContext(String identifier);

    IRaygunMessageBuilder setUserInfo();

    IRaygunMessageBuilder setNetworkInfo(Context context);

    IRaygunMessageBuilder setGroupingKey(String groupingKey);

// Path: provider/src/main/java/com/raygun/raygun4android/messages/crashreporting/RaygunBreadcrumbMessage.java
// public class RaygunBreadcrumbMessage {
//     private String message;
//     private String category;
//     private int level;
//     private String type = "Manual";
//     private Map<String, Object> customData;
//     private Long timestamp = System.currentTimeMillis();
//     private String className;
//     private String methodName;
//     private Integer lineNumber;
// 
//     public static class Builder {
//         private String message;
//         private String category;
//         private int level = RaygunBreadcrumbLevel.INFO.ordinal();
//         private Map<String, Object> customData = new WeakHashMap<>();
//         private String className;
//         private String methodName;
//         private Integer lineNumber;
// 
//         public Builder(String message) {
//             this.message = message;
//         }
// 
//         public Builder category(String category) {
//             this.category = category;
//             return this;
//         }
// 
//         public Builder level(RaygunBreadcrumbLevel level) {
//             this.level = level.ordinal();
//             return this;
//         }
// 
//         public Builder customData(Map<String, Object> customData) {
//             this.customData = customData;
//             return this;
//         }
// 
//         public Builder className(String className) {
//             this.className = className;
//             return this;
//         }
// 
//         public Builder methodName(String methodName) {
//             this.methodName = methodName;
//             return this;
//         }
// 
//         public Builder lineNumber(Integer lineNumber) {
//             this.lineNumber = lineNumber;
//             return this;
//         }
// 
//         public RaygunBreadcrumbMessage build() {
//             return new RaygunBreadcrumbMessage(this);
//         }
//     }
// 
//     public String getMessage() {
//         return message;
//     }
// 
//     public String getCategory() {
//         return category;
//     }
// 
//     public RaygunBreadcrumbLevel getLevel() {
//         return RaygunBreadcrumbLevel.values()[level];
//     }
// 
//     public Map<String, Object> getCustomData() {
//         return customData;
//     }
// 
//     public String getClassName() {
//         return className;
//     }
// 
//     public String getMethodName() {
//         return methodName;
//     }
// 
//     public Integer getLineNumber() {
//         return lineNumber;
//     }
// 
//     private RaygunBreadcrumbMessage(Builder builder) {
//         message = builder.message;
//         category = builder.category;
//         level = builder.level;
//         customData = builder.customData;
//         className = builder.className;
//         methodName = builder.methodName;
//         lineNumber = builder.lineNumber;
//     }
// }
// 
// Path: provider/src/main/java/com/raygun/raygun4android/messages/crashreporting/RaygunMessage.java
// public class RaygunMessage {
//     private String occurredOn;
//     private RaygunMessageDetails details;
// 
//     public RaygunMessage() {
//         details = new RaygunMessageDetails();
// 
//         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
//             LocalDateTime utcDateTime = LocalDateTime.now(ZoneId.of("UTC"));
//             occurredOn = utcDateTime.toString();
//         } else {
//             @SuppressLint("SimpleDateFormat") SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
//             df.setTimeZone(TimeZone.getTimeZone("UTC"));
//             occurredOn = df.format(Calendar.getInstance().getTime());
//         }
//     }
// 
//     public RaygunMessageDetails getDetails() {
//         return details;
//     }
// 
//     public void setDetails(RaygunMessageDetails details) {
//         this.details = details;
//     }
// 
//     public String getOccurredOn() {
//         return occurredOn;
//     }
// 
//     public void setOccurredOn(String occurredOn) {
//         this.occurredOn = occurredOn;
//     }
// }


// Path: provider/src/main/java/com/raygun/raygun4android/IRaygunMessageBuilder.java
import android.content.Context;
import com.raygun.raygun4android.messages.crashreporting.RaygunBreadcrumbMessage;
import com.raygun.raygun4android.messages.crashreporting.RaygunMessage;
import java.util.List;
import java.util.Map;

package com.raygun.raygun4android;




public interface IRaygunMessageBuilder {
    RaygunMessage build();

    IRaygunMessageBuilder setMachineName(String machineName);

    IRaygunMessageBuilder setExceptionDetails(Throwable throwable);

    IRaygunMessageBuilder setClientDetails();

    IRaygunMessageBuilder setEnvironmentDetails(Context context);

    IRaygunMessageBuilder setVersion(String version);

    IRaygunMessageBuilder setTags(List tags);

    IRaygunMessageBuilder setCustomData(Map customData);

    IRaygunMessageBuilder setAppContext(String identifier);

    IRaygunMessageBuilder setUserInfo();

    IRaygunMessageBuilder setNetworkInfo(Context context);

    IRaygunMessageBuilder setGroupingKey(String groupingKey);

    IRaygunMessageBuilder setBreadcrumbs(List<RaygunBreadcrumbMessage> breadcrumbs);