/* * Copyright © 2016 TIBCO Software,Inc.All rights reserved. * http://community.jaspersoft.com/project/jaspermobile-android * * Unless you have purchased a commercial license agreement from TIBCO Jaspersoft, * the following license terms apply: * * This program is part of TIBCO Jaspersoft Mobile for Android. * * TIBCO Jaspersoft Mobile is free software:you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation,either version 3of the License,or * (at your option)any later version. * * TIBCO Jaspersoft Mobile is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY;without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with TIBCO Jaspersoft Mobile for Android.If not,see * <http://www.gnu.org/licenses/lgpl>. */ package com.jaspersoft.android.jaspermobile.activities.storage; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.FragmentTransaction; import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import com.jaspersoft.android.jaspermobile.Analytics; import com.jaspersoft.android.jaspermobile.R; import com.jaspersoft.android.jaspermobile.activities.storage.fragment.SavedItemsControllerFragment; import com.jaspersoft.android.jaspermobile.activities.storage.fragment.SavedItemsControllerFragment_; import com.jaspersoft.android.jaspermobile.activities.storage.fragment.SavedItemsSearchFragment; import com.jaspersoft.android.jaspermobile.activities.storage.fragment.SavedItemsSearchFragment_; import com.jaspersoft.android.jaspermobile.dialog.SortDialogFragment; import com.jaspersoft.android.jaspermobile.ui.view.activity.ToolbarActivity; import com.jaspersoft.android.jaspermobile.ui.view.fragment.BaseFragment; import com.jaspersoft.android.jaspermobile.util.filtering.Filter; import com.jaspersoft.android.jaspermobile.util.filtering.StorageResourceFilter; import com.jaspersoft.android.jaspermobile.util.sorting.SortOptions; import com.jaspersoft.android.jaspermobile.util.sorting.SortOrder; import com.jaspersoft.android.jaspermobile.widget.FilterTitleView; import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.EFragment; import org.androidannotations.annotations.OptionsItem; import org.androidannotations.annotations.OptionsMenu; import javax.inject.Inject; /** * @author Ivan Gadzhega * @author Tom Koptel * @since 1.8 */ @EFragment (R.layout.content_layout) @OptionsMenu(R.menu.sort_menu) public class SavedReportsFragment extends BaseFragment implements SortDialogFragment.SortDialogClickListener{ private SavedItemsControllerFragment savedItemsController; @Inject protected Analytics analytics; @Bean protected StorageResourceFilter storageResourceFilter; @Bean protected SortOptions sortOptions; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getBaseActivityComponent().inject(this); setHasOptionsMenu(true); } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); if (savedInstanceState == null) { // Reset all controls state sortOptions.putOrder(SortOrder.LABEL); FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); savedItemsController = SavedItemsControllerFragment_.builder() .sortOrder(sortOptions.getOrder()) .build(); transaction.replace(R.id.resource_controller, savedItemsController, SavedItemsControllerFragment.TAG); SavedItemsSearchFragment searchFragment = SavedItemsSearchFragment_.builder().build(); transaction.replace(R.id.search_controller, searchFragment); transaction.commit(); analytics.sendEvent(Analytics.EventCategory.CATALOG.getValue(), Analytics.EventAction.VIEWED.getValue(), Analytics.EventLabel.SAVED_ITEMS.getValue()); } else { savedItemsController = (SavedItemsControllerFragment) getChildFragmentManager() .findFragmentByTag(SavedItemsControllerFragment.TAG); } FilterTitleView filterTitleView = new FilterTitleView(getActivity()); filterTitleView.init(storageResourceFilter); filterTitleView.setFilterSelectedListener(new FilterChangeListener()); ((ToolbarActivity) getActivity()).setDisplayCustomToolbarEnable(true); ((ToolbarActivity) getActivity()).setCustomToolbarView(filterTitleView); } @Override public void onResume() { super.onResume(); ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar(); if (actionBar != null) { actionBar.setTitle(R.string.sdr_ab_title); } } @OptionsItem(R.id.sort) final void startSorting() { SortDialogFragment.createBuilder(getFragmentManager()) .setInitialSortOption(sortOptions.getOrder()) .setTargetFragment(this) .show(); } @Override public void onOptionSelected(SortOrder sortOrder) { sortOptions.putOrder(sortOrder); if (savedItemsController != null) { savedItemsController.loadItemsBySortOrder(sortOrder); } } private class FilterChangeListener implements FilterTitleView.FilterListener { @Override public void onFilter(Filter filter) { storageResourceFilter.persist(filter); savedItemsController.loadItemsByTypes(); } } }