Fix bug #12957228 Java crash in com.android.settings: java.lang.IllegalStateException:
...Can not perform this action after onSaveInstanceState - prevent a click on the Drawer's Headers when the App is paused / finished - register / unregister the DrawerListener when needed Change-Id: Ia270ef27b23c66d55565bbb73d4f6a6531b742d2
This commit is contained in:
@@ -382,6 +382,8 @@ public class SettingsActivity extends Activity
|
||||
@Override
|
||||
public void onDrawerClosed(View drawerView) {
|
||||
mDrawerToggle.onDrawerClosed(drawerView);
|
||||
// Cannot process clicks when the App is finishing
|
||||
if (isFinishing()) return;
|
||||
onHeaderClick(mCurrentHeader);
|
||||
}
|
||||
|
||||
@@ -512,7 +514,6 @@ public class SettingsActivity extends Activity
|
||||
mActionBar.setHomeButtonEnabled(true);
|
||||
|
||||
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
|
||||
mDrawerLayout.setDrawerListener(new DrawerListener());
|
||||
|
||||
mDrawer = (ListView) findViewById(R.id.headers_drawer);
|
||||
mDrawer.setAdapter(mHeaderAdapter);
|
||||
@@ -705,12 +706,16 @@ public class SettingsActivity extends Activity
|
||||
invalidateHeaders();
|
||||
|
||||
registerReceiver(mBatteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
|
||||
|
||||
mDrawerLayout.setDrawerListener(new DrawerListener());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
|
||||
mDrawerLayout.setDrawerListener(null);
|
||||
|
||||
unregisterReceiver(mBatteryInfoReceiver);
|
||||
|
||||
mHeaderAdapter.pause();
|
||||
|
Reference in New Issue
Block a user