summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-07-02 20:49:38 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-07-15 12:52:17 +0000
commitc08644e7239f3b6d6f873eaf614d33e4dce99f71 (patch)
tree44b7f713691cbb9cc3084cd4f55ba5211ac2ddcf
parentbcd3f73bfbae48bfa61fcced04a83b1b5bfb92cf (diff)
downloadmullvadvpn-c08644e7239f3b6d6f873eaf614d33e4dce99f71.tar.xz
mullvadvpn-c08644e7239f3b6d6f873eaf614d33e4dce99f71.zip
Load installed apps into adapter
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListAdapter.kt31
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SplitTunnellingFragment.kt10
2 files changed, 36 insertions, 5 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListAdapter.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListAdapter.kt
index 532045195e..f77490714f 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListAdapter.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListAdapter.kt
@@ -1,18 +1,43 @@
package net.mullvad.mullvadvpn.applist
+import android.content.Context
+import android.content.pm.ApplicationInfo
import android.support.v7.widget.RecyclerView.Adapter
import android.view.LayoutInflater
import android.view.ViewGroup
import net.mullvad.mullvadvpn.R
+import net.mullvad.mullvadvpn.util.JobTracker
+
+class AppListAdapter(context: Context) : Adapter<AppListItemHolder>() {
+ private val appList = ArrayList<ApplicationInfo>()
+ private val jobTracker = JobTracker()
+ private val packageManager = context.packageManager
+
+ init {
+ jobTracker.newBackgroundJob("populateAppList") {
+ populateAppList(context)
+ }
+ }
+
+ override fun getItemCount() = appList.size
-class AppListAdapter : Adapter<AppListItemHolder>() {
override fun onCreateViewHolder(parentView: ViewGroup, type: Int): AppListItemHolder {
val inflater = LayoutInflater.from(parentView.context)
val view = inflater.inflate(R.layout.app_list_item, parentView, false)
- return AppListItemHolder(view)
+ return AppListItemItemHolder(view)
}
override fun onBindViewHolder(holder: AppListItemHolder, position: Int) {}
- override fun getItemCount() = 0
+
+ private fun populateAppList(context: Context) {
+ val applications = context.packageManager.getInstalledApplications(0)
+
+ appList.clear()
+ appList.addAll(applications)
+
+ jobTracker.newUiJob("notifyAppListChanges") {
+ notifyItemRangeInserted(0, applications.size)
+ }
+ }
}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SplitTunnellingFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SplitTunnellingFragment.kt
index cfb2866d61..fcf590ea8f 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SplitTunnellingFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SplitTunnellingFragment.kt
@@ -1,5 +1,6 @@
package net.mullvad.mullvadvpn.ui
+import android.content.Context
import android.os.Bundle
import android.support.v7.widget.LinearLayoutManager
import android.view.LayoutInflater
@@ -11,10 +12,15 @@ import net.mullvad.mullvadvpn.ui.widget.CustomRecyclerView
import net.mullvad.mullvadvpn.util.AdapterWithHeader
class SplitTunnellingFragment : ServiceDependentFragment(OnNoService.GoToLaunchScreen) {
- private val appListAdapter = AppListAdapter()
-
+ private lateinit var appListAdapter: AppListAdapter
private lateinit var titleController: CollapsibleTitleController
+ override fun onAttach(context: Context) {
+ super.onAttach(context)
+
+ appListAdapter = AppListAdapter(context)
+ }
+
override fun onSafelyCreateView(
inflater: LayoutInflater,
container: ViewGroup?,