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