private void showRemoveDuplicatesDialog(Array<FileHandle> unhandledFiles, Array<DrawableData> backup, Array<FileHandle> filesToProcess) {
        Dialog dialog = new Dialog("Delete duplicates?", getSkin(), "bg"){
            @Override
            protected void result(Object object) {
                if ((boolean) object) {
                    for (FileHandle fileHandle : unhandledFiles) {
                        removeDuplicateDrawables(DrawableData.proper(fileHandle.name()), false);
                        if (!checkDuplicateFontDrawables(DrawableData.proper(fileHandle.name()), 0)) {
                            filesToProcess.add(fileHandle);
                        }
                    }
                }
                finalizeDrawables(backup, filesToProcess);
                atlasData.produceAtlas();
                rootTable.refreshPreview();
            }
        };
        
        dialog.getTitleTable().padLeft(5.0f);
        dialog.getContentTable().padLeft(10.0f).padRight(10.0f).padTop(5.0f);
        dialog.getButtonTable().padBottom(15.0f);
        
        var containsFontDrawable = false;
        for (FileHandle fileHandle : unhandledFiles) {
            if (checkDuplicateFontDrawables(DrawableData.proper(fileHandle.name()), 0)) {
                containsFontDrawable = true;
                break;
            }
        }
        
        if (containsFontDrawable) {
            dialog.text("This operation will overwrite one or more drawables\n"
                    + "Delete duplicates?\n\n"
                    + "Note: drawables that overwrite drawables used by fonts can not be added.");
        } else {
            dialog.text("This operation will overwrite one or more drawables\n"
                    + "Delete duplicates?");
        }
        
        dialog.button("OK", true);
        dialog.button("Cancel", false);
        dialog.getButtonTable().getCells().first().getActor().addListener(handListener);
        dialog.getButtonTable().getCells().get(1).getActor().addListener(handListener);
        dialog.key(Input.Keys.ENTER, true).key(Keys.NUMPAD_ENTER, true);
        dialog.key(Input.Keys.ESCAPE, false);
        dialog.show(getStage());
    }
Shows a dialog to confirm removal of duplicate drawables that have the
same name without extension. This is called after selecting new drawables.
Does not delete existing style values that point to this drawable.
@param unhandledFiles
@param backup
@param filesToProcess
core/src/com/ray3k/skincomposer/dialog/DialogDrawables.java