package it.fdev.unisaconnect;
import it.fdev.unisaconnect.data.SharedPrefDataManager;
import it.fdev.utils.MySimpleFragment;
import it.fdev.utils.Utils;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
public class FragmentBiblioPrepareSearch extends MySimpleFragment {
public static final String BIBLIO_BASE_URL = "http://biblio-aleph.unisa.it/F/";
View advancedSearchToggleCard, advancedSearchCard;
EditText testoView, annoDaView, annoAView;
CheckBox adjacentCheckbox;
Spinner campoSpinner, linguaSpinner, formatoSpinner, areaDisciplinareSpinner;
TextView cercaView;
SharedPrefDataManager mDataManager;
CharSequence[] campoValuesArray, linguaValuesArray, formatoValuesArray, areaDisciplinareValuesArray;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View mainView = (View) inflater.inflate(R.layout.fragment_biblio_prepare_search, container, false);
return mainView;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
advancedSearchToggleCard = view.findViewById(R.id.advanced_search_toggle_card);
advancedSearchCard = view.findViewById(R.id.advanced_search_card);
testoView = (EditText) view.findViewById(R.id.testo);
annoDaView = (EditText) view.findViewById(R.id.anno_da);
annoAView = (EditText) view.findViewById(R.id.anno_a);
adjacentCheckbox = (CheckBox) view.findViewById(R.id.adjacent);
campoSpinner = (Spinner) view.findViewById(R.id.campo);
linguaSpinner = (Spinner) view.findViewById(R.id.lingua);
formatoSpinner = (Spinner) view.findViewById(R.id.formato);
areaDisciplinareSpinner = (Spinner) view.findViewById(R.id.area_disciplinare);
cercaView = (TextView) view.findViewById(R.id.button_search);
cercaView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
rimandaARicerca();
}
});
advancedSearchToggleCard.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Utils.expand(advancedSearchCard, 2);
advancedSearchToggleCard.setVisibility(View.GONE);
// Utils.collapse(advancedSearchToggleCard, 1);
}
});
campoValuesArray = resources.getTextArray(R.array.biblio_search_campo_VALUES);
linguaValuesArray = resources.getTextArray(R.array.biblio_search_lingua_VALUES);
formatoValuesArray = resources.getTextArray(R.array.biblio_search_formato_VALUES);
areaDisciplinareValuesArray = resources.getTextArray(R.array.biblio_search_area_disciplinare_VALUES);
mDataManager = new SharedPrefDataManager(mActivity);
testoView.setText(mDataManager.getBiblioLastSearch());
}
private void rimandaARicerca() {
String testo = testoView.getText().toString().trim();
if (testo.length() < 1) {
Toast.makeText(mActivity, R.string.cerca_testo_non_vuoto, Toast.LENGTH_LONG).show();
return;
}
mDataManager.setBiblioLastSearch(testo);
String annoDa = annoDaView.getText().toString();
String annoA = annoAView.getText().toString();
boolean adjacent = adjacentCheckbox.isChecked();
String campoID = campoValuesArray[campoSpinner.getSelectedItemPosition()].toString();
String linguaID = linguaValuesArray[linguaSpinner.getSelectedItemPosition()].toString();
String formatoID = formatoValuesArray[formatoSpinner.getSelectedItemPosition()].toString();
String areaID = areaDisciplinareValuesArray[areaDisciplinareSpinner.getSelectedItemPosition()].toString();
/*
* http://biblio-aleph.unisa.it/F/12LCUIQRU5PHFLF8QD7RDJFQQ7INK9IBSJYTRP6TUBJGS1694F-02869?func=find-b&request=asdasd&find_code=WRD&adjacent=N&x=13&y=9&filter_code_1=WLN&filter_request_1=&filter_code_2=WYR&filter_request_2=&filter_code_3=WYR&filter_request_3=&filter_code_4=WFT&filter_request_4=&filter_code_5=WSB&filter_request_5=
* http://biblio-aleph.unisa.it/F/F4RJS25A41IMXU2RH972JE7578SVJ54FBIF68AL2U6PLG82FT6-02494?func=find-b&request=testo&find_code=WTI&adjacent=Y&x=47&y=13&filter_code_1=WLN&filter_request_1=ITA&filter_code_2=WYR&filter_request_2=da&filter_code_3=WYR&filter_request_3=a&filter_code_4=WFT&filter_request_4=BK&filter_code_5=WSB&filter_request_5=ECO
*
* PARAMETRI:
* request -> testo
* find_code -> campo
* adjacent -> adjacent
* x -> ?
* y -> ?
* filter_code_1 -> ? -> DEF: WLN
* filter_request_1 -> lingua
* filter_code_2 -> ? -> DEF: WYR
* filter_request_2 -> annoDA
* filter_code_3 -> ? -> DEF: WYR
* filter_request_3 -> annoA
* filter_code_4 -> ? -> DEF: WTF
* filter_request_4 -> formato
* filter_code_5 -> ? -> DEF: WSB
* filter_request_5 -> areaDisciplinare
*
*/
String uri = Uri.parse(BIBLIO_BASE_URL)
.buildUpon()
.appendQueryParameter("func", "find-b")
.appendQueryParameter("request", testo)
.appendQueryParameter("find_code", campoID)
.appendQueryParameter("adjacent", ((adjacent) ? "Y" : "N"))
.appendQueryParameter("x", "0")
.appendQueryParameter("y", "0")
.appendQueryParameter("filter_code_1", "WLN")
.appendQueryParameter("filter_request_1", linguaID)
.appendQueryParameter("filter_code_2", "WYR")
.appendQueryParameter("filter_request_2", annoDa)
.appendQueryParameter("filter_code_3", "WYR")
.appendQueryParameter("filter_request_3", annoA)
.appendQueryParameter("filter_code_4", "WTF")
.appendQueryParameter("filter_request_4", formatoID)
.appendQueryParameter("filter_code_5", "WSB")
.appendQueryParameter("filter_request_5", areaID)
.build()
.toString();
FragmentBiblioDoSearch fragmentDoSearch = new FragmentBiblioDoSearch();
Bundle args = new Bundle();
args.putString(FragmentBiblioDoSearch.ARG_URI, uri);
fragmentDoSearch.setArguments(args);
mActivity.switchContent(fragmentDoSearch);
}
@Override
public int getTitleResId() {
return R.string.cerca_libro;
}
}