Pop-up BUG
When the application uses requestPermissions to apply for permissions, the system will pop up a selection window to allow or deny.
In this window, there is a "Don't ask again" selection box, "Deny" and "Allow" buttons.
Encountered a bug, click "Don't ask again", the "Allow" button will be grayed out and disabled.
position
First locate where the code is, first find out the corresponding English
packages/apps/PackageInstaller/res/values-zh-rCN/strings.xml:108: "Don't ask again" through the text "Don't ask again"
Look for ./packages/apps/PackageInstaller/res/layout/grant_permissions.xml by this "never_ask_again"
: android:text="@string/never_ask_again"
<!-- desc_container用于显示请求权限程序的图标perm_desc_root,及请求的权限permission_message -->
<FrameLayout
android:id="@+id/desc_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="18dip"
android:paddingStart="20dip"
android:paddingEnd="16dip">
<include
layout="@layout/permission_description" />
</FrameLayout>
<!-- do_not_ask_checkbox就是 不再询问的选择框 -->
<CheckBox
android:id="@+id/do_not_ask_checkbox"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="-12dp"
android:minHeight="48dp"
android:text="@string/never_ask_again"
android:textColor="?android:attr/textColorPrimary"
style="?android:attr/textAppearanceSmall"
android:visibility="gone">
</CheckBox>
Locate the source code in the packages/apps/PackageInstaller file.
GrantPermissionsActivity is a pop-up window for permission assignment. GrantPermissionsDefaultViewHandler is used to control the ui view of GrantPermissionsActivity. Button click events are handled through the GrantPermissionsViewHandler.ResultListener interface, which is implemented by GrantPermissionsActivity
public class GrantPermissionsActivity extends OverlayTouchActivity
implements GrantPermissionsViewHandler.ResultListener {
mViewHandler = new com.android.packageinstaller.permission.ui.handheld
.GrantPermissionsViewHandlerImpl(this, getCallingPackage())
.setResultListener(this);
}
Modify BUG
Modify the code under packages
diff --git a/apps/PackageInstaller/src/com/android/packageinstaller/permission/ui/handheld/GrantPermissionsViewHandlerImpl.java b/apps/PackageInstaller/src/com/android/packageinstaller/permission/ui/handheld/GrantPermissionsViewHandlerImpl.java
index a372e2c5..41c65b89 100644
--- a/apps/PackageInstaller/src/com/android/packageinstaller/permission/ui/handheld/GrantPermissionsViewHandlerImpl.java
+++ b/apps/PackageInstaller/src/com/android/packageinstaller/permission/ui/handheld/GrantPermissionsViewHandlerImpl.java
@@ -342,7 +342,8 @@ public class GrantPermissionsViewHandlerImpl implements GrantPermissionsViewHand
if (mResultListener != null) {
view.performAccessibilityAction(
AccessibilityNodeInfo.ACTION_CLEAR_ACCESSIBILITY_FOCUS, null);
- mResultListener.onPermissionGrantResult(mGroupName, true, false);
+ mResultListener.onPermissionGrantResult(mGroupName, true,
+ mShowDonNotAsk && mDoNotAskCheckbox.isChecked());
}
break;
case R.id.permission_deny_button:
@@ -361,7 +362,7 @@ public class GrantPermissionsViewHandlerImpl implements GrantPermissionsViewHand
mActivity.startActivity(intent);
break;
case R.id.do_not_ask_checkbox:
- mAllowButton.setEnabled(!mDoNotAskCheckbox.isChecked());
+ //mAllowButton.setEnabled(!mDoNotAskCheckbox.isChecked());
break;
}
}
Author: Too handsome to go out and refuse to reprint