Skip to content

Commit 6ed4eb0

Browse files
committed
refactor
1 parent cef3341 commit 6ed4eb0

18 files changed

Lines changed: 367 additions & 900 deletions

File tree

app/build.gradle

Lines changed: 0 additions & 92 deletions
This file was deleted.

app/build.gradle.kts

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
import org.gradle.internal.os.OperatingSystem
2+
import org.gradle.api.tasks.bundling.Jar
3+
import org.gradle.process.ExecOperations
4+
5+
plugins {
6+
java
7+
kotlin("jvm")
8+
}
9+
10+
val properties: (String) -> String = { key ->
11+
project.findProperty(key).toString()
12+
}
13+
14+
group = properties("pluginGroup")
15+
version = properties("yampVersion")
16+
17+
configure<JavaPluginConvention> {
18+
sourceCompatibility = JavaVersion.VERSION_17
19+
}
20+
21+
sourceSets {
22+
main {
23+
java {
24+
if (OperatingSystem.current().isMacOsX) {
25+
srcDir("src/mac/java")
26+
} else {
27+
srcDir("src/default/java")
28+
}
29+
}
30+
}
31+
}
32+
33+
repositories {
34+
mavenCentral()
35+
}
36+
37+
dependencies {
38+
implementation(project(":core"))
39+
implementation("com.github.Grigory-Rylov:adb-facade-core:0.1.8")
40+
implementation("com.github.Grigory-Rylov:adb-facade-ddmlib:0.1.2")
41+
implementation("com.github.Grigory-Rylov:andoid_method_trace_recorder:2.1.0")
42+
implementation("com.github.Grishberg:tree-table:0.1.1")
43+
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.2")
44+
implementation("com.android.tools.ddms:ddmlib:26.6.3")
45+
implementation("com.google.code.gson:gson:2.8.6")
46+
implementation("org.slf4j:slf4j-api:1.7.25")
47+
implementation("org.slf4j:slf4j-log4j12:1.7.25")
48+
implementation("log4j:log4j:1.2.17")
49+
50+
testImplementation("junit:junit:4.12")
51+
testImplementation("org.mockito:mockito-core:2.23.0")
52+
testImplementation("com.nhaarman.mockitokotlin2:mockito-kotlin:2.1.0")
53+
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.3.2")
54+
}
55+
56+
tasks.withType<JavaCompile> {
57+
options.compilerArgs.add("-XDignore.symbol.file=true")
58+
}
59+
60+
tasks.register<Jar>("fatJar") {
61+
manifest {
62+
attributes(
63+
"Main-Class" to "com.github.grishberg.profiler.Launcher",
64+
"Implementation-Title" to "Android Methods Profiler",
65+
"Implementation-Version" to archiveVersion
66+
)
67+
}
68+
69+
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
70+
71+
archiveBaseName.set("yamp")
72+
73+
from(configurations.runtimeClasspath.get().map {
74+
if (it.isDirectory) it else zipTree(it)
75+
}) {
76+
exclude("MaterialUISwingDemo*.class")
77+
exclude("module-info.class")
78+
}
79+
80+
with(tasks.jar.get())
81+
}
82+
83+
val installerScript = when {
84+
OperatingSystem.current().isLinux -> "build_scripts/linuxApplication"
85+
OperatingSystem.current().isWindows -> ""
86+
OperatingSystem.current().isMacOsX -> "build_scripts/macosx.sh"
87+
else -> ""
88+
}
89+
90+
tasks.register<Exec>("buildInstaller") {
91+
dependsOn("fatJar")
92+
workingDir(file("."))
93+
println("Current WD: ${workingDir}")
94+
commandLine("./$installerScript", version.toString())
95+
}

app/src/main/java/com/github/grishberg/profiler/common/settings/JsonSettings.kt

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -201,8 +201,7 @@ class JsonSettings(
201201
var outputStream: FileOutputStream? = null
202202
try {
203203
outputStream = FileOutputStream(settingsFile)
204-
val bufferedWriter: BufferedWriter
205-
bufferedWriter = BufferedWriter(OutputStreamWriter(outputStream, "UTF-8"))
204+
val bufferedWriter = BufferedWriter(OutputStreamWriter(outputStream, "UTF-8"))
206205
gson.toJson(settingsMap, bufferedWriter)
207206
bufferedWriter.close()
208207
log.d("$TAG settings are saved")
@@ -227,16 +226,16 @@ class JsonSettings(
227226
setStringList(SETTINGS_HISTORY, value)
228227
}
229228

230-
override var packageName: String
231-
get() = getStringValueOrDefault(PKG_NAME_SETTINGS, "")
229+
override var packageNames: List<String>
230+
get() = getStringList(PKG_NAME_SETTINGS)
232231
set(value) {
233-
setStringValue(PKG_NAME_SETTINGS, value)
232+
setStringList(PKG_NAME_SETTINGS, value)
234233
}
235234

236-
override var activityName: String
237-
get() = getStringValueOrDefault(ACTIVITY_NAME_SETTINGS, "")
235+
override var activityNames: List<String>
236+
get() = getStringList(ACTIVITY_NAME_SETTINGS)
238237
set(value) {
239-
setStringValue(ACTIVITY_NAME_SETTINGS, value)
238+
setStringList(ACTIVITY_NAME_SETTINGS, value)
240239
}
241240

242241
override var sampling: Int
@@ -257,10 +256,10 @@ class JsonSettings(
257256
setIntValue(PROFILER_BUFFER_SIZE_SETTINGS, value)
258257
}
259258

260-
override var fileNamePrefix: String
261-
get() = getStringValueOrDefault(FILE_NAME_PREFIX_SETTINGS, "")
259+
override var fileNamePrefixes: List<String>
260+
get() = getStringList(FILE_NAME_PREFIX_SETTINGS)
262261
set(value) {
263-
setStringValue(FILE_NAME_PREFIX_SETTINGS, value)
262+
setStringList(FILE_NAME_PREFIX_SETTINGS, value)
264263
}
265264

266265
override var systraceStagePrefix: String

app/src/main/java/com/github/grishberg/profiler/ui/dialogs/recorder/JavaMethodsRecorderDialog.kt

Lines changed: 30 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import javax.swing.WindowConstants
3131
import javax.swing.border.BevelBorder
3232
import javax.swing.border.EmptyBorder
3333
import javax.swing.border.EtchedBorder
34+
import com.github.grishberg.profiler.ui.views.HistoryComboBox
3435

3536
private const val TAG = "JavaMethodsRecorderDialog"
3637
private const val TEXT_PADDING = 8
@@ -48,9 +49,9 @@ class JavaMethodsRecorderDialog(
4849
owner,
4950
TITLE, true
5051
), JavaMethodsRecorderDialogView {
51-
private val packageNameField: JTextField
52-
private val activityNameField: JTextField
53-
private val fileNamePrefixField: JTextField
52+
private val packageNameField: HistoryComboBox
53+
private val activityNameField: HistoryComboBox
54+
private val fileNamePrefixField: HistoryComboBox
5455
private val remoteDeviceAddressField: JTextField = JTextField(20)
5556
private val stagesTracePrefixField: JTextField = JTextField(10)
5657
private val showRemotePanelCheckbox = JCheckBox("Connect to remote device")
@@ -71,23 +72,14 @@ class JavaMethodsRecorderDialog(
7172
private val recordModeComBox =
7273
JComboBox(arrayOf(RecordMode.METHOD_SAMPLE, RecordMode.METHOD_TRACES))
7374

74-
override var packageName: String
75-
get() = packageNameField.text.trim()
76-
set(value) {
77-
packageNameField.text = value
78-
}
75+
override val packageName: String
76+
get() = packageNameField.text
7977

80-
override var activityName: String
81-
get() = activityNameField.text.trim()
82-
set(value) {
83-
activityNameField.text = value
84-
}
78+
override val activityName: String
79+
get() = activityNameField.text
8580

86-
override var fileNamePrefix: String
87-
get() = fileNamePrefixField.text.trim()
88-
set(value) {
89-
fileNamePrefixField.text = value
90-
}
81+
override val fileNamePrefix: String
82+
get() = fileNamePrefixField.text
9183

9284
override var sampling: Int
9385
get() = samplingField.value
@@ -150,13 +142,17 @@ class JavaMethodsRecorderDialog(
150142
val contentPanel = JPanel()
151143
contentPanel.layout = BorderLayout()
152144

153-
packageNameField = JTextField(FIELD_LENGTH)
145+
packageNameField = HistoryComboBox.create()
146+
packageNameField.columns = FIELD_LENGTH
154147
packageNameField.toolTipText = "Enter application package. Required"
155148

156-
activityNameField = JTextField(FIELD_LENGTH)
149+
activityNameField = HistoryComboBox.create()
150+
activityNameField.columns = FIELD_LENGTH
151+
157152
activityNameField.toolTipText = "Enter entry point activity. Optional"
158153

159-
fileNamePrefixField = JTextField(FIELD_LENGTH)
154+
fileNamePrefixField = HistoryComboBox.create()
155+
fileNamePrefixField.columns = FIELD_LENGTH
160156
fileNamePrefixField.toolTipText = "Adds file name prefix. Optional."
161157

162158
val content = panelBuilder.content
@@ -249,6 +245,19 @@ class JavaMethodsRecorderDialog(
249245
pack()
250246
}
251247

248+
override fun setInitialPackageNames(names: List<String>) {
249+
packageNameField.setItems(names)
250+
}
251+
252+
override fun setInitialActivityNames(names: List<String>) {
253+
activityNameField.setItems(names)
254+
}
255+
256+
override fun setInitialFileNamePrefixes(names: List<String>) {
257+
fileNamePrefixField.setItems(names)
258+
}
259+
260+
252261
private fun buildMoreOptionsPanel(): JPanel {
253262
val panel = JPanel()
254263
panel.layout = BorderLayout()

0 commit comments

Comments
 (0)