From 70bc230fb7b0fb87999c5b7c03928e9f663372a8 Mon Sep 17 00:00:00 2001 From: mueller-ma <mueller-ma@users.noreply.github.com> Date: Sat, 29 Sep 2018 10:20:39 +0200 Subject: [PATCH] Fix IllegalStateException in ContentController (#1022) Fixes ```` Fatal Exception: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState [...] org.openhab.habdroid.ui.activity.ContentControllerOnePane.updateFragmentState (ContentControllerOnePane.java:39) ```` https://console.firebase.google.com/project/openhab-mobile/crashlytics/app/android:org.openhab.habdroid/issues/5aa3c9798cb3c2fa63bb8c8c Signed-off-by: mueller-ma <mueller-ma@users.noreply.github.com> --- .../habdroid/ui/OpenHABMainActivity.java | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/mobile/src/main/java/org/openhab/habdroid/ui/OpenHABMainActivity.java b/mobile/src/main/java/org/openhab/habdroid/ui/OpenHABMainActivity.java index ce293a6b..2c2cd20c 100644 --- a/mobile/src/main/java/org/openhab/habdroid/ui/OpenHABMainActivity.java +++ b/mobile/src/main/java/org/openhab/habdroid/ui/OpenHABMainActivity.java @@ -167,6 +167,7 @@ public class OpenHABMainActivity extends AppCompatActivity implements */ @Override protected void onNewIntent(Intent intent) { + Log.d(TAG, "onNewIntent()"); processIntent(intent); } @@ -326,6 +327,7 @@ public class OpenHABMainActivity extends AppCompatActivity implements @Override public void onServiceResolveFailed() { + Log.d(TAG, "onServiceResolveFailed()"); mController.indicateMissingConfiguration(true); mServiceResolver = null; } @@ -348,6 +350,7 @@ public class OpenHABMainActivity extends AppCompatActivity implements @Override protected void onPostCreate(Bundle savedInstanceState) { + Log.d(TAG, "onPostCreate()"); super.onPostCreate(savedInstanceState); if (mDrawerToggle != null) { // Sync the toggle state after onRestoreInstanceState has occurred. @@ -357,6 +360,7 @@ public class OpenHABMainActivity extends AppCompatActivity implements @Override public void onConfigurationChanged(Configuration newConfig) { + Log.d(TAG, "onConfigurationChanged()"); super.onConfigurationChanged(newConfig); if (mDrawerToggle != null) { mDrawerToggle.onConfigurationChanged(newConfig); @@ -382,6 +386,7 @@ public class OpenHABMainActivity extends AppCompatActivity implements @Override protected void onPause() { + Log.d(TAG, "onPause()"); super.onPause(); NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(this); if (nfcAdapter != null) { @@ -391,6 +396,7 @@ public class OpenHABMainActivity extends AppCompatActivity implements @Override public void onAvailableConnectionChanged() { + Log.d(TAG, "onAvailableConnectionChanged()"); Connection newConnection; ConnectionException failureReason; @@ -456,12 +462,14 @@ public class OpenHABMainActivity extends AppCompatActivity implements @Override public void onCloudConnectionChanged(CloudConnection connection) { + Log.d(TAG, "onCloudConnectionChanged()"); updateNotificationDrawerItem(); openNotificationsPageIfNeeded(); } @Override protected void onStart() { + Log.d(TAG, "onStart()"); super.onStart(); mStarted = true; @@ -766,6 +774,7 @@ public class OpenHABMainActivity extends AppCompatActivity implements @Override public boolean onCreateOptionsMenu(Menu menu) { + Log.d(TAG, "onCreateOptionsMenu()"); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main_menu, menu); return true; @@ -773,6 +782,7 @@ public class OpenHABMainActivity extends AppCompatActivity implements @Override public boolean onPrepareOptionsMenu(Menu menu) { + Log.d(TAG, "onPrepareOptionsMenu()"); MenuItem voiceRecognitionItem = menu.findItem(R.id.mainmenu_voice_recognition); voiceRecognitionItem.setVisible( mConnection != null && SpeechRecognizer.isRecognitionAvailable(this)); @@ -784,7 +794,7 @@ public class OpenHABMainActivity extends AppCompatActivity implements @Override public boolean onOptionsItemSelected(MenuItem item) { - + Log.d(TAG, "onOptionsItemSelected()"); //clicking the back navigation arrow if (item.getItemId() == android.R.id.home && mController.canGoBack()) { mController.goBack(); @@ -808,7 +818,7 @@ public class OpenHABMainActivity extends AppCompatActivity implements @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { - Log.d(TAG, String.format("onActivityResult requestCode = %d, resultCode = %d", requestCode, resultCode)); + Log.d(TAG, String.format("onActivityResult() requestCode = %d, resultCode = %d", requestCode, resultCode)); switch (requestCode) { case SETTINGS_REQUEST_CODE: if (data == null) { @@ -837,10 +847,8 @@ public class OpenHABMainActivity extends AppCompatActivity implements @Override public void onSaveInstanceState(Bundle savedInstanceState) { - Log.d(TAG, "onSaveInstanceState"); - // Save UI state changes to the savedInstanceState. - // This bundle will be passed to onCreate if the process is - // killed and restarted. + Log.d(TAG, "onSaveInstanceState()"); + mStarted = false; savedInstanceState.putParcelable("serverProperties", mServerProperties); savedInstanceState.putParcelable("sitemap", mSelectedSitemap); savedInstanceState.putBoolean("isSitemapSelectionDialogShown", mSelectSitemapDialog != null && @@ -853,8 +861,7 @@ public class OpenHABMainActivity extends AppCompatActivity implements } private void onNotificationSelected(Intent intent) { - Log.d(TAG, "Notification was selected"); - + Log.d(TAG, "onNotificationSelected()"); mPendingOpenedNotificationId = intent.getStringExtra(EXTRA_PERSISTED_NOTIFICATION_ID); if (mPendingOpenedNotificationId == null) { // mPendingOpenedNotificationId being non-null is used as trigger for @@ -865,7 +872,7 @@ public class OpenHABMainActivity extends AppCompatActivity implements } public void onWidgetSelected(OpenHABLinkedPage linkedPage, OpenHABWidgetListFragment source) { - Log.i(TAG, "Got widget link = " + linkedPage.link()); + Log.d(TAG, "Got widget link = " + linkedPage.link()); mController.openPage(linkedPage, source); } @@ -877,6 +884,7 @@ public class OpenHABMainActivity extends AppCompatActivity implements @Override public void onBackPressed() { + Log.d(TAG, "onBackPressed()"); if (mController.canGoBack()) { mController.goBack(); } else if (!isFullscreenEnabled()) { //in fullscreen don't continue back which would exit the app @@ -1068,4 +1076,4 @@ public class OpenHABMainActivity extends AppCompatActivity implements boolean fullScreen = mSettings.getBoolean("default_openhab_fullscreen", false); return supportsKitKat && fullScreen; } -} +} \ No newline at end of file -- GitLab