blob: f8669dc3c686abb18ca53dc6e9f1912f5676ab45 [file] [log] [blame]
/*
* Copyright (C) 2013 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.gallery3d.filtershow.category;
import android.app.Activity;
import android.graphics.Rect;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import org.codeaurora.gallery.R;
import com.android.gallery3d.filtershow.FilterShowActivity;
import android.util.Log;
public class CategoryPanel extends Fragment implements View.OnClickListener {
public static final String FRAGMENT_TAG = "CategoryPanel";
private static final String PARAMETER_TAG = "currentPanel";
protected int mCurrentAdapter = MainPanel.LOOKS;
protected CategoryAdapter mAdapter;
protected IconView mAddButton;
public void setAdapter(int value) {
mCurrentAdapter = value;
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
loadAdapter(mCurrentAdapter);
}
public void loadAdapter(int adapter) {
FilterShowActivity activity = (FilterShowActivity) getActivity();
switch (adapter) {
case MainPanel.LOOKS: {
mAdapter = activity.getCategoryLooksAdapter();
if (mAdapter != null) {
mAdapter.initializeSelection(MainPanel.LOOKS);
}
activity.updateCategories();
break;
}
case MainPanel.BORDERS: {
mAdapter = activity.getCategoryBordersAdapter();
if (mAdapter != null) {
mAdapter.initializeSelection(MainPanel.BORDERS);
}
activity.updateCategories();
break;
}
case MainPanel.GEOMETRY: {
mAdapter = activity.getCategoryGeometryAdapter();
if (mAdapter != null) {
mAdapter.initializeSelection(MainPanel.GEOMETRY);
}
break;
}
case MainPanel.FILTERS: {
mAdapter = activity.getCategoryFiltersAdapter();
if (mAdapter != null) {
mAdapter.initializeSelection(MainPanel.FILTERS);
}
break;
}
case MainPanel.DUALCAM: {
mAdapter = activity.getCategoryDualCamAdapter();
if (mAdapter != null) {
mAdapter.initializeSelection(MainPanel.DUALCAM);
}
activity.updateCategories();
break;
}
case MainPanel.TRUEPORTRAIT: {
mAdapter = activity.getCategoryTruePortraitAdapter();
if (mAdapter != null) {
mAdapter.initializeSelection(MainPanel.TRUEPORTRAIT);
}
activity.updateCategories();
break;
}
case MainPanel.TRUESCANNER: {
mAdapter = activity.getCategoryTrueScannerAdapter();
if (mAdapter != null) {
mAdapter.initializeSelection(MainPanel.TRUESCANNER);
}
break;
}
case MainPanel.HAZEBUSTER: {
mAdapter = activity.getCategoryHazeBusterAdapter();
if (mAdapter != null) {
mAdapter.initializeSelection(MainPanel.HAZEBUSTER);
}
break;
}
case MainPanel.SEESTRAIGHT: {
mAdapter = activity.getCategorySeeStraightAdapter();
if (mAdapter != null) {
mAdapter.initializeSelection(MainPanel.SEESTRAIGHT);
}
break;
}
case MainPanel.VERSIONS: {
mAdapter = activity.getCategoryVersionsAdapter();
if (mAdapter != null) {
mAdapter.initializeSelection(MainPanel.VERSIONS);
}
break;
}
case MainPanel.MAKEUP: {
mAdapter = activity.getCategoryMakeupAdapter();
if (mAdapter != null) {
mAdapter.initializeSelection(MainPanel.MAKEUP);
}
break;
}
case MainPanel.WATERMARK: {
mAdapter = activity.getCategoryWatermarkAdapter();
if (mAdapter != null) {
mAdapter.initializeSelection(MainPanel.WATERMARK);
}
break;
}
}
updateAddButtonVisibility();
}
@Override
public void onSaveInstanceState(Bundle state) {
super.onSaveInstanceState(state);
state.putInt(PARAMETER_TAG, mCurrentAdapter);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
LinearLayout main = (LinearLayout) inflater.inflate(
R.layout.filtershow_category_panel_new, container,
false);
if (savedInstanceState != null) {
int selectedPanel = savedInstanceState.getInt(PARAMETER_TAG);
loadAdapter(selectedPanel);
}
View panelView = main.findViewById(R.id.listItems);
if (panelView instanceof CategoryTrack) {
CategoryTrack panel = (CategoryTrack) panelView;
if (mAdapter != null) {
mAdapter.setOrientation(CategoryView.HORIZONTAL);
panel.setAdapter(mAdapter);
mAdapter.setContainer(panel);
}
} else if (mAdapter != null) {
ListView panel = (ListView) main.findViewById(R.id.listItems);
panel.setAdapter(mAdapter);
mAdapter.setContainer(panel);
}
mAddButton = (IconView) main.findViewById(R.id.addButton);
if (mAddButton != null) {
mAddButton.setOnClickListener(this);
updateAddButtonVisibility();
}
return main;
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.addButton:
FilterShowActivity activity = (FilterShowActivity) getActivity();
activity.addCurrentVersion();
break;
}
}
public void updateAddButtonVisibility() {
if (mAddButton == null) {
return;
}
FilterShowActivity activity = (FilterShowActivity) getActivity();
if (activity.isShowingImageStatePanel() && mAdapter != null && mAdapter.showAddButton()) {
mAddButton.setVisibility(View.VISIBLE);
if (mAdapter != null) {
mAddButton.setText(mAdapter.getAddButtonText());
}
} else {
mAddButton.setVisibility(View.GONE);
}
}
}