From c88afd099514274b84aabb9728ff024a34c60605 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Thu, 9 Jun 2016 23:42:14 +0200 Subject: [PATCH] Reuse AppSecurityPermissions in AppDetails --- .../java/org/fdroid/fdroid/AppDetails.java | 31 +++++-------------- .../java/org/fdroid/fdroid/Permission.java | 24 -------------- .../main/res/layout/app_details_summary.xml | 23 ++++---------- 3 files changed, 13 insertions(+), 65 deletions(-) delete mode 100644 app/src/main/java/org/fdroid/fdroid/Permission.java diff --git a/app/src/main/java/org/fdroid/fdroid/AppDetails.java b/app/src/main/java/org/fdroid/fdroid/AppDetails.java index ead493e76..69b03523e 100644 --- a/app/src/main/java/org/fdroid/fdroid/AppDetails.java +++ b/app/src/main/java/org/fdroid/fdroid/AppDetails.java @@ -90,8 +90,9 @@ import org.fdroid.fdroid.installer.InstallerFactory; import org.fdroid.fdroid.installer.InstallerService; import org.fdroid.fdroid.net.Downloader; import org.fdroid.fdroid.net.DownloaderService; +import org.fdroid.fdroid.privileged.views.AppDiff; +import org.fdroid.fdroid.privileged.views.AppSecurityPermissions; -import java.util.ArrayList; import java.util.List; public class AppDetails extends AppCompatActivity { @@ -1062,7 +1063,7 @@ public class AppDetails extends AppCompatActivity { private final View.OnClickListener expanderPermissions = new View.OnClickListener() { @Override public void onClick(View v) { - final TextView permissionListView = (TextView) llViewMorePermissions.findViewById(R.id.permissions_list); + final View permissionListView = llViewMorePermissions.findViewById(R.id.permission_list); final TextView permissionHeader = (TextView) llViewMorePermissions.findViewById(R.id.permissions); if (permissionListView.getVisibility() == View.GONE) { @@ -1372,29 +1373,11 @@ public class AppDetails extends AppCompatActivity { } private void buildPermissionInfo() { - final TextView permissionListView = (TextView) llViewMorePermissions.findViewById(R.id.permissions_list); + AppDiff appDiff = new AppDiff(appDetails.getPackageManager(), appDetails.getApks().getItem(0)); + AppSecurityPermissions perms = new AppSecurityPermissions(appDetails, appDiff.pkgInfo); - ArrayList permsList = appDetails.getApks().getItem(0).getFullPermissionList(); - if (permsList == null) { - permissionListView.setText(R.string.no_permissions); - } else { - StringBuilder sb = new StringBuilder(); - for (String permissionName : permsList) { - try { - final Permission permission = new Permission(getActivity(), permissionName); - // TODO: Make this list RTL friendly - sb.append("\t• ").append(permission.getName()).append('\n'); - } catch (PackageManager.NameNotFoundException e) { - Log.e(TAG, "Permission not yet available: " + permissionName); - } - } - if (sb.length() > 0) { - sb.setLength(sb.length() - 1); - permissionListView.setText(sb.toString()); - } else { - permissionListView.setText(R.string.no_permissions); - } - } + final ViewGroup permList = (ViewGroup) llViewMorePermissions.findViewById(R.id.permission_list); + permList.addView(perms.getPermissionsView(AppSecurityPermissions.WHICH_ALL)); } private String descAntiFeature(String af) { diff --git a/app/src/main/java/org/fdroid/fdroid/Permission.java b/app/src/main/java/org/fdroid/fdroid/Permission.java deleted file mode 100644 index 8a688854e..000000000 --- a/app/src/main/java/org/fdroid/fdroid/Permission.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.fdroid.fdroid; - -import android.content.Context; -import android.content.pm.PackageManager; -import android.content.pm.PermissionInfo; - -public class Permission { - - private final PackageManager packageManager; - private final PermissionInfo permissionInfo; - - Permission(Context context, String permission) - throws PackageManager.NameNotFoundException { - this.packageManager = context.getPackageManager(); - this.permissionInfo = this.packageManager.getPermissionInfo( - permission, PackageManager.GET_META_DATA); - } - - public CharSequence getName() { - String label = this.permissionInfo.loadLabel(this.packageManager).toString(); - return Character.toUpperCase(label.charAt(0)) + label.substring(1); - } - -} diff --git a/app/src/main/res/layout/app_details_summary.xml b/app/src/main/res/layout/app_details_summary.xml index a77a7a483..212b813ab 100644 --- a/app/src/main/res/layout/app_details_summary.xml +++ b/app/src/main/res/layout/app_details_summary.xml @@ -225,28 +225,17 @@ Changelog" /> android:drawableRight="@drawable/ic_expand_more_grey600" android:drawableEnd="@drawable/ic_expand_more_grey600" /> - + android:paddingEnd="4dp" + android:paddingRight="4dp" + tools:ignore="RtlSymmetry" />