From 1f48208cf1690e21b9c2c89dc659b3e908d4d1d6 Mon Sep 17 00:00:00 2001 From: kenstir Date: Tue, 26 Nov 2013 18:10:10 -0500 Subject: [PATCH] Fixed many crashes. All activity onCreate methods start with a sanity check: if SplashActivity did not initialize then restart-from-spashscreen. This fixes all of the crashes caused by assumptions made in the individual activities that the app was already initialized, when in reality android can choose to start your app at any activity depending on whether it killed it to save memory, it crashed there last, whatever. --- .../evergreen/android/accountAccess/bookbags/BookBagDetails.java | 6 +++++- .../android/accountAccess/checkout/ItemsCheckOutListView.java | 6 +++++- .../org/evergreen/android/accountAccess/fines/FinesActivity.java | 5 +++++ .../org/evergreen/android/accountAccess/holds/HoldDetails.java | 6 ++++++ .../org/evergreen/android/accountAccess/holds/HoldsListView.java | 5 +++++ .../src/org/evergreen/android/accountAccess/holds/PlaceHold.java | 5 +++++ .../src/org/evergreen/android/barcodescan/CaptureActivity.java | 5 +++++ .../evergreen/android/searchCatalog/AdvancedSearchActivity.java | 5 +++++ .../org/evergreen/android/searchCatalog/MoreCopyInformation.java | 5 +++++ .../evergreen/android/searchCatalog/SampleUnderlinesNoFade.java | 6 ++++++ .../src/org/evergreen/android/views/AccountScreenDashboard.java | 9 +++++++-- 11 files changed, 59 insertions(+), 4 deletions(-) diff --git a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/bookbags/BookBagDetails.java b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/bookbags/BookBagDetails.java index 3a137e8b92..81377f3ee0 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/bookbags/BookBagDetails.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/bookbags/BookBagDetails.java @@ -31,6 +31,7 @@ import org.evergreen.android.searchCatalog.RecordInfo; import org.evergreen.android.searchCatalog.SearchCatalog; import org.evergreen.android.searchCatalog.SearchCatalogListView; import org.evergreen.android.views.AccountScreenDashboard; +import org.evergreen.android.views.splashscreen.SplashActivity; import android.app.Activity; import android.app.AlertDialog; @@ -92,8 +93,11 @@ public class BookBagDetails extends Activity { @Override public void onCreate(Bundle savedInstanceState) { - // TODO Auto-generated method stub super.onCreate(savedInstanceState); + if (!SplashActivity.isAppInitialized()) { + SplashActivity.restartApp(this); + return; + } setContentView(R.layout.bookbagitem_list); // header portion actions diff --git a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/checkout/ItemsCheckOutListView.java b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/checkout/ItemsCheckOutListView.java index 66b10b7300..34565508c7 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/checkout/ItemsCheckOutListView.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/checkout/ItemsCheckOutListView.java @@ -36,6 +36,7 @@ import org.evergreen.android.globals.NoNetworkAccessException; import org.evergreen.android.globals.Utils; import org.evergreen.android.searchCatalog.SearchCatalogListView; import org.evergreen.android.views.AccountScreenDashboard; +import org.evergreen.android.views.splashscreen.SplashActivity; import android.app.Activity; import android.app.AlarmManager; @@ -90,8 +91,11 @@ public class ItemsCheckOutListView extends Activity { @Override public void onCreate(Bundle savedInstanceState) { - // TODO Auto-generated method stub super.onCreate(savedInstanceState); + if (!SplashActivity.isAppInitialized()) { + SplashActivity.restartApp(this); + return; + } thisActivity = this; setContentView(R.layout.checkout_list); diff --git a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/fines/FinesActivity.java b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/fines/FinesActivity.java index 49c9f6582b..c6d7248587 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/fines/FinesActivity.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/fines/FinesActivity.java @@ -31,6 +31,7 @@ import org.evergreen.android.globals.NoNetworkAccessException; import org.evergreen.android.globals.Utils; import org.evergreen.android.searchCatalog.SearchCatalogListView; import org.evergreen.android.views.AccountScreenDashboard; +import org.evergreen.android.views.splashscreen.SplashActivity; import android.app.Activity; import android.app.ProgressDialog; @@ -80,6 +81,10 @@ public class FinesActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + if (!SplashActivity.isAppInitialized()) { + SplashActivity.restartApp(this); + return; + } setContentView(R.layout.fines); diff --git a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/HoldDetails.java b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/HoldDetails.java index 6eb2e2a533..35b8407113 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/HoldDetails.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/HoldDetails.java @@ -32,6 +32,7 @@ import org.evergreen.android.globals.NoNetworkAccessException; import org.evergreen.android.globals.Utils; import org.evergreen.android.searchCatalog.SearchCatalogListView; import org.evergreen.android.views.AccountScreenDashboard; +import org.evergreen.android.views.splashscreen.SplashActivity; import android.app.Activity; import android.app.AlertDialog; @@ -121,6 +122,11 @@ public class HoldDetails extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + if (!SplashActivity.isAppInitialized()) { + SplashActivity.restartApp(this); + return; + } + context = this; setContentView(R.layout.hold_details); globalConfigs = GlobalConfigs.getGlobalConfigs(this); diff --git a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/HoldsListView.java b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/HoldsListView.java index 0dbffccb12..ffb6bb09e6 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/HoldsListView.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/HoldsListView.java @@ -33,6 +33,7 @@ import org.evergreen.android.globals.Utils; import org.evergreen.android.searchCatalog.ImageDownloader; import org.evergreen.android.searchCatalog.SearchCatalogListView; import org.evergreen.android.views.AccountScreenDashboard; +import org.evergreen.android.views.splashscreen.SplashActivity; import android.app.Activity; import android.app.ProgressDialog; @@ -85,6 +86,10 @@ public class HoldsListView extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + if (!SplashActivity.isAppInitialized()) { + SplashActivity.restartApp(this); + return; + } setContentView(R.layout.holds_list); diff --git a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/PlaceHold.java b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/PlaceHold.java index 4a564369f7..616550e805 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/PlaceHold.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/accountAccess/holds/PlaceHold.java @@ -33,6 +33,7 @@ import org.evergreen.android.globals.Utils; import org.evergreen.android.searchCatalog.RecordInfo; import org.evergreen.android.searchCatalog.SearchCatalogListView; import org.evergreen.android.views.AccountScreenDashboard; +import org.evergreen.android.views.splashscreen.SplashActivity; import android.app.Activity; import android.app.DatePickerDialog; @@ -117,6 +118,10 @@ public class PlaceHold extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + if (!SplashActivity.isAppInitialized()) { + SplashActivity.restartApp(this); + return; + } setContentView(R.layout.place_hold); globalConfigs = GlobalConfigs.getGlobalConfigs(this); diff --git a/Open-ILS/src/Android/src/org/evergreen/android/barcodescan/CaptureActivity.java b/Open-ILS/src/Android/src/org/evergreen/android/barcodescan/CaptureActivity.java index 4d7a8dab2e..015975b819 100755 --- a/Open-ILS/src/Android/src/org/evergreen/android/barcodescan/CaptureActivity.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/barcodescan/CaptureActivity.java @@ -5,6 +5,7 @@ import java.util.Vector; import org.evergreen.android.R; import org.evergreen.android.barcodescan.camera.CameraManager; +import org.evergreen.android.views.splashscreen.SplashActivity; import android.app.Activity; import android.app.AlertDialog; @@ -43,6 +44,10 @@ public class CaptureActivity extends Activity implements SurfaceHolder.Callback @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + if (!SplashActivity.isAppInitialized()) { + SplashActivity.restartApp(this); + return; + } // Remove title bar this.requestWindowFeature(Window.FEATURE_NO_TITLE); diff --git a/Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/AdvancedSearchActivity.java b/Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/AdvancedSearchActivity.java index 9139ae9013..93641c0767 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/AdvancedSearchActivity.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/AdvancedSearchActivity.java @@ -24,6 +24,7 @@ import java.util.StringTokenizer; import org.evergreen.android.R; import org.evergreen.android.accountAccess.AccountAccess; import org.evergreen.android.views.AccountScreenDashboard; +import org.evergreen.android.views.splashscreen.SplashActivity; import android.app.Activity; import android.content.Context; @@ -60,6 +61,10 @@ public class AdvancedSearchActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + if (!SplashActivity.isAppInitialized()) { + SplashActivity.restartApp(this); + return; + } setContentView(R.layout.advanced_search); diff --git a/Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/MoreCopyInformation.java b/Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/MoreCopyInformation.java index 666075785a..5ca240b9e9 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/MoreCopyInformation.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/MoreCopyInformation.java @@ -34,6 +34,7 @@ import org.evergreen.android.globals.NoAccessToServer; import org.evergreen.android.globals.NoNetworkAccessException; import org.evergreen.android.globals.Utils; import org.evergreen.android.views.AccountScreenDashboard; +import org.evergreen.android.views.splashscreen.SplashActivity; import android.app.Activity; import android.app.ProgressDialog; @@ -71,6 +72,10 @@ public class MoreCopyInformation extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + if (!SplashActivity.isAppInitialized()) { + SplashActivity.restartApp(this); + return; + } setContentView(R.layout.copy_information_more); gl = GlobalConfigs.getGlobalConfigs(context); diff --git a/Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/SampleUnderlinesNoFade.java b/Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/SampleUnderlinesNoFade.java index 917c438836..27659587dc 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/SampleUnderlinesNoFade.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/searchCatalog/SampleUnderlinesNoFade.java @@ -31,6 +31,7 @@ import org.evergreen.android.utils.ui.BasicDetailsFragment; import org.evergreen.android.utils.ui.TestFragmentAdapter; import org.evergreen.android.utils.ui.UnderlinePageIndicator; import org.evergreen.android.views.AccountScreenDashboard; +import org.evergreen.android.views.splashscreen.SplashActivity; import android.app.ProgressDialog; import android.content.Context; @@ -71,6 +72,11 @@ public class SampleUnderlinesNoFade extends BaseSampleActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + if (!SplashActivity.isAppInitialized()) { + SplashActivity.restartApp(this); + return; + } + setContentView(R.layout.simple_underlines); search = SearchCatalog.getInstance((ConnectivityManager)getSystemService(CONNECTIVITY_SERVICE)); diff --git a/Open-ILS/src/Android/src/org/evergreen/android/views/AccountScreenDashboard.java b/Open-ILS/src/Android/src/org/evergreen/android/views/AccountScreenDashboard.java index 6fdf48dbfb..9d98f5f17d 100644 --- a/Open-ILS/src/Android/src/org/evergreen/android/views/AccountScreenDashboard.java +++ b/Open-ILS/src/Android/src/org/evergreen/android/views/AccountScreenDashboard.java @@ -25,6 +25,7 @@ import org.evergreen.android.accountAccess.checkout.ItemsCheckOutListView; import org.evergreen.android.accountAccess.fines.FinesActivity; import org.evergreen.android.accountAccess.holds.HoldsListView; import org.evergreen.android.searchCatalog.SearchCatalogListView; +import org.evergreen.android.views.splashscreen.SplashActivity; import android.app.Activity; import android.content.Intent; @@ -54,9 +55,14 @@ public class AccountScreenDashboard extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + if (!SplashActivity.isAppInitialized()) { + SplashActivity.restartApp(this); + return; + } + setContentView(R.layout.dashbord_account); - myAccountButton = (Button) findViewById(R.id.my_account_button); + myAccountButton = (Button) findViewById(R.id.my_account_button); myAccountButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { @@ -65,7 +71,6 @@ public class AccountScreenDashboard extends Activity { }); homeButton = (Button) findViewById(R.id.library_logo); - homeButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { -- 2.11.0