Reuse AppSecurityPermissions in AppDetails
This commit is contained in:
		
							parent
							
								
									f5db19eba8
								
							
						
					
					
						commit
						c88afd0995
					
				@ -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<String> 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) {
 | 
			
		||||
 | 
			
		||||
@ -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);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -225,28 +225,17 @@ Changelog" />
 | 
			
		||||
            android:drawableRight="@drawable/ic_expand_more_grey600"
 | 
			
		||||
            android:drawableEnd="@drawable/ic_expand_more_grey600" />
 | 
			
		||||
 | 
			
		||||
        <TextView
 | 
			
		||||
            android:id="@+id/permissions_list"
 | 
			
		||||
        <LinearLayout
 | 
			
		||||
            android:id="@+id/permission_list"
 | 
			
		||||
            android:layout_width="fill_parent"
 | 
			
		||||
            android:layout_height="wrap_content"
 | 
			
		||||
            android:singleLine="false"
 | 
			
		||||
            android:orientation="vertical"
 | 
			
		||||
            android:fontFamily="sans-serif-light"
 | 
			
		||||
            android:textSize="14sp"
 | 
			
		||||
            android:visibility="gone"
 | 
			
		||||
            android:layout_marginLeft="@dimen/layout_horizontal_margin"
 | 
			
		||||
            android:layout_marginStart="@dimen/layout_horizontal_margin"
 | 
			
		||||
            tools:text="    * Full network access
 | 
			
		||||
    * View network connections
 | 
			
		||||
    * View Wi-Fi connections
 | 
			
		||||
    * Connect and disconnect from Wi-Fi
 | 
			
		||||
    * Pair with Bluetooth devices
 | 
			
		||||
    * Run at startup
 | 
			
		||||
    * Modify or delete the contents of your USB storage
 | 
			
		||||
    * Control Near Field Communication
 | 
			
		||||
    * Directly install apps
 | 
			
		||||
    * Delete apps
 | 
			
		||||
    * Full permission to all device features and storage
 | 
			
		||||
    * Test access to protected storage" />
 | 
			
		||||
            android:paddingEnd="4dp"
 | 
			
		||||
            android:paddingRight="4dp"
 | 
			
		||||
            tools:ignore="RtlSymmetry" />
 | 
			
		||||
 | 
			
		||||
    </LinearLayout>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user