Skip to content

Commit 9613d65

Browse files
committed
fix a issue of progress dialog
1 parent a510b11 commit 9613d65

File tree

2 files changed

+24
-19
lines changed

2 files changed

+24
-19
lines changed

src/main/scala/com/github/shadowsocks/Shadowsocks.scala

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,7 @@ class Shadowsocks
185185
// Variables
186186
var switchButton: Switch = null
187187
var progressDialog: ProgressDialog = null
188+
var progressTag = -1
188189
var state = State.INIT
189190
var prepared = false
190191
var currentProfile = new Profile
@@ -271,9 +272,10 @@ class Shadowsocks
271272
switchButton.setOnCheckedChangeListener(this)
272273
}
273274

274-
private def showProgress(msg: String): Handler = {
275+
private def showProgress(msg: Int): Handler = {
275276
clearDialog()
276-
progressDialog = ProgressDialog.show(this, "", msg, true, false)
277+
progressDialog = ProgressDialog.show(this, "", getString(msg), true, false)
278+
progressTag = msg
277279
new Handler {
278280
override def handleMessage(msg: Message) {
279281
clearDialog()
@@ -397,7 +399,7 @@ class Shadowsocks
397399
}
398400

399401
def prepareStartService() {
400-
showProgress(getString(R.string.connecting))
402+
showProgress(R.string.connecting)
401403
spawn {
402404
if (!status.getBoolean(getVersionName, false)) {
403405
status.edit.putBoolean(getVersionName, true).commit()
@@ -616,7 +618,7 @@ class Shadowsocks
616618
which match {
617619
case 0 =>
618620
dialog.dismiss()
619-
val h = showProgress(getString(R.string.loading))
621+
val h = showProgress(R.string.loading)
620622
h.postDelayed(new Runnable() {
621623
def run() {
622624
val integrator = new IntentIntegrator(Shadowsocks.this)
@@ -640,7 +642,7 @@ class Shadowsocks
640642
def reloadProfile() {
641643
drawer.closeMenu(true)
642644

643-
val h = showProgress(getString(R.string.loading))
645+
val h = showProgress(R.string.loading)
644646

645647
handler.postDelayed(new Runnable {
646648
def run() {
@@ -659,7 +661,7 @@ class Shadowsocks
659661
def addProfile(profile: Profile) {
660662
drawer.closeMenu(true)
661663

662-
val h = showProgress(getString(R.string.loading))
664+
val h = showProgress(R.string.loading)
663665

664666
handler.postDelayed(new Runnable {
665667
def run() {
@@ -678,7 +680,7 @@ class Shadowsocks
678680
def addProfile(id: Int) {
679681
drawer.closeMenu(true)
680682

681-
val h = showProgress(getString(R.string.loading))
683+
val h = showProgress(R.string.loading)
682684

683685
handler.postDelayed(new Runnable {
684686
def run() {
@@ -696,7 +698,7 @@ class Shadowsocks
696698
def updateProfile(id: Int) {
697699
drawer.closeMenu(true)
698700

699-
val h = showProgress(getString(R.string.loading))
701+
val h = showProgress(R.string.loading)
700702

701703
handler.postDelayed(new Runnable {
702704
def run() {
@@ -933,15 +935,11 @@ class Shadowsocks
933935
}
934936

935937
private def recovery() {
936-
val h = showProgress(getString(R.string.recovering))
938+
serviceStop()
939+
val h = showProgress(R.string.recovering)
937940
spawn {
938941
reset()
939-
handler.post(new Runnable {
940-
override def run() {
941-
serviceStop
942-
h.sendEmptyMessage(0)
943-
}
944-
})
942+
h.sendEmptyMessage(0)
945943
}
946944
}
947945

@@ -971,7 +969,7 @@ class Shadowsocks
971969
}
972970

973971
private def flushDnsCache() {
974-
val h = showProgress(getString(R.string.flushing))
972+
val h = showProgress(R.string.flushing)
975973
spawn {
976974
Utils.toggleAirplaneMode(getBaseContext)
977975
h.sendEmptyMessage(0)
@@ -1089,6 +1087,7 @@ class Shadowsocks
10891087
if (progressDialog != null) {
10901088
progressDialog.dismiss()
10911089
progressDialog = null
1090+
progressTag = -1
10921091
}
10931092
}
10941093

@@ -1102,14 +1101,19 @@ class Shadowsocks
11021101
if (progressDialog == null) {
11031102
progressDialog = ProgressDialog
11041103
.show(Shadowsocks.this, "", getString(R.string.connecting), true, true)
1104+
progressTag = R.string.connecting
11051105
}
11061106
setPreferenceEnabled(enabled = false)
11071107
case State.CONNECTED =>
1108-
clearDialog()
1108+
if (progressTag == R.string.connecting) {
1109+
clearDialog()
1110+
}
11091111
changeSwitch(checked = true)
11101112
setPreferenceEnabled(enabled = false)
11111113
case State.STOPPED =>
1112-
clearDialog()
1114+
if (progressTag == R.string.stopping) {
1115+
clearDialog()
1116+
}
11131117
changeSwitch(checked = false)
11141118
if (m != null) {
11151119
new SnackBar.Builder(Shadowsocks.this)
@@ -1124,6 +1128,7 @@ class Shadowsocks
11241128
if (progressDialog == null) {
11251129
progressDialog = ProgressDialog
11261130
.show(Shadowsocks.this, "", getString(R.string.stopping), true, true)
1131+
progressTag = R.string.stopping
11271132
}
11281133
}
11291134
}

0 commit comments

Comments
 (0)