Skip to content

thiagoschnell/DataStoreJava

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DataStore Java for Android

Easy to store and access data at runtime designed to small and medium data

Cenaroius can you shold be use it

develop any configuration
develop any settings
develop any options, etc

note: need test to use with big data, or very large data

Implementation

// Preferences DataStore (SharedPreferences like APIs)

implementation("androidx.datastore:datastore-preferences:1.1.7")

// optional - RxJava2 support
implementation("androidx.datastore:datastore-preferences-rxjava2:1.1.7")

// optional - RxJava3 support
implementation("androidx.datastore:datastore-preferences-rxjava3:1.1.7")


implementation("androidx.room:room-runtime:2.7.1")
annotationProcessor("androidx.room:room-compiler:2.7.1")

// optional - RxJava2 support for Room
implementation("androidx.room:room-rxjava2:2.7.1")

// optional - RxJava3 support for Room
implementation("androidx.room:room-rxjava3:2.7.1")

Examples

Creating DataStoreJava

    final String DATASTORE_NAME = "test";

    DataStoreJava testDataStore = new DataStoreJava();
    testDataStore.datastore = new RxPreferenceDataStoreBuilder(this,DATASTORE_NAME).build();

SetString

String my_single_string_value_here = "hello single";
testDataStore.setString("single_string_key_name",my_single_string_value_here);

GetString

String b1 = testDataStore.getString("single_string_key_name");
System.out.println("getString=" + (b1==null?"b1=null":"b1=="+b1));

SetInteger

Integer my_single_integer_value_here = 12;
testDataStore.setInteger("single_integer_key_name",my_single_integer_value_here);

GetInteger

Integer b1 = testDataStore.getInteger("single_integer_key_name");
System.out.println("getInteger=" + (b1==null?"b1=null":"b1=="+b1));

SetBoolean

Boolean my_single_boolean_value_here = true;
testDataStore.setBoolean("single_boolean_key_name",my_single_boolean_value_here);

GetBoolean

Boolean b1 = testDataStore.getBoolean("single_boolean_key_name");
System.out.println("getBoolean=" + (b1==null?"b1=null":"b1=="+b1));

SetLong

Long my_single_long_value_here = 111111111113333333L;
testDataStore.setLong("single_long_key_name",my_single_long_value_here);

GetLong

Long b1 = testDataStore.getLong("single_long_key_name");
System.out.println("getLong=" + (b1==null?"b1=null":"b1=="+b1));

Object

Create the Person Class first

      class Test implements Serializable{
          String name;
          String lastname;
          public Test(){
          }
          public Test(String name, String lastname) {
              this.name=name;
              this.lastname=lastname;
          }
      }
      class Person implements Serializable {
          private static final long serialVersionUID = 1L;
          private String name;
          private int age;
          ArrayList<String> list;
          HashMap<String,Test> map;
          // if transient, JVM ignore this field for serialization
          private transient BigDecimal salary;
          public Person(String name, int age, BigDecimal salary) {
              this.name = name;
              this.age = age;
              this.salary = salary;
              list = new ArrayList<>();
              map= new HashMap<>();
          }
          public String getName() {
              return name;
          }
          public void setName(String name) {
              this.name = name;
          }
          public int getAge() {
              return age;
          }
          public void setAge(int age) {
              this.age = age;
          }
          public BigDecimal getSalary() {
              return salary;
          }
          public void setSalary(BigDecimal salary) {
              this.salary = salary;
          }
          @Override
          public String toString() {
              String mapString = "";
              Iterator<Map.Entry<String,Test>> myVeryOwnIterator = map.entrySet().iterator();
              while(myVeryOwnIterator.hasNext()) {
                  HashMap.Entry<String, Test> entry = myVeryOwnIterator.next();
                  mapString += " name=" + entry.getValue().name +" lastname=" + entry.getValue().lastname + " ; ";
              }
              return "Person{" +
                      "name='" + name + '\'' +
                      ", age=" + age +
                      ", salary=" + salary +
                      ", list=" + list +
                      ", map=" + mapString +
                      '}';
          }
      }

Create the person object

Person personObject = new Person("test",11144, new BigDecimal(900));
personObject.list.add("hello4");
personObject.list.add("helloo5");
personObject.map.put("name01",new Test("nameone","lastnameone"));
personObject.map.put("name02",new Test("nametwo","lastnametwo"));

SetObject

testDataStore.setObject("single_object_key_name",personObject);

SetByteArray

byte[] my_single_byteArray_value_here = DataStoreJava.Utils.convertObjectToBytes(personObject);
testDataStore.setByteArray("single_byteArray_key_name",my_single_byteArray_value_here);

GetObject

Person p1 = (Person) testDataStore.getObject("single_object_key_name");
System.out.println("getObject=" + (p1==null?"p1=null":"p1="+p1));

getByteArray

byte[] p2 = testDataStore.getByteArray("single_byteArray_key_name");
System.out.println("getByteArray=" + (p2==null?"p2=null":"p2="+p2));

About

DataStore for Android (Java)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages