Skip to content

Instantly share code, notes, and snippets.

@qureshiayaz29
Last active November 15, 2020 17:39
Show Gist options
  • Save qureshiayaz29/6bdca4e698b9af3527c7fe5740d0ba48 to your computer and use it in GitHub Desktop.
Save qureshiayaz29/6bdca4e698b9af3527c7fe5740d0ba48 to your computer and use it in GitHub Desktop.
Custom file to make SharedPreference easier
//app level build.gradle file
implementation "androidx.security:security-crypto:1.0.0-alpha02"
import android.content.Context;
import android.content.SharedPreferences;
import androidx.security.crypto.EncryptedSharedPreferences;
import androidx.security.crypto.MasterKeys;
import java.io.IOException;
import java.security.GeneralSecurityException;
public class EncryptedSharedPref{
private Context context;
private String encryptedSharedPrefName = "encyrptSharedPref";
private SharedPreferences encryptedSharedPref;
private SharedPreferences.Editor editor;
private String masterKeyAlias;
//public constructor
public EncryptedSharedPref(Context context){
this.context = context;
init();
}
private void init() {
try {
//create masterKeyAlias which will be used to encrypt data
masterKeyAlias = MasterKeys.getOrCreate(MasterKeys.AES256_GCM_SPEC);
//create instance of EncryptedSharedPreferences by using its encryption schemes
encryptedSharedPref = EncryptedSharedPreferences.create(
encryptedSharedPrefName,
masterKeyAlias,
context,
EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
);
editor = encryptedSharedPref.edit();
} catch (GeneralSecurityException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
//return 'value' saved with 'key'
public String getData(String key){
return encryptedSharedPref.getString(key,"na");
}
//save 'value' with 'key'
public void saveData(String key, String value){
editor.putString(key,value);
editor.commit();
}
}
//create instance of EncryptedSharedPref
EncryptedSharedPref encryptedSharedPref = new EncryptedSharedPref(MainActivity.this);
//saving same data to encryptedSharedPref
encryptedSharedPref.saveData("username","ayaz");
//get data from encryptedSharedPref
encryptedSharedPref.getData("name");
//create instance of SharedPref
SharedPref sharedPref = new SharedPref(MainActivity.this);
//save data to sharedPreference
sharedPref.saveData("username","ayaz");
//get data from sharedPreference
sharedPref.getData("name");
import android.content.Context;
import android.content.SharedPreferences;
public class SharedPref {
private Context context;
private String sharedPrefName = "sharedpref";
private SharedPreferences sharedPreferences;
private SharedPreferences.Editor editor;
//public constructor
public SharedPref(Context context){
this.context = context;
init();
}
//initialize values
private void init(){
sharedPreferences = context.getSharedPreferences(sharedPrefName, Context.MODE_PRIVATE);
editor = sharedPreferences.edit();
}
//return 'value' saved with 'key'
public String getData(String key){
return sharedPreferences.getString(key,"na");
}
//save 'value' with 'key'
public void saveData(String key, String value){
editor.putString(key,value);
editor.commit();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment