Add a whole lot of debug goodies

This commit is contained in:
Bradlee Speice 2014-09-12 22:23:48 -04:00
parent cb13dd64aa
commit cbb4b5fd14
3 changed files with 82 additions and 8 deletions

View File

@ -7,12 +7,14 @@ buildscript {
dependencies { dependencies {
classpath 'com.jakewharton.sdkmanager:gradle-plugin:0.12.+' classpath 'com.jakewharton.sdkmanager:gradle-plugin:0.12.+'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.jakewharton.hugo:hugo-plugin:+'
} }
} }
apply plugin: 'android-sdk-manager' apply plugin: 'android-sdk-manager'
apply plugin: 'com.android.application' apply plugin: 'com.android.application'
apply plugin: 'kotlin-android' apply plugin: 'kotlin-android'
apply plugin: 'hugo'
android { android {
compileSdkVersion 20 compileSdkVersion 20
@ -42,14 +44,15 @@ android {
exclude 'NOTICE' exclude 'NOTICE'
exclude 'asm-license.txt' exclude 'asm-license.txt'
} }
// TODO: Remove Hugo and support SDK 8?
productFlavors { productFlavors {
testConfig { testConfig {
minSdkVersion 8 minSdkVersion 9
applicationId 'org.bspeice.minimalbible' applicationId 'org.bspeice.minimalbible'
targetSdkVersion 20 targetSdkVersion 20
} }
mainConfig { mainConfig {
minSdkVersion 8 minSdkVersion 9
applicationId 'org.bspeice.minimalbible' applicationId 'org.bspeice.minimalbible'
targetSdkVersion 20 targetSdkVersion 20
} }
@ -82,4 +85,6 @@ dependencies {
androidTestCompile 'com.google.dexmaker:dexmaker:+' androidTestCompile 'com.google.dexmaker:dexmaker:+'
androidTestCompile 'com.google.dexmaker:dexmaker-mockito:+' androidTestCompile 'com.google.dexmaker:dexmaker-mockito:+'
// Email debug reports if I crash...
testConfigCompile 'ch.acra:acra:+'
} }

View File

@ -1,3 +1,6 @@
/**
* Created by bspeice on 9/12/14.
*/
package org.bspeice.minimalbible; package org.bspeice.minimalbible;
import android.app.Application; import android.app.Application;
@ -11,12 +14,16 @@ import java.io.File;
import dagger.ObjectGraph; import dagger.ObjectGraph;
/** /**
* Created by Bradlee Speice on 7/5/2014. * Created by bspeice on 9/12/14.
*/ */
public class MinimalBible extends Application implements Injector { public class MinimalBible extends Application implements Injector {
private String TAG = "MinimalBible"; private String TAG = "MinimalBible";
private ObjectGraph mObjectGraph; private ObjectGraph mObjectGraph;
public static MinimalBible get(Context ctx) {
return (MinimalBible) ctx.getApplicationContext();
}
@Override @Override
public void onCreate() { public void onCreate() {
super.onCreate(); super.onCreate();
@ -36,10 +43,6 @@ public class MinimalBible extends Application implements Injector {
return mObjectGraph.plus(modules); return mObjectGraph.plus(modules);
} }
public static MinimalBible get(Context ctx) {
return (MinimalBible)ctx.getApplicationContext();
}
/** /**
* Notify jSword that it needs to store files in the Android internal directory * Notify jSword that it needs to store files in the Android internal directory
* NOTE: Android will uninstall these files if you uninstall MinimalBible. * NOTE: Android will uninstall these files if you uninstall MinimalBible.

View File

@ -0,0 +1,66 @@
package org.bspeice.minimalbible;
import android.app.Application;
import android.content.Context;
import android.util.Log;
import org.acra.ACRA;
import org.acra.ReportingInteractionMode;
import org.acra.annotation.ReportsCrashes;
import org.crosswire.jsword.book.sword.SwordBookPath;
import java.io.File;
import dagger.ObjectGraph;
/**
* Created by bspeice on 9/12/14.
*/
@ReportsCrashes(formKey = "",
mailTo = "bspeice.nc@gmail.com",
mode = ReportingInteractionMode.SILENT
)
public class MinimalBible extends Application implements Injector {
private String TAG = "MinimalBible";
private ObjectGraph mObjectGraph;
public static MinimalBible get(Context ctx) {
return (MinimalBible) ctx.getApplicationContext();
}
@Override
public void onCreate() {
super.onCreate();
buildObjGraph();
setJswordHome();
ACRA.init(this);
}
public void buildObjGraph() {
mObjectGraph = ObjectGraph.create(Modules.list(this));
}
public void inject(Object o) {
mObjectGraph.inject(o);
}
public ObjectGraph plus(Object... modules) {
return mObjectGraph.plus(modules);
}
/**
* Notify jSword that it needs to store files in the Android internal directory
* NOTE: Android will uninstall these files if you uninstall MinimalBible.
*/
@SuppressWarnings("null")
private void setJswordHome() {
// We need to set the download directory for jSword to stick with
// Android.
String home = this.getFilesDir().toString();
Log.d(TAG, "Setting jsword.home to: " + home);
System.setProperty("jsword.home", home);
System.setProperty("sword.home", home);
SwordBookPath.setDownloadDir(new File(home));
Log.d(TAG, "Sword download path: " + SwordBookPath.getSwordDownloadDir());
}
}