/* * * * Copyright (C) 2012 Ignacio Gonzalez Sainz * * * * Holy Week Guide: An android application with the itineraries, images and all information of the brotherhoods Spain's holy week * * * * 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. * * * * Ignacio Gonzalez Sainz * * Cádiz (Spain) * * ignacio.glez.s@gmail.com * * * */ package com.ignaciogs.semanasanta; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import com.actionbarsherlock.app.SherlockActivity; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuItem; public class Main extends SherlockActivity { private final String SHARED_PREFERENCES_ID = "PREFERENCE_SEMANA_SANTA"; private final String SHARED_PREFERENCES_CITY = "PREFERENCE_CITY"; private ImageView imgFondo; private TextView tvOnLive; /** * Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); imgFondo = (ImageView) findViewById(R.id.main_imageFondo); tvOnLive = (TextView) findViewById(R.id.main_tv_onlive); getSupportActionBar().setTitle(getString(R.string.holyWeekGuide)); /* Cargamos los datos desde el xml */ SharedPreferences mySharedPreferences = getSharedPreferences(SHARED_PREFERENCES_ID, Activity.MODE_PRIVATE); if (mySharedPreferences != null) { String file = mySharedPreferences.getString(SHARED_PREFERENCES_CITY, ""); if (file.equals("")) { Toast.makeText(this, getString(R.string.msgSelectCity), Toast.LENGTH_LONG).show(); DataManager.getInstance().setFileDataCofradias("data/cadiz.xml"); } else { DataManager.getInstance().setFileDataCofradias(file); loadImageFondo(imgFondo); } ApplicationSemanaSanta app = (ApplicationSemanaSanta) getApplication(); final String fileCof = DataManager.getInstance().getFileDataCofradias(); app.setNameActiveCity(fileCof.substring(fileCof.indexOf("/") + 1, fileCof.indexOf(".xml"))); } else { Toast.makeText(this, getString(R.string.msgSelectCity), Toast.LENGTH_LONG).show(); } DataManager.getInstance().loadDataCofradias(this); /* Click en la opcion de itinerarios */ TextView tvItinerarios = (TextView) findViewById(R.id.main_Itinerario); tvItinerarios.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(Main.this, ItinerarioListActivity.class); startActivity(i); } }); //Click in onLive mode tvOnLive.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(Main.this, UrlView.class); ApplicationSemanaSanta app = (ApplicationSemanaSanta) getApplication(); final String activeCity = app.getNameActiveCity(); if (activeCity.equals("jerez")) { intent.putExtra(UrlView.KEY_URL, getString(R.string.urlJerezOnLive)); } startActivity(intent); } }); /* Click en la opcion de acerca de */ TextView tvAcercaDe = (TextView) findViewById(R.id.main_AcercaDe); tvAcercaDe.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(Main.this, AcercaDeActivity.class); startActivity(i); } }); /* Nos guardamos los diferentes dias de la semana que hay en el xml */ DataManager.getInstance().loadDaysOfWeeks(this); } @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add("") .setIcon(R.drawable.action_bar_mapa_espana) .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); return true; } @Override public boolean onMenuItemSelected(int featureId, MenuItem item) { boolean handled = false; switch (item.getItemId()) { case 0: AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(getString(R.string.select_city)); builder.setItems(new CharSequence[]{"Cádiz", "Córdoba", "Jerez de la Frontera", "Granada", "San Fernando"}, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int itemIndex) { ApplicationSemanaSanta app = (ApplicationSemanaSanta) getApplication(); switch (itemIndex) { case 0: DataManager.getInstance().setFileDataCofradias("data/cadiz.xml"); app.setNameActiveCity("cadiz"); break; case 1: DataManager.getInstance().setFileDataCofradias("data/cordoba.xml"); app.setNameActiveCity("cordoba"); break; case 2: DataManager.getInstance().setFileDataCofradias("data/jerez.xml"); app.setNameActiveCity("jerez"); break; case 3: DataManager.getInstance().setFileDataCofradias("data/granada.xml"); app.setNameActiveCity("granada"); break; case 4: DataManager.getInstance().setFileDataCofradias("data/san_fernando.xml"); app.setNameActiveCity("sanfernando"); break; } loadImageFondo(imgFondo); DataManager.getInstance().loadDataCofradias(Main.this); DataManager.getInstance().loadDaysOfWeeks(Main.this); saveSelectionPreference(); } }); AlertDialog alert = builder.create(); alert.show(); handled = true; break; default: //finish(); //handled = true; break; } return handled; } private void saveSelectionPreference() { SharedPreferences mySharedPreferences = getSharedPreferences(SHARED_PREFERENCES_ID, Activity.MODE_PRIVATE); if (mySharedPreferences != null) { SharedPreferences.Editor editor = mySharedPreferences.edit(); editor.putString(SHARED_PREFERENCES_CITY, DataManager.getInstance().getFileDataCofradias()); editor.commit(); } } private void loadImageFondo(ImageView img) { String name = DataManager.getInstance().getFileDataCofradias(); name = name.replace("data/", ""); name = name.replace(".xml", ""); name = "main_" + name; int idImg = getResources().getIdentifier(name, "drawable", "com.ignaciogs.semanasanta"); if (idImg > 0) { img.setImageResource(idImg); } //Icon to on live mode if (name.indexOf("jerez") >= 0) { tvOnLive.setVisibility(View.VISIBLE); } else { tvOnLive.setVisibility(View.GONE); } } }