diff --git a/src/main/scala/com/github/shadowsocks/AppManager.scala b/src/main/scala/com/github/shadowsocks/AppManager.scala index 3b716233..74b34b22 100644 --- a/src/main/scala/com/github/shadowsocks/AppManager.scala +++ b/src/main/scala/com/github/shadowsocks/AppManager.scala @@ -67,6 +67,7 @@ import com.nostra13.universalimageloader.core.download.BaseImageDownloader import java.io.{ByteArrayOutputStream, ByteArrayInputStream, InputStream} import com.nostra13.universalimageloader.core.{DisplayImageOptions, ImageLoader, ImageLoaderConfiguration} import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer +import com.google.analytics.tracking.android.EasyTracker case class ProxiedApp(uid: Int, name: String, var proxied: Boolean) @@ -246,8 +247,14 @@ class AppManager extends SherlockActivity with OnCheckedChangeListener with OnCl }.start() } + protected override def onStart() { + super.onStart() + EasyTracker.getInstance.activityStart(this) + } + protected override def onStop() { super.onStop() + EasyTracker.getInstance.activityStop(this) } def saveAppSettings(context: Context) { diff --git a/src/main/scala/com/github/shadowsocks/ShadowVpnService.scala b/src/main/scala/com/github/shadowsocks/ShadowVpnService.scala index a245bb1d..4bebbebc 100644 --- a/src/main/scala/com/github/shadowsocks/ShadowVpnService.scala +++ b/src/main/scala/com/github/shadowsocks/ShadowVpnService.scala @@ -396,6 +396,7 @@ class ShadowVpnService extends VpnService { override def onCreate() { super.onCreate() + EasyTracker.getTracker.setStartSession(true) EasyTracker.getTracker.sendEvent(TAG, "start", getVersionName, 0L) settings = PreferenceManager.getDefaultSharedPreferences(this) notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) @@ -439,8 +440,10 @@ class ShadowVpnService extends VpnService { /** Called when the activity is closed. */ override def onDestroy() { - destroy() super.onDestroy() + EasyTracker.getTracker.setStartSession(false) + EasyTracker.getTracker.sendEvent(TAG, "stop", getVersionName, 0L) + destroy() } def killProcesses() { diff --git a/src/main/scala/com/github/shadowsocks/ShadowsocksService.scala b/src/main/scala/com/github/shadowsocks/ShadowsocksService.scala index 6ffc2dcb..5d0a53f7 100644 --- a/src/main/scala/com/github/shadowsocks/ShadowsocksService.scala +++ b/src/main/scala/com/github/shadowsocks/ShadowsocksService.scala @@ -370,6 +370,7 @@ class ShadowsocksService extends Service { override def onCreate() { super.onCreate() + EasyTracker.getTracker.setStartSession(true) EasyTracker.getTracker.sendEvent(TAG, "start", getVersionName, 0L) settings = PreferenceManager.getDefaultSharedPreferences(this) notificationManager = this @@ -409,6 +410,8 @@ class ShadowsocksService extends Service { /** Called when the activity is closed. */ override def onDestroy() { + super.onDestroy() + EasyTracker.getTracker.setStartSession(false) EasyTracker.getTracker.sendEvent(TAG, "stop", getVersionName, 0L) stopForegroundCompat(1) new Thread { @@ -416,19 +419,15 @@ class ShadowsocksService extends Service { killProcesses() } }.start() - val ed: SharedPreferences.Editor = settings.edit ed.putBoolean("isRunning", false) ed.putBoolean("isConnecting", false) ed.commit markServiceStopped() - if (receiver != null) { unregisterReceiver(receiver) receiver = null } - - super.onDestroy() } def killProcesses() {