/* * 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.dialog; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v4.app.FragmentManager; import android.support.v7.app.AlertDialog; import android.support.v7.view.ContextThemeWrapper; import com.jaspersoft.android.jaspermobile.R; import com.jaspersoft.android.jaspermobile.util.sorting.SortOrder; import org.androidannotations.annotations.EFragment; /** * @author Tom Koptel * @since 1.9 */ @EFragment public class SortDialogFragment extends BaseDialogFragment implements DialogInterface.OnClickListener{ private static final String SORT_ORDER_ARG = "sort_order"; private static final int BY_LABEL = 0; private static final int BY_CREATION_DATE = 1; private SortOrder mSortOrder; @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle(R.string.s_ab_sort_by); CharSequence[] options = { getString(R.string.s_fd_sort_label), getString(R.string.s_fd_sort_date) }; int position = 0; if (mSortOrder.equals(SortOrder.LABEL)) { position = BY_LABEL; } if (mSortOrder.equals(SortOrder.CREATION_DATE)) { position = BY_CREATION_DATE; } builder.setSingleChoiceItems(options, position, this); Dialog dialog = builder.create(); dialog.setCanceledOnTouchOutside(true); return dialog; } @Override public void onClick(DialogInterface dialog, int which) { switch (which) { case BY_LABEL: mSortOrder = SortOrder.LABEL; break; case BY_CREATION_DATE: mSortOrder = SortOrder.CREATION_DATE; break; default: mSortOrder = SortOrder.LABEL; break; } if (mDialogListener != null) { ((SortDialogClickListener) mDialogListener).onOptionSelected(mSortOrder); } dismiss(); } @Override protected Class<SortDialogClickListener> getDialogCallbackClass() { return SortDialogClickListener.class; } protected void initDialogParams() { super.initDialogParams(); Bundle args = getArguments(); if (args != null) { if (args.containsKey(SORT_ORDER_ARG)) { mSortOrder = (SortOrder) args.getSerializable(SORT_ORDER_ARG); } } } public static SortDialogFragmentBuilder createBuilder(FragmentManager fragmentManager) { return new SortDialogFragmentBuilder(fragmentManager); } //--------------------------------------------------------------------- // Dialog Builder //--------------------------------------------------------------------- public static class SortDialogFragmentBuilder extends BaseDialogFragmentBuilder<SortDialogFragment> { public SortDialogFragmentBuilder(FragmentManager fragmentManager) { super(fragmentManager); } public SortDialogFragmentBuilder setInitialSortOption(SortOrder sortOrder) { args.putSerializable(SORT_ORDER_ARG, sortOrder); return this; } @Override protected SortDialogFragment build() { return new SortDialogFragment(); } } //--------------------------------------------------------------------- // Dialog Callback //--------------------------------------------------------------------- public interface SortDialogClickListener extends DialogClickListener { void onOptionSelected(SortOrder sortOrder); } }