Wrap onApiChange in runOnUiThread (fixes #312).

This commit is contained in:
Lode Hoste 2015-03-27 17:19:24 +01:00
parent 0a07f4546b
commit 396b05006c
1 changed files with 52 additions and 47 deletions

View File

@ -50,14 +50,17 @@ public class MainActivity extends SyncthingActivity
*/
@Override
@SuppressLint("InflateParams")
public void onApiChange(SyncthingService.State currentState) {
public void onApiChange(final SyncthingService.State currentState) {
runOnUiThread(new Runnable() {
@Override
public void run() {
if (currentState != SyncthingService.State.ACTIVE && !isFinishing() && !mIsDestroyed) {
if (currentState == SyncthingService.State.DISABLED) {
if (mLoadingDialog != null) {
mLoadingDialog.dismiss();
mLoadingDialog = null;
}
mDisabledDialog = SyncthingService.showDisabledDialog(this);
mDisabledDialog = SyncthingService.showDisabledDialog(MainActivity.this);
} else if (mLoadingDialog == null) {
final SharedPreferences prefs =
PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
@ -69,14 +72,14 @@ public class MainActivity extends SyncthingActivity
? R.string.web_gui_creating_key
: R.string.api_loading);
mLoadingDialog = new AlertDialog.Builder(this)
mLoadingDialog = new AlertDialog.Builder(MainActivity.this)
.setCancelable(false)
.setView(dialogLayout)
.show();
// Make sure the first start dialog is shown on top.
if (prefs.getBoolean("first_start", true)) {
new AlertDialog.Builder(this)
new AlertDialog.Builder(MainActivity.this)
.setTitle(R.string.welcome_title)
.setMessage(R.string.welcome_text)
.setNeutralButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@ -104,6 +107,8 @@ public class MainActivity extends SyncthingActivity
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
}
});
}
private final FragmentPagerAdapter mSectionsPagerAdapter =
new FragmentPagerAdapter(getSupportFragmentManager()) {