diff --git a/jadx-gui/src/main/java/jadx/gui/JadxGUI.java b/jadx-gui/src/main/java/jadx/gui/JadxGUI.java index 9dd0db3cecba2bd723c69a3d70b63e7dc2be250d..71d80e222059bdabeee2b3081fb7aa028b5c79dc 100644 --- a/jadx-gui/src/main/java/jadx/gui/JadxGUI.java +++ b/jadx-gui/src/main/java/jadx/gui/JadxGUI.java @@ -26,7 +26,9 @@ public class JadxGUI { mainWindow.setLocationRelativeTo(null); mainWindow.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); - if (!jadxArgs.getInput().isEmpty()) { + if (jadxArgs.getInput().isEmpty()) { + mainWindow.openFile(); + } else { mainWindow.openFile(jadxArgs.getInput().get(0)); } } diff --git a/jadx-gui/src/main/java/jadx/gui/MainWindow.java b/jadx-gui/src/main/java/jadx/gui/MainWindow.java index 1db61c9fde69becde758cdea1e3fd18a2fc6d7da..201fb561c16fe8a00aa7f6859821e8f08183af23 100644 --- a/jadx-gui/src/main/java/jadx/gui/MainWindow.java +++ b/jadx-gui/src/main/java/jadx/gui/MainWindow.java @@ -62,6 +62,8 @@ public class MainWindow extends JFrame { private static final ImageIcon ICON_FLAT_PKG = Utils.openIcon("empty_logical_package_obj"); private static final ImageIcon ICON_SEARCH = Utils.openIcon("magnifier"); + private static final File WORK_DIR = new File(System.getProperty("user.dir")); + private final JadxWrapper wrapper; private JPanel mainPanel; private JTree tree; @@ -77,6 +79,18 @@ public class MainWindow extends JFrame { initMenuAndToolbar(); } + public void openFile() { + JFileChooser fileChooser = new JFileChooser(); + fileChooser.setAcceptAllFileFilterUsed(true); + fileChooser.setFileFilter(new FileNameExtensionFilter("supported files", "dex", "apk", "jar")); + fileChooser.setToolTipText(NLS.str("file.open")); + // fileChooser.setCurrentDirectory(WORK_DIR); + int ret = fileChooser.showDialog(mainPanel, NLS.str("file.open")); + if (ret == JFileChooser.APPROVE_OPTION) { + openFile(fileChooser.getSelectedFile()); + } + } + public void openFile(File file) { wrapper.openFile(file); initTree(); @@ -86,7 +100,8 @@ public class MainWindow extends JFrame { private void saveAllAction() { JFileChooser fileChooser = new JFileChooser(); fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); - int ret = fileChooser.showDialog(mainPanel, NLS.str("file.save_all_msg")); + fileChooser.setToolTipText(NLS.str("file.save_all_msg")); + int ret = fileChooser.showDialog(mainPanel, NLS.str("file.select")); if (ret == JFileChooser.APPROVE_OPTION) { ProgressMonitor progressMonitor = new ProgressMonitor(mainPanel, "Saving sources", "", 0, 100); @@ -298,12 +313,7 @@ public class MainWindow extends JFrame { private class OpenListener implements ActionListener { public void actionPerformed(ActionEvent event) { - JFileChooser fileChooser = new JFileChooser(); - fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("dex files", "dex", "apk", "jar")); - int ret = fileChooser.showDialog(mainPanel, "Open file"); - if (ret == JFileChooser.APPROVE_OPTION) { - openFile(fileChooser.getSelectedFile()); - } + openFile(); } } } diff --git a/jadx-gui/src/main/resources/i18n/Messages_en_US.properties b/jadx-gui/src/main/resources/i18n/Messages_en_US.properties index eb79eb6152a2b3bcb2c952cb0901a344354152f7..4290f50112cb306ebfc48b7255cbf43fbbe62de6 100644 --- a/jadx-gui/src/main/resources/i18n/Messages_en_US.properties +++ b/jadx-gui/src/main/resources/i18n/Messages_en_US.properties @@ -2,6 +2,7 @@ file.open=Open file file.save=Save file file.save_all=Save all file.save_all_msg=Select directory for save decompiled sources +file.select=Select file.exit=Exit tree.flatten=Flatten packages