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
- GSON from Google : https://github.com/google/gson
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.