package devliving.online.securedpreferencestore;
import android.content.SharedPreferences;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.util.Collections;
import java.util.List;
/**
* Created by Mehedi Hasan Khan (mehedi.mailing@gmail.com) on 12/31/16.
*/
public abstract class RecoveryHandler {
protected abstract boolean recover(Exception e, KeyStore keyStore, List<String> keyAliases, SharedPreferences preferences);
void clearKeyStore(KeyStore keyStore, List<String> aliases) throws KeyStoreException {
if(keyStore != null && aliases != null){
for(String alias:aliases){
if(keyStore.containsAlias(alias)) keyStore.deleteEntry(alias);
}
}
}
void clearKeystore(KeyStore keyStore) throws KeyStoreException {
if(keyStore != null){
List<String> aliases = Collections.list(keyStore.aliases());
for(String alias:aliases){
if(keyStore.containsAlias(alias)) keyStore.deleteEntry(alias);
}
}
}
void clearPreferences(SharedPreferences preferences){
if(preferences != null) preferences.edit().clear().apply();
}
}