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.installer.InstallerService;
 | 
				
			||||||
import org.fdroid.fdroid.net.Downloader;
 | 
					import org.fdroid.fdroid.net.Downloader;
 | 
				
			||||||
import org.fdroid.fdroid.net.DownloaderService;
 | 
					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;
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class AppDetails extends AppCompatActivity {
 | 
					public class AppDetails extends AppCompatActivity {
 | 
				
			||||||
@ -1062,7 +1063,7 @@ public class AppDetails extends AppCompatActivity {
 | 
				
			|||||||
        private final View.OnClickListener expanderPermissions = new View.OnClickListener() {
 | 
					        private final View.OnClickListener expanderPermissions = new View.OnClickListener() {
 | 
				
			||||||
            @Override
 | 
					            @Override
 | 
				
			||||||
            public void onClick(View v) {
 | 
					            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);
 | 
					                final TextView permissionHeader = (TextView) llViewMorePermissions.findViewById(R.id.permissions);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (permissionListView.getVisibility() == View.GONE) {
 | 
					                if (permissionListView.getVisibility() == View.GONE) {
 | 
				
			||||||
@ -1372,29 +1373,11 @@ public class AppDetails extends AppCompatActivity {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        private void buildPermissionInfo() {
 | 
					        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();
 | 
					            final ViewGroup permList = (ViewGroup) llViewMorePermissions.findViewById(R.id.permission_list);
 | 
				
			||||||
            if (permsList == null) {
 | 
					            permList.addView(perms.getPermissionsView(AppSecurityPermissions.WHICH_ALL));
 | 
				
			||||||
                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);
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        private String descAntiFeature(String af) {
 | 
					        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:drawableRight="@drawable/ic_expand_more_grey600"
 | 
				
			||||||
            android:drawableEnd="@drawable/ic_expand_more_grey600" />
 | 
					            android:drawableEnd="@drawable/ic_expand_more_grey600" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <TextView
 | 
					        <LinearLayout
 | 
				
			||||||
            android:id="@+id/permissions_list"
 | 
					            android:id="@+id/permission_list"
 | 
				
			||||||
            android:layout_width="fill_parent"
 | 
					            android:layout_width="fill_parent"
 | 
				
			||||||
            android:layout_height="wrap_content"
 | 
					            android:layout_height="wrap_content"
 | 
				
			||||||
            android:singleLine="false"
 | 
					            android:orientation="vertical"
 | 
				
			||||||
            android:fontFamily="sans-serif-light"
 | 
					            android:fontFamily="sans-serif-light"
 | 
				
			||||||
            android:textSize="14sp"
 | 
					            android:textSize="14sp"
 | 
				
			||||||
            android:visibility="gone"
 | 
					            android:visibility="gone"
 | 
				
			||||||
            android:layout_marginLeft="@dimen/layout_horizontal_margin"
 | 
					            android:paddingEnd="4dp"
 | 
				
			||||||
            android:layout_marginStart="@dimen/layout_horizontal_margin"
 | 
					            android:paddingRight="4dp"
 | 
				
			||||||
            tools:text="    * Full network access
 | 
					            tools:ignore="RtlSymmetry" />
 | 
				
			||||||
    * 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" />
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    </LinearLayout>
 | 
					    </LinearLayout>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user