package com.malmstein.yahnac;
import android.os.StrictMode;
/**
* Enables StrictMode with defaults to detect all wrong doing.
* <p/>
* See http://developer.android.com/reference/android/os/StrictMode.html for more
*/
public final class StrictModeManager {
private StrictModeManager() {
throw new IllegalStateException("This class should not be instantiated");
}
/**
* Initializes StrictMode to close activity and log to console when a violation occurs.
*/
public static void initializeStrictMode() {
initializeStrictMode(newVmPolicyBuilderWithDefaults(), newThreadPolicyBuilderWithDefaults());
}
public static void initializeStrictMode(StrictMode.VmPolicy.Builder vmPolicyBuilder, StrictMode.ThreadPolicy.Builder threadPolicyBuilder) {
StrictMode.setThreadPolicy(threadPolicyBuilder.penaltyDeath().build());
StrictMode.setVmPolicy(vmPolicyBuilder.penaltyDeath().build());
}
/**
* Initializes StrictMode to log to console when a violation occurs.
*/
public static void initializeStrictModeLogOnly() {
initializeStrictModeLogOnly(newVmPolicyBuilderWithDefaults(), newThreadPolicyBuilderWithDefaults());
}
public static void initializeStrictModeLogOnly(StrictMode.VmPolicy.Builder vmPolicyBuilder, StrictMode.ThreadPolicy.Builder threadPolicyBuilder) {
StrictMode.setThreadPolicy(threadPolicyBuilder.build());
StrictMode.setVmPolicy(vmPolicyBuilder.build());
}
public static StrictMode.VmPolicy.Builder newVmPolicyBuilderWithDefaults() {
return new StrictMode.VmPolicy.Builder().detectAll().penaltyLog();
}
public static StrictMode.ThreadPolicy.Builder newThreadPolicyBuilderWithDefaults() {
return new StrictMode.ThreadPolicy.Builder().detectAll().penaltyLog();
}
}