From 770be44cea8311bf82a52bfebfcb87da6d903562 Mon Sep 17 00:00:00 2001 From: martykan Date: Fri, 8 Jan 2016 20:04:43 +0100 Subject: [PATCH] Make sure there is only one loading dialog at a time --- .../cz/martykan/forecastie/MainActivity.java | 35 +++++++++++++------ 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/cz/martykan/forecastie/MainActivity.java b/app/src/main/java/cz/martykan/forecastie/MainActivity.java index b1732529..e16a927d 100644 --- a/app/src/main/java/cz/martykan/forecastie/MainActivity.java +++ b/app/src/main/java/cz/martykan/forecastie/MainActivity.java @@ -60,6 +60,9 @@ public class MainActivity extends AppCompatActivity { View appView; + ProgressDialog progressDialog; + int loading = 0; + private List longTermWeather; private List longTermTodayWeather; private List longTermTomorrowWeather; @@ -71,6 +74,8 @@ protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_scrolling); appView = findViewById(R.id.viewApp); + progressDialog = new ProgressDialog(MainActivity.this); + // Load toolbar Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); @@ -438,12 +443,14 @@ public boolean onOptionsItemSelected(MenuItem item) { public class GetWeatherTask extends AsyncTask { String result = ""; - private ProgressDialog progressDialog = new ProgressDialog(MainActivity.this); protected void onPreExecute() { - progressDialog.setMessage("Downloading your data..."); - progressDialog.setCanceledOnTouchOutside(false); - progressDialog.show(); + loading = 1; + if(!progressDialog.isShowing()) { + progressDialog.setMessage("Downloading your data..."); + progressDialog.setCanceledOnTouchOutside(false); + progressDialog.show(); + } } @Override @@ -476,19 +483,24 @@ protected Void doInBackground(String... params) { protected void onPostExecute(Void v) { //parse JSON data - this.progressDialog.dismiss(); + if(loading == 1) { + progressDialog.dismiss(); + } + loading -= 1; parseTodayJson(result); } } class GetLongTermWeatherTask extends AsyncTask { String result = ""; - private ProgressDialog progressDialog = new ProgressDialog(MainActivity.this); protected void onPreExecute() { - progressDialog.setMessage("Downloading your data..."); - progressDialog.setCanceledOnTouchOutside(false); - progressDialog.show(); + loading += 1; + if(!progressDialog.isShowing()) { + progressDialog.setMessage("Downloading your data..."); + progressDialog.setCanceledOnTouchOutside(false); + progressDialog.show(); + } } @Override @@ -521,7 +533,10 @@ protected Void doInBackground(String... params) { protected void onPostExecute(Void v) { //parse JSON data - this.progressDialog.dismiss(); + if(loading == 1) { + progressDialog.dismiss(); + } + loading -= 1; parseLongTermJson(result); } }