aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuutaW <17158086+trumeet@users.noreply.github.com>2019-03-30 16:28:27 -0700
committerYuutaW <17158086+Trumeet@users.noreply.github.com>2019-03-30 16:28:27 -0700
commitf02787275d311af463d5250c5998f541e5529982 (patch)
tree38d756e1569a4733c0227e4947df02bad4dda591
parent06fbdcac173aea88cb4d02c4806866c83e720307 (diff)
downloadWorkMode-f02787275d311af463d5250c5998f541e5529982.tar
WorkMode-f02787275d311af463d5250c5998f541e5529982.tar.gz
WorkMode-f02787275d311af463d5250c5998f541e5529982.tar.bz2
WorkMode-f02787275d311af463d5250c5998f541e5529982.zip
feat(app): give non-owner user a notice for apps suspended by owner
Signed-off-by: YuutaW <17158086+Trumeet@users.noreply.github.com>
-rw-r--r--app/src/main/java/moe/yuuta/workmode/access/AccessLayerUtil.kt22
-rw-r--r--app/src/main/java/moe/yuuta/workmode/access/WorkModeAccessor.kt6
-rw-r--r--app/src/main/res/values-zh-rCN/strings.xml1
-rw-r--r--app/src/main/res/values/strings.xml1
4 files changed, 18 insertions, 12 deletions
diff --git a/app/src/main/java/moe/yuuta/workmode/access/AccessLayerUtil.kt b/app/src/main/java/moe/yuuta/workmode/access/AccessLayerUtil.kt
index 4bfee58..7248198 100644
--- a/app/src/main/java/moe/yuuta/workmode/access/AccessLayerUtil.kt
+++ b/app/src/main/java/moe/yuuta/workmode/access/AccessLayerUtil.kt
@@ -1,10 +1,7 @@
package moe.yuuta.workmode.access
import android.content.pm.ApplicationInfo
-import android.os.BaseBundle
-import android.os.Bundle
-import android.os.PersistableBundle
-import android.os.UserManager
+import android.os.*
import com.elvishew.xlog.XLog
import moe.yuuta.workmode.R
import moe.yuuta.workmode.suspend.data.TransferableSuspendedApp
@@ -33,7 +30,8 @@ internal class AccessLayerUtil(private val accessLayer: AccessLayer) {
suspended: Boolean,
appExtras: BaseBundle,
launcherExtras: BaseBundle,
- dialogMessage: String): Array<String> {
+ dialogMessage: String?,
+ hostInfo: HostInfo): Array<String> {
val packagesWithUserIds = collectUserIDs(packages)
val result = mutableListOf<String>()
@@ -52,17 +50,23 @@ internal class AccessLayerUtil(private val accessLayer: AccessLayer) {
is PersistableBundle -> launcherExtras
is Bundle -> BundleUtils.toPersistableBundle(launcherExtras)
else -> PersistableBundle()
- }, dialogMessage, userId))
+ }, if (dialogMessage == null) {
+ if (userId == hostInfo.userId ||
+ userId == UserHandle.USER_OWNER) accessLayer.mContext.getString(R.string.suspended_message)
+ else accessLayer.mContext.getString(R.string.suspended_message_managed)
+ } else dialogMessage,
+ userId))
}
return result.toTypedArray()
}
- fun suspend(packages: List<TransferableSuspendedApp>, suspended: Boolean): Array<String> =
+ fun suspend(packages: List<TransferableSuspendedApp>, suspended: Boolean, hostInfo: HostInfo): Array<String> =
suspend(packages,
suspended,
Bundle(),
- PersistableBundle(), // Removed because there is an unknown bug which prevents from writing launcher extras from the owner (?)
- accessLayer.mContext.getString(R.string.suspended_message))
+ PersistableBundle(), // Removed because there is an unknown bug which prevents from writing launcher extras from the owner (?)
+ null,
+ hostInfo)
fun getSuspendedPackageAppExtras(packageInfo: TransferableSuspendedApp): PersistableBundle? =
accessLayer.getSuspendedPackageAppExtras(packageName = packageInfo.packageName,
diff --git a/app/src/main/java/moe/yuuta/workmode/access/WorkModeAccessor.kt b/app/src/main/java/moe/yuuta/workmode/access/WorkModeAccessor.kt
index 5f50d67..abb5352 100644
--- a/app/src/main/java/moe/yuuta/workmode/access/WorkModeAccessor.kt
+++ b/app/src/main/java/moe/yuuta/workmode/access/WorkModeAccessor.kt
@@ -252,7 +252,7 @@ class WorkModeAccessor {
logger.d("Running suspend: $suspended on ${packages.size} packages.")
val result = Bundle()
result.putStringArray(AccessorStarter.EXTRA_DATA,
- pmAccess.suspend(packages, suspended, appExtras, launcherExtras, dialogMessage))
+ pmAccess.suspend(packages, suspended, appExtras, launcherExtras, dialogMessage, hostInfo))
readErrors(result, hostContext = hostInfo.hostContext)
postExecuteNotify(hostContext = hostInfo.hostContext)
return result
@@ -418,7 +418,7 @@ class WorkModeAccessor {
logger.d("Applying settings: suspend $suspendList")
if (suspendList.size > 0) {
pmAccess.suspend(suspendList,
- true)
+ true, hostInfo)
}
}
// Then unsuspand
@@ -433,7 +433,7 @@ class WorkModeAccessor {
logger.d("Applying settings: unsuspend $unsuspendList")
if (unsuspendList.size > 0) {
pmAccess.suspend(unsuspendList,
- false)
+ false, hostInfo)
}
readErrors(result, hostContext = hostInfo.hostContext)
postExecuteNotify(hostContext = hostInfo.hostContext)
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index b8959aa..671dab5 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -3,6 +3,7 @@
<string name="app_name">工作模式</string>
<string name="work">工作</string>
<string name="suspended_message">您已进入工作模式,该应用无法使用。</string>
+ <string name="suspended_message_managed">您的设备机主启用了工作模式,无法使用此应用。</string>
<!-- Switch On/Off -->
<string name="switch_on_text">开启</string>
<string name="switch_off_text">停止</string>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index af3dd46..6324a9b 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -2,6 +2,7 @@
<string name="app_name">Work Mode</string>
<string name="work">Work</string>
<string name="suspended_message">This app is disabled because you want to enjoy your work.</string>
+ <string name="suspended_message_managed">This app is disabled because your device owner wants you to enjoy your work.</string>
<!-- Switch On/Off -->
<string name="switch_on_text">On</string>
<string name="switch_off_text">Off</string>