diff --git a/res/values/evolution_strings.xml b/res/values/evolution_strings.xml
index 34874255a2a..0e1ccec9094 100644
--- a/res/values/evolution_strings.xml
+++ b/res/values/evolution_strings.xml
@@ -204,4 +204,8 @@
Hide developer status
Hide developer status from apps
+
+
+ Search
+ Search apps
diff --git a/src/com/android/settings/security/HideDeveloperStatusSettings.kt b/src/com/android/settings/security/HideDeveloperStatusSettings.kt
index 13e56539297..3704de597eb 100644
--- a/src/com/android/settings/security/HideDeveloperStatusSettings.kt
+++ b/src/com/android/settings/security/HideDeveloperStatusSettings.kt
@@ -60,10 +60,7 @@ class HideDeveloperStatusSettings: Fragment(R.layout.hide_developer_status_layou
private lateinit var userManager: UserManager
private lateinit var userInfos: List
- private val appBarLayout: AppBarLayout by lazy{
- requireActivity().findViewById(R.id.app_bar)
- }
-
+ private var appBarLayout: AppBarLayout? = null
private var searchText = ""
private var customFilter: ((PackageInfo) -> Boolean)? = null
private var comparator: ((PackageInfo, PackageInfo) -> Int)? = null
@@ -85,7 +82,8 @@ class HideDeveloperStatusSettings: Fragment(R.layout.hide_developer_status_layou
super.onCreate(savedInstanceState)
setHasOptionsMenu(true)
requireActivity().setTitle(getTitle())
- activityManager = requireContext().getSystemService(ActivityManager::class.java)
+ appBarLayout = requireActivity().findViewById(R.id.app_bar)
+ activityManager = requireContext().getSystemService(ActivityManager::class.java) as ActivityManager
packageManager = requireContext().packageManager
packageList = packageManager.getInstalledPackages(PackageManager.MATCH_ANY_USER)
userManager = UserManager.get(requireContext())
@@ -102,9 +100,9 @@ class HideDeveloperStatusSettings: Fragment(R.layout.hide_developer_status_layou
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
adapter = AppListAdapter()
recyclerView = view.findViewById(R.id.apps_list).also {
- it.layoutManager = LinearLayoutManager(context)
- it.adapter = adapter
- }
+ it!!.layoutManager = LinearLayoutManager(context)
+ it!!.adapter = adapter
+ } as RecyclerView
refreshList()
}
@@ -135,7 +133,7 @@ class HideDeveloperStatusSettings: Fragment(R.layout.hide_developer_status_layou
searchMenuItem.setOnActionExpandListener(object: MenuItem.OnActionExpandListener {
override fun onMenuItemActionExpand(item: MenuItem): Boolean {
// To prevent a large space on tool bar.
- appBarLayout.setExpanded(false /*expanded*/, false /*animate*/)
+ appBarLayout!!.setExpanded(false /*expanded*/, false /*animate*/)
// To prevent user can expand the collapsing tool bar view.
ViewCompat.setNestedScrollingEnabled(recyclerView, false)
return true
@@ -143,7 +141,7 @@ class HideDeveloperStatusSettings: Fragment(R.layout.hide_developer_status_layou
override fun onMenuItemActionCollapse(item: MenuItem): Boolean {
// We keep the collapsed status after user cancel the search function.
- appBarLayout.setExpanded(false /*expanded*/, false /*animate*/)
+ appBarLayout!!.setExpanded(false /*expanded*/, false /*animate*/)
ViewCompat.setNestedScrollingEnabled(recyclerView, true)
return true
}
@@ -207,7 +205,7 @@ class HideDeveloperStatusSettings: Fragment(R.layout.hide_developer_status_layou
}
}
try {
- activityManager.forceStopPackage(packageName);
+ activityManager.forceStopPackage(packageName)
} catch (ignored: Exception) {
}
}
@@ -219,17 +217,17 @@ class HideDeveloperStatusSettings: Fragment(R.layout.hide_developer_status_layou
private fun refreshList() {
var list = packageList.filter {
if (!showSystem) {
- !it.applicationInfo.isSystemApp()
+ !it.applicationInfo!!.isSystemApp()
&& !resources.getStringArray(
R.array.hide_developer_status_hidden_apps)
- .asList().contains(it.applicationInfo.packageName)
- && !it.applicationInfo.packageName.contains("android.settings")
+ .asList().contains(it.applicationInfo!!.packageName)
+ && !it.applicationInfo!!.packageName.contains("android.settings")
} else {
!resources.getStringArray(
R.array.hide_developer_status_hidden_apps)
- .asList().contains(it.applicationInfo.packageName)
- && !it.applicationInfo.packageName.contains("android.settings")
- && !it.applicationInfo.isResourceOverlay()
+ .asList().contains(it.applicationInfo!!.packageName)
+ && !it.applicationInfo!!.packageName.contains("android.settings")
+ && !it.applicationInfo!!.isResourceOverlay()
}
}.filter {
getLabel(it).contains(searchText, true)
@@ -251,11 +249,11 @@ class HideDeveloperStatusSettings: Fragment(R.layout.hide_developer_status_layou
AppInfo(
packageInfo.packageName,
getLabel(packageInfo),
- packageInfo.applicationInfo.loadIcon(packageManager),
+ packageInfo.applicationInfo!!.loadIcon(packageManager),
)
private fun getLabel(packageInfo: PackageInfo) =
- packageInfo.applicationInfo.loadLabel(packageManager).toString()
+ packageInfo.applicationInfo!!.loadLabel(packageManager).toString()
private inner class AppListAdapter: ListAdapter(itemCallback) {
private val selectedIndices = mutableSetOf()
@@ -267,16 +265,16 @@ class HideDeveloperStatusSettings: Fragment(R.layout.hide_developer_status_layou
override fun onBindViewHolder(holder: AppListViewHolder, position: Int) {
getItem(position).let {
- holder.label.text = it.label
- holder.packageName.text = it.packageName
- holder.icon.setImageDrawable(it.icon)
- holder.itemView.setOnClickListener {
+ holder.label!!.text = it.label
+ holder.packageName!!.text = it.packageName
+ holder.icon!!.setImageDrawable(it.icon)
+ holder.itemView!!.setOnClickListener {
if (selectedIndices.contains(position)) {
selectedIndices.remove(position)
- onListUpdate(holder.packageName.text.toString(), false)
+ onListUpdate(holder.packageName!!.text.toString(), false)
} else {
selectedIndices.add(position)
- onListUpdate(holder.packageName.text.toString(), true)
+ onListUpdate(holder.packageName!!.text.toString(), true)
}
notifyItemChanged(position)
}
@@ -284,7 +282,7 @@ class HideDeveloperStatusSettings: Fragment(R.layout.hide_developer_status_layou
initialList.remove(it.packageName)
selectedIndices.add(position)
}
- holder.checkBox.isChecked = selectedIndices.contains(position)
+ holder.checkBox!!.isChecked = selectedIndices.contains(position)
}
}
@@ -296,10 +294,10 @@ class HideDeveloperStatusSettings: Fragment(R.layout.hide_developer_status_layou
}
private class AppListViewHolder(itemView: View): RecyclerView.ViewHolder(itemView) {
- val icon: ImageView = itemView.findViewById(R.id.icon)
- val label: TextView = itemView.findViewById(R.id.label)
- val packageName: TextView = itemView.findViewById(R.id.packageName)
- val checkBox: CheckBox = itemView.findViewById(R.id.checkBox)
+ val icon: ImageView? = itemView.findViewById(R.id.icon)
+ val label: TextView? = itemView.findViewById(R.id.label)
+ val packageName: TextView? = itemView.findViewById(R.id.packageName)
+ val checkBox: CheckBox? = itemView.findViewById(R.id.checkBox)
}
private data class AppInfo(