diff options
Diffstat (limited to 'src')
4 files changed, 32 insertions, 5 deletions
diff --git a/src/com/android/gallery3d/filtershow/FilterShowActivity.java b/src/com/android/gallery3d/filtershow/FilterShowActivity.java index 5ef5724c3..733084915 100644 --- a/src/com/android/gallery3d/filtershow/FilterShowActivity.java +++ b/src/com/android/gallery3d/filtershow/FilterShowActivity.java @@ -637,6 +637,10 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL mCategoryBordersAdapter.reflectImagePreset(preset); } + public View getMainStatePanelContainer(int id) { + return findViewById(id); + } + private class LoadHighresBitmapTask extends AsyncTask<Void, Void, Boolean> { @Override protected Boolean doInBackground(Void... params) { diff --git a/src/com/android/gallery3d/filtershow/category/MainPanel.java b/src/com/android/gallery3d/filtershow/category/MainPanel.java index 47f575d4d..9eccad3ed 100644 --- a/src/com/android/gallery3d/filtershow/category/MainPanel.java +++ b/src/com/android/gallery3d/filtershow/category/MainPanel.java @@ -257,11 +257,19 @@ public class MainPanel extends Fragment { } public void showImageStatePanel(boolean show) { - if (mMainView.findViewById(R.id.state_panel_container) == null) { + View container = mMainView.findViewById(R.id.state_panel_container); + FragmentTransaction transaction = null; + if (container == null) { + FilterShowActivity activity = (FilterShowActivity) getActivity(); + container = activity.getMainStatePanelContainer(R.id.state_panel_container); + } else { + transaction = getChildFragmentManager().beginTransaction(); + } + if (container == null) { return; + } else { + transaction = getFragmentManager().beginTransaction(); } - FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); - final View container = mMainView.findViewById(R.id.state_panel_container); int currentPanel = mCurrentSelected; if (show) { container.setVisibility(View.VISIBLE); diff --git a/src/com/android/gallery3d/filtershow/editors/EditorPanel.java b/src/com/android/gallery3d/filtershow/editors/EditorPanel.java index bc4ca6ab6..97b3075df 100644 --- a/src/com/android/gallery3d/filtershow/editors/EditorPanel.java +++ b/src/com/android/gallery3d/filtershow/editors/EditorPanel.java @@ -120,10 +120,21 @@ public class EditorPanel extends Fragment { } public void showImageStatePanel(boolean show) { - if (mMainView.findViewById(R.id.state_panel_container) == null) { + View container = mMainView.findViewById(R.id.state_panel_container); + FragmentTransaction transaction = null; + boolean child = false; + if (container == null) { + FilterShowActivity activity = (FilterShowActivity) getActivity(); + container = activity.getMainStatePanelContainer(R.id.state_panel_container); + } else { + transaction = getChildFragmentManager().beginTransaction(); + child = true; + } + if (container == null) { return; + } else { + transaction = getFragmentManager().beginTransaction(); } - FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); Fragment panel = getActivity().getSupportFragmentManager().findFragmentByTag( MainPanel.FRAGMENT_TAG); if (panel == null || panel instanceof MainPanel) { @@ -134,6 +145,9 @@ public class EditorPanel extends Fragment { transaction.replace(R.id.state_panel_container, statePanel, StatePanel.FRAGMENT_TAG); } else { Fragment statePanel = getChildFragmentManager().findFragmentByTag(StatePanel.FRAGMENT_TAG); + if (child) { + statePanel = getFragmentManager().findFragmentByTag(StatePanel.FRAGMENT_TAG); + } if (statePanel != null) { transaction.remove(statePanel); } diff --git a/src/com/android/gallery3d/filtershow/state/StatePanel.java b/src/com/android/gallery3d/filtershow/state/StatePanel.java index d65a77260..ff405cd98 100644 --- a/src/com/android/gallery3d/filtershow/state/StatePanel.java +++ b/src/com/android/gallery3d/filtershow/state/StatePanel.java @@ -44,6 +44,7 @@ public class StatePanel extends Fragment { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mMainView = (LinearLayout) inflater.inflate(R.layout.filtershow_state_panel_new, null); + View panel = mMainView.findViewById(R.id.listStates); track = (StatePanelTrack) panel; track.setAdapter(MasterImage.getImage().getState()); |
