Skip to content

Latest commit

 

History

History
90 lines (79 loc) · 2.9 KB

README.md

File metadata and controls

90 lines (79 loc) · 2.9 KB

Holocron

Encrypted Object Storage for Android

Holocrons are ancient repositories of knowledge and wisdom that can only be accessed by those skilled in the Force.

Add through JitPack

Step 1.: Add JitPack in your root build.gradle at the end of repositories:

	allprojects {
		repositories {
			...
			maven { url 'https://jitpack.io' }
		}
	}

Step 2. Add the dependency

	dependencies {
	        compile 'com.github.nzkozar:holocron:v1.0.5@aar'
		compile 'com.google.code.gson:gson:2.8.0'
	}

Usage:

Constructors

//Init Holocron. This will take  few seconds to execute, as it must build encryption resources.
Holocron holocron = new Holocron(context);

or

//Init Holocron asynchronously and get notified through a HolocronInitListener interface when Holocron is ready.
Holocron holocron = new Holocron(context, new HolocronInitListener() {
                @Override
                public void onHolocronInitComplete() {
                    //Holocron can now be used
                }
            });

Save & retrieve objects from storage

//save an object of any Class that extends Object
holocron.put(object, (long)object.getId());

//retrieve a single stored object of a class using an id. Returns null if no object matches both class and id
Checkpoint checkpoint = holocron.get(Checkpoint.class,(long)id);

//retrieve all objects stored using the provided Class
List<Checkpoint> checkpoints = holocron.getAll(Checkpoint.class);

//retrieve asynchronously all objects stored using the provided Class
holocron.getAllAsync(Checkpoint.class, new HolocronResponseHandler<Checkpoint>() {
            @Override
            public void onHolocronResponse(int responseCode, HolocronResponse<Checkpoint> response) {
                List<Checkpoint> checkpoints = data.getDataObjectList());
            }
        });

Delete objects from storage

//delete an object from storage
boolean deleted = holocron.remove(Checkpoint.class,(long)id);

//delete all objects of a provided Class from storage
boolean deleted = holocron.remove(Checkpoint.class);

//delete asynchronously all objects of a provided Class from storage
holocron.removeAllAsync(Checkpoint.class, new HolocronResponseHandler() {
        @Override
        public void onHolocronResponse(int responseCode, HolocronResponse response) {
            //Objects deleted
        }
    });

Example

The accompanying example shows the adding, displaying and removing of Checkpoint class objects.

public class Checkpoint{
    private long id;
    private String name;
    private double longitude,latitude;
}

Encryption:

All data is encrypted using AES encryption.

Gson

This library uses Gson to convert objects, so any object convertable by Gson can be stored with Holocron.