diff options
Diffstat (limited to 'libraries/ActionBarSherlock/src/com/actionbarsherlock/widget/ActivityChooserView.java')
-rw-r--r-- | libraries/ActionBarSherlock/src/com/actionbarsherlock/widget/ActivityChooserView.java | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/libraries/ActionBarSherlock/src/com/actionbarsherlock/widget/ActivityChooserView.java b/libraries/ActionBarSherlock/src/com/actionbarsherlock/widget/ActivityChooserView.java index e19ea9e9e..7eb7330e4 100644 --- a/libraries/ActionBarSherlock/src/com/actionbarsherlock/widget/ActivityChooserView.java +++ b/libraries/ActionBarSherlock/src/com/actionbarsherlock/widget/ActivityChooserView.java @@ -395,7 +395,11 @@ class ActivityChooserView extends ViewGroup implements ActivityChooserModelClien super.onAttachedToWindow(); ActivityChooserModel dataModel = mAdapter.getDataModel(); if (dataModel != null) { - dataModel.registerObserver(mModelDataSetOberver); + try { + dataModel.registerObserver(mModelDataSetOberver); + } catch (IllegalStateException e) { + // Related to #557. + } } mIsAttachedToWindow = true; } @@ -522,6 +526,9 @@ class ActivityChooserView extends ViewGroup implements ActivityChooserModelClien mDefaultActionButtonContentDescription, label); mDefaultActivityButton.setContentDescription(contentDescription); } + + // Work-around for #415. + mAdapter.setShowDefaultActivity(false, false); } else { mDefaultActivityButton.setVisibility(View.GONE); } @@ -644,7 +651,8 @@ class ActivityChooserView extends ViewGroup implements ActivityChooserModelClien private int mMaxActivityCount = MAX_ACTIVITY_COUNT_DEFAULT; - private boolean mShowDefaultActivity; + // Work-around for #415. + private boolean mShowDefaultActivity = true; private boolean mHighlightDefaultActivity; @@ -661,7 +669,11 @@ class ActivityChooserView extends ViewGroup implements ActivityChooserModelClien } mDataModel = dataModel; if (dataModel != null && isShown()) { - dataModel.registerObserver(mModelDataSetOberver); + try { + dataModel.registerObserver(mModelDataSetOberver); + } catch (IllegalStateException e) { + // Related to #557. + } } notifyDataSetChanged(); } |