1f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard/* 2f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * Copyright (C) 2013 The Android Open Source Project 3f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * 4f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * Licensed under the Apache License, Version 2.0 (the "License"); 5f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * you may not use this file except in compliance with the License. 6f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * You may obtain a copy of the License at 7f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * 8f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * http://www.apache.org/licenses/LICENSE-2.0 9f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * 10f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * Unless required by applicable law or agreed to in writing, software 11f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * distributed under the License is distributed on an "AS IS" BASIS, 12f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * See the License for the specific language governing permissions and 14f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * limitations under the License. 15f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard */ 16f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 17f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardpackage com.android.gallery3d.filtershow.category; 18f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 19f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardimport android.os.Bundle; 20f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardimport android.support.v4.app.Fragment; 21f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardimport android.support.v4.app.FragmentTransaction; 22f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardimport android.view.LayoutInflater; 23f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardimport android.view.View; 24f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardimport android.view.ViewGroup; 25f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardimport android.widget.ImageButton; 26f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardimport android.widget.LinearLayout; 271a266f16edbef7cb0a770d37fcad958fc55a5862Michael Kolb 28f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardimport com.android.gallery3d.R; 29f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardimport com.android.gallery3d.filtershow.FilterShowActivity; 30c870104ac3768bd528798eb4646c3b075757c5ffnicolasroardimport com.android.gallery3d.filtershow.imageshow.MasterImage; 31f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardimport com.android.gallery3d.filtershow.state.StatePanel; 32f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 33f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardpublic class MainPanel extends Fragment { 34f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 35f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard private static final String LOGTAG = "MainPanel"; 36f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 37f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard private LinearLayout mMainView; 38f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard private ImageButton looksButton; 39f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard private ImageButton bordersButton; 40f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard private ImageButton geometryButton; 41f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard private ImageButton filtersButton; 42f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 43f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public static final String FRAGMENT_TAG = "MainPanel"; 44f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public static final int LOOKS = 0; 45f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public static final int BORDERS = 1; 46f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public static final int GEOMETRY = 2; 47f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public static final int FILTERS = 3; 48860af325f2030a03c526e8551a85230d17df7b15nicolasroard public static final int VERSIONS = 4; 49f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 50f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard private int mCurrentSelected = -1; 51860af325f2030a03c526e8551a85230d17df7b15nicolasroard private int mPreviousToggleVersions = -1; 52f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 53f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard private void selection(int position, boolean value) { 54f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard if (value) { 55f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard FilterShowActivity activity = (FilterShowActivity) getActivity(); 56f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard activity.setCurrentPanel(position); 57f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 58f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard switch (position) { 59f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard case LOOKS: { 60f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard looksButton.setSelected(value); 61f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard break; 62f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 63f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard case BORDERS: { 64f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard bordersButton.setSelected(value); 65f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard break; 66f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 67f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard case GEOMETRY: { 68f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard geometryButton.setSelected(value); 69f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard break; 70f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 71f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard case FILTERS: { 72f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard filtersButton.setSelected(value); 73f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard break; 74f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 75f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 76f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 77f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 78f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard @Override 79f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public void onDestroyView() { 80f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard super.onDestroyView(); 81f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard if (mMainView != null) { 82f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard if (mMainView.getParent() != null) { 83f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard ViewGroup parent = (ViewGroup) mMainView.getParent(); 84f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard parent.removeView(mMainView); 85f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 86f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 87f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 88f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 89f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard @Override 90f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public View onCreateView(LayoutInflater inflater, ViewGroup container, 91f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard Bundle savedInstanceState) { 92f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 93f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard mMainView = (LinearLayout) inflater.inflate( 94f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard R.layout.filtershow_main_panel, null, false); 95f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 96f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard looksButton = (ImageButton) mMainView.findViewById(R.id.fxButton); 97f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard bordersButton = (ImageButton) mMainView.findViewById(R.id.borderButton); 98f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard geometryButton = (ImageButton) mMainView.findViewById(R.id.geometryButton); 99f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard filtersButton = (ImageButton) mMainView.findViewById(R.id.colorsButton); 100f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 101f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard looksButton.setOnClickListener(new View.OnClickListener() { 102f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard @Override 103f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public void onClick(View v) { 104f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard showPanel(LOOKS); 105f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 106f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard }); 107f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard bordersButton.setOnClickListener(new View.OnClickListener() { 108f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard @Override 109f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public void onClick(View v) { 110f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard showPanel(BORDERS); 111f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 112f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard }); 113f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard geometryButton.setOnClickListener(new View.OnClickListener() { 114f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard @Override 115f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public void onClick(View v) { 116f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard showPanel(GEOMETRY); 117f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 118f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard }); 119f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard filtersButton.setOnClickListener(new View.OnClickListener() { 120f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard @Override 121f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public void onClick(View v) { 122f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard showPanel(FILTERS); 123f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 124f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard }); 125f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 126f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard FilterShowActivity activity = (FilterShowActivity) getActivity(); 127f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard showImageStatePanel(activity.isShowingImageStatePanel()); 128f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard showPanel(activity.getCurrentPanel()); 129f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard return mMainView; 130f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 131f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 132f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard private boolean isRightAnimation(int newPos) { 133f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard if (newPos < mCurrentSelected) { 134f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard return false; 135f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 136f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard return true; 137f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 138f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 139f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard private void setCategoryFragment(CategoryPanel category, boolean fromRight) { 140f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); 141f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard if (fromRight) { 142f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard transaction.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_right); 143f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } else { 144f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard transaction.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_left); 145f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 146f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard transaction.replace(R.id.category_panel_container, category, CategoryPanel.FRAGMENT_TAG); 147d1a098ea5116fbc47e815631bd9bc5d442bbbd0dnicolasroard transaction.commitAllowingStateLoss(); 148f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 149f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 1505af55f4f37c3d8fd471144f1175a45e2933ca015nicolasroard public void loadCategoryLookPanel(boolean force) { 1515af55f4f37c3d8fd471144f1175a45e2933ca015nicolasroard if (!force && mCurrentSelected == LOOKS) { 152f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard return; 153f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 154f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard boolean fromRight = isRightAnimation(LOOKS); 155f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard selection(mCurrentSelected, false); 156f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard CategoryPanel categoryPanel = new CategoryPanel(); 157f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard categoryPanel.setAdapter(LOOKS); 158f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard setCategoryFragment(categoryPanel, fromRight); 159f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard mCurrentSelected = LOOKS; 160f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard selection(mCurrentSelected, true); 161f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 162f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 163f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public void loadCategoryBorderPanel() { 164f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard if (mCurrentSelected == BORDERS) { 165f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard return; 166f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 167f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard boolean fromRight = isRightAnimation(BORDERS); 168f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard selection(mCurrentSelected, false); 169f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard CategoryPanel categoryPanel = new CategoryPanel(); 170f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard categoryPanel.setAdapter(BORDERS); 171f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard setCategoryFragment(categoryPanel, fromRight); 172f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard mCurrentSelected = BORDERS; 173f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard selection(mCurrentSelected, true); 174f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 175f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 176f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public void loadCategoryGeometryPanel() { 177f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard if (mCurrentSelected == GEOMETRY) { 178f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard return; 179f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 180c870104ac3768bd528798eb4646c3b075757c5ffnicolasroard if (MasterImage.getImage().hasTinyPlanet()) { 181c870104ac3768bd528798eb4646c3b075757c5ffnicolasroard return; 182c870104ac3768bd528798eb4646c3b075757c5ffnicolasroard } 183f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard boolean fromRight = isRightAnimation(GEOMETRY); 184f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard selection(mCurrentSelected, false); 185f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard CategoryPanel categoryPanel = new CategoryPanel(); 186f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard categoryPanel.setAdapter(GEOMETRY); 187f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard setCategoryFragment(categoryPanel, fromRight); 188f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard mCurrentSelected = GEOMETRY; 189f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard selection(mCurrentSelected, true); 190f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 191f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 192f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public void loadCategoryFiltersPanel() { 193f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard if (mCurrentSelected == FILTERS) { 194f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard return; 195f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 196f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard boolean fromRight = isRightAnimation(FILTERS); 197f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard selection(mCurrentSelected, false); 198f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard CategoryPanel categoryPanel = new CategoryPanel(); 199f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard categoryPanel.setAdapter(FILTERS); 200f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard setCategoryFragment(categoryPanel, fromRight); 201f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard mCurrentSelected = FILTERS; 202f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard selection(mCurrentSelected, true); 203f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 204f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 205860af325f2030a03c526e8551a85230d17df7b15nicolasroard public void loadCategoryVersionsPanel() { 206860af325f2030a03c526e8551a85230d17df7b15nicolasroard if (mCurrentSelected == VERSIONS) { 207860af325f2030a03c526e8551a85230d17df7b15nicolasroard return; 208860af325f2030a03c526e8551a85230d17df7b15nicolasroard } 209860af325f2030a03c526e8551a85230d17df7b15nicolasroard FilterShowActivity activity = (FilterShowActivity) getActivity(); 210860af325f2030a03c526e8551a85230d17df7b15nicolasroard activity.updateVersions(); 211860af325f2030a03c526e8551a85230d17df7b15nicolasroard boolean fromRight = isRightAnimation(VERSIONS); 212860af325f2030a03c526e8551a85230d17df7b15nicolasroard selection(mCurrentSelected, false); 213860af325f2030a03c526e8551a85230d17df7b15nicolasroard CategoryPanel categoryPanel = new CategoryPanel(); 214860af325f2030a03c526e8551a85230d17df7b15nicolasroard categoryPanel.setAdapter(VERSIONS); 215860af325f2030a03c526e8551a85230d17df7b15nicolasroard setCategoryFragment(categoryPanel, fromRight); 216860af325f2030a03c526e8551a85230d17df7b15nicolasroard mCurrentSelected = VERSIONS; 217860af325f2030a03c526e8551a85230d17df7b15nicolasroard selection(mCurrentSelected, true); 218860af325f2030a03c526e8551a85230d17df7b15nicolasroard } 219860af325f2030a03c526e8551a85230d17df7b15nicolasroard 220f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public void showPanel(int currentPanel) { 221f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard switch (currentPanel) { 222f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard case LOOKS: { 2235af55f4f37c3d8fd471144f1175a45e2933ca015nicolasroard loadCategoryLookPanel(false); 224f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard break; 225f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 226f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard case BORDERS: { 227f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard loadCategoryBorderPanel(); 228f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard break; 229f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 230f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard case GEOMETRY: { 231f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard loadCategoryGeometryPanel(); 232f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard break; 233f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 234f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard case FILTERS: { 235f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard loadCategoryFiltersPanel(); 236f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard break; 237f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 238860af325f2030a03c526e8551a85230d17df7b15nicolasroard case VERSIONS: { 239860af325f2030a03c526e8551a85230d17df7b15nicolasroard loadCategoryVersionsPanel(); 240860af325f2030a03c526e8551a85230d17df7b15nicolasroard break; 241860af325f2030a03c526e8551a85230d17df7b15nicolasroard } 242f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 243f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 244f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 245860af325f2030a03c526e8551a85230d17df7b15nicolasroard public void setToggleVersionsPanelButton(ImageButton button) { 246860af325f2030a03c526e8551a85230d17df7b15nicolasroard if (button == null) { 247860af325f2030a03c526e8551a85230d17df7b15nicolasroard return; 248860af325f2030a03c526e8551a85230d17df7b15nicolasroard } 249860af325f2030a03c526e8551a85230d17df7b15nicolasroard button.setOnClickListener(new View.OnClickListener() { 250860af325f2030a03c526e8551a85230d17df7b15nicolasroard @Override 251860af325f2030a03c526e8551a85230d17df7b15nicolasroard public void onClick(View v) { 252860af325f2030a03c526e8551a85230d17df7b15nicolasroard if (mCurrentSelected == VERSIONS) { 253860af325f2030a03c526e8551a85230d17df7b15nicolasroard showPanel(mPreviousToggleVersions); 254860af325f2030a03c526e8551a85230d17df7b15nicolasroard } else { 255860af325f2030a03c526e8551a85230d17df7b15nicolasroard mPreviousToggleVersions = mCurrentSelected; 256860af325f2030a03c526e8551a85230d17df7b15nicolasroard showPanel(VERSIONS); 257860af325f2030a03c526e8551a85230d17df7b15nicolasroard } 258860af325f2030a03c526e8551a85230d17df7b15nicolasroard } 259860af325f2030a03c526e8551a85230d17df7b15nicolasroard }); 260860af325f2030a03c526e8551a85230d17df7b15nicolasroard } 261860af325f2030a03c526e8551a85230d17df7b15nicolasroard 262f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public void showImageStatePanel(boolean show) { 263e799626df47f99e4ba70bcfe787fdbdac64a8cc7nicolasroard View container = mMainView.findViewById(R.id.state_panel_container); 264e799626df47f99e4ba70bcfe787fdbdac64a8cc7nicolasroard FragmentTransaction transaction = null; 265e799626df47f99e4ba70bcfe787fdbdac64a8cc7nicolasroard if (container == null) { 266e799626df47f99e4ba70bcfe787fdbdac64a8cc7nicolasroard FilterShowActivity activity = (FilterShowActivity) getActivity(); 267e799626df47f99e4ba70bcfe787fdbdac64a8cc7nicolasroard container = activity.getMainStatePanelContainer(R.id.state_panel_container); 268e799626df47f99e4ba70bcfe787fdbdac64a8cc7nicolasroard } else { 269e799626df47f99e4ba70bcfe787fdbdac64a8cc7nicolasroard transaction = getChildFragmentManager().beginTransaction(); 270e799626df47f99e4ba70bcfe787fdbdac64a8cc7nicolasroard } 271e799626df47f99e4ba70bcfe787fdbdac64a8cc7nicolasroard if (container == null) { 272f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard return; 273e799626df47f99e4ba70bcfe787fdbdac64a8cc7nicolasroard } else { 274e799626df47f99e4ba70bcfe787fdbdac64a8cc7nicolasroard transaction = getFragmentManager().beginTransaction(); 275f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 276860af325f2030a03c526e8551a85230d17df7b15nicolasroard int currentPanel = mCurrentSelected; 277f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard if (show) { 278f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard container.setVisibility(View.VISIBLE); 279f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard StatePanel statePanel = new StatePanel(); 280860af325f2030a03c526e8551a85230d17df7b15nicolasroard statePanel.setMainPanel(this); 281860af325f2030a03c526e8551a85230d17df7b15nicolasroard FilterShowActivity activity = (FilterShowActivity) getActivity(); 282860af325f2030a03c526e8551a85230d17df7b15nicolasroard activity.updateVersions(); 283f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard transaction.replace(R.id.state_panel_container, statePanel, StatePanel.FRAGMENT_TAG); 284f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } else { 285f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard container.setVisibility(View.GONE); 286f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard Fragment statePanel = getChildFragmentManager().findFragmentByTag(StatePanel.FRAGMENT_TAG); 287f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard if (statePanel != null) { 288f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard transaction.remove(statePanel); 289f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 290860af325f2030a03c526e8551a85230d17df7b15nicolasroard if (currentPanel == VERSIONS) { 291860af325f2030a03c526e8551a85230d17df7b15nicolasroard currentPanel = LOOKS; 292860af325f2030a03c526e8551a85230d17df7b15nicolasroard } 293f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 294860af325f2030a03c526e8551a85230d17df7b15nicolasroard mCurrentSelected = -1; 295860af325f2030a03c526e8551a85230d17df7b15nicolasroard showPanel(currentPanel); 296f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard transaction.commit(); 297f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 298f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard} 299