Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
ql04210214
jadx
提交
1195582d
J
jadx
项目概览
ql04210214
/
jadx
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jadx
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
1195582d
编写于
9月 05, 2022
作者:
S
Skylot
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(gui): option for search results count per page (#1652)
上级
258987b0
变更
11
显示空白变更内容
内联
并排
Showing
11 changed file
with
46 addition
and
60 deletion
+46
-60
jadx-gui/src/main/java/jadx/gui/search/SearchTask.java
jadx-gui/src/main/java/jadx/gui/search/SearchTask.java
+0
-4
jadx-gui/src/main/java/jadx/gui/settings/JadxSettings.java
jadx-gui/src/main/java/jadx/gui/settings/JadxSettings.java
+9
-0
jadx-gui/src/main/java/jadx/gui/settings/JadxSettingsWindow.java
...i/src/main/java/jadx/gui/settings/JadxSettingsWindow.java
+18
-44
jadx-gui/src/main/java/jadx/gui/ui/dialog/SearchDialog.java
jadx-gui/src/main/java/jadx/gui/ui/dialog/SearchDialog.java
+1
-1
jadx-gui/src/main/resources/i18n/Messages_de_DE.properties
jadx-gui/src/main/resources/i18n/Messages_de_DE.properties
+2
-1
jadx-gui/src/main/resources/i18n/Messages_en_US.properties
jadx-gui/src/main/resources/i18n/Messages_en_US.properties
+4
-3
jadx-gui/src/main/resources/i18n/Messages_es_ES.properties
jadx-gui/src/main/resources/i18n/Messages_es_ES.properties
+4
-3
jadx-gui/src/main/resources/i18n/Messages_ko_KR.properties
jadx-gui/src/main/resources/i18n/Messages_ko_KR.properties
+2
-1
jadx-gui/src/main/resources/i18n/Messages_pt_BR.properties
jadx-gui/src/main/resources/i18n/Messages_pt_BR.properties
+2
-1
jadx-gui/src/main/resources/i18n/Messages_zh_CN.properties
jadx-gui/src/main/resources/i18n/Messages_zh_CN.properties
+2
-1
jadx-gui/src/main/resources/i18n/Messages_zh_TW.properties
jadx-gui/src/main/resources/i18n/Messages_zh_TW.properties
+2
-1
未找到文件。
jadx-gui/src/main/java/jadx/gui/search/SearchTask.java
浏览文件 @
1195582d
...
@@ -5,7 +5,6 @@ import java.util.List;
...
@@ -5,7 +5,6 @@ import java.util.List;
import
java.util.concurrent.Future
;
import
java.util.concurrent.Future
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.TimeoutException
;
import
java.util.concurrent.TimeoutException
;
import
java.util.concurrent.atomic.AtomicBoolean
;
import
java.util.concurrent.atomic.AtomicInteger
;
import
java.util.concurrent.atomic.AtomicInteger
;
import
java.util.function.BiConsumer
;
import
java.util.function.BiConsumer
;
import
java.util.function.Consumer
;
import
java.util.function.Consumer
;
...
@@ -35,7 +34,6 @@ public class SearchTask extends CancelableBackgroundTask {
...
@@ -35,7 +34,6 @@ public class SearchTask extends CancelableBackgroundTask {
private
final
TaskProgress
taskProgress
=
new
TaskProgress
();
private
final
TaskProgress
taskProgress
=
new
TaskProgress
();
private
final
AtomicInteger
resultsCount
=
new
AtomicInteger
(
0
);
private
final
AtomicInteger
resultsCount
=
new
AtomicInteger
(
0
);
private
final
AtomicBoolean
complete
=
new
AtomicBoolean
(
false
);
private
int
resultsLimit
;
private
int
resultsLimit
;
private
Future
<
TaskStatus
>
future
;
private
Future
<
TaskStatus
>
future
;
...
@@ -60,7 +58,6 @@ public class SearchTask extends CancelableBackgroundTask {
...
@@ -60,7 +58,6 @@ public class SearchTask extends CancelableBackgroundTask {
throw
new
IllegalStateException
(
"Previous task not yet finished"
);
throw
new
IllegalStateException
(
"Previous task not yet finished"
);
}
}
resetCancel
();
resetCancel
();
complete
.
set
(
false
);
resultsCount
.
set
(
0
);
resultsCount
.
set
(
0
);
taskProgress
.
updateTotal
(
jobs
.
stream
().
mapToInt
(
s
->
s
.
getProvider
().
total
()).
sum
());
taskProgress
.
updateTotal
(
jobs
.
stream
().
mapToInt
(
s
->
s
.
getProvider
().
total
()).
sum
());
future
=
backgroundExecutor
.
execute
(
this
);
future
=
backgroundExecutor
.
execute
(
this
);
...
@@ -74,7 +71,6 @@ public class SearchTask extends CancelableBackgroundTask {
...
@@ -74,7 +71,6 @@ public class SearchTask extends CancelableBackgroundTask {
this
.
resultsListener
.
accept
(
resultNode
);
this
.
resultsListener
.
accept
(
resultNode
);
if
(
resultsLimit
!=
0
&&
resultsCount
.
incrementAndGet
()
>=
resultsLimit
)
{
if
(
resultsLimit
!=
0
&&
resultsCount
.
incrementAndGet
()
>=
resultsLimit
)
{
cancel
();
cancel
();
complete
.
set
(
false
);
return
true
;
return
true
;
}
}
return
false
;
return
false
;
...
...
jadx-gui/src/main/java/jadx/gui/settings/JadxSettings.java
浏览文件 @
1195582d
...
@@ -79,6 +79,7 @@ public class JadxSettings extends JadxCLIArgs {
...
@@ -79,6 +79,7 @@ public class JadxSettings extends JadxCLIArgs {
private
boolean
codeAreaLineWrap
=
false
;
private
boolean
codeAreaLineWrap
=
false
;
private
int
srhResourceSkipSize
=
1000
;
private
int
srhResourceSkipSize
=
1000
;
private
String
srhResourceFileExt
=
".xml|.html|.js|.json|.txt"
;
private
String
srhResourceFileExt
=
".xml|.html|.js|.json|.txt"
;
private
int
searchResultsPerPage
=
50
;
private
boolean
useAutoSearch
=
true
;
private
boolean
useAutoSearch
=
true
;
private
boolean
keepCommonDialogOpen
=
false
;
private
boolean
keepCommonDialogOpen
=
false
;
private
boolean
smaliAreaShowBytecode
=
false
;
private
boolean
smaliAreaShowBytecode
=
false
;
...
@@ -541,6 +542,14 @@ public class JadxSettings extends JadxCLIArgs {
...
@@ -541,6 +542,14 @@ public class JadxSettings extends JadxCLIArgs {
srhResourceFileExt
=
all
.
trim
();
srhResourceFileExt
=
all
.
trim
();
}
}
public
int
getSearchResultsPerPage
()
{
return
searchResultsPerPage
;
}
public
void
setSearchResultsPerPage
(
int
searchResultsPerPage
)
{
this
.
searchResultsPerPage
=
searchResultsPerPage
;
}
public
boolean
isUseAutoSearch
()
{
public
boolean
isUseAutoSearch
()
{
return
useAutoSearch
;
return
useAutoSearch
;
}
}
...
...
jadx-gui/src/main/java/jadx/gui/settings/JadxSettingsWindow.java
浏览文件 @
1195582d
...
@@ -45,10 +45,6 @@ import javax.swing.SpinnerNumberModel;
...
@@ -45,10 +45,6 @@ import javax.swing.SpinnerNumberModel;
import
javax.swing.SwingConstants
;
import
javax.swing.SwingConstants
;
import
javax.swing.SwingUtilities
;
import
javax.swing.SwingUtilities
;
import
javax.swing.WindowConstants
;
import
javax.swing.WindowConstants
;
import
javax.swing.event.ChangeEvent
;
import
javax.swing.event.ChangeListener
;
import
javax.swing.event.DocumentEvent
;
import
javax.swing.event.DocumentListener
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
...
@@ -676,48 +672,26 @@ public class JadxSettingsWindow extends JDialog {
...
@@ -676,48 +672,26 @@ public class JadxSettingsWindow extends JDialog {
}
}
private
SettingsGroup
makeSearchResGroup
()
{
private
SettingsGroup
makeSearchResGroup
()
{
SettingsGroup
group
=
new
SettingsGroup
(
NLS
.
str
(
"preferences.search_res_title"
));
JSpinner
resultsPerPage
=
new
JSpinner
(
int
prevSize
=
settings
.
getSrhResourceSkipSize
();
new
SpinnerNumberModel
(
settings
.
getSearchResultsPerPage
(),
0
,
Integer
.
MAX_VALUE
,
1
));
String
prevExts
=
settings
.
getSrhResourceFileExt
();
resultsPerPage
.
addChangeListener
(
ev
->
settings
.
setSearchResultsPerPage
((
Integer
)
resultsPerPage
.
getValue
()));
SpinnerNumberModel
sizeLimitModel
=
new
SpinnerNumberModel
(
prevSize
,
0
,
Integer
.
MAX_VALUE
,
1
);
JSpinner
spinner
=
new
JSpinner
(
sizeLimitModel
);
JTextField
fileExtField
=
new
JTextField
();
group
.
addRow
(
NLS
.
str
(
"preferences.res_skip_file"
),
spinner
);
group
.
addRow
(
NLS
.
str
(
"preferences.res_file_ext"
),
fileExtField
);
spinner
.
addChangeListener
(
new
ChangeListener
()
{
JSpinner
sizeLimit
=
new
JSpinner
(
@Override
new
SpinnerNumberModel
(
settings
.
getSrhResourceSkipSize
(),
0
,
Integer
.
MAX_VALUE
,
1
));
public
void
stateChanged
(
ChangeEvent
e
)
{
sizeLimit
.
addChangeListener
(
ev
->
settings
.
setSrhResourceSkipSize
((
Integer
)
sizeLimit
.
getValue
()));
int
size
=
(
Integer
)
spinner
.
getValue
();
settings
.
setSrhResourceSkipSize
(
size
);
}
});
fileExtField
.
getDocument
().
addDocumentListener
(
new
DocumentListener
()
{
JTextField
fileExtField
=
new
JTextField
();
private
void
update
()
{
fileExtField
.
getDocument
().
addDocumentListener
(
new
DocumentUpdateListener
((
ev
)
->
{
String
ext
=
fileExtField
.
getText
();
String
ext
=
fileExtField
.
getText
();
settings
.
setSrhResourceFileExt
(
ext
);
settings
.
setSrhResourceFileExt
(
ext
);
}
}));
fileExtField
.
setText
(
settings
.
getSrhResourceFileExt
());
@Override
public
void
insertUpdate
(
DocumentEvent
e
)
{
update
();
}
@Override
public
void
removeUpdate
(
DocumentEvent
e
)
{
update
();
}
@Override
public
void
changedUpdate
(
DocumentEvent
e
)
{
update
();
}
});
fileExtField
.
setText
(
prevExts
);
return
group
;
SettingsGroup
searchGroup
=
new
SettingsGroup
(
NLS
.
str
(
"preferences.search_group_title"
));
searchGroup
.
addRow
(
NLS
.
str
(
"preferences.search_results_per_page"
),
resultsPerPage
);
searchGroup
.
addRow
(
NLS
.
str
(
"preferences.res_skip_file"
),
sizeLimit
);
searchGroup
.
addRow
(
NLS
.
str
(
"preferences.res_file_ext"
),
fileExtField
);
return
searchGroup
;
}
}
private
void
needReload
()
{
private
void
needReload
()
{
...
...
jadx-gui/src/main/java/jadx/gui/ui/dialog/SearchDialog.java
浏览文件 @
1195582d
...
@@ -409,7 +409,7 @@ public class SearchDialog extends CommonSearchDialog {
...
@@ -409,7 +409,7 @@ public class SearchDialog extends CommonSearchDialog {
updateTableHighlight
();
updateTableHighlight
();
prepareForSearch
();
prepareForSearch
();
});
});
this
.
searchTask
.
setResultsLimit
(
50
);
this
.
searchTask
.
setResultsLimit
(
mainWindow
.
getSettings
().
getSearchResultsPerPage
()
);
this
.
searchTask
.
setProgressListener
(
this
::
updateProgress
);
this
.
searchTask
.
setProgressListener
(
this
::
updateProgress
);
this
.
searchTask
.
fetchResults
();
this
.
searchTask
.
fetchResults
();
LOG
.
debug
(
"Total search items count estimation: {}"
,
this
.
searchTask
.
getTaskProgress
().
total
());
LOG
.
debug
(
"Total search items count estimation: {}"
,
this
.
searchTask
.
getTaskProgress
().
total
());
...
...
jadx-gui/src/main/resources/i18n/Messages_de_DE.properties
浏览文件 @
1195582d
...
@@ -194,7 +194,8 @@ preferences.rename=Umbenennen
...
@@ -194,7 +194,8 @@ preferences.rename=Umbenennen
preferences.rename_case
=
System unterscheidet zwischen Groß/Kleinschreibung
preferences.rename_case
=
System unterscheidet zwischen Groß/Kleinschreibung
preferences.rename_valid
=
Ist eine gültige Kennung
preferences.rename_valid
=
Ist eine gültige Kennung
preferences.rename_printable
=
Ist druckbar
preferences.rename_printable
=
Ist druckbar
preferences.search_res_title
=
Ressourcen durchsuchen
preferences.search_group_title
=
Ressourcen durchsuchen
#preferences.search_results_per_page=Results per page (0 - no limit)
preferences.res_file_ext
=
Dateierweiterungen (z.B. .xml|.html), * bedeutet alle
preferences.res_file_ext
=
Dateierweiterungen (z.B. .xml|.html), * bedeutet alle
preferences.res_skip_file
=
Dateien überspringen (MB)
preferences.res_skip_file
=
Dateien überspringen (MB)
...
...
jadx-gui/src/main/resources/i18n/Messages_en_US.properties
浏览文件 @
1195582d
...
@@ -194,9 +194,10 @@ preferences.rename=Rename identifiers
...
@@ -194,9 +194,10 @@ preferences.rename=Rename identifiers
preferences.rename_case
=
To fix case sensitivity issues
preferences.rename_case
=
To fix case sensitivity issues
preferences.rename_valid
=
To make them valid
preferences.rename_valid
=
To make them valid
preferences.rename_printable
=
To make printable
preferences.rename_printable
=
To make printable
preferences.search_res_title
=
Search Resource
preferences.search_group_title
=
Search
preferences.res_file_ext
=
File Extensions (e.g. .xml|.html), * means all
preferences.search_results_per_page
=
Results per page (0 - no limit)
preferences.res_skip_file
=
Skip files exceed (MB)
preferences.res_file_ext
=
Resource files extensions ('xml|html', * for all)
preferences.res_skip_file
=
Skip resources files if larger (MB)
msg.open_file
=
Please open file
msg.open_file
=
Please open file
msg.saving_sources
=
Saving sources
msg.saving_sources
=
Saving sources
...
...
jadx-gui/src/main/resources/i18n/Messages_es_ES.properties
浏览文件 @
1195582d
...
@@ -194,9 +194,10 @@ preferences.reset_title=Reestablecer preferencias
...
@@ -194,9 +194,10 @@ preferences.reset_title=Reestablecer preferencias
#preferences.rename_case=
#preferences.rename_case=
#preferences.rename_valid=
#preferences.rename_valid=
#preferences.rename_printable=
#preferences.rename_printable=
#preferences.search_res_title=
#preferences.search_group_title=Search
#preferences.res_file_ext=
#preferences.search_results_per_page=Results per page (0 - no limit)
#preferences.res_skip_file=
#preferences.res_file_ext=Resource files extensions ('xml|html', * for all)
#preferences.res_skip_file=Skip resources files if larger (MB)
msg.open_file
=
Por favor, abra un archivo
msg.open_file
=
Por favor, abra un archivo
msg.saving_sources
=
Guardando fuente
msg.saving_sources
=
Guardando fuente
...
...
jadx-gui/src/main/resources/i18n/Messages_ko_KR.properties
浏览文件 @
1195582d
...
@@ -194,7 +194,8 @@ preferences.rename=이름 바꾸기
...
@@ -194,7 +194,8 @@ preferences.rename=이름 바꾸기
preferences.rename_case
=
시스템 대소문자 구분
preferences.rename_case
=
시스템 대소문자 구분
preferences.rename_valid
=
유효한 식별자로 바꾸기
preferences.rename_valid
=
유효한 식별자로 바꾸기
preferences.rename_printable
=
출력 가능하게 바꾸기
preferences.rename_printable
=
출력 가능하게 바꾸기
preferences.search_res_title
=
리소스 검색
preferences.search_group_title
=
리소스 검색
#preferences.search_results_per_page=Results per page (0 - no limit)
preferences.res_file_ext
=
파일 확장자 (예: .xml|.html) (* 은 전체를 의미)
preferences.res_file_ext
=
파일 확장자 (예: .xml|.html) (* 은 전체를 의미)
preferences.res_skip_file
=
이 옵션보다 큰 파일 건너 뛰기 (MB)
preferences.res_skip_file
=
이 옵션보다 큰 파일 건너 뛰기 (MB)
...
...
jadx-gui/src/main/resources/i18n/Messages_pt_BR.properties
浏览文件 @
1195582d
...
@@ -194,7 +194,8 @@ preferences.rename=Renomear identificadores
...
@@ -194,7 +194,8 @@ preferences.rename=Renomear identificadores
preferences.rename_case
=
Corrigir problemas de capitalização (case sensitivity)
preferences.rename_case
=
Corrigir problemas de capitalização (case sensitivity)
preferences.rename_valid
=
Deixá-las válidas
preferences.rename_valid
=
Deixá-las válidas
preferences.rename_printable
=
Deixá-las imprimíveis (printable)
preferences.rename_printable
=
Deixá-las imprimíveis (printable)
preferences.search_res_title
=
Buscar recursos
preferences.search_group_title
=
Buscar recursos
#preferences.search_results_per_page=Results per page (0 - no limit)
preferences.res_file_ext
=
Extensões de arquivos (ex: .xml|.html), * significa todas
preferences.res_file_ext
=
Extensões de arquivos (ex: .xml|.html), * significa todas
preferences.res_skip_file
=
Pular arquivos excedidos
preferences.res_skip_file
=
Pular arquivos excedidos
...
...
jadx-gui/src/main/resources/i18n/Messages_zh_CN.properties
浏览文件 @
1195582d
...
@@ -194,7 +194,8 @@ preferences.rename=重命名标识符
...
@@ -194,7 +194,8 @@ preferences.rename=重命名标识符
preferences.rename_case
=
需要标识符能区分大小写
preferences.rename_case
=
需要标识符能区分大小写
preferences.rename_valid
=
需要标识符能符合规范
preferences.rename_valid
=
需要标识符能符合规范
preferences.rename_printable
=
需要标识符可正常显示
preferences.rename_printable
=
需要标识符可正常显示
preferences.search_res_title
=
搜索资源
preferences.search_group_title
=
搜索资源
#preferences.search_results_per_page=Results per page (0 - no limit)
preferences.res_file_ext
=
文件扩展名 (e.g. .xml|.html),* 表示所有
preferences.res_file_ext
=
文件扩展名 (e.g. .xml|.html),* 表示所有
preferences.res_skip_file
=
跳过文件大小(MB)
preferences.res_skip_file
=
跳过文件大小(MB)
...
...
jadx-gui/src/main/resources/i18n/Messages_zh_TW.properties
浏览文件 @
1195582d
...
@@ -194,7 +194,8 @@ preferences.rename=重新命名識別碼
...
@@ -194,7 +194,8 @@ preferences.rename=重新命名識別碼
preferences.rename_case
=
以修復區分大小寫問題
preferences.rename_case
=
以修復區分大小寫問題
preferences.rename_valid
=
以使其有效
preferences.rename_valid
=
以使其有效
preferences.rename_printable
=
以使其可列印
preferences.rename_printable
=
以使其可列印
preferences.search_res_title
=
搜尋資源
preferences.search_group_title
=
搜尋資源
#preferences.search_results_per_page=Results per page (0 - no limit)
preferences.res_file_ext
=
副檔名 (e.g. .xml|.html), * 表示全部
preferences.res_file_ext
=
副檔名 (e.g. .xml|.html), * 表示全部
preferences.res_skip_file
=
略過大於此值的檔案 (MB)
preferences.res_skip_file
=
略過大於此值的檔案 (MB)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录