diff options
Diffstat (limited to 'android')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/applist/AppListAdapter.kt | 31 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/SplitTunnellingFragment.kt | 10 |
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?, |
