Session

Additional

Language
Java
Version
N/A
Created
May 5, 2015
Updated
May 14, 2015 (Retired)
Owner
kevindjf
Contributors
Florent CHAMPIGNY (florent37)
kevindjf
2
Activity
Badge
Generate
Download
Source code

Session

Session is a easy to use Persistance Library which save datas into SharedPreference.

Session might not be used to save a huge models list, please use it only if you have to keep a small amount of datas

for example : save local favorites

#Download

compile ('com.github.kevindjf:session:1.0.1@aar'){
    transitive = true
}

#Simple usage

##Create a Session

 Session<Book> bookSession = new Session<>(this,Book.class);

Will create or retrieve the last saved Book session

##Add Objects

 bookSession.add(new Book("Harry Potter",10))
            .add(new Book("Hunger Games ",5));

##Retrieve saved objects This book will be saved, and when you use bookSession.getAll(), even after restarting the activity

bookSession.getAll();
//will return [Book{"Harry Potter",10},Book{"Hunger Games",5}]

##Clear the session

bookSession.clear();

#Capabilities

##Create multiple sessions To remove all session's objects

//will use sharedpreferences key "Book"
Session<Book> bookSession = new Session<>(this,Book.class);

//will use sharedpreferences key "favorites"
Session<Book> bookSessionFavorites = new Session<>(this,Book.class,"favorites");

##Retrieve object by attribute

bookSession.getByAttribute("name","Harry Potter");
//will return Book{"Harry Potter",10}

//you can also retrieve a list
bookSession.getAllByAttribute("name","Harry Potter");
//will return [Book{"Harry Potter",10}]

##Remove objects

bookSession.removeAtIndex(1);

Book bookHarry = bookSession.getByAttribute("name","Harry Potter");
bookSession.remove(bookHarry);

bookSession.removeAll(bookList);

#Customisation

You can extend Session<> to add your own methods

public class CustomBookSession extends Session<Book> {

    public CustomBookSession(Context context) {
        super(context, Book.class);
    }

    public CustomBookSession(Context context, String nomSession) {
        super(context, Book.class, nomSession);
    }

    //and add your custom methods
    public List<Book> getBooksLessThan(int number){
        List<Book> books = getAll();

        List<Book> returnList = new ArrayList<>();
        for (Book book : books){
            if(book.getNumber() < number)
                returnList.add(book);
        }

        return returnList;
    }
}

Usage

//will use sharedpreferences key "Book"
CustomBookSession session = new CustomBookSession(getApplicationContext());

//will use sharedpreferences key "favorites"
CustomBookSession sessionFavorites = new CustomBookSession(getApplicationContext(),"favorites");

session.getBooksLessThan(9);
//will return [Book{"Hunger Games",5}]

Community

Looking for contributors, feel free to fork !

Dependencies

Credits

Author: Kévin De Jesus Ferreira

License

Copyright 2015 kevindjf, Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.