diff --git a/app/build.gradle b/app/build.gradle index d0a194735..c042caeb7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,6 +8,10 @@ android { applicationId "org.isoron.uhabits" minSdkVersion 15 targetSdkVersion 23 + + buildConfigField "Integer", "databaseVersion", "12" + buildConfigField "String", "databaseFilename", "\"uhabits.db\"" + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } @@ -35,7 +39,6 @@ dependencies { androidTestCompile 'com.android.support:support-annotations:23.1.1' androidTestCompile 'com.android.support.test:runner:0.4.1' androidTestCompile 'com.android.support.test:rules:0.4.1' - androidTestCompile 'org.hamcrest:hamcrest-library:1.3' androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1' androidTestCompile 'com.android.support.test.espresso:espresso-intents:2.2.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 545c02988..6bbdfba86 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -35,19 +35,13 @@ android:maxSdkVersion="18"/> - - diff --git a/app/src/main/java/org/isoron/uhabits/HabitsApplication.java b/app/src/main/java/org/isoron/uhabits/HabitsApplication.java new file mode 100644 index 000000000..a7573d946 --- /dev/null +++ b/app/src/main/java/org/isoron/uhabits/HabitsApplication.java @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2016 Álinson Santos Xavier + * + * This file is part of Loop Habit Tracker. + * + * Loop Habit Tracker is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by the + * Free Software Foundation, either version 3 of the License, or (at your + * option) any later version. + * + * Loop Habit Tracker is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + */ + +package org.isoron.uhabits; + +import android.app.Application; + +import com.activeandroid.ActiveAndroid; +import com.activeandroid.Configuration; + +import java.io.File; + +public class HabitsApplication extends Application +{ + private boolean isTestMode() + { + try + { + getClassLoader().loadClass("org.isoron.uhabits.unit.models.HabitTest"); + return true; + } + catch (final Exception e) + { + return false; + } + } + + private void deleteDB(String databaseFilename) + { + File databaseFile = new File(String.format("%s/../databases/%s", + getApplicationContext().getFilesDir().getPath(), databaseFilename)); + + if(databaseFile.exists()) databaseFile.delete(); + } + + @Override + public void onCreate() + { + super.onCreate(); + String databaseFilename = BuildConfig.databaseFilename; + + if (isTestMode()) + { + databaseFilename = "test.db"; + deleteDB(databaseFilename); + } + + Configuration dbConfig = new Configuration.Builder(this) + .setDatabaseName(databaseFilename) + .setDatabaseVersion(BuildConfig.databaseVersion) + .create(); + + ActiveAndroid.initialize(dbConfig); + } + + @Override + public void onTerminate() + { + ActiveAndroid.dispose(); + super.onTerminate(); + } +}