diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2017-11-30 18:33:14 +0200 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2017-11-30 18:33:14 +0200 |
| commit | 3a70d596ada24ad6f92f729d564ab29c3e249f06 (patch) | |
| tree | 0d986f3786254401b0741ec8f38391bdc6d4cd6a /Software/Android_Studio | |
| parent | cfb92ea5e80b1af847829a76ab3c9ed7f52ae2c4 (diff) | |
| download | Tango-3a70d596ada24ad6f92f729d564ab29c3e249f06.tar.gz Tango-3a70d596ada24ad6f92f729d564ab29c3e249f06.zip | |
Added FlowDB to android DAL.
Implemented database path override.
Added Storage library for easy file IO.
Diffstat (limited to 'Software/Android_Studio')
16 files changed, 467 insertions, 219 deletions
diff --git a/Software/Android_Studio/Tango.DAL/build.gradle b/Software/Android_Studio/Tango.DAL/build.gradle index 066a1efbd..c237ba6e4 100644 --- a/Software/Android_Studio/Tango.DAL/build.gradle +++ b/Software/Android_Studio/Tango.DAL/build.gradle @@ -31,16 +31,28 @@ android { } } -dependencies { - implementation fileTree(dir: 'libs', include: ['*.jar']) +def dbflow_version = "4.1.2" +dependencies { + implementation fileTree(include: ['*.jar'], dir: 'libs') testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.1' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' - //Room - compile 'android.arch.persistence.room:runtime:1.0.0-alpha9' - annotationProcessor 'android.arch.persistence.room:compiler:1.0.0-alpha9' + //DBFlow + compile globalDependencies.rxJavaAndroid + compile globalDependencies.rxJava + annotationProcessor "com.github.Raizlabs.DBFlow:dbflow-processor:${dbflow_version}" + compile "com.github.Raizlabs.DBFlow:dbflow-core:${dbflow_version}" + compile "com.github.Raizlabs.DBFlow:dbflow:${dbflow_version}" + compile "com.github.Raizlabs.DBFlow:dbflow-rx2:${dbflow_version}" + + + implementation project(':Tango.Core') + compile 'com.android.support:support-annotations:25.4.0' + + compile globalDependencies.logging + compile globalDependencies.storage } //Copy data base to assets folder. diff --git a/Software/Android_Studio/Tango.DAL/src/androidTest/java/com/twine/tango/dal/ExampleInstrumentedTest.java b/Software/Android_Studio/Tango.DAL/src/androidTest/java/com/twine/tango/dal/ExampleInstrumentedTest.java index 3684e9cfe..372af6ec5 100644 --- a/Software/Android_Studio/Tango.DAL/src/androidTest/java/com/twine/tango/dal/ExampleInstrumentedTest.java +++ b/Software/Android_Studio/Tango.DAL/src/androidTest/java/com/twine/tango/dal/ExampleInstrumentedTest.java @@ -3,17 +3,10 @@ package com.twine.tango.dal; import android.content.Context; import android.support.test.InstrumentationRegistry; import android.support.test.runner.AndroidJUnit4; -import android.util.Log; - -import com.twine.tango.dal.db.AppDataBase; -import com.twine.tango.dal.db.AppDataBase_Impl; -import com.twine.tango.dal.entities.User; import org.junit.Test; import org.junit.runner.RunWith; -import java.util.List; - import static org.junit.Assert.*; /** @@ -32,24 +25,4 @@ public class ExampleInstrumentedTest assertEquals("com.twine.tango.dal.test", appContext.getPackageName()); } - - @Test - public void testDB() throws Exception - { - Context appContext = InstrumentationRegistry.getTargetContext(); - AppDataBase db = AppDataBase.getAppDatabase(appContext); - - User u = new User(); - u.setFirstName("Roy"); - u.setLastName("Ben Shabat 2"); - db.usersDAO().insert(u); - - List<User> users = db.usersDAO().getAll(); - - for (User user : users) - { - Log.i("DB",user.getFirstName()); - Log.i("DB",user.getLastName()); - } - } } diff --git a/Software/Android_Studio/Tango.DAL/src/main/assets/Tango.db b/Software/Android_Studio/Tango.DAL/src/main/assets/Tango.db Binary files differindex a0b28abd7..68ca3633d 100644 --- a/Software/Android_Studio/Tango.DAL/src/main/assets/Tango.db +++ b/Software/Android_Studio/Tango.DAL/src/main/assets/Tango.db diff --git a/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/TangoDB.java b/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/TangoDB.java new file mode 100644 index 000000000..d878e72b2 --- /dev/null +++ b/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/TangoDB.java @@ -0,0 +1,72 @@ +package com.twine.tango.dal; + +import android.content.Context; +import android.os.Environment; + +import com.elvishew.xlog.XLog; +import com.raizlabs.android.dbflow.annotation.Database; +import com.raizlabs.android.dbflow.config.DatabaseConfig; +import com.raizlabs.android.dbflow.config.DatabaseConfig.OpenHelperCreator; +import com.raizlabs.android.dbflow.config.DatabaseDefinition; +import com.raizlabs.android.dbflow.config.FlowConfig; +import com.raizlabs.android.dbflow.config.FlowManager; +import com.raizlabs.android.dbflow.sql.language.SQLite; +import com.raizlabs.android.dbflow.structure.database.DatabaseHelperListener; +import com.raizlabs.android.dbflow.structure.database.OpenHelper; +import com.snatik.storage.Storage; +import com.twine.tango.core.ContextFactory; +import com.twine.tango.dal.entities.Organization; + +import java.io.File; +import java.util.List; + +/** + * Created by Roy on 11/30/2017. + */ + +@Database(name = "Tango",version = 1) +public class TangoDB +{ + private static DatabaseDefinition database; + private static String database_path; + + public static void init() + { + FlowManager.init(FlowConfig.builder(ContextFactory.getApplicationContext()) + .addDatabaseConfig( + DatabaseConfig.builder( + TangoDB.class) + .databaseName("Tango") + .build()) + .build()); + + database = FlowManager.getDatabase(TangoDB.class); + + //Test + List<Organization> results = SQLite.select().from(Organization.class).queryList(); + + for (Organization org : results) + { + XLog.i(org.getName()); + } + + backup(); + } + + public static File getDataBasePath(String name) + { + database_path = Environment.getExternalStorageDirectory() + "/" + name; + return new File(database_path); + } + + public static void close() + { + database.close(); + } + + public static void backup() + { + Storage storage = new Storage(ContextFactory.getApplicationContext()); + storage.copy(database_path,storage.getExternalStorageDirectory() + "/" + "backup.db"); + } +} diff --git a/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/dao/UsersDAO.java b/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/dao/UsersDAO.java deleted file mode 100644 index e87286ad1..000000000 --- a/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/dao/UsersDAO.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.twine.tango.dal.dao; - -import android.arch.persistence.room.Dao; -import android.arch.persistence.room.Delete; -import android.arch.persistence.room.Insert; -import android.arch.persistence.room.Query; - -import com.twine.tango.dal.entities.User; - -import java.util.List; - -/** - * Created by Roy on 11/23/2017. - */ - -@Dao -public interface UsersDAO -{ - @Query("SELECT * FROM USERS") - List<User> getAll(); - - @Insert - void insert(User user); - - @Delete - void delete(User user); -} diff --git a/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/db/AppDataBase.java b/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/db/AppDataBase.java deleted file mode 100644 index b1124c6ab..000000000 --- a/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/db/AppDataBase.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.twine.tango.dal.db; - - -import android.arch.persistence.db.SupportSQLiteDatabase; -import android.arch.persistence.room.Database; -import android.arch.persistence.room.Room; -import android.arch.persistence.room.RoomDatabase; -import android.arch.persistence.room.migration.Migration; -import android.content.Context; - -import com.twine.tango.dal.dao.UsersDAO; -import com.twine.tango.dal.entities.User; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.InputStream; -import java.io.OutputStream; - -/** - * Created by Roy on 11/23/2017. - */ - -@Database(entities = { User.class }, exportSchema = false, version = 1) -public abstract class AppDataBase extends RoomDatabase -{ - private static String DB_PATH = "/data/data/com.twine.tango.dal.test/databases/"; - private static String DB_NAME = "Tango"; - - private static AppDataBase INSTANCE; - - public abstract UsersDAO usersDAO(); - - public static AppDataBase getAppDatabase(Context context) { - if (INSTANCE == null) { - - try - { - DB_PATH = context.getDatabasePath(DB_NAME).getPath(); - - File file = new File(DB_PATH); - if(!file.exists()) - { - copyDefaultDB(context); - } - - } catch (Exception e) - { - e.printStackTrace(); - - //TODO: fallback in case we fail in copying the default db. - } - - INSTANCE = - Room.databaseBuilder(context.getApplicationContext(), AppDataBase.class, DB_NAME) - // allow queries on the main thread. - // Don't do this on a real app! See PersistenceBasicSample for an example. - .allowMainThreadQueries() - .build(); - } - return INSTANCE; - } - - private static void copyDefaultDB(Context context) throws Exception - { - //Open your local db as the input stream - InputStream myInput = context.getAssets().open(DB_NAME + ".db"); - - //Open the empty db as the output stream - OutputStream myOutput = new FileOutputStream(DB_PATH); - - //transfer bytes from the inputfile to the outputfile - byte[] buffer = new byte[1024]; - int length; - while ((length = myInput.read(buffer))>0){ - myOutput.write(buffer, 0, length); - } - - //Close the streams - myOutput.flush(); - myOutput.close(); - myInput.close(); - } - - public static void destroyInstance() { - INSTANCE = null; - } - - //region Migrations - - static final Migration MIGRATION_1_2 = new Migration(1, 2) { - @Override - public void migrate(SupportSQLiteDatabase database) { - database.execSQL("CREATE TABLE `Fruit` (`id` INTEGER, " - + "`name` TEXT, PRIMARY KEY(`id`))"); - } - }; - - //endregion - -} - diff --git a/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/entities/Address.java b/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/entities/Address.java new file mode 100644 index 000000000..f808d933b --- /dev/null +++ b/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/entities/Address.java @@ -0,0 +1,104 @@ +package com.twine.tango.dal.entities; + +import com.raizlabs.android.dbflow.annotation.Column; +import com.raizlabs.android.dbflow.annotation.Table; +import com.twine.tango.dal.TangoDB; + +/** + * Created by Roy on 11/30/2017. + */ + +@Table(name = "ADDRESSES", database = TangoDB.class) +public class Address extends Entity +{ + @Column(name = "ADDRESS") + private String address; + + @Column(name = "LOCALITY") + private String locality; + + @Column(name = "COUNTRY") + private String country; + + @Column(name = "CITY") + private String city; + + @Column(name = "STATE") + private String state; + + @Column(name = "COUNTRY_CODE") + private String country_code; + + @Column(name = "POSTAL_CODE") + private String postal_code; + + public String getAddress() + { + return address; + } + + public void setAddress(String address) + { + this.address = address; + } + + public String getLocality() + { + return locality; + } + + public void setLocality(String locality) + { + this.locality = locality; + } + + public String getCountry() + { + return country; + } + + public void setCountry(String country) + { + this.country = country; + } + + public String getCity() + { + return city; + } + + public void setCity(String city) + { + this.city = city; + } + + public String getState() + { + return state; + } + + public void setState(String state) + { + this.state = state; + } + + public String getCountry_code() + { + return country_code; + } + + public void setCountry_code(String country_code) + { + this.country_code = country_code; + } + + public String getPostal_code() + { + return postal_code; + } + + public void setPostal_code(String postal_code) + { + this.postal_code = postal_code; + } +} diff --git a/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/entities/Contact.java b/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/entities/Contact.java new file mode 100644 index 000000000..a4ad77572 --- /dev/null +++ b/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/entities/Contact.java @@ -0,0 +1,91 @@ +package com.twine.tango.dal.entities; + +import com.raizlabs.android.dbflow.annotation.Column; +import com.raizlabs.android.dbflow.annotation.Table; +import com.twine.tango.dal.TangoDB; + +/** + * Created by Roy on 11/30/2017. + */ + +@Table(name = "CONTACTS", database = TangoDB.class) +public class Contact extends Entity +{ + @Column(name = "FIRST_NAME") + private String first_name; + + @Column(name = "LAST_NAME") + private String last_name; + + @Column(name = "FULL_NAME") + private String full_name; + + @Column(name = "EMAIL") + private String email; + + @Column(name = "PHONE_NUMBER") + private String phone_number; + + @Column(name = "FAX") + private String fax; + + public String getFirst_name() + { + return first_name; + } + + public void setFirst_name(String first_name) + { + this.first_name = first_name; + } + + public String getLast_name() + { + return last_name; + } + + public void setLast_name(String last_name) + { + this.last_name = last_name; + } + + public String getFull_name() + { + return full_name; + } + + public void setFull_name(String full_name) + { + this.full_name = full_name; + } + + public String getEmail() + { + return email; + } + + public void setEmail(String email) + { + this.email = email; + } + + public String getPhone_number() + { + return phone_number; + } + + public void setPhone_number(String phone_number) + { + this.phone_number = phone_number; + } + + public String getFax() + { + return fax; + } + + public void setFax(String fax) + { + this.fax = fax; + } +} diff --git a/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/entities/DateConverter.java b/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/entities/DateConverter.java new file mode 100644 index 000000000..8e74df283 --- /dev/null +++ b/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/entities/DateConverter.java @@ -0,0 +1,36 @@ +package com.twine.tango.dal.entities; +import com.raizlabs.android.dbflow.converter.TypeConverter; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; + +/** + * Created by Roy on 11/30/2017. + */ + +@com.raizlabs.android.dbflow.annotation.TypeConverter +public class DateConverter extends TypeConverter<String,Date> +{ + + @Override + public String getDBValue(Date model) + { + return android.text.format.DateFormat.format("yyyy-MM-dd hh:mm:ss", model).toString(); + } + + @Override + public Date getModelValue(String data) + { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); + Date date = null; + try + { + date = format.parse(data); + } catch (ParseException e) + { + e.printStackTrace(); + } + return date; + } +} diff --git a/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/entities/Entity.java b/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/entities/Entity.java new file mode 100644 index 000000000..58a20a59d --- /dev/null +++ b/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/entities/Entity.java @@ -0,0 +1,75 @@ +package com.twine.tango.dal.entities; + +import com.raizlabs.android.dbflow.annotation.Column; +import com.raizlabs.android.dbflow.annotation.PrimaryKey; +import com.raizlabs.android.dbflow.rx2.structure.BaseRXModel; + +import java.util.Date; +import java.util.UUID; + + +/** + * Created by Roy on 11/30/2017. + */ + +public class Entity extends BaseRXModel +{ + @Column(name = "ID") + private int id; + + @Column(name = "GUID") + @PrimaryKey + private String guid; + + @Column(name = "LAST_UPDATED",typeConverter = DateConverter.class) + private Date last_updated; + + @Column(name = "DELETED") + private boolean deleted; + + public int getId() + { + return id; + } + + public void setId(int id) + { + this.id = id; + } + + public String getGuid() + { + return guid; + } + + public void setGuid(String guid) + { + this.guid = guid; + } + + public Date getLast_updated() + { + return last_updated; + } + + public void setLast_updated(Date last_updated) + { + this.last_updated = last_updated; + } + + public boolean isDeleted() + { + return deleted; + } + + public void setDeleted(boolean deleted) + { + this.deleted = deleted; + } + + public Entity() + { + setGuid(UUID.randomUUID().toString()); + setLast_updated(new Date()); + } +} diff --git a/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/entities/Organization.java b/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/entities/Organization.java new file mode 100644 index 000000000..d39490674 --- /dev/null +++ b/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/entities/Organization.java @@ -0,0 +1,54 @@ +package com.twine.tango.dal.entities; + +import com.raizlabs.android.dbflow.annotation.Column; +import com.raizlabs.android.dbflow.annotation.ForeignKey; +import com.raizlabs.android.dbflow.annotation.ForeignKeyReference; +import com.raizlabs.android.dbflow.annotation.Table; +import com.twine.tango.dal.TangoDB; + +/** + * Created by Roy on 11/30/2017. + */ + +@Table(name = "ORGANIZATIONS", database = TangoDB.class) +public class Organization extends Entity +{ + @Column(name = "NAME") + private String name; + + @ForeignKey(references = {@ForeignKeyReference(columnName = "CONTACT_GUID", foreignKeyColumnName = "GUID")}) + private Contact contact; + + @ForeignKey(references = {@ForeignKeyReference(columnName = "ADDRESS_GUID", foreignKeyColumnName = "GUID")}) + private Address address; + + public String getName() + { + return name; + } + + public void setName(String name) + { + this.name = name; + } + + public Contact getContact() + { + return contact; + } + + public void setContact(Contact contact) + { + this.contact = contact; + } + + public Address getAddress() + { + return address; + } + + public void setAddress(Address address) + { + this.address = address; + } +} diff --git a/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/entities/User.java b/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/entities/User.java deleted file mode 100644 index 469064ead..000000000 --- a/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/entities/User.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.twine.tango.dal.entities; - -import android.arch.persistence.room.ColumnInfo; -import android.arch.persistence.room.ColumnInfo.SQLiteTypeAffinity; -import android.arch.persistence.room.Entity; -import android.arch.persistence.room.PrimaryKey; -import android.support.annotation.NonNull; - -/** - * Created by Roy on 11/23/2017. - */ - -@Entity(tableName = "USERS") -public class User -{ - @ColumnInfo(name = "ID") - @PrimaryKey(autoGenerate = true) - private int id; - - @ColumnInfo(name = "FIRST_NAME") - private String firstName; - - @ColumnInfo(name = "LAST_NAME") - private String lastName; - - public int getId() - { - return id; - } - - public void setId(int id) - { - this.id = id; - } - - public String getFirstName() - { - return firstName; - } - - public void setFirstName(String firstName) - { - this.firstName = firstName; - } - - public String getLastName() - { - return lastName; - } - - public void setLastName(String lastName) - { - this.lastName = lastName; - } -} diff --git a/Software/Android_Studio/Tango.SharedUI/build.gradle b/Software/Android_Studio/Tango.SharedUI/build.gradle index e677acf65..f86545f9b 100644 --- a/Software/Android_Studio/Tango.SharedUI/build.gradle +++ b/Software/Android_Studio/Tango.SharedUI/build.gradle @@ -41,7 +41,8 @@ dependencies { testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.1' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' - implementation 'io.reactivex.rxjava2:rxjava:2.1.2' + compile globalDependencies.rxJavaAndroid + compile globalDependencies.rxJava implementation 'com.mobsandgeeks:android-saripaar:2.0.3' implementation 'javax.inject:javax.inject:1' implementation 'com.jakewharton:butterknife:8.7.0' diff --git a/Software/Android_Studio/Tango.Stubs.UI/build.gradle b/Software/Android_Studio/Tango.Stubs.UI/build.gradle index dc8ece75e..42109f2a8 100644 --- a/Software/Android_Studio/Tango.Stubs.UI/build.gradle +++ b/Software/Android_Studio/Tango.Stubs.UI/build.gradle @@ -47,7 +47,8 @@ dependencies { androidTestImplementation 'com.android.support.test:runner:1.0.1' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' //Extensions - compile 'io.reactivex.rxjava2:rxjava:2.1.2' + compile globalDependencies.rxJavaAndroid + compile globalDependencies.rxJava compile globalDependencies.dagger compile globalDependencies.daggerAndroid compile 'com.squareup:otto:1.3.8' @@ -65,4 +66,5 @@ dependencies { compile globalDependencies.joda implementation project(':Tango.Transport') implementation project(':Tango.Core') + implementation project(':Tango.DAL') } diff --git a/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/App.java b/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/App.java index c57155f7b..3937735cf 100644 --- a/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/App.java +++ b/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/App.java @@ -2,6 +2,7 @@ package com.twine.tango.stubs.ui; import android.app.Application; import android.content.Context; +import android.os.Environment; import com.elvishew.xlog.LogConfiguration; import com.elvishew.xlog.LogLevel; @@ -13,6 +14,7 @@ import com.elvishew.xlog.printer.file.backup.FileSizeBackupStrategy; import com.elvishew.xlog.printer.file.naming.DateFileNameGenerator; import com.google.protobuf.GeneratedMessageV3; import com.twine.tango.core.ContextFactory; +import com.twine.tango.dal.TangoDB; import com.twine.tango.stubs.ui.dagger.ApplicationComponent; import com.twine.tango.stubs.ui.dagger.ApplicationModule; import com.twine.tango.stubs.ui.dagger.DaggerApplicationComponent; @@ -37,7 +39,13 @@ public class App extends Application { protected ApplicationComponent initDagger(App application) { return DaggerApplicationComponent.builder().applicationModule(new ApplicationModule(application)).build(); } - + + @Override + public File getDatabasePath(String name) + { + return TangoDB.getDataBasePath(name); + } + @Override public void onCreate() { super.onCreate(); @@ -70,6 +78,7 @@ public class App extends Application { XLog.init(config, androidPrinter, filePrinter); XLog.i("Logger Initialized. logs will be saved to: " + dir.getAbsolutePath()); + TangoDB.init(); Thread.setDefaultUncaughtExceptionHandler((thread, throwable) -> { diff --git a/Software/Android_Studio/build.gradle b/Software/Android_Studio/build.gradle index f5b0be400..37278df02 100644 --- a/Software/Android_Studio/build.gradle +++ b/Software/Android_Studio/build.gradle @@ -23,6 +23,7 @@ allprojects { maven { url "https://maven.google.com" } + maven { url "https://www.jitpack.io" } } } @@ -37,7 +38,8 @@ ext { protobuf: 'com.google.protobuf:protobuf-java:3.4.0', joda: 'net.danlew:android.joda:2.9.9.1', stream: 'net.sourceforge.streamsupport:streamsupport:1.5.6', - linq: 'br.com.zbra:android-linq:1.1.0' + linq: 'br.com.zbra:android-linq:1.1.0', + storage: 'com.snatik:storage:2.1.0' ] } |
