Skip to content

Commit

Permalink
Merge pull request #336 from wuseal/fix/#296
Browse files Browse the repository at this point in the history
[feature] #296  Analytics Switch Support
  • Loading branch information
wuseal authored Apr 25, 2021
2 parents 61c7135 + 3240b5f commit c9dc352
Show file tree
Hide file tree
Showing 7 changed files with 72 additions and 3 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
buildscript {
ext.kotlin_version = '1.3.61'
ext.kotlin_version = '1.4.20'

repositories {
mavenLocal()
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.5.1-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip
4 changes: 3 additions & 1 deletion src/main/kotlin/extensions/ExtensionsCollector.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import extensions.ted.zeng.PropertyAnnotationLineSupport
import extensions.wu.seal.*
import extensions.xu.rui.PrimitiveTypeNonNullableSupport
import extensions.nstd.ReplaceConstructorParametersByMemberVariablesSupport
import wu.seal.jsontokotlin.interceptor.AnalyticsSwitchSupport

/**
* extension collect, all extensions will be hold by this class's extensions property
Expand All @@ -25,6 +26,7 @@ object ExtensionsCollector {
PrimitiveTypeNonNullableSupport,
ForceInitDefaultValueWithOriginJsonValueSupport,
DisableDataClassSupport,
ReplaceConstructorParametersByMemberVariablesSupport
ReplaceConstructorParametersByMemberVariablesSupport,
AnalyticsSwitchSupport
)
}
4 changes: 4 additions & 0 deletions src/main/kotlin/wu/seal/jsontokotlin/feedback/NetWork.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package wu.seal.jsontokotlin.feedback

import wu.seal.jsontokotlin.interceptor.AnalyticsSwitchSupport
import java.net.HttpURLConnection
import java.net.URL

Expand Down Expand Up @@ -48,6 +49,9 @@ fun sendHistoryActionInfo() {
}

fun sendData(url: String, log: String) {
if (AnalyticsSwitchSupport.enableAnalytics().not()) {
return
}
Thread {
try {
with(URL(url).openConnection() as HttpURLConnection) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package wu.seal.jsontokotlin.interceptor

import extensions.Extension
import wu.seal.jsontokotlin.model.classscodestruct.KotlinClass
import wu.seal.jsontokotlin.ui.jCheckBox
import wu.seal.jsontokotlin.ui.jHorizontalLinearLayout
import javax.swing.JPanel


/**
* Not used for Kotlin data class, only used for global config
*/
object AnalyticsSwitchSupport: Extension() {

const val configKey = "wu.seal.analytics_switch"

override fun createUI(): JPanel {
return jHorizontalLinearLayout {
jCheckBox("Enable anonymous analytic", getConfig(configKey).toBoolean(), { isSelected -> setConfig(
configKey, isSelected.toString()) })
fillSpace()
}
}

override fun intercept(kotlinClass: KotlinClass): KotlinClass {
return kotlinClass //do nothing for kotlinClass
}

fun enableAnalytics(): Boolean {
return getConfig(configKey).toBoolean()
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package wu.seal.jsontokotlin.interceptor

import com.winterbe.expekt.should
import org.junit.Test
import wu.seal.jsontokotlin.utils.BaseTest

class AnalyticsSwitchSupportTest : BaseTest() {

@Test
fun enableAnalytics() {
val originalValue = AnalyticsSwitchSupport.enableAnalytics()
val expectedValue = true
AnalyticsSwitchSupport.getTestHelper()
.setConfig(AnalyticsSwitchSupport.configKey, expectedValue.toString())
val nowValue = AnalyticsSwitchSupport.enableAnalytics()
nowValue.should.be.equal(expectedValue)
AnalyticsSwitchSupport.getTestHelper()
.setConfig(AnalyticsSwitchSupport.configKey, originalValue.toString())
}
}
11 changes: 11 additions & 0 deletions src/test/kotlin/wu/seal/jsontokotlin/utils/BaseTest.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package wu.seal.jsontokotlin.utils

import org.junit.Before
import wu.seal.jsontokotlin.test.TestConfig

open class BaseTest {
@Before
fun beforeTest() {
TestConfig.setToTestInitState()
}
}

0 comments on commit c9dc352

Please sign in to comment.