aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuutaW <17158086+Trumeet@users.noreply.github.com>2019-03-01 20:02:53 -0800
committerYuutaW <17158086+Trumeet@users.noreply.github.com>2019-03-01 20:02:53 -0800
commitc66fc0136b1504cf1f15dd9963fad3a10fcd52e9 (patch)
treea3da820059b4d0d6f79572e146b512f8e5eb73ca
parente6cc81e32a44dde2a73f045bd27e72bcb911fbdd (diff)
downloadWorkMode-c66fc0136b1504cf1f15dd9963fad3a10fcd52e9.tar
WorkMode-c66fc0136b1504cf1f15dd9963fad3a10fcd52e9.tar.gz
WorkMode-c66fc0136b1504cf1f15dd9963fad3a10fcd52e9.tar.bz2
WorkMode-c66fc0136b1504cf1f15dd9963fad3a10fcd52e9.zip
refactor(app): make a static instance for Storage
Signed-off-by: YuutaW <17158086+Trumeet@users.noreply.github.com>
-rw-r--r--app/src/main/java/moe/yuuta/workmode/MainActivity.kt26
-rw-r--r--app/src/main/java/moe/yuuta/workmode/access/AccessorStarter.kt4
-rw-r--r--app/src/main/java/moe/yuuta/workmode/suspend/SuspendTile.kt4
-rw-r--r--app/src/main/java/moe/yuuta/workmode/suspend/Suspender.kt2
-rw-r--r--app/src/main/java/moe/yuuta/workmode/suspend/data/SuspendedStorage.kt19
5 files changed, 34 insertions, 21 deletions
diff --git a/app/src/main/java/moe/yuuta/workmode/MainActivity.kt b/app/src/main/java/moe/yuuta/workmode/MainActivity.kt
index 544a6fb..72f1050 100644
--- a/app/src/main/java/moe/yuuta/workmode/MainActivity.kt
+++ b/app/src/main/java/moe/yuuta/workmode/MainActivity.kt
@@ -81,7 +81,7 @@ class MainActivity : AppCompatActivity(), SwitchBar.OnSwitchChangeListener, View
}
override fun onSwitchChanged(switchView: Switch?, isChecked: Boolean) {
- SuspendedStorage(this).setStatus(if (isChecked) Status.ON else Status.OFF)
+ SuspendedStorage.get(this).setStatus(if (isChecked) Status.ON else Status.OFF)
scheduleApply()
}
@@ -113,7 +113,7 @@ class MainActivity : AppCompatActivity(), SwitchBar.OnSwitchChangeListener, View
if (resultCode == Activity.RESULT_OK && data != null && data.hasExtra(ApplicationPickerActivity.EXTRA_SELECTED_PACKAGE_NAME)) {
val newSet = data.getStringArrayExtra(ApplicationPickerActivity.EXTRA_SELECTED_PACKAGE_NAME).toSet()
logger.d("AR() $newSet")
- SuspendedStorage(this).setList(newSet)
+ SuspendedStorage.get(this).setList(newSet)
scheduleApply()
}
}
@@ -139,11 +139,11 @@ class MainActivity : AppCompatActivity(), SwitchBar.OnSwitchChangeListener, View
*/
private fun displayUI() {
switchBar.removeOnSwitchChangeListener(this)
- switchBar.isChecked = SuspendedStorage(this).getStatus() == Status.ON
+ switchBar.isChecked = SuspendedStorage.get(this).getStatus() == Status.ON
switchBar.addOnSwitchChangeListener(this)
tabLayout.removeOnTabSelectedListener(mSwitchListModeListener)
tabLayout.getTabAt(
- when (SuspendedStorage(this).getListMode()) {
+ when (SuspendedStorage.get(this).getListMode()) {
ListMode.BLACKLIST -> 0
ListMode.WHITELIST -> 1
}
@@ -157,7 +157,7 @@ class MainActivity : AppCompatActivity(), SwitchBar.OnSwitchChangeListener, View
mSortDisplayStoppable = Async.beginTask(object : Runnable<List<String>> {
override fun run(): List<String>? {
val sCollator = java.text.Collator.getInstance()
- return SuspendedStorage(this@MainActivity).getList()
+ return SuspendedStorage.get(this@MainActivity).getList()
.stream()
.sorted { o1, o2 ->
return@sorted sCollator.compare(packageManager.getApplicationLabel(packageManager.getApplicationInfo(o1, 0)).toString()
@@ -184,7 +184,7 @@ class MainActivity : AppCompatActivity(), SwitchBar.OnSwitchChangeListener, View
mAdapter.data = result
diff.dispatchUpdatesTo(mAdapter)
if (result.isEmpty()) {
- welcomeTip.setText(when (SuspendedStorage(this@MainActivity).getListMode()) {
+ welcomeTip.setText(when (SuspendedStorage.get(this@MainActivity).getListMode()) {
ListMode.BLACKLIST -> R.string.blacklist_welcome
ListMode.WHITELIST -> R.string.whitelist_welcome
})
@@ -232,7 +232,7 @@ class MainActivity : AppCompatActivity(), SwitchBar.OnSwitchChangeListener, View
tabLayout.addOnTabSelectedListener(this)
}
.setPositiveButton(android.R.string.ok) { _, _ ->
- SuspendedStorage(this@MainActivity).setListMode(ListMode.BLACKLIST)
+ SuspendedStorage.get(this@MainActivity).setListMode(ListMode.BLACKLIST)
scheduleApply()
}
.show()
@@ -248,7 +248,7 @@ class MainActivity : AppCompatActivity(), SwitchBar.OnSwitchChangeListener, View
tabLayout.addOnTabSelectedListener(this)
}
.setPositiveButton(android.R.string.ok) { _, _ ->
- SuspendedStorage(this@MainActivity).setListMode(ListMode.WHITELIST)
+ SuspendedStorage.get(this@MainActivity).setListMode(ListMode.WHITELIST)
scheduleApply()
}
.show()
@@ -303,7 +303,7 @@ class MainActivity : AppCompatActivity(), SwitchBar.OnSwitchChangeListener, View
R.id.fab_add -> {
startActivityForResult(Intent(this, ApplicationPickerActivity::class.java)
.putExtra(ApplicationPickerActivity.EXTRA_SELECTED_PACKAGE_NAME,
- SuspendedStorage(this).getList().toTypedArray()), RC_PICK)
+ SuspendedStorage.get(this).getList().toTypedArray()), RC_PICK)
}
}
}
@@ -314,7 +314,7 @@ class MainActivity : AppCompatActivity(), SwitchBar.OnSwitchChangeListener, View
override fun applicationError(errorCode: Int) {
logger.e("StatusException: $errorCode")
- SuspendedStorage(this).reportCrack("a_e", "co: $errorCode")
+ SuspendedStorage.get(this).reportCrack("a_e", "co: $errorCode")
}
private fun proceedLicensing(reason: Int) {
@@ -327,9 +327,9 @@ class MainActivity : AppCompatActivity(), SwitchBar.OnSwitchChangeListener, View
}
}")
when (reason) {
- Policy.LICENSED -> SuspendedStorage(this).removeCrack("g_p_l")
- Policy.NOT_LICENSED -> SuspendedStorage(this).reportCrack("g_p_l", "n_p")
- Policy.RETRY -> SuspendedStorage(this).reportCrack("g_p_l", "rt")
+ Policy.LICENSED -> SuspendedStorage.get(this).removeCrack("g_p_l")
+ Policy.NOT_LICENSED -> SuspendedStorage.get(this).reportCrack("g_p_l", "n_p")
+ Policy.RETRY -> SuspendedStorage.get(this).reportCrack("g_p_l", "rt")
}
}
diff --git a/app/src/main/java/moe/yuuta/workmode/access/AccessorStarter.kt b/app/src/main/java/moe/yuuta/workmode/access/AccessorStarter.kt
index f23146a..18f19d0 100644
--- a/app/src/main/java/moe/yuuta/workmode/access/AccessorStarter.kt
+++ b/app/src/main/java/moe/yuuta/workmode/access/AccessorStarter.kt
@@ -162,7 +162,7 @@ open class AccessorStarter(private val mContext: Context, private val mLogPath:
// The ID is used to prevent from multiple reporting.
val id = result.readString()
val reason = result.readString()
- SuspendedStorage(mContext).reportCrack(id ?: "nd", reason ?: "nr")
+ SuspendedStorage.get(mContext).reportCrack(id ?: "nd", reason ?: "nr")
}
}
return result
@@ -212,7 +212,7 @@ open class AccessorStarter(private val mContext: Context, private val mLogPath:
argumentParcel.writeString(mLogPath)
// Tell the trigger times and times to the server, it will disable the app automatically
// #Anti-Crack
- val sp = SuspendedStorage(mContext).getStorage()
+ val sp = SuspendedStorage.get(mContext).getStorage()
val keys = sp.all.keys.stream()
.filter {
return@filter it.startsWith("c_")
diff --git a/app/src/main/java/moe/yuuta/workmode/suspend/SuspendTile.kt b/app/src/main/java/moe/yuuta/workmode/suspend/SuspendTile.kt
index f3fbc70..23a3334 100644
--- a/app/src/main/java/moe/yuuta/workmode/suspend/SuspendTile.kt
+++ b/app/src/main/java/moe/yuuta/workmode/suspend/SuspendTile.kt
@@ -8,7 +8,7 @@ import moe.yuuta.workmode.suspend.data.SuspendedStorage
class SuspendTile : TileService() {
override fun onClick() {
- val storage = SuspendedStorage(this)
+ val storage = SuspendedStorage.get(this)
storage.setStatus(
when (storage.getStatus()) {
Status.ON -> Status.OFF
@@ -21,7 +21,7 @@ class SuspendTile : TileService() {
override fun onStartListening() {
val tile = qsTile
- tile.state = when (SuspendedStorage(this@SuspendTile).getStatus()) {
+ tile.state = when (SuspendedStorage.get(this@SuspendTile).getStatus()) {
Status.ON -> Tile.STATE_ACTIVE
Status.OFF -> Tile.STATE_INACTIVE
}
diff --git a/app/src/main/java/moe/yuuta/workmode/suspend/Suspender.kt b/app/src/main/java/moe/yuuta/workmode/suspend/Suspender.kt
index 49924bb..504fdba 100644
--- a/app/src/main/java/moe/yuuta/workmode/suspend/Suspender.kt
+++ b/app/src/main/java/moe/yuuta/workmode/suspend/Suspender.kt
@@ -29,7 +29,7 @@ class Suspender(private val mContext: Context) {
ApplicationAccessorStarter(mContext).getPackagesSuspendedByWorkMode(true)
fun applyFromSettings() {
- val storage = SuspendedStorage(mContext)
+ val storage = SuspendedStorage.get(mContext)
storage.cleanList(mContext)
val status = storage.getStatus()
val listMode = storage.getListMode()
diff --git a/app/src/main/java/moe/yuuta/workmode/suspend/data/SuspendedStorage.kt b/app/src/main/java/moe/yuuta/workmode/suspend/data/SuspendedStorage.kt
index d8cfee7..0a4457b 100644
--- a/app/src/main/java/moe/yuuta/workmode/suspend/data/SuspendedStorage.kt
+++ b/app/src/main/java/moe/yuuta/workmode/suspend/data/SuspendedStorage.kt
@@ -13,10 +13,23 @@ import java.util.stream.Collectors
/**
* An independent storage of suspended status
*/
-class SuspendedStorage(private val mContext: Context) {
+class SuspendedStorage(mContext: Context) {
private val logger = XLog.tag("Storage").build()
- fun getStorage(): SharedPreferences = mContext.getSharedPreferences("suspended", Context.MODE_PRIVATE)
+ companion object {
+ private lateinit var instance: SuspendedStorage
+
+ fun get(context: Context): SuspendedStorage {
+ if (!::instance.isInitialized) {
+ instance = SuspendedStorage(context)
+ }
+ return instance
+ }
+ }
+
+ private val storage: SharedPreferences = mContext.getSharedPreferences("suspended", Context.MODE_PRIVATE)
+
+ fun getStorage(): SharedPreferences = storage
fun getList(): List<String> = (getStorage().getStringSet("list", setOf()) ?: listOf<String>()).toList()
@@ -56,7 +69,7 @@ class SuspendedStorage(private val mContext: Context) {
}
fun cleanList(context: Context) {
- val installed = mContext.packageManager.getInstalledApplications(0)
+ val installed = context.packageManager.getInstalledApplications(0)
.stream()
.filter(Utils.buildGeneralApplicationInfoFilter(context))
.map {