Commit de768f79 authored by Mygod's avatar Mygod

Hide apps that doesn't require INTERNET permission

parent edd5fb4a
...@@ -54,6 +54,7 @@ import android.view._ ...@@ -54,6 +54,7 @@ import android.view._
import android.widget.AbsListView.OnScrollListener import android.widget.AbsListView.OnScrollListener
import android.widget.CompoundButton.OnCheckedChangeListener import android.widget.CompoundButton.OnCheckedChangeListener
import android.widget._ import android.widget._
import android.Manifest.permission
import com.github.shadowsocks.utils.{Key, Utils} import com.github.shadowsocks.utils.{Key, Utils}
import scala.collection.JavaConversions._ import scala.collection.JavaConversions._
...@@ -66,8 +67,10 @@ object AppManager { ...@@ -66,8 +67,10 @@ object AppManager {
var cachedApps: Array[ProxiedApp] = _ var cachedApps: Array[ProxiedApp] = _
private def getApps(pm: PackageManager) = { private def getApps(pm: PackageManager) = {
if (cachedApps == null) cachedApps = pm.getInstalledApplications(0) if (cachedApps == null) cachedApps = pm.getInstalledPackages(PackageManager.GET_PERMISSIONS)
.map(a => new ProxiedApp(pm.getApplicationLabel(a).toString, a.packageName, a.loadIcon(pm))).toArray .filter(p => p.requestedPermissions != null && p.requestedPermissions.contains(permission.INTERNET))
.map(p => new ProxiedApp(pm.getApplicationLabel(p.applicationInfo).toString, p.packageName,
p.applicationInfo.loadIcon(pm))).toArray
cachedApps cachedApps
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment