Commit 7fdf437e authored by Max Lv's avatar Max Lv

fix a crash of auto startup

parent 9de6c744
...@@ -5,8 +5,8 @@ import sbtandroid._ ...@@ -5,8 +5,8 @@ import sbtandroid._
import sbtandroid.AndroidPlugin._ import sbtandroid.AndroidPlugin._
object App { object App {
val version = "2.0.8" val version = "2.0.9"
val versionCode = 59 val versionCode = 60
} }
object General { object General {
......
...@@ -53,14 +53,6 @@ class ShadowsocksRunnerActivity extends Activity { ...@@ -53,14 +53,6 @@ class ShadowsocksRunnerActivity extends Activity {
lazy val settings = PreferenceManager.getDefaultSharedPreferences(this) lazy val settings = PreferenceManager.getDefaultSharedPreferences(this)
val handler = new Handler() val handler = new Handler()
val receiver = new BroadcastReceiver() {
override def onReceive(context: Context, intent: Intent) {
if (intent.getAction == Intent.ACTION_USER_PRESENT) {
attachService()
}
}
}
val connection = new ServiceConnection { val connection = new ServiceConnection {
override def onServiceConnected(name: ComponentName, service: IBinder) { override def onServiceConnected(name: ComponentName, service: IBinder) {
bgService = IShadowsocksService.Stub.asInterface(service) bgService = IShadowsocksService.Stub.asInterface(service)
...@@ -76,6 +68,7 @@ class ShadowsocksRunnerActivity extends Activity { ...@@ -76,6 +68,7 @@ class ShadowsocksRunnerActivity extends Activity {
// Variables // Variables
var vpnEnabled = -1 var vpnEnabled = -1
var bgService: IShadowsocksService = null var bgService: IShadowsocksService = null
var receiver:BroadcastReceiver = null
def isVpnEnabled: Boolean = { def isVpnEnabled: Boolean = {
if (vpnEnabled < 0) { if (vpnEnabled < 0) {
...@@ -127,6 +120,13 @@ class ShadowsocksRunnerActivity extends Activity { ...@@ -127,6 +120,13 @@ class ShadowsocksRunnerActivity extends Activity {
val locked = km.inKeyguardRestrictedInputMode val locked = km.inKeyguardRestrictedInputMode
if (locked) { if (locked) {
val filter = new IntentFilter(Intent.ACTION_USER_PRESENT) val filter = new IntentFilter(Intent.ACTION_USER_PRESENT)
receiver = new BroadcastReceiver() {
override def onReceive(context: Context, intent: Intent) {
if (intent.getAction == Intent.ACTION_USER_PRESENT) {
attachService()
}
}
}
registerReceiver(receiver, filter) registerReceiver(receiver, filter)
} else { } else {
attachService() attachService()
...@@ -136,7 +136,10 @@ class ShadowsocksRunnerActivity extends Activity { ...@@ -136,7 +136,10 @@ class ShadowsocksRunnerActivity extends Activity {
override def onDestroy() { override def onDestroy() {
super.onDestroy() super.onDestroy()
deattachService() deattachService()
if (receiver != null) {
unregisterReceiver(receiver) unregisterReceiver(receiver)
receiver = null;
}
} }
override def onActivityResult(requestCode: Int, resultCode: Int, data: Intent) { override def onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment