Android 12 | Custom Menu item is not displayed on webview selection highlight

Viewed 251
  @Override
public void onActionModeStarted(ActionMode mode) {


    super.onActionModeStarted(mode);
    if (AppUtil.isChromebookEnvironment() || bookInfoData.getContentImageType().trim().equalsIgnoreCase("ImageBased")) {
        mode.finish();
    }
    TenantReaderManager multiTenancyReaderManager = TenantReaderManager.getInstance();

    selectionModeBar = mode;

    if (pager.isPagingEnabled() == false) {
        return;
    }

    


    // Customize the actionbar
    Menu menu = selectionModeBar.getMenu();
    menu.clear();


    Resources res = getResources();

    try {
        Log.e("name", String.valueOf(menu.getItem(0).getTitle()));
    } catch (Exception e) {
        e.printStackTrace();
    }


    menu.add(0, ReaderConstants.KEY_HIGHLIGHT, 0, " " + res.getString(R.string.native_reader_activity_popup_highlight)).setOnMenuItemClickListener(onMenuItemclick)
            .setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
    menu.add(0, ReaderConstants.KEY_NOTES, 0, " " + res.getString(R.string.native_reader_activity_popup_note)).setOnMenuItemClickListener(onMenuItemclick)
            .setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT);

    try {
        Log.e("name", String.valueOf(menu.getItem(0).getTitle()));
    } catch (Exception e) {
        e.printStackTrace();
    }

}

  1. Default Menu is displayed, custom items(i.e copy, share, select all) are not getting reflecting. But the title is getting printed after adding it to the menu, provided that menu.clear() is working fine as I have log statement after menu.clear()

This code is working in Android 11 and below.

enter image description here

1 Answers

Try This

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            mode.invalidateContentRect();
        }
Related