diff --git a/src/main/scala/com/github/shadowsocks/ShadowsocksApplication.scala b/src/main/scala/com/github/shadowsocks/ShadowsocksApplication.scala index 3eaa9959..92e4b555 100644 --- a/src/main/scala/com/github/shadowsocks/ShadowsocksApplication.scala +++ b/src/main/scala/com/github/shadowsocks/ShadowsocksApplication.scala @@ -42,9 +42,13 @@ import android.app.Application import com.github.shadowsocks.database.DBHelper import com.google.tagmanager.{Container, ContainerOpener, TagManager} import com.google.tagmanager.ContainerOpener.{Notifier, OpenType} +import com.google.tagmanager.Container.FunctionCallMacroHandler +import java.util +import com.github.shadowsocks.utils.Utils class ShadowsocksApplication extends Application { lazy val dbHelper = new DBHelper(this) + lazy val SIG_FUNC = "getSignature" var tagContainer: Container = null override def onCreate() { @@ -52,6 +56,14 @@ class ShadowsocksApplication extends Application { ContainerOpener.openContainer(tm, BuildConfig.CONTAINER_ID, OpenType.PREFER_NON_DEFAULT, null, new Notifier { override def containerAvailable(container: Container) { tagContainer = container + container.registerFunctionCallMacroHandler(SIG_FUNC, new FunctionCallMacroHandler { + def getValue(functionName: String, parameters: util.Map[String, AnyRef]): AnyRef = { + if (functionName == SIG_FUNC) { + Utils.getSignature(getApplicationContext) + } + null + } + }) } }) }