fix #361
This commit is contained in:
parent
1d47956bcf
commit
a4fe44437a
50
F-Droid/res/layout-v11/app_permission_item.xml
Normal file
50
F-Droid/res/layout-v11/app_permission_item.xml
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Copyright (C) 2008 The Android Open Source Project
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Defines the layout of a single permission item.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<view class="org.fdroid.fdroid.installer.AppSecurityPermissions$PermissionItemView"
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:background="?android:attr/selectableItemBackground">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/perm_icon"
|
||||||
|
android:layout_width="24dp"
|
||||||
|
android:layout_height="24dp"
|
||||||
|
android:layout_marginStart="16dp"
|
||||||
|
android:layout_marginEnd="8dp"
|
||||||
|
android:scaleType="fitCenter" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:background="?android:attr/dividerVertical" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/perm_name"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:layout_marginStart="8dp"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="top|left" />
|
||||||
|
|
||||||
|
</view>
|
@ -22,8 +22,7 @@
|
|||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal">
|
||||||
android:background="?android:attr/selectableItemBackground">
|
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/perm_icon"
|
android:id="@+id/perm_icon"
|
||||||
@ -35,8 +34,7 @@
|
|||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent" />
|
||||||
android:background="?android:attr/dividerVertical" />
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/perm_name"
|
android:id="@+id/perm_name"
|
||||||
|
@ -111,6 +111,16 @@ public class AppSecurityPermissions {
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int flags() {
|
||||||
|
if (Build.VERSION.SDK_INT < 17) return 0;
|
||||||
|
return flags;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int priority() {
|
||||||
|
if (Build.VERSION.SDK_INT < 17) return 0;
|
||||||
|
return priority;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class MyPermissionInfo extends PermissionInfo {
|
private static class MyPermissionInfo extends PermissionInfo {
|
||||||
@ -411,6 +421,7 @@ public class AppSecurityPermissions {
|
|||||||
private PermissionItemView getPermissionItemView(MyPermissionGroupInfo grp,
|
private PermissionItemView getPermissionItemView(MyPermissionGroupInfo grp,
|
||||||
MyPermissionInfo perm, boolean first, CharSequence newPermPrefix) {
|
MyPermissionInfo perm, boolean first, CharSequence newPermPrefix) {
|
||||||
PermissionItemView permView = (PermissionItemView) mInflater.inflate(
|
PermissionItemView permView = (PermissionItemView) mInflater.inflate(
|
||||||
|
Build.VERSION.SDK_INT >= 17 &&
|
||||||
(perm.flags & PermissionInfo.FLAG_COSTS_MONEY) != 0
|
(perm.flags & PermissionInfo.FLAG_COSTS_MONEY) != 0
|
||||||
? R.layout.app_permission_item_money : R.layout.app_permission_item,
|
? R.layout.app_permission_item_money : R.layout.app_permission_item,
|
||||||
null);
|
null);
|
||||||
@ -434,7 +445,8 @@ public class AppSecurityPermissions {
|
|||||||
|
|
||||||
// Dangerous and normal permissions are always shown to the user if the permission
|
// Dangerous and normal permissions are always shown to the user if the permission
|
||||||
// is required, or it was previously granted
|
// is required, or it was previously granted
|
||||||
if ((isNormal || isDangerous) && (isRequired || wasGranted || isGranted)) {
|
if ((isNormal || isDangerous) && (isRequired || wasGranted || isGranted ||
|
||||||
|
Build.VERSION.SDK_INT < 16)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -452,11 +464,11 @@ public class AppSecurityPermissions {
|
|||||||
PermissionGroupInfoComparator() {
|
PermissionGroupInfoComparator() {
|
||||||
}
|
}
|
||||||
public final int compare(MyPermissionGroupInfo a, MyPermissionGroupInfo b) {
|
public final int compare(MyPermissionGroupInfo a, MyPermissionGroupInfo b) {
|
||||||
if (((a.flags^b.flags)&PermissionGroupInfo.FLAG_PERSONAL_INFO) != 0) {
|
if (((a.flags()^b.flags())&PermissionGroupInfo.FLAG_PERSONAL_INFO) != 0) {
|
||||||
return ((a.flags&PermissionGroupInfo.FLAG_PERSONAL_INFO) != 0) ? -1 : 1;
|
return ((a.flags()&PermissionGroupInfo.FLAG_PERSONAL_INFO) != 0) ? -1 : 1;
|
||||||
}
|
}
|
||||||
if (a.priority != b.priority) {
|
if (a.priority() != b.priority()) {
|
||||||
return a.priority > b.priority ? -1 : 1;
|
return a.priority() > b.priority() ? -1 : 1;
|
||||||
}
|
}
|
||||||
return sCollator.compare(a.mLabel, b.mLabel);
|
return sCollator.compare(a.mLabel, b.mLabel);
|
||||||
}
|
}
|
||||||
@ -497,7 +509,7 @@ public class AppSecurityPermissions {
|
|||||||
if (pInfo.mNew) {
|
if (pInfo.mNew) {
|
||||||
addPermToList(group.mNewPermissions, pInfo);
|
addPermToList(group.mNewPermissions, pInfo);
|
||||||
}
|
}
|
||||||
if ((group.flags&PermissionGroupInfo.FLAG_PERSONAL_INFO) != 0) {
|
if ((group.flags()&PermissionGroupInfo.FLAG_PERSONAL_INFO) != 0) {
|
||||||
addPermToList(group.mPersonalPermissions, pInfo);
|
addPermToList(group.mPersonalPermissions, pInfo);
|
||||||
} else {
|
} else {
|
||||||
addPermToList(group.mDevicePermissions, pInfo);
|
addPermToList(group.mDevicePermissions, pInfo);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user