Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
buildscript {
ext.kotlin_version = '1.2.10'
ext.kotlin_version = '1.2.21'
repositories {
jcenter()
maven {
Expand Down
12 changes: 8 additions & 4 deletions surelock/build.gradle
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'

android {
compileSdkVersion 25
buildToolsVersion '25.0.1'
compileSdkVersion 27

defaultConfig {
minSdkVersion 15
targetSdkVersion 25
targetSdkVersion 27
versionCode 1
versionName "1.0"
}
Expand All @@ -18,6 +18,10 @@ android {
}

dependencies {
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:appcompat-v7:27.0.2'
compile 'com.mattprecious.swirl:swirl:1.0.0'
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}
repositories {
mavenCentral()
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package com.smashingboxes.surelock

import android.content.Context
import android.content.SharedPreferences
import android.util.Base64
import java.util.*

/**
* Created by Tyler McCraw on 3/5/17.
*
*
* Storage mechanism used by Surelock in order to
* persist encrypted objects in SharedPreferences by default
*
*/

class SharedPreferencesStorage
/**
* Create a new SurelockStorage which uses SharedPreferences for persistence
*
* @param context context
* @param prefsName Desired preferences file.
*/
(private val context: Context, private val prefsName: String) : SurelockStorage {

private var preferences: SharedPreferences? = null

private val prefs: SharedPreferences
@Synchronized get() {
if (preferences == null) {
preferences = context.getSharedPreferences(prefsName, Context.MODE_PRIVATE)
}
return preferences!!
}

override fun createOrUpdate(key: String, objectToStore: ByteArray) {
val encodedString = Base64.encodeToString(objectToStore, Base64.DEFAULT)
prefs.edit().putString(key, encodedString).apply()
}

override fun get(key: String): ByteArray? {
val byteString = prefs.getString(key, null)
var decodedBytes: ByteArray? = null
if (!byteString.isNullOrEmpty()) {
decodedBytes = Base64.decode(byteString, Base64.DEFAULT)
}
return decodedBytes
}

override fun remove(key: String) {
prefs.edit().remove(key).apply()
}

override fun clearAll() {
prefs.edit().clear().apply()
}

override val keys: Set<String>?
get() = Collections.unmodifiableSet(LinkedHashSet(prefs.all.keys))
}
Loading