@@ -185,6 +185,7 @@ class Shadowsocks
185
185
// Variables
186
186
var switchButton : Switch = null
187
187
var progressDialog : ProgressDialog = null
188
+ var progressTag = - 1
188
189
var state = State .INIT
189
190
var prepared = false
190
191
var currentProfile = new Profile
@@ -271,9 +272,10 @@ class Shadowsocks
271
272
switchButton.setOnCheckedChangeListener(this )
272
273
}
273
274
274
- private def showProgress (msg : String ): Handler = {
275
+ private def showProgress (msg : Int ): Handler = {
275
276
clearDialog()
276
- progressDialog = ProgressDialog .show(this , " " , msg, true , false )
277
+ progressDialog = ProgressDialog .show(this , " " , getString(msg), true , false )
278
+ progressTag = msg
277
279
new Handler {
278
280
override def handleMessage (msg : Message ) {
279
281
clearDialog()
@@ -397,7 +399,7 @@ class Shadowsocks
397
399
}
398
400
399
401
def prepareStartService () {
400
- showProgress(getString( R .string.connecting) )
402
+ showProgress(R .string.connecting)
401
403
spawn {
402
404
if (! status.getBoolean(getVersionName, false )) {
403
405
status.edit.putBoolean(getVersionName, true ).commit()
@@ -616,7 +618,7 @@ class Shadowsocks
616
618
which match {
617
619
case 0 =>
618
620
dialog.dismiss()
619
- val h = showProgress(getString( R .string.loading) )
621
+ val h = showProgress(R .string.loading)
620
622
h.postDelayed(new Runnable () {
621
623
def run () {
622
624
val integrator = new IntentIntegrator (Shadowsocks .this )
@@ -640,7 +642,7 @@ class Shadowsocks
640
642
def reloadProfile () {
641
643
drawer.closeMenu(true )
642
644
643
- val h = showProgress(getString( R .string.loading) )
645
+ val h = showProgress(R .string.loading)
644
646
645
647
handler.postDelayed(new Runnable {
646
648
def run () {
@@ -659,7 +661,7 @@ class Shadowsocks
659
661
def addProfile (profile : Profile ) {
660
662
drawer.closeMenu(true )
661
663
662
- val h = showProgress(getString( R .string.loading) )
664
+ val h = showProgress(R .string.loading)
663
665
664
666
handler.postDelayed(new Runnable {
665
667
def run () {
@@ -678,7 +680,7 @@ class Shadowsocks
678
680
def addProfile (id : Int ) {
679
681
drawer.closeMenu(true )
680
682
681
- val h = showProgress(getString( R .string.loading) )
683
+ val h = showProgress(R .string.loading)
682
684
683
685
handler.postDelayed(new Runnable {
684
686
def run () {
@@ -696,7 +698,7 @@ class Shadowsocks
696
698
def updateProfile (id : Int ) {
697
699
drawer.closeMenu(true )
698
700
699
- val h = showProgress(getString( R .string.loading) )
701
+ val h = showProgress(R .string.loading)
700
702
701
703
handler.postDelayed(new Runnable {
702
704
def run () {
@@ -933,15 +935,11 @@ class Shadowsocks
933
935
}
934
936
935
937
private def recovery () {
936
- val h = showProgress(getString(R .string.recovering))
938
+ serviceStop()
939
+ val h = showProgress(R .string.recovering)
937
940
spawn {
938
941
reset()
939
- handler.post(new Runnable {
940
- override def run () {
941
- serviceStop
942
- h.sendEmptyMessage(0 )
943
- }
944
- })
942
+ h.sendEmptyMessage(0 )
945
943
}
946
944
}
947
945
@@ -971,7 +969,7 @@ class Shadowsocks
971
969
}
972
970
973
971
private def flushDnsCache () {
974
- val h = showProgress(getString( R .string.flushing) )
972
+ val h = showProgress(R .string.flushing)
975
973
spawn {
976
974
Utils .toggleAirplaneMode(getBaseContext)
977
975
h.sendEmptyMessage(0 )
@@ -1089,6 +1087,7 @@ class Shadowsocks
1089
1087
if (progressDialog != null ) {
1090
1088
progressDialog.dismiss()
1091
1089
progressDialog = null
1090
+ progressTag = - 1
1092
1091
}
1093
1092
}
1094
1093
@@ -1102,14 +1101,19 @@ class Shadowsocks
1102
1101
if (progressDialog == null ) {
1103
1102
progressDialog = ProgressDialog
1104
1103
.show(Shadowsocks .this , " " , getString(R .string.connecting), true , true )
1104
+ progressTag = R .string.connecting
1105
1105
}
1106
1106
setPreferenceEnabled(enabled = false )
1107
1107
case State .CONNECTED =>
1108
- clearDialog()
1108
+ if (progressTag == R .string.connecting) {
1109
+ clearDialog()
1110
+ }
1109
1111
changeSwitch(checked = true )
1110
1112
setPreferenceEnabled(enabled = false )
1111
1113
case State .STOPPED =>
1112
- clearDialog()
1114
+ if (progressTag == R .string.stopping) {
1115
+ clearDialog()
1116
+ }
1113
1117
changeSwitch(checked = false )
1114
1118
if (m != null ) {
1115
1119
new SnackBar .Builder (Shadowsocks .this )
@@ -1124,6 +1128,7 @@ class Shadowsocks
1124
1128
if (progressDialog == null ) {
1125
1129
progressDialog = ProgressDialog
1126
1130
.show(Shadowsocks .this , " " , getString(R .string.stopping), true , true )
1131
+ progressTag = R .string.stopping
1127
1132
}
1128
1133
}
1129
1134
}
0 commit comments