am 0385cf14: Fix issue #3306021 NPE at android.app.AlertDialog.getDefaultDialogTheme(AlertDialog.java)

* commit '0385cf14a1b02fafc3d1a094ccfee45de4e9b03a':
  Fix issue #3306021 NPE at android.app.AlertDialog.getDefaultDialogTheme(AlertDialog.java)
This commit is contained in:
Dianne Hackborn
2011-01-24 22:12:31 -08:00
committed by Android Git Automerger
3 changed files with 33 additions and 11 deletions

View File

@@ -78,6 +78,17 @@ public class SettingsPreferenceFragment extends PreferenceFragment
return getActivity().getPackageManager(); return getActivity().getPackageManager();
} }
@Override
public void onDetach() {
if (isRemoving()) {
if (mDialogFragment != null) {
mDialogFragment.dismiss();
mDialogFragment = null;
}
}
super.onDetach();
}
// Dialog management // Dialog management
protected void showDialog(int dialogId) { protected void showDialog(int dialogId) {

View File

@@ -184,6 +184,8 @@ public class ManageApplications extends Fragment implements
static final String TAB_SDCARD = "OnSdCard"; static final String TAB_SDCARD = "OnSdCard";
private View mRootView; private View mRootView;
private boolean mShowBackground = false;
// -------------- Copied from TabActivity -------------- // -------------- Copied from TabActivity --------------
private TabHost mTabHost; private TabHost mTabHost;
@@ -539,6 +541,7 @@ public class ManageApplications extends Fragment implements
mFilterApps = savedInstanceState.getInt("filterApps", mFilterApps); mFilterApps = savedInstanceState.getInt("filterApps", mFilterApps);
String tmp = savedInstanceState.getString("defaultTabTag"); String tmp = savedInstanceState.getString("defaultTabTag");
if (tmp != null) defaultTabTag = tmp; if (tmp != null) defaultTabTag = tmp;
mShowBackground = savedInstanceState.getBoolean("showBackground", false);
} }
mDefaultTab = defaultTabTag; mDefaultTab = defaultTabTag;
@@ -631,6 +634,7 @@ public class ManageApplications extends Fragment implements
if (mDefaultTab != null) { if (mDefaultTab != null) {
outState.putString("defautTabTag", mDefaultTab); outState.putString("defautTabTag", mDefaultTab);
} }
outState.putBoolean("showBackground", mShowBackground);
} }
@Override @Override
@@ -666,11 +670,13 @@ public class ManageApplications extends Fragment implements
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
Log.i(TAG, "onCreateOptionsMenu in " + this + ": " + menu); Log.i(TAG, "onCreateOptionsMenu in " + this + ": " + menu);
mOptionsMenu = menu; mOptionsMenu = menu;
// note: icons removed for now because the cause the new action
// bar UI to be very confusing.
menu.add(0, SORT_ORDER_ALPHA, 1, R.string.sort_order_alpha) menu.add(0, SORT_ORDER_ALPHA, 1, R.string.sort_order_alpha)
.setIcon(android.R.drawable.ic_menu_sort_alphabetically) //.setIcon(android.R.drawable.ic_menu_sort_alphabetically)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
menu.add(0, SORT_ORDER_SIZE, 2, R.string.sort_order_size) menu.add(0, SORT_ORDER_SIZE, 2, R.string.sort_order_size)
.setIcon(android.R.drawable.ic_menu_sort_by_size) //.setIcon(android.R.drawable.ic_menu_sort_by_size)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
menu.add(0, SHOW_RUNNING_SERVICES, 3, R.string.show_running_services) menu.add(0, SHOW_RUNNING_SERVICES, 3, R.string.show_running_services)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
@@ -722,8 +728,10 @@ public class ManageApplications extends Fragment implements
mApplicationsAdapter.rebuild(mFilterApps, mSortOrder); mApplicationsAdapter.rebuild(mFilterApps, mSortOrder);
} }
} else if (menuId == SHOW_RUNNING_SERVICES) { } else if (menuId == SHOW_RUNNING_SERVICES) {
mShowBackground = false;
mRunningProcessesView.mAdapter.setShowBackground(false); mRunningProcessesView.mAdapter.setShowBackground(false);
} else if (menuId == SHOW_BACKGROUND_PROCESSES) { } else if (menuId == SHOW_BACKGROUND_PROCESSES) {
mShowBackground = true;
mRunningProcessesView.mAdapter.setShowBackground(true); mRunningProcessesView.mAdapter.setShowBackground(true);
} }
updateOptionsMenu(); updateOptionsMenu();
@@ -838,6 +846,7 @@ public class ManageApplications extends Fragment implements
} else if (which == VIEW_RUNNING) { } else if (which == VIEW_RUNNING) {
if (!mCreatedRunning) { if (!mCreatedRunning) {
mRunningProcessesView.doCreate(null); mRunningProcessesView.doCreate(null);
mRunningProcessesView.mAdapter.setShowBackground(mShowBackground);
mCreatedRunning = true; mCreatedRunning = true;
} }
boolean haveData = true; boolean haveData = true;

View File

@@ -431,15 +431,17 @@ public class RunningProcessesView extends FrameLayout
// utility method used to start sub activity // utility method used to start sub activity
private void startServiceDetailsActivity(RunningState.MergedItem mi) { private void startServiceDetailsActivity(RunningState.MergedItem mi) {
// start new fragment to display extended information if (mOwner != null) {
Bundle args = new Bundle(); // start new fragment to display extended information
args.putInt(RunningServiceDetails.KEY_UID, mi.mProcess.mUid); Bundle args = new Bundle();
args.putString(RunningServiceDetails.KEY_PROCESS, mi.mProcess.mProcessName); args.putInt(RunningServiceDetails.KEY_UID, mi.mProcess.mUid);
args.putBoolean(RunningServiceDetails.KEY_BACKGROUND, mAdapter.mShowBackground); args.putString(RunningServiceDetails.KEY_PROCESS, mi.mProcess.mProcessName);
args.putBoolean(RunningServiceDetails.KEY_BACKGROUND, mAdapter.mShowBackground);
PreferenceActivity pa = (PreferenceActivity)mOwner.getActivity();
pa.startPreferencePanel(RunningServiceDetails.class.getName(), args, PreferenceActivity pa = (PreferenceActivity)mOwner.getActivity();
R.string.runningservicedetails_settings_title, null, null, 0); pa.startPreferencePanel(RunningServiceDetails.class.getName(), args,
R.string.runningservicedetails_settings_title, null, null, 0);
}
} }
public void onMovedToScrapHeap(View view) { public void onMovedToScrapHeap(View view) {