Prechádzať zdrojové kódy

Merge branch 'master' into newui

Iñigo Valentin 9 rokov pred
rodič
commit
97699543db
29 zmenil súbory, kde vykonal 1843 pridanie a 69 odobranie
  1. 51 0
      README.es-ES.md
  2. 51 0
      README.es-EU.md
  3. 28 9
      README.md
  4. 2 2
      app/build.gradle
  5. 1 1
      app/src/main/AndroidManifest.xml
  6. 0 9
      app/src/main/java/com/ivalentin/margolariak/AboutActivity.java
  7. 1 1
      app/src/main/java/com/ivalentin/margolariak/GM.java
  8. 2 0
      app/src/main/java/com/ivalentin/margolariak/LablancaNoFestivalsLayout.java
  9. 1 1
      app/src/main/java/com/ivalentin/margolariak/MainActivity.java
  10. 259 1
      app/src/main/java/com/ivalentin/margolariak/SponsorActivity.java
  11. 143 0
      app/src/main/java/com/ivalentin/margolariak/UsActivity.java
  12. BIN
      app/src/main/res/drawable/ul.png
  13. BIN
      app/src/main/res/drawable/us_activities.png
  14. BIN
      app/src/main/res/drawable/us_asociacion.png
  15. BIN
      app/src/main/res/drawable/us_cuadrilla.png
  16. BIN
      app/src/main/res/drawable/us_transparency.png
  17. BIN
      app/src/main/res/drawable/web.png
  18. 119 0
      app/src/main/res/layout/activity_sponsor.xml
  19. 385 0
      app/src/main/res/layout/activity_us.xml
  20. 128 0
      app/src/main/res/layout/dialog_sponsor.xml
  21. 64 0
      app/src/main/res/layout/dialog_us.xml
  22. 425 27
      app/src/main/res/layout/fragment_layout_lablanca_nofestivals.xml
  23. 75 0
      app/src/main/res/layout/row_sponsor.xml
  24. 32 2
      app/src/main/res/values-en/strings.xml
  25. 32 2
      app/src/main/res/values-eu-rES/strings.xml
  26. 39 9
      app/src/main/res/values/strings.xml
  27. 1 1
      build.gradle
  28. 2 2
      gradle.properties
  29. 2 2
      gradle/wrapper/gradle-wrapper.properties

+ 51 - 0
README.es-ES.md

@@ -0,0 +1,51 @@
+---
+[Information in english](README.md) 
+[Informazioa euskaraz](README.es-EU.md)
+---
+
+
+# Aplicación de Gasteizko Margolariak para Android #
+
+Una aplicacion para dispositivos Android para miembros de [Gasteizko Margolariak](https://margolariak.com/) [Vitoria-Gasteiz](http://www.vitoria-gasteiz.org/).
+
+[![Gasteizko Margolariak en Google Play](https://margolariak.com/img/app/android.gif)](https://play.google.com/store/apps/details?id=com.ivalentin.margolariak)
+
+### Durante las Fiestas ###
+
+Hay funciones diseñadas especificamente para las Fiestas de La Blanca, y solo estarán disponibles en esas fechas.
+
+* Consulta en tu teléfono el Programa de Fiestas, encuentra actos alrededor tuyo ydescubre como llegar hasta ellos.
+* Consulta el Programa de Fiestas de Gasteizko Margolariak, detallado y con la ubicación de cada actividad...
+* ... pero, como no somos famosos por nuestra puntualidad, comprueba nuestra ubicación en tiempo real.
+
+
+### Durante el resto del año ###
+
+* Mantente informado de las actividades que organizamos durante el resto del año.
+* Recibe las ultimas noticias sobre la Cuadrilla en nuestro Blog
+* Galería de fotos de todas nuestras actividades.
+
+
+### Compatibilidad ###
+
+Requiere Android 3.0 (Honeycomb, API 11) o superior.
+
+
+### Idiomas ###
+
+* Castellano
+* Inglés
+* Euskera (parcialmente)
+
+
+### Permisos ###
+
+* UBICACION: Permite el uso del GPS para calcular la distancia a lugares y eventos.
+* ALMACENAMIENTO: Para almacenar las imagenes descargadas y no tener que descargarlas continuamente.
+
+
+### Otros dispositivos ###
+
+* ¿Eres de iPhone? [Estamos en ello!](https://github.com/GasteizkoMargolariak/GasteizkoMargolariakIOSApp) 
+* ¿Prefieres el sitio web? [No problem!](https://github.com/GasteizkoMargolariak/GasteizkoMargolariakWeb)
+

+ 51 - 0
README.es-EU.md

@@ -0,0 +1,51 @@
+---
+[Informacion en castellano](README.es-ES.md) 
+[Information in english](README.md)
+---
+
+
+# Androizko Gasteizko Margolariak aplikazioia #
+
+Una aplicacion para dispositivos Android para miembros de [Gasteizko Margolariak](https://margolariak.com/) [Vitoria-Gasteiz](http://www.vitoria-gasteiz.org/).
+
+[![Gasteizko Margolariak en Google Play](https://margolariak.com/img/app/android.gif)](https://play.google.com/store/apps/details?id=com.ivalentin.margolariak)
+
+### Durante las Fiestas ###
+
+Hay funciones diseñadas especificamente para las Fiestas de La Blanca, y solo estarán disponibles en esas fechas.
+
+* Consulta en tu teléfono el Programa de Fiestas, encuentra actos alrededor tuyo ydescubre como llegar hasta ellos.
+* Consulta el Programa de Fiestas de Gasteizko Margolariak, detallado y con la ubicación de cada actividad...
+* ... pero, como no somos famosos por nuestra puntualidad, comprueba nuestra ubicación en tiempo real.
+
+
+### Durante el resto del año ###
+
+* Mantente informado de las actividades que organizamos durante el resto del año.
+* Recibe las ultimas noticias sobre la Cuadrilla en nuestro Blog
+* Galería de fotos de todas nuestras actividades.
+
+
+### Compatibilidad ###
+
+Requiere Android 3.0 (Honeycomb, API 11) o superior.
+
+
+### Idiomas ###
+
+* Castellano
+* Inglés
+* Euskera (parcialmente)
+
+
+### Permisos ###
+
+* UBICACION: Permite el uso del GPS para calcular la distancia a lugares y eventos.
+* ALMACENAMIENTO: Para almacenar las imagenes descargadas y no tener que descargarlas continuamente.
+
+
+### Otros dispositivos ###
+
+* ¿Eres de iPhone? [Estamos en ello!](https://github.com/GasteizkoMargolariak/GasteizkoMargolariakIOSApp) 
+* ¿Prefieres el sitio web? [No problem!](https://github.com/GasteizkoMargolariak/GasteizkoMargolariakWeb)
+

+ 28 - 9
README.md

@@ -1,15 +1,20 @@
- 
-Gasteizko Margolariak Android App
-===
+---
+[Información en castellano](README.es-ES.md) 
+[Informazioa euskaraz](README.es-EU.md)
+---
 
-An Android app intended for members of <a href="http://margolariak.com/">Gasteizko Margolariak</a> in <a href="http://www.vitoria-gasteiz.org/">Vitoria-Gasteiz</a>, Spain.
 
+# Gasteizko Margolariak Android App #
+
+An Android app intended for members of [Gasteizko Margolariak](https://margolariak.com/) in [Vitoria-Gasteiz](http://www.vitoria-gasteiz.org/), Spain.
+
+[![Gasteizko Margolariak on Google Play](https://margolariak.com/img/app/android.gif)](https://play.google.com/store/apps/details?id=com.ivalentin.margolariak)
 
 ### Features during the city festivals ###
 
 This features wil be only available during the city festivals.
 
-* Check out the festival schedule, showing events all around the city, and indicating their location.
+* Check out the festival schedule, discover events all around the city, and get their location.
 * Check out the schedule for the members of Gasteizko Margolariak, indicating the location of every event and activity...
 * ... but, since we are not known for our puntuality, check out the location of Gasteizko Margolariak in real time.
 * Approximate distanc eto important event around the city.
@@ -17,9 +22,9 @@ This features wil be only available during the city festivals.
 
 ### Features for the rest of the year ###
 
-* Check out and be notified of all activities organized by gasteizzko margolariak.
-* View and comment our blog.
-* View and comment our gallery.
+* Check out and be notified of all activities organized by Gasteizko Margolariak.
+* Stay updated witho our blog.
+* Check out our photo gallery.
 
 
 ### Compatibility ###
@@ -27,7 +32,21 @@ This features wil be only available during the city festivals.
 Required Android 3.0 (Honeycomb, API level 11) or higher.
 
 
+### Languages ###
+
+* Spanish
+* English
+* Basque (mostly)
+
+
 ### Permissions ###
 
-* __ACCESS_FINE_LOCATION__: Allow the use of GPS location to indicate distance to certain events and activities.
+* LOCATION: Allow the use of GPS location to indicate distance to certain events and activities.
+* STORAGE: Required to  cache images, so they are not downloaded avery time the app is opened.
+
+
+### On other devices ###
+
+* Got an iPhone? [We are working on it!](https://github.com/GasteizkoMargolariak/GasteizkoMargolariakIOSApp) 
+* Do you prefer web pages? [No problem!](https://github.com/GasteizkoMargolariak/GasteizkoMargolariakWeb)
 

+ 2 - 2
app/build.gradle

@@ -2,11 +2,11 @@ apply plugin: 'com.android.application'
 
 android {
     compileSdkVersion 23
-    buildToolsVersion "23.0.3"
+    buildToolsVersion '25.0.0'
 
     defaultConfig {
         applicationId "com.ivalentin.margolariak"
-        minSdkVersion 12
+        minSdkVersion 14
         targetSdkVersion 23
         multiDexEnabled true
     }

+ 1 - 1
app/src/main/AndroidManifest.xml

@@ -61,8 +61,8 @@
             android:screenOrientation="portrait"
             android:label="@string/app_name">
         </activity>
-        <activity android:name=".AboutActivity"/>
         <activity android:name=".SponsorActivity"/>
+        <activity android:name=".UsActivity"/>
 
         <receiver
             android:process=":remote"

+ 0 - 9
app/src/main/java/com/ivalentin/margolariak/AboutActivity.java

@@ -1,9 +0,0 @@
-package com.ivalentin.margolariak;
-
-import android.app.Activity;
-
-/**
- * Created by seavenois on 26/09/16.
- */
-public class AboutActivity extends Activity{
-}

+ 1 - 1
app/src/main/java/com/ivalentin/margolariak/GM.java

@@ -1177,7 +1177,7 @@ final class GM {
 	 * URLs to be shared.
 	 */
 	static final class SHARE {
-		static final String HOME = "http://www.margolariak.com";
+		static final String HOME = "https://www.margolariak.com";
 		static final String LABLANCA = HOME + "/lablanca/";
 		static final String ACTIVITIES = HOME + "/actividades/";
 		static final String BLOG = HOME + "/blog/";

+ 2 - 0
app/src/main/java/com/ivalentin/margolariak/LablancaNoFestivalsLayout.java

@@ -3,9 +3,11 @@ package com.ivalentin.margolariak;
 import android.annotation.SuppressLint;
 import android.app.Fragment;
 import android.os.Bundle;
+import android.text.Html;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.TextView;
 
 /**
  * Fragment openen for La Blanca sections while the festivals are not close.

+ 1 - 1
app/src/main/java/com/ivalentin/margolariak/MainActivity.java

@@ -153,7 +153,7 @@ public class MainActivity extends Activity {
 		popup.getMenu().getItem(1).setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
 			@Override
 			public boolean onMenuItemClick(MenuItem item) {
-				Intent intent = new Intent(MainActivity.this, AboutActivity.class);
+				Intent intent = new Intent(MainActivity.this, UsActivity.class);
 				startActivity(intent);
 				return true;
 			}

+ 259 - 1
app/src/main/java/com/ivalentin/margolariak/SponsorActivity.java

@@ -1,9 +1,267 @@
 package com.ivalentin.margolariak;
 
+import android.annotation.SuppressLint;
 import android.app.Activity;
+import android.app.Dialog;
+import android.content.Intent;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.net.Uri;
+import android.os.Bundle;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+
+import java.io.File;
 
 /**
- * Created by seavenois on 26/09/16.
+ * Activity that lists sponsors.
+ *
+ * @author Iñigo Valentin
+ *
+ * @see Activity
+ *
  */
 public class SponsorActivity extends Activity {
+
+	/**
+	 * Runs when the activity is created.
+	 *
+	 * @param savedInstanceState Saved state of the activity.
+	 * @see Activity#onCreate(Bundle)
+	 */
+	@SuppressLint("InflateParams")
+	@Override
+	protected void onCreate(Bundle savedInstanceState) {
+
+		//Remove title bar.
+		this.requestWindowFeature(Window.FEATURE_NO_TITLE);
+		super.onCreate(savedInstanceState);
+
+		//Set layout.
+		setContentView(R.layout.activity_sponsor);
+
+		//Assign menu items
+		LinearLayout llList = (LinearLayout) findViewById(R.id.ll_sponsor_list);
+		LinearLayout entry;
+		LayoutInflater factory = LayoutInflater.from(this);
+
+		//Get data from database
+		SQLiteDatabase db = SQLiteDatabase.openDatabase(getDatabasePath(GM.DB.NAME).getAbsolutePath(), null, SQLiteDatabase.NO_LOCALIZED_COLLATORS | SQLiteDatabase.OPEN_READONLY);
+		final Cursor cursor;
+		String lang = GM.getLang();
+		cursor = db.rawQuery("SELECT id, name_" + lang + " AS name, text_" + lang + " AS text, image, address_" + lang + " AS address, link, lat, lon FROM sponsor ORDER BY RANDOM();", null);
+		cursor.moveToFirst();
+
+		while (cursor.moveToNext()) {
+			//Create a new row
+			entry = (LinearLayout) factory.inflate(R.layout.row_sponsor, null);
+
+			//Set margins TODO: I don't know why it doesnt read margins from the xml
+			LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
+			int margin = (int) (9 * getResources().getDisplayMetrics().density);
+			layoutParams.setMargins(margin, margin, margin, margin);
+			entry.setLayoutParams(layoutParams);
+
+			//Set id (hidden)
+			TextView tvId = (TextView) entry.findViewById(R.id.tv_row_sponsor_id);
+			tvId.setText(cursor.getString(0));
+
+			//Set title
+			TextView tvTitle = (TextView) entry.findViewById(R.id.tv_row_sponsor_name);
+			tvTitle.setText(cursor.getString(1));
+
+			//Set text
+			TextView tvText = (TextView) entry.findViewById(R.id.tv_row_sponsor_text);
+			tvText.setText(cursor.getString(2));
+
+			//Set image
+			ImageView ivImage = (ImageView) entry.findViewById(R.id.iv_row_sponsor_image);
+			//Check if image exists
+			if (cursor.getString(3) != null && !"".equals(cursor.getString(3))) {
+				String image = cursor.getString(3);
+				File f;
+				f = new File(getFilesDir().toString() + "/img/spo/preview/" + image);
+				if (f.exists()) {
+					//If the image exists, set it.
+					Bitmap myBitmap = BitmapFactory.decodeFile(getFilesDir().toString() + "/img/spo/preview/" + image);
+					ivImage.setImageBitmap(myBitmap);
+				} else {
+					//If not, create directories and download asynchronously
+					File fpath;
+					fpath = new File(getFilesDir().toString() + "/img/spo/preview/");
+					//noinspection ResultOfMethodCallIgnored
+					fpath.mkdirs();
+					new DownloadImage(GM.API.SERVER + "/img/spo/preview/" + image, getFilesDir().toString() + "/img/spo/preview/" + image, ivImage, GM.IMG.SIZE.PREVIEW).execute();
+				}
+			}
+			else{
+				ivImage.setVisibility(View.GONE);
+			}
+
+			//Set onClick listener
+			entry.setOnClickListener(new View.OnClickListener() {
+				@Override
+				public void onClick(View v) {
+					TextView tvId = (TextView) v.findViewById(R.id.tv_row_sponsor_id);
+					int id = Integer.parseInt(tvId.getText().toString());
+					openDialog(id);
+				}
+			});
+
+
+			llList.addView(entry);
+		}
+		cursor.close();
+		db.close();
+
+	}
+
+	/**
+	 * Shows a dialog with info about the selected event.
+	 *
+	 * @param id The event id
+	 */
+	@SuppressWarnings("ConstantConditions")
+	private void openDialog(final int id){
+
+		//Create the dialog
+		final Dialog dialog = new Dialog(this);
+
+		//Set up dialog window
+		dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
+		dialog.setContentView(R.layout.dialog_sponsor);
+
+		//Set the custom dialog components - text, image and button
+		TextView tvTitle = (TextView) dialog.findViewById(R.id.tv_dialog_sponsor_title);
+		TextView tvText = (TextView) dialog.findViewById(R.id.tv_dialog_sponsor_text);
+		ImageView ivImage = (ImageView) dialog.findViewById(R.id.iv_dialog_sponsor_image);
+		TextView tvUrl = (TextView) dialog.findViewById(R.id.tv_dialog_sponsor_url);
+		TextView tvAddress = (TextView) dialog.findViewById(R.id.tv_dialog_sponsor_address);
+		Button btClose = (Button) dialog.findViewById(R.id.bt_dialog_sponsor_close);
+		LinearLayout llUrl = (LinearLayout) dialog.findViewById(R.id.ll_dialog_sponsor_url);
+		LinearLayout llAddress = (LinearLayout) dialog.findViewById(R.id.ll_dialog_sponsor_address);
+
+		//Get info about the event
+		SQLiteDatabase db = SQLiteDatabase.openDatabase(getDatabasePath(GM.DB.NAME).getAbsolutePath(), null, SQLiteDatabase.NO_LOCALIZED_COLLATORS | SQLiteDatabase.OPEN_READONLY);
+		String lang = GM.getLang();
+		Cursor cursor = db.rawQuery("SELECT id, name_" + lang + " AS name, text_" + lang + " AS text, image, address_" + lang + " AS address, link, lat, lon FROM sponsor WHERE id = " + id + ";", null);
+		if (cursor.getCount() > 0){
+			cursor.moveToNext();
+
+			//Set title
+			tvTitle.setText(cursor.getString(1));
+
+			//Set description
+			tvText.setText(cursor.getString(2));
+
+			//Set image (if any)
+			if (cursor.getString(3) != null && !"".equals(cursor.getString(3))){
+				File f;
+				f = new File(getFilesDir().toString() + "/img/spo/preview/" + cursor.getString(3));
+				if (f.exists()){
+					//If the image exists, set it.
+					Bitmap myBitmap = BitmapFactory.decodeFile(getFilesDir().toString() + "/img/spo/preview/" + cursor.getString(3));
+					ivImage.setImageBitmap(myBitmap);
+				}
+				else {
+					//If not, create directories and download asynchronously
+					File fpath;
+					fpath = new File(getFilesDir().toString() + "/img/spo/preview/");
+					//noinspection ResultOfMethodCallIgnored
+					fpath.mkdirs();
+					new DownloadImage(GM.API.SERVER + "/img/spo/preview/" + cursor.getString(3), getFilesDir().toString() + "/img/spo/preview/" + cursor.getString(3), ivImage, GM.IMG.SIZE.PREVIEW).execute();
+				}
+				ivImage.setVisibility(View.VISIBLE);
+			}
+			else{
+				ivImage.setVisibility(View.GONE);
+			}
+
+			//Set address (if any)
+			if (cursor.getString(4) != null && !"".equals(cursor.getString(4))){
+				final String lat = cursor.getString(6);
+				final String lon = cursor.getString(7);
+				tvAddress.setText(cursor.getString(4));
+				tvAddress.setOnClickListener(new View.OnClickListener() {
+					@Override
+					public void onClick(View v) {
+						String url = "https://www.google.com/maps/preview/@" + lat + "," + lon + ",8z";
+						Intent i = new Intent(Intent.ACTION_VIEW);
+						i.setData(Uri.parse(url));
+						startActivity(i);
+					}
+				});
+			}
+			else{
+				llAddress.setVisibility(View.GONE);
+			}
+
+			//Set url (if any)
+			if (cursor.getString(5) != null && !"".equals(cursor.getString(3))){
+				final String url = cursor.getString(5);
+				tvUrl.setOnClickListener(new View.OnClickListener() {
+					@Override
+					public void onClick(View v) {
+						Intent i = new Intent(Intent.ACTION_VIEW);
+						i.setData(Uri.parse(url));
+						startActivity(i);
+					}
+				});
+			}
+			else{
+				llUrl.setVisibility(View.GONE);
+			}
+
+			//Close the db connection
+			cursor.close();
+			db.close();
+
+			//Set close button
+			btClose.setOnClickListener(new View.OnClickListener() {
+				@Override
+				public void onClick(View v) {
+					dialog.dismiss();
+				}
+			});
+
+
+
+			//Show the dialog
+			WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
+			lp.copyFrom(dialog.getWindow().getAttributes());
+			lp.width = WindowManager.LayoutParams.MATCH_PARENT;
+			lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
+			lp.gravity = Gravity.CENTER;
+			dialog.getWindow().setAttributes(lp);
+
+			//Show dialog
+			dialog.show();
+
+
+		}
+	}
+
+
+	/**
+	 * Not called from code, but referenced from activity_sponsor.xml.
+	 * Finishes the activity.
+	 *
+	 * @param v Ignored
+	 *
+	 * @see Activity#finish()
+	 */
+	public void finish(View v){
+		finish();
+	}
+
 }

+ 143 - 0
app/src/main/java/com/ivalentin/margolariak/UsActivity.java

@@ -0,0 +1,143 @@
+package com.ivalentin.margolariak;
+
+import android.annotation.SuppressLint;
+import android.app.Activity;
+import android.app.Dialog;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.view.Gravity;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import java.io.File;
+
+/**
+ * Activity with info about Gasteizko margolariak.
+ *
+ * @author Iñigo Valentin
+ *
+ * @see Activity
+ *
+ */
+public class UsActivity extends Activity {
+
+	/**
+	 * Runs when the activity is created.
+	 *
+	 * @param savedInstanceState Saved state of the activity.
+	 * @see Activity#onCreate(Bundle)
+	 */
+	@SuppressLint("InflateParams")
+	@Override
+	protected void onCreate(Bundle savedInstanceState) {
+
+		//Remove title bar.
+		this.requestWindowFeature(Window.FEATURE_NO_TITLE);
+		super.onCreate(savedInstanceState);
+
+		//Set layout.
+		setContentView(R.layout.activity_us);
+
+		//Assign layout items
+		LinearLayout llCuadrilla = (LinearLayout) findViewById(R.id.ll_us_cuadrilla);
+		LinearLayout llAssociation = (LinearLayout) findViewById(R.id.ll_us_asociacion);
+		LinearLayout llActivities = (LinearLayout) findViewById(R.id.ll_us_activities);
+		LinearLayout llTransparency = (LinearLayout) findViewById(R.id.ll_us_transparency);
+
+		//Set onClick listeners.
+		llCuadrilla.setOnClickListener(new View.OnClickListener() {
+			@Override
+			public void onClick(View v) {
+				openDialog(getString(R.string.us_cuadrilla), getString(R.string.us_cuadrilla_content), getResources().getDrawable(R.drawable.us_cuadrilla));
+			}
+		});
+		llAssociation.setOnClickListener(new View.OnClickListener() {
+			@Override
+			public void onClick(View v) {
+				openDialog(getString(R.string.us_association), getString(R.string.us_association_content), getResources().getDrawable(R.drawable.us_asociacion));
+			}
+		});
+		llActivities.setOnClickListener(new View.OnClickListener() {
+			@Override
+			public void onClick(View v) {
+				openDialog(getString(R.string.us_activities), getString(R.string.us_activities_content), getResources().getDrawable(R.drawable.us_activities));
+			}
+		});
+		llTransparency.setOnClickListener(new View.OnClickListener() {
+			@Override
+			public void onClick(View v) {
+				openDialog(getString(R.string.us_transparency), getString(R.string.us_transparency_content), getResources().getDrawable(R.drawable.us_transparency));
+			}
+		});
+
+	}
+
+	/**
+	 * Shows a dialog with expanded info.
+	 *
+	 * @param title The event id.
+	 * @param text The dialog text.
+	 * @param img The dialog image.
+	 */
+	@SuppressWarnings("ConstantConditions")
+	private void openDialog(final String title, final String text, final Drawable img){
+
+		//Create the dialog
+		final Dialog dialog = new Dialog(this);
+
+		//Set up dialog window
+		dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
+		dialog.setContentView(R.layout.dialog_us);
+
+		//Set the custom dialog components - text, image and button
+		TextView tvTitle = (TextView) dialog.findViewById(R.id.tv_dialog_us_title);
+		TextView tvText = (TextView) dialog.findViewById(R.id.tv_dialog_us_text);
+		ImageView ivImage = (ImageView) dialog.findViewById(R.id.iv_dialog_us_image);
+		Button btClose = (Button) dialog.findViewById(R.id.bt_dialog_us_close);
+
+		//Set text fields
+		tvTitle.setText(title);
+		tvText.setText(text);
+
+		//Set image
+		ivImage.setImageDrawable(img);
+
+		//Set close button
+		btClose.setOnClickListener(new View.OnClickListener() {
+			@Override
+			public void onClick(View v) {
+				dialog.dismiss();
+			}
+		});
+
+		//Show the dialog
+		WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
+		lp.copyFrom(dialog.getWindow().getAttributes());
+		lp.width = WindowManager.LayoutParams.MATCH_PARENT;
+		lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
+		lp.gravity = Gravity.CENTER;
+		dialog.getWindow().setAttributes(lp);
+
+		//Show dialog
+		dialog.show();
+	}
+
+
+	/**
+	 * Not called from code, but referenced from activity_sponsor.xml.
+	 * Finishes the activity.
+	 *
+	 * @param v Ignored
+	 *
+	 * @see Activity#finish()
+	 */
+	public void finish(View v){
+		finish();
+	}
+
+}

BIN
app/src/main/res/drawable/ul.png


BIN
app/src/main/res/drawable/us_activities.png


BIN
app/src/main/res/drawable/us_asociacion.png


BIN
app/src/main/res/drawable/us_cuadrilla.png


BIN
app/src/main/res/drawable/us_transparency.png


BIN
app/src/main/res/drawable/web.png


+ 119 - 0
app/src/main/res/layout/activity_sponsor.xml

@@ -0,0 +1,119 @@
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="fill_parent"
+    android:orientation="vertical"
+    android:background="@color/background_app">
+
+    <LinearLayout
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:background="@color/background_menu"
+        android:gravity="center_vertical"
+        android:orientation="horizontal"
+        android:padding="2dp">
+
+        <ImageView
+            android:contentDescription="@string/app_name"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:id="@+id/iv_logo"
+            android:src="@drawable/ic_launcher"
+            android:adjustViewBounds="true"
+            android:layout_weight=".2"
+            android:maxHeight="45dp"
+            android:maxWidth="45dp"
+            android:padding="1dp"
+            android:layout_gravity="center_vertical"/>
+
+        <LinearLayout
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_vertical|center"
+            android:layout_weight=".8"
+            android:gravity="center"
+            android:orientation="vertical" >
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:gravity="center"
+                android:text="@string/app_name"
+                android:contentDescription="@string/app_name"
+                android:textSize="18sp"
+                android:textStyle="bold"
+                android:textColor="@color/menu_entry"/>
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:gravity="center"
+                android:text="@string/pop_menu_sponsors"
+                android:textSize="20sp"
+                android:textColor="@color/menu_entry"/>
+
+        </LinearLayout>
+
+        <ImageButton
+            android:layout_width="40dp"
+            android:layout_height="match_parent"
+            android:src="@android:drawable/ic_menu_revert"
+            android:onClick="finish"
+            android:contentDescription="@string/accept"
+            android:layout_weight=".2"
+            android:id="@+id/bt_back"
+            app:srcCompat="@android:drawable/ic_menu_revert"
+            android:background="#00000000"/>
+
+    </LinearLayout>
+
+    <ScrollView
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:background="@color/background_app"
+        >
+
+        <LinearLayout
+            android:id="@+id/ll_sponsors_section"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical"
+            android:background="@drawable/section"
+            android:layout_marginBottom="40dp"
+            android:layout_marginEnd="10dp"
+            android:layout_marginLeft="10dp"
+            android:layout_marginRight="10dp"
+            android:layout_marginStart="10dp"
+            android:layout_marginTop="10dp">
+
+            <TextView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/pop_menu_sponsors"
+                android:textAppearance="?android:attr/textAppearanceLarge"
+                android:textStyle="bold"
+                tools:layout_width="match_parent"
+                android:background="@drawable/section_title"
+                android:paddingBottom="4dp"
+                android:paddingEnd="10dp"
+                android:paddingLeft="20dp"
+                android:paddingRight="10dp"
+                android:paddingStart="20dp"
+                android:paddingTop="4dp"
+                android:textColor="@color/section_title"/>
+
+            <LinearLayout
+                android:orientation="vertical"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:id="@+id/ll_sponsor_list"
+                android:layout_marginBottom="20dp">
+            </LinearLayout>
+
+        </LinearLayout>
+    </ScrollView>
+
+</LinearLayout>
+

+ 385 - 0
app/src/main/res/layout/activity_us.xml

@@ -0,0 +1,385 @@
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="fill_parent"
+    android:orientation="vertical"
+    android:background="@color/background_app">
+
+    <LinearLayout
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:background="@color/background_menu"
+        android:gravity="center_vertical"
+        android:orientation="horizontal"
+        android:padding="2dp">
+
+        <ImageView
+            android:contentDescription="@string/app_name"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:src="@drawable/ic_launcher"
+            android:adjustViewBounds="true"
+            android:layout_weight=".2"
+            android:maxHeight="45dp"
+            android:maxWidth="45dp"
+            android:padding="1dp"
+            android:layout_gravity="center_vertical"/>
+
+        <LinearLayout
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_vertical|center"
+            android:layout_weight=".8"
+            android:gravity="center"
+            android:orientation="vertical" >
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:gravity="center"
+                android:text="@string/app_name"
+                android:contentDescription="@string/app_name"
+                android:textSize="18sp"
+                android:textStyle="bold"
+                android:textColor="@color/menu_entry"/>
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:gravity="center"
+                android:text="@string/pop_menu_sponsors"
+                android:textSize="20sp"
+                android:textColor="@color/menu_entry"/>
+
+        </LinearLayout>
+
+        <ImageButton
+            android:layout_width="40dp"
+            android:layout_height="match_parent"
+            android:src="@android:drawable/ic_menu_revert"
+            android:onClick="finish"
+            android:contentDescription="@string/accept"
+            android:layout_weight=".2"
+            android:id="@+id/bt_back"
+            app:srcCompat="@android:drawable/ic_menu_revert"
+            android:background="#00000000"/>
+
+    </LinearLayout>
+
+    <ScrollView
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:background="@color/background_app"
+        >
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical"
+            android:background="@drawable/section"
+            android:layout_marginBottom="40dp"
+            android:layout_marginEnd="10dp"
+            android:layout_marginLeft="10dp"
+            android:layout_marginRight="10dp"
+            android:layout_marginStart="10dp"
+            android:layout_marginTop="10dp">
+
+            <TextView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/pop_menu_sponsors"
+                android:textAppearance="?android:attr/textAppearanceLarge"
+                android:textStyle="bold"
+                tools:layout_width="match_parent"
+                android:background="@drawable/section_title"
+                android:paddingBottom="4dp"
+                android:paddingEnd="10dp"
+                android:paddingLeft="20dp"
+                android:paddingRight="10dp"
+                android:paddingStart="20dp"
+                android:paddingTop="4dp"
+                android:textColor="@color/section_title"/>
+
+            <LinearLayout
+                xmlns:android="http://schemas.android.com/apk/res/android"
+                xmlns:tools="http://schemas.android.com/tools"
+                android:id="@+id/ll_us_cuadrilla"
+                android:orientation="vertical"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@drawable/entry"
+                android:padding="7dp"
+                android:layout_margin="8dp">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:textAppearance="?android:attr/textAppearanceMedium"
+                    android:textColor="@color/entry_title"
+                    android:textStyle="bold"
+                    android:text="@string/us_cuadrilla"/>
+
+                <LinearLayout
+                    android:orientation="horizontal"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent">
+
+                    <ImageView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:maxWidth="110dp"
+                        android:contentDescription="@string/app_cdesc"
+                        android:minHeight="30dp"
+                        android:minWidth="30dp"
+                        android:layout_gravity="top|center_vertical"
+                        android:padding="0.5dp"
+                        android:layout_margin="3dp"
+                        android:adjustViewBounds="true"
+                        android:maxHeight="100dp"
+                        android:src="@drawable/us_cuadrilla"/>
+
+                    <LinearLayout
+                        android:orientation="vertical"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="top">
+
+                        <TextView
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:textAppearance="@android:style/TextAppearance.Medium"
+                            android:layout_margin="5dp"
+                            android:maxLines="4"
+                            android:minHeight="30dp"
+                            android:text="@string/us_cuadrilla_content"/>
+
+                        <ImageView
+                            android:layout_width="match_parent"
+                            android:layout_weight="1"
+                            android:layout_height="40dp"
+                            android:layout_marginTop="-40dp"
+                            android:background="@drawable/gradient_v_white"
+                            android:adjustViewBounds="true"
+                            android:contentDescription="@string/empty"
+                            tools:ignore="InefficientWeight"/>
+
+                    </LinearLayout>
+
+                </LinearLayout>
+
+            </LinearLayout>
+
+            <LinearLayout
+                xmlns:android="http://schemas.android.com/apk/res/android"
+                xmlns:tools="http://schemas.android.com/tools"
+                android:id="@+id/ll_us_asociacion"
+                android:orientation="vertical"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@drawable/entry"
+                android:padding="7dp"
+                android:layout_margin="8dp">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:textAppearance="?android:attr/textAppearanceMedium"
+                    android:textColor="@color/entry_title"
+                    android:textStyle="bold"
+                    android:text="@string/us_association"/>
+
+                <LinearLayout
+                    android:orientation="horizontal"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent">
+
+                    <ImageView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:maxWidth="110dp"
+                        android:contentDescription="@string/app_cdesc"
+                        android:minHeight="30dp"
+                        android:minWidth="30dp"
+                        android:layout_gravity="top|center_vertical"
+                        android:padding="0.5dp"
+                        android:layout_margin="3dp"
+                        android:adjustViewBounds="true"
+                        android:maxHeight="100dp"
+                        android:src="@drawable/us_asociacion"/>
+
+                    <LinearLayout
+                        android:orientation="vertical"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="top">
+
+                        <TextView
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:textAppearance="@android:style/TextAppearance.Medium"
+                            android:layout_margin="5dp"
+                            android:maxLines="4"
+                            android:minHeight="30dp"
+                            android:text="@string/us_association_content"/>
+
+                        <ImageView
+                            android:layout_width="match_parent"
+                            android:layout_weight="1"
+                            android:layout_height="40dp"
+                            android:layout_marginTop="-40dp"
+                            android:background="@drawable/gradient_v_white"
+                            android:adjustViewBounds="true"
+                            android:contentDescription="@string/empty"
+                            tools:ignore="InefficientWeight"/>
+
+                    </LinearLayout>
+
+                </LinearLayout>
+
+            </LinearLayout>
+
+            <LinearLayout
+                xmlns:android="http://schemas.android.com/apk/res/android"
+                xmlns:tools="http://schemas.android.com/tools"
+                android:id="@+id/ll_us_activities"
+                android:orientation="vertical"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@drawable/entry"
+                android:padding="7dp"
+                android:layout_margin="8dp">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:textAppearance="?android:attr/textAppearanceMedium"
+                    android:textColor="@color/entry_title"
+                    android:textStyle="bold"
+                    android:text="@string/us_activities"/>
+
+                <LinearLayout
+                    android:orientation="horizontal"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent">
+
+                    <ImageView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:maxWidth="110dp"
+                        android:contentDescription="@string/app_cdesc"
+                        android:minHeight="30dp"
+                        android:minWidth="30dp"
+                        android:layout_gravity="top|center_vertical"
+                        android:padding="0.5dp"
+                        android:layout_margin="3dp"
+                        android:adjustViewBounds="true"
+                        android:maxHeight="100dp"
+                        android:src="@drawable/us_activities"/>
+
+                    <LinearLayout
+                        android:orientation="vertical"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="top">
+
+                        <TextView
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:textAppearance="@android:style/TextAppearance.Medium"
+                            android:layout_margin="5dp"
+                            android:maxLines="4"
+                            android:minHeight="30dp"
+                            android:text="@string/us_activities_content"/>
+
+                        <ImageView
+                            android:layout_width="match_parent"
+                            android:layout_weight="1"
+                            android:layout_height="40dp"
+                            android:layout_marginTop="-40dp"
+                            android:background="@drawable/gradient_v_white"
+                            android:adjustViewBounds="true"
+                            android:contentDescription="@string/empty"
+                            tools:ignore="InefficientWeight"/>
+
+                    </LinearLayout>
+
+                </LinearLayout>
+
+            </LinearLayout>
+
+            <LinearLayout
+                xmlns:android="http://schemas.android.com/apk/res/android"
+                xmlns:tools="http://schemas.android.com/tools"
+                android:id="@+id/ll_us_transparency"
+                android:orientation="vertical"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@drawable/entry"
+                android:padding="7dp"
+                android:layout_margin="8dp">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:textAppearance="?android:attr/textAppearanceMedium"
+                    android:textColor="@color/entry_title"
+                    android:textStyle="bold"
+                    android:text="@string/us_transparency"/>
+
+                <LinearLayout
+                    android:orientation="horizontal"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent">
+
+                    <ImageView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:maxWidth="110dp"
+                        android:contentDescription="@string/app_cdesc"
+                        android:minHeight="30dp"
+                        android:minWidth="30dp"
+                        android:layout_gravity="top|center_vertical"
+                        android:padding="0.5dp"
+                        android:layout_margin="3dp"
+                        android:adjustViewBounds="true"
+                        android:maxHeight="100dp"
+                        android:src="@drawable/us_transparency"/>
+
+                    <LinearLayout
+                        android:orientation="vertical"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="top">
+
+                        <TextView
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:textAppearance="@android:style/TextAppearance.Medium"
+                            android:layout_margin="5dp"
+                            android:maxLines="4"
+                            android:minHeight="30dp"
+                            android:text="@string/us_transparency_content"/>
+
+                        <ImageView
+                            android:layout_width="match_parent"
+                            android:layout_weight="1"
+                            android:layout_height="40dp"
+                            android:layout_marginTop="-40dp"
+                            android:background="@drawable/gradient_v_white"
+                            android:adjustViewBounds="true"
+                            android:contentDescription="@string/empty"
+                            tools:ignore="InefficientWeight"/>
+
+                    </LinearLayout>
+
+                </LinearLayout>
+
+            </LinearLayout>
+
+        </LinearLayout>
+    </ScrollView>
+
+</LinearLayout>
+

+ 128 - 0
app/src/main/res/layout/dialog_sponsor.xml

@@ -0,0 +1,128 @@
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="fill_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical"
+    android:background="@drawable/section"
+    android:paddingBottom="15dp">
+
+    <TextView
+        android:id="@+id/tv_dialog_sponsor_title"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:textAppearance="?android:attr/textAppearanceLarge"
+        android:textStyle="bold"
+        android:background="@drawable/section_title"
+        android:paddingBottom="4dp"
+        android:paddingEnd="10dp"
+        android:paddingLeft="20dp"
+        android:paddingRight="10dp"
+        android:paddingStart="20dp"
+        android:paddingTop="4dp"
+        android:textColor="@color/section_title"
+        android:layout_alignParentTop="true"/>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="fill_parent"
+        android:orientation="vertical"
+        android:background="@drawable/entry"
+        android:layout_margin="8dp"
+        android:padding="7dp"
+        >
+
+        <ImageView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            app:srcCompat="@drawable/photo_placeholder_thumb"
+            android:id="@+id/iv_dialog_sponsor_image"
+            android:maxHeight="140dp"
+            android:adjustViewBounds="true"/>
+
+        <TextView
+            android:id="@+id/tv_dialog_sponsor_text"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_margin="7dp"
+            android:textAppearance="@android:style/TextAppearance.Medium"/>
+
+        <LinearLayout
+            android:orientation="vertical"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent">
+
+            <LinearLayout
+                android:orientation="horizontal"
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:id="@+id/ll_dialog_sponsor_url">
+
+                <ImageView
+                    android:layout_width="30dp"
+                    android:layout_height="30dp"
+                    android:layout_marginBottom="20dp"
+                    android:layout_marginStart="15dp"
+                    android:layout_marginRight="15dp"
+                    android:layout_marginLeft="15dp"
+                    android:layout_marginEnd="15dp"
+                    android:layout_marginTop="20dp"
+                    android:adjustViewBounds="true"
+                    android:src="@drawable/web"/>
+
+                <TextView
+                    android:text="@string/sponsors_url"
+                    android:layout_height="match_parent"
+                    android:id="@+id/tv_dialog_sponsor_url"
+                    android:layout_weight="1"
+                    android:gravity="center_vertical"
+                    android:layout_width="match_parent"
+                    android:textColor="@color/background_menu"
+                    android:textSize="16sp"
+                    android:textStyle="normal|bold"/>
+            </LinearLayout>
+
+            <LinearLayout
+                android:orientation="horizontal"
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:id="@+id/ll_dialog_sponsor_address">
+
+                <ImageView
+                    android:layout_width="30dp"
+                    android:layout_height="30dp"
+                    android:adjustViewBounds="false"
+                    android:layout_marginBottom="20dp"
+                    android:layout_marginStart="15dp"
+                    android:layout_marginRight="15dp"
+                    android:layout_marginLeft="15dp"
+                    android:layout_marginEnd="15dp"
+                    android:layout_marginTop="20dp"
+                    android:src="@drawable/pinpoint"/>
+
+                <TextView
+                    android:layout_height="match_parent"
+                    android:id="@+id/tv_dialog_sponsor_address"
+                    android:layout_weight="1"
+                    android:gravity="center_vertical"
+                    android:layout_width="match_parent"
+                    android:textStyle="normal|bold"
+                    android:textSize="16sp"
+                    android:textColor="@color/background_menu"/>
+            </LinearLayout>
+        </LinearLayout>
+
+    </LinearLayout>
+
+    <Button
+        android:id="@+id/bt_dialog_sponsor_close"
+        android:layout_width="match_parent"
+        android:layout_margin="5dp"
+        android:background="@drawable/button_selector"
+        android:text="@string/notification_close"
+        android:textColor="@color/input_text_color"
+        android:textStyle="bold"
+        android:layout_alignParentBottom="true"
+        android:layout_height="50dp"/>
+
+</LinearLayout>

+ 64 - 0
app/src/main/res/layout/dialog_us.xml

@@ -0,0 +1,64 @@
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="fill_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical"
+    android:background="@drawable/section"
+    android:paddingBottom="15dp">
+
+    <TextView
+        android:id="@+id/tv_dialog_us_title"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:textAppearance="?android:attr/textAppearanceLarge"
+        android:textStyle="bold"
+        android:background="@drawable/section_title"
+        android:paddingBottom="4dp"
+        android:paddingEnd="10dp"
+        android:paddingLeft="20dp"
+        android:paddingRight="10dp"
+        android:paddingStart="20dp"
+        android:paddingTop="4dp"
+        android:textColor="@color/section_title"
+        android:layout_alignParentTop="true"/>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="fill_parent"
+        android:orientation="vertical"
+        android:background="@drawable/entry"
+        android:layout_margin="8dp"
+        android:padding="7dp"
+        >
+
+        <ImageView
+            android:id="@+id/iv_dialog_us_image"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:adjustViewBounds="true"
+            android:maxHeight="140dp"
+            android:minHeight="100dp"
+            app:srcCompat="@drawable/photo_placeholder_thumb"/>
+
+        <TextView
+            android:id="@+id/tv_dialog_us_text"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_margin="7dp"
+            android:textAppearance="@android:style/TextAppearance.Medium"/>
+
+    </LinearLayout>
+
+    <Button
+        android:id="@+id/bt_dialog_us_close"
+        android:layout_width="match_parent"
+        android:layout_margin="5dp"
+        android:background="@drawable/button_selector"
+        android:text="@string/notification_close"
+        android:textColor="@color/input_text_color"
+        android:textStyle="bold"
+        android:layout_alignParentBottom="true"
+        android:layout_height="50dp"/>
+
+</LinearLayout>

+ 425 - 27
app/src/main/res/layout/fragment_layout_lablanca_nofestivals.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <com.ivalentin.margolariak.CustomScrollView
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
@@ -8,38 +9,435 @@
     tools:ignore="Overdraw">
 
     <LinearLayout
-        android:orientation="vertical"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:background="@drawable/section"
-        android:layout_margin="10dp">
+        android:layout_height="wrap_content"
+        android:orientation="vertical"
+        android:padding="10dp">
 
-        <TextView
+        <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:text="@string/lablanca_title"
-            android:textAppearance="?android:attr/textAppearanceLarge"
-            android:textStyle="bold"
-            tools:layout_width="match_parent"
-            android:background="@drawable/section_title"
-            android:paddingBottom="4dp"
-            android:paddingEnd="10dp"
-            android:paddingLeft="20dp"
-            android:paddingRight="10dp"
-            android:paddingStart="20dp"
-            android:paddingTop="4dp"
-            android:textColor="@color/section_title"/>
-
-        <TextView
-            android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            android:textAppearance="@android:style/TextAppearance.Medium"
-            android:text="@string/lablanca_nofestivals"
-            android:id="@+id/textView11"
-            android:background="@drawable/entry"
-            android:padding="7dp"
-            android:layout_margin="8dp"/>
+            android:background="@drawable/section"
+            android:orientation="vertical"
+            >
+
+            <TextView
+                android:id="@+id/textView4"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@drawable/section_title"
+                android:paddingBottom="4dp"
+                android:paddingEnd="10dp"
+                android:paddingLeft="20dp"
+                android:paddingRight="10dp"
+                android:paddingStart="20dp"
+                android:paddingTop="4dp"
+                android:text="@string/lablanca_title"
+                android:textAppearance="?android:attr/textAppearanceLarge"
+                android:textColor="@color/section_title"
+                android:textStyle="bold"
+                tools:layout_width="match_parent"/>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_margin="8dp"
+                android:background="@drawable/entry"
+                android:orientation="vertical"
+                android:padding="7dp">
+
+                <TextView
+                    android:id="@+id/tv_lablanca_nofestivals"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginBottom="15dp"
+                    android:text="@string/lablanca_nofestivals"
+                    android:textAppearance="@android:style/TextAppearance.Medium"/>
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:layout_marginBottom="15dp"
+                    android:orientation="horizontal">
+
+                    <ImageView
+                        android:id="@+id/imageView4"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginEnd="10dp"
+                        android:layout_marginLeft="10dp"
+                        android:layout_marginRight="10dp"
+                        android:layout_marginStart="10dp"
+                        android:layout_marginTop="5dp"
+                        android:adjustViewBounds="false"
+                        android:baselineAlignBottom="true"
+                        android:minHeight="15dp"
+                        android:minWidth="15dp"
+                        android:src="@drawable/ul"
+                        app:srcCompat="@drawable/ul"/>
+
+                    <LinearLayout
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:orientation="vertical">
+
+                        <TextView
+                            android:id="@+id/textView2"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:text="@string/lablanca_nofestivals_1_title"
+                            android:textColor="#001133"
+                            android:textSize="20sp"
+                            android:textStyle="bold"/>
+
+                        <TextView
+                            android:id="@+id/textView3"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="10dp"
+                            android:layout_marginStart="10dp"
+                            android:text="@string/lablanca_nofestivals_1"
+                            android:textAppearance="@android:style/TextAppearance.Medium"/>
+                    </LinearLayout>
+                </LinearLayout>
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:layout_marginBottom="15dp"
+                    android:orientation="horizontal">
+
+                    <ImageView
+                        android:id="@+id/imageView4"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginEnd="10dp"
+                        android:layout_marginLeft="10dp"
+                        android:layout_marginRight="10dp"
+                        android:layout_marginStart="10dp"
+                        android:layout_marginTop="5dp"
+                        android:adjustViewBounds="false"
+                        android:baselineAlignBottom="false"
+                        android:minHeight="15dp"
+                        android:minWidth="15dp"
+                        android:src="@drawable/ul"
+                        app:srcCompat="@drawable/ul"/>
+
+                    <LinearLayout
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:orientation="vertical">
+
+                        <TextView
+                            android:id="@+id/textView2"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:text="@string/lablanca_nofestivals_2_title"
+                            android:textColor="#001133"
+                            android:textSize="20sp"
+                            android:textStyle="bold"/>
+
+                        <TextView
+                            android:id="@+id/textView3"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="10dp"
+                            android:layout_marginStart="10dp"
+                            android:text="@string/lablanca_nofestivals_2"
+                            android:textAppearance="@android:style/TextAppearance.Medium"/>
+
+                    </LinearLayout>
+                </LinearLayout>
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:layout_marginBottom="15dp"
+                    android:orientation="horizontal">
+
+                    <ImageView
+                        android:id="@+id/imageView4"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginEnd="10dp"
+                        android:layout_marginLeft="10dp"
+                        android:layout_marginRight="10dp"
+                        android:layout_marginStart="10dp"
+                        android:layout_marginTop="5dp"
+                        android:adjustViewBounds="false"
+                        android:baselineAlignBottom="false"
+                        android:minHeight="15dp"
+                        android:minWidth="15dp"
+                        android:src="@drawable/ul"
+                        app:srcCompat="@drawable/ul"/>
+
+                    <LinearLayout
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:orientation="vertical">
+
+                        <TextView
+                            android:id="@+id/textView2"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:text="@string/lablanca_nofestivals_3_title"
+                            android:textColor="#001133"
+                            android:textSize="20sp"
+                            android:textStyle="bold"/>
+
+                        <TextView
+                            android:id="@+id/textView3"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="10dp"
+                            android:layout_marginStart="10dp"
+                            android:text="@string/lablanca_nofestivals_3"
+                            android:textAppearance="@android:style/TextAppearance.Medium"/>
+                    </LinearLayout>
+                </LinearLayout>
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:layout_marginBottom="15dp"
+                    android:orientation="horizontal">
+
+                    <ImageView
+                        android:id="@+id/imageView4"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginEnd="10dp"
+                        android:layout_marginLeft="10dp"
+                        android:layout_marginRight="10dp"
+                        android:layout_marginStart="10dp"
+                        android:layout_marginTop="5dp"
+                        android:adjustViewBounds="false"
+                        android:baselineAlignBottom="false"
+                        android:minHeight="15dp"
+                        android:minWidth="15dp"
+                        android:src="@drawable/ul"
+                        app:srcCompat="@drawable/ul"/>
+
+                    <LinearLayout
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:orientation="vertical">
+
+                        <TextView
+                            android:id="@+id/textView2"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:text="@string/lablanca_nofestivals_4_title"
+                            android:textColor="#001133"
+                            android:textSize="20sp"
+                            android:textStyle="bold"/>
+
+                        <TextView
+                            android:id="@+id/textView3"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="10dp"
+                            android:layout_marginStart="10dp"
+                            android:text="@string/lablanca_nofestivals_4"
+                            android:textAppearance="@android:style/TextAppearance.Medium"/>
+                    </LinearLayout>
+                </LinearLayout>
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:layout_marginBottom="15dp"
+                    android:orientation="horizontal">
+
+                    <ImageView
+                        android:id="@+id/imageView4"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginEnd="10dp"
+                        android:layout_marginLeft="10dp"
+                        android:layout_marginRight="10dp"
+                        android:layout_marginStart="10dp"
+                        android:layout_marginTop="5dp"
+                        android:adjustViewBounds="false"
+                        android:baselineAlignBottom="false"
+                        android:minHeight="15dp"
+                        android:minWidth="15dp"
+                        android:src="@drawable/ul"
+                        app:srcCompat="@drawable/ul"/>
+
+                    <LinearLayout
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:orientation="vertical">
+
+                        <TextView
+                            android:id="@+id/textView2"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:text="@string/lablanca_nofestivals_5_title"
+                            android:textColor="#001133"
+                            android:textSize="20sp"
+                            android:textStyle="bold"/>
+
+                        <TextView
+                            android:id="@+id/textView3"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="10dp"
+                            android:layout_marginStart="10dp"
+                            android:text="@string/lablanca_nofestivals_5"
+                            android:textAppearance="@android:style/TextAppearance.Medium"/>
+                    </LinearLayout>
+                </LinearLayout>
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:layout_marginBottom="15dp"
+                    android:orientation="horizontal">
+
+                    <ImageView
+                        android:id="@+id/imageView4"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginEnd="10dp"
+                        android:layout_marginLeft="10dp"
+                        android:layout_marginRight="10dp"
+                        android:layout_marginStart="10dp"
+                        android:layout_marginTop="5dp"
+                        android:adjustViewBounds="false"
+                        android:baselineAlignBottom="false"
+                        android:minHeight="15dp"
+                        android:minWidth="15dp"
+                        android:src="@drawable/ul"
+                        app:srcCompat="@drawable/ul"/>
+
+                    <LinearLayout
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:orientation="vertical">
+
+                        <TextView
+                            android:id="@+id/textView2"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:text="@string/lablanca_nofestivals_6_title"
+                            android:textColor="#001133"
+                            android:textSize="20sp"
+                            android:textStyle="bold"/>
+
+                        <TextView
+                            android:id="@+id/textView3"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="10dp"
+                            android:layout_marginStart="10dp"
+                            android:text="@string/lablanca_nofestivals_6"
+                            android:textAppearance="@android:style/TextAppearance.Medium"/>
+                    </LinearLayout>
+                </LinearLayout>
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:layout_marginBottom="15dp"
+                    android:orientation="horizontal">
+
+                    <ImageView
+                        android:id="@+id/imageView4"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginEnd="10dp"
+                        android:layout_marginLeft="10dp"
+                        android:layout_marginRight="10dp"
+                        android:layout_marginStart="10dp"
+                        android:layout_marginTop="5dp"
+                        android:adjustViewBounds="false"
+                        android:baselineAlignBottom="false"
+                        android:minHeight="15dp"
+                        android:minWidth="15dp"
+                        android:src="@drawable/ul"
+                        app:srcCompat="@drawable/ul"/>
+
+                    <LinearLayout
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:orientation="vertical">
+
+                        <TextView
+                            android:id="@+id/textView2"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:text="@string/lablanca_nofestivals_7_title"
+                            android:textColor="#001133"
+                            android:textSize="20sp"
+                            android:textStyle="bold"/>
+
+                        <TextView
+                            android:id="@+id/textView3"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="10dp"
+                            android:layout_marginStart="10dp"
+                            android:text="@string/lablanca_nofestivals_7"
+                            android:textAppearance="@android:style/TextAppearance.Medium"/>
+                    </LinearLayout>
+                </LinearLayout>
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:layout_marginBottom="15dp"
+                    android:orientation="horizontal">
+
+                    <ImageView
+                        android:id="@+id/imageView4"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginEnd="10dp"
+                        android:layout_marginLeft="10dp"
+                        android:layout_marginRight="10dp"
+                        android:layout_marginStart="10dp"
+                        android:layout_marginTop="5dp"
+                        android:adjustViewBounds="false"
+                        android:baselineAlignBottom="false"
+                        android:minHeight="15dp"
+                        android:minWidth="15dp"
+                        android:src="@drawable/ul"
+                        app:srcCompat="@drawable/ul"/>
+
+                    <LinearLayout
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:orientation="vertical">
+
+                        <TextView
+                            android:id="@+id/textView2"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:text="@string/lablanca_nofestivals_8_title"
+                            android:textColor="#001133"
+                            android:textSize="20sp"
+                            android:textStyle="bold"/>
+
+                        <TextView
+                            android:id="@+id/textView3"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="10dp"
+                            android:layout_marginStart="10dp"
+                            android:text="@string/lablanca_nofestivals_8"
+                            android:textAppearance="@android:style/TextAppearance.Medium"/>
+                    </LinearLayout>
+                </LinearLayout>
+
+            </LinearLayout>
+
+        </LinearLayout>
+
     </LinearLayout>
 
 
+
+
 </com.ivalentin.margolariak.CustomScrollView>

+ 75 - 0
app/src/main/res/layout/row_sponsor.xml

@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:orientation="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:background="@drawable/entry"
+    android:padding="7dp"
+    android:layout_margin="8dp">
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textAppearance="?android:attr/textAppearanceMedium"
+        android:textColor="@color/entry_title"
+        android:textStyle="bold"
+        android:id="@+id/tv_row_sponsor_name" />
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:id="@+id/tv_row_sponsor_id"
+        android:visibility="gone" />
+
+    <LinearLayout
+        android:orientation="horizontal"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+        <ImageView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:id="@+id/iv_row_sponsor_image"
+            android:maxWidth="110dp"
+            android:contentDescription="@string/app_cdesc"
+            android:minHeight="30dp"
+            android:minWidth="30dp"
+            android:layout_gravity="top|center_vertical"
+            android:background="@color/image_border"
+            android:padding="0.5dp"
+            android:layout_margin="3dp"
+            android:adjustViewBounds="true"
+            android:maxHeight="100dp"/>
+
+        <LinearLayout
+            android:orientation="vertical"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="top">
+
+            <TextView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:id="@+id/tv_row_sponsor_text"
+                android:textAppearance="@android:style/TextAppearance.Medium"
+                android:layout_margin="5dp"
+                android:maxLines="4"
+                android:minHeight="30dp"/>
+
+            <ImageView
+                android:layout_width="match_parent"
+                android:layout_weight="1"
+                android:layout_height="40dp"
+                android:layout_marginTop="-40dp"
+                android:background="@drawable/gradient_v_white"
+                android:adjustViewBounds="true"
+                android:contentDescription="@string/empty"
+                tools:ignore="InefficientWeight"/>
+
+        </LinearLayout>
+
+    </LinearLayout>
+
+</LinearLayout>

+ 32 - 2
app/src/main/res/values-en/strings.xml

@@ -159,12 +159,42 @@
 	<string name="dialog_sync_failed_title">Synchronization failed</string>
 	<string name="dialog_sync_failed_text">Couldn\'t download content.\n\nMake sure you have a network connection and try again.</string>
 	<string name="dialog_sync_failed_close">Close</string>
-	<string name="lablanca_nofestivals">Las Fiestas de La Blanca. Esos días, del 4 al 9 de agosto, en los que Vitoria-Gasteiz se transforma. Se llena de color y alegría, y en cada esquina puedes encontrar actividades y espectáculos. Todos las estamos esperando.\n\nPor desgracia, aún hay que esperar más.\n\nNosotros ya estamos trabajando en ello. Tan pronto como vayamos sabiendo más, aquí iremos publicando nuestro programa y otra información sobre las fiestas.</string>
+	<string name="lablanca_nofestivals"><![CDATA[Las Fiestas de La Blanca. Esos días, del 4 al 9 de agosto, en los que Vitoria-Gasteiz se transforma. Se llena de color y alegría, y en cada esquina puedes encontrar actividades y espectáculos. Todos las estamos esperando.\n\nPor desgracia, aún hay que esperar más.\n\nNosotros ya estamos trabajando en ello. Tan pronto como vayamos sabiendo más, aquí iremos publicando nuestro programa y otra información sobre las fiestas. Para ir abriendo boca, dejanos contarte algunas de las claves del plan Margolari de fiestas:]]></string>
+	<string name="lablanca_nofestivals_1_title">Planes que se adaptan a tí:</string>
+	<string name="lablanca_nofestivals_1"><![CDATA[Puedes apuntarte días sueltos, o elegir entre las varias ofertas por varios días para conseguir descuentos.]]></string>
+	<string name="lablanca_nofestivals_2_title">Dormir es de cobardes:</string>
+	<string name="lablanca_nofestivals_2"><![CDATA[Casi todos los días organizamos actividades desde la mañana, ya sean almuerzos, actividades para el público general o competiciones en los Herri Kirolak. Después solemos ir a comer juntos, antes de los paseillos, y después, siempre cenamos juntos. Y por la noche, hasta que el cuerpo aguante!]]></string>
+	<string name="lablanca_nofestivals_3_title">Especialistas en paseillos:</string>
+	<string name="lablanca_nofestivals_3"><![CDATA[A la hora de hacer paseillos, no hay quien nos gane. Con nuestra furgoneta siempre abierta a la cabeza, y la txaranga El Postín animando desde atrás, es imposible aburrirse. Y entre paseillos tampoco descansamos, siempre estamos organizando cosas: juegos, carreras, bingos, música, ida a las barracas...]]></string>
+	<string name="lablanca_nofestivals_4_title">Nos gusta comer:</string>
+	<string name="lablanca_nofestivals_4"><![CDATA[No queremos que un Margolari pase hambre. Las comidas en Gasteizko Margolariak son en restaurante, con un buen men&ú, que nos den fuerzas para aguantar el resto del día. Las cenas las hacemos bien en la calle o bien en restaurante, pero siempre con comida buena y caliente. Los mismo que los almuerzos.]]></string>
+	<string name="lablanca_nofestivals_5_title">Y beber:</string>
+	<string name="lablanca_nofestivals_5"><![CDATA[Sea cual sea tu veneno, lo tenemos: Ron, vodka, kalimotxo, cerveza, whiskey, agua, refrescos Durante los paseillos (y varias veces m&aacute;s a lo largo del d&iacute;a) en la furgoneta tendr&aacute;s barra libre de todo lo que quieras.]]></string>
+	<string name="lablanca_nofestivals_6_title">Nos apuntamos a un bombardeo:</string>
+	<string name="lablanca_nofestivals_6"><![CDATA[Carrera de Barricas, Herri Kirolak... Nunca hemos faltado a nada. Ganar, lo que es ganar, aún lo tenemos pendiente, pero lo pasamos bien. Así que ya sabes, si quieres representar a Gasteizko Margolariak, avísanos!]]></string>
+	<string name="lablanca_nofestivals_7_title">Por la ciudad, para la ciudad:</string>
+	<string name="lablanca_nofestivals_7"><![CDATA[No nos gusta mirarnos el ombligo. Aunque la mayor parte de actividades que organizamos son para los miembros de Gasteizko Margolariak, hay otras que son para todo el público. Hasta ahora hemos organizado talleres de Cesta Punta para txikis, Margotxef (un concurso de cocina infantil), visitas a residencias de ancianos...]]></string>
+	<string name="lablanca_nofestivals_8_title">Margolaris:</string>
+	<string name="lablanca_nofestivals_8"><![CDATA[Todo lo demás no sirve de nada si en una cuadrilla no hay buen ambiente. En Gasteizko Margolariak podemos presumir de gente cercana, participativa, capaz de hacer que desde el primer día ya te sientas como en casa. Además, los organizadores son gente cercana, que escucha y está siempre abierta a nuevas propuestas. Por esto, quien prueba, repite.]]></string>
 	<string name="home_section_location_text_calculating">Calculating distance…</string>
 	<string name="pop_menu_share">Share</string>
 	<string name="pop_menu_about">About us</string>
 	<string name="pop_menu_settings">Settings</string>
-	<string name="pop_menu_sponsors">-</string>
+	<string name="pop_menu_sponsors">Sponsors</string>
+	<string name="sponsors_url">Open web site</string>
+
+	<!-- Us -->
+	<string name="us_title">Nosotros</string>
+	<string name="us_association">La asociación</string>
+	<string name="us_association_content">La Asociación Cultural Gasteizko Margolariak nace en el año 2013 con la idea de estimular la participación ciudadana y fortalecer la cultura y las tradiciones de Vitoria-Gasteiz.\n\nEn nuestro nombre se refleja un barrio en el que las calles nos recuerdan a grandes pintores: el barrio de San Martín. Estamos representados en los barrios, y creemos que son la esencia de esta ciudad.</string>
+	<string name="us_cuadrilla">La cuadrilla</string>
+	<string name="us_cuadrilla_content">Nos convertimos en Cuadrilla de Blusas y Neskas en 2013, y en ese mismo año, miembros de la Comisión de Blusas y Neskas.\n\nDesde entonces no hemos hecho mas que crecer junto con todos los que han decidido, año tras año, apostar por nosotros.</string>
+	<string name="us_activities">Lo que hacemos</string>
+	<string name="us_activities_content">Excursiones, partidos, causas benéficas... No solo se nos ve en fiestas.\n\nCreemos que, como Cuadrilla de Blusas y Neskas, existimos por y para la ciudad, y por eso organizamos actividades durante todo el año, para todo aquel que quiera acompañarnos.</string>
+	<string name="us_transparency">Transparencia</string>
+	<string name="us_transparency_content">¿Te preocupa saber dónde va tu dinero? En Gasteizko Margolariak queremos que estés tranquilo.\n\nMuchas de nuestras actividades son gratuitas. Otras, como las fiestas de La Blanca, tienen una cuota de inscripción. Gasteizko Margolariak no es una empresa, es una Asociación Cultural, y como tal, no tenemos beneficios.\n\nQueremos ser transparentes, y por eso, empezando en 2017, pondremos a tu disposición nuestras cuentas de manera online, para que sepas que cada euro se reinvierte en ti.</string>
+
+
 	<string name="preferences">Preferences</string>
 	<string name="preferences_info">Information</string>
 	<string name="preferences_info_feedback">Feedback</string>

+ 32 - 2
app/src/main/res/values-eu-rES/strings.xml

@@ -162,14 +162,44 @@
 	<string name="dialog_sync_text_7">Llegando tarde…</string>
 	<string name="dialog_sync_text_8">¿Cabe más gente en el Foro Margolari?</string>
 	<string name="dialog_sync_failed_text">No se pudierdon descargar los contenidos\n\nAsegúrate de que dispones de conexión a internet e inténtalo de nuevo.</string>
-	<string name="lablanca_nofestivals">Las Fiestas de La Blanca. Esos días, del 4 al 9 de agosto, en los que Vitoria-Gasteiz se transforma. Se llena de color y alegría, y en cada esquina puedes encontrar actividades y espectáculos. Todos las estamos esperando.\n\nPor desgracia, aún hay que esperar más.\n\nNosotros ya estamos trabajando en ello. Tan pronto como vayamos sabiendo más, aquí iremos publicando nuestro programa y otra información sobre las fiestas.</string>
+	<string name="lablanca_nofestivals"><![CDATA[Las Fiestas de La Blanca. Esos días, del 4 al 9 de agosto, en los que Vitoria-Gasteiz se transforma. Se llena de color y alegría, y en cada esquina puedes encontrar actividades y espectáculos. Todos las estamos esperando.\n\nPor desgracia, aún hay que esperar más.\n\nNosotros ya estamos trabajando en ello. Tan pronto como vayamos sabiendo más, aquí iremos publicando nuestro programa y otra información sobre las fiestas. Para ir abriendo boca, dejanos contarte algunas de las claves del plan Margolari de fiestas:]]></string>
+	<string name="lablanca_nofestivals_1_title">Planes que se adaptan a tí:</string>
+	<string name="lablanca_nofestivals_1"><![CDATA[Puedes apuntarte días sueltos, o elegir entre las varias ofertas por varios días para conseguir descuentos.]]></string>
+	<string name="lablanca_nofestivals_2_title">Dormir es de cobardes:</string>
+	<string name="lablanca_nofestivals_2"><![CDATA[Casi todos los días organizamos actividades desde la mañana, ya sean almuerzos, actividades para el público general o competiciones en los Herri Kirolak. Después solemos ir a comer juntos, antes de los paseillos, y después, siempre cenamos juntos. Y por la noche, hasta que el cuerpo aguante!]]></string>
+	<string name="lablanca_nofestivals_3_title">Especialistas en paseillos:</string>
+	<string name="lablanca_nofestivals_3"><![CDATA[A la hora de hacer paseillos, no hay quien nos gane. Con nuestra furgoneta siempre abierta a la cabeza, y la txaranga El Postín animando desde atrás, es imposible aburrirse. Y entre paseillos tampoco descansamos, siempre estamos organizando cosas: juegos, carreras, bingos, música, ida a las barracas...]]></string>
+	<string name="lablanca_nofestivals_4_title">Nos gusta comer:</string>
+	<string name="lablanca_nofestivals_4"><![CDATA[No queremos que un Margolari pase hambre. Las comidas en Gasteizko Margolariak son en restaurante, con un buen men&ú, que nos den fuerzas para aguantar el resto del día. Las cenas las hacemos bien en la calle o bien en restaurante, pero siempre con comida buena y caliente. Los mismo que los almuerzos.]]></string>
+	<string name="lablanca_nofestivals_5_title">Y beber:</string>
+	<string name="lablanca_nofestivals_5"><![CDATA[Sea cual sea tu veneno, lo tenemos: Ron, vodka, kalimotxo, cerveza, whiskey, agua, refrescos Durante los paseillos (y varias veces m&aacute;s a lo largo del d&iacute;a) en la furgoneta tendr&aacute;s barra libre de todo lo que quieras.]]></string>
+	<string name="lablanca_nofestivals_6_title">Nos apuntamos a un bombardeo:</string>
+	<string name="lablanca_nofestivals_6"><![CDATA[Carrera de Barricas, Herri Kirolak... Nunca hemos faltado a nada. Ganar, lo que es ganar, aún lo tenemos pendiente, pero lo pasamos bien. Así que ya sabes, si quieres representar a Gasteizko Margolariak, avísanos!]]></string>
+	<string name="lablanca_nofestivals_7_title">Por la ciudad, para la ciudad:</string>
+	<string name="lablanca_nofestivals_7"><![CDATA[No nos gusta mirarnos el ombligo. Aunque la mayor parte de actividades que organizamos son para los miembros de Gasteizko Margolariak, hay otras que son para todo el público. Hasta ahora hemos organizado talleres de Cesta Punta para txikis, Margotxef (un concurso de cocina infantil), visitas a residencias de ancianos...]]></string>
+	<string name="lablanca_nofestivals_8_title">Margolaris:</string>
+	<string name="lablanca_nofestivals_8"><![CDATA[Todo lo demás no sirve de nada si en una cuadrilla no hay buen ambiente. En Gasteizko Margolariak podemos presumir de gente cercana, participativa, capaz de hacer que desde el primer día ya te sientas como en casa. Además, los organizadores son gente cercana, que escucha y está siempre abierta a nuevas propuestas. Por esto, quien prueba, repite.]]></string>
 	<string name="settings_notification_off">No recibir notificaciones</string>
 	<string name="settings_notification_on">Recibir notificaciones</string>
 	<string name="home_section_location_text_calculating">Calculando distancia…</string>
 	<string name="pop_menu_share">Bitarte</string>
 	<string name="pop_menu_about">Gu</string>
 	<string name="pop_menu_settings">Ajustes</string>
-	<string name="pop_menu_sponsors">-</string>
+	<string name="pop_menu_sponsors">Patrocinadores</string>
+	<string name="sponsors_url">Web horria</string>
+
+	<!-- Us -->
+	<string name="us_title">Nosotros</string>
+	<string name="us_association">La asociación</string>
+	<string name="us_association_content">La Asociación Cultural Gasteizko Margolariak nace en el año 2013 con la idea de estimular la participación ciudadana y fortalecer la cultura y las tradiciones de Vitoria-Gasteiz.\n\nEn nuestro nombre se refleja un barrio en el que las calles nos recuerdan a grandes pintores: el barrio de San Martín. Estamos representados en los barrios, y creemos que son la esencia de esta ciudad.</string>
+	<string name="us_cuadrilla">La cuadrilla</string>
+	<string name="us_cuadrilla_content">Nos convertimos en Cuadrilla de Blusas y Neskas en 2013, y en ese mismo año, miembros de la Comisión de Blusas y Neskas.\n\nDesde entonces no hemos hecho mas que crecer junto con todos los que han decidido, año tras año, apostar por nosotros.</string>
+	<string name="us_activities">Lo que hacemos</string>
+	<string name="us_activities_content">Excursiones, partidos, causas benéficas... No solo se nos ve en fiestas.\n\nCreemos que, como Cuadrilla de Blusas y Neskas, existimos por y para la ciudad, y por eso organizamos actividades durante todo el año, para todo aquel que quiera acompañarnos.</string>
+	<string name="us_transparency">Transparencia</string>
+	<string name="us_transparency_content">¿Te preocupa saber dónde va tu dinero? En Gasteizko Margolariak queremos que estés tranquilo.\n\nMuchas de nuestras actividades son gratuitas. Otras, como las fiestas de La Blanca, tienen una cuota de inscripción. Gasteizko Margolariak no es una empresa, es una Asociación Cultural, y como tal, no tenemos beneficios.\n\nQueremos ser transparentes, y por eso, empezando en 2017, pondremos a tu disposición nuestras cuentas de manera online, para que sepas que cada euro se reinvierte en ti.</string>
+
+
 	<string name="preferences_info">Informazioa</string>
 	<string name="preferences_info_feedback_summary">Send anonymous feedback to the developer</string>
 	<string name="preferences_info_source">Codigo fuente</string>

+ 39 - 9
app/src/main/res/values/strings.xml

@@ -44,7 +44,7 @@
 	<!-- Day strings -->
 	<string name="today">Hoy</string>
 	<string name="tomorrow">Mañana</string>
-	
+
 	<!-- Blog section strings -->
 	<string name="blog_pager_previous" translatable="false">&lt;</string>
 	<string name="blog_pager_next" translatable="false">&gt;</string>
@@ -57,7 +57,7 @@
 	<string name="home_section_location_text_0">¡Gasteizko Margolariak está cerca!</string>
 	<string name="home_section_social">Síguenos</string>
 
-	
+
 	<!-- Prices dialog strings -->
 
 
@@ -67,7 +67,7 @@
 	<string name="settings_notification_on">Recibir notificaciones</string>
 	<string name="settings_notification_off">No recibir notificaciones</string>
 
-	
+
 	<!-- Social networks strings -->
 
 	<string name="social_phone" translatable="false">Phone</string>
@@ -92,11 +92,11 @@
 
 
 	<!-- Notification dialog strings -->
-	
+
 	<string name="notification_close">Cerrar</string>
 
 	<!-- Sync dialog strings -->
-	
+
 	<string name="dialog_sync_title">Sincronizando</string>
 	<string name="dialog_sync_failed_title">Error de sincronización</string>
 	<string name="dialog_sync_failed_text">No se pudierdon descargar los contenidos\n\nAsegúrate de que dispones de conexión a internet e inténtalo de nuevo.</string>
@@ -174,7 +174,23 @@
 	<string name="settings_privacy_content"><![CDATA[En Gasteizko Margolariak respetamos tu privacidad. No guardamos NINGÚN dato de nuestros usuarios, incluyendo información personal, localización, hábitos de compra, preferencias sexuales, color favorito, nombre de su primer amor… NINGUNO.<br/><br/>Para que nos creas, te explicamos lo que sí almacenamos:<br/><br/><ul><li>Un código de usuario, generado aleatoriamente, único para tu dispositivo. Esto es necesario para sincronizar la aplicación con nuestra base de datos y poder descargar los últimos posts, actividades… Pero esta hecho de tal manera que no podamos identificarte como persona a través de ese código.</li><li>Al publicar un comentario en una entrada o una foto, guardaremos temporalmente (120 minutos, lo justo para procesar información) tu dirección IP. Esto nos es súper útil para saber cuántas personas diferentes publican comentarios, y tampoco nos permite identificarte como persona.</li></ul>]]></string>
 	<string name="settings_transparency">Transparencia</string>
 	<string name="settings_transparency_content"><![CDATA[¿Te preocupa saber dónde va tu dinero? En Gasteizko Margolariak queremos que estés tranquilo.<br/><br/>Muchas de nuestras actividades son gratuitas. Otras, como las fiestas de La Blanca, tienen una cuota de inscripción. Gasteizko Margolariak no es una empresa, es una Asociación Cultural, y como tal, no tenemos beneficios.<br/><br/>Queremos ser transparentes, y por eso, empezando en 2016, pondremos a tu disposición nuestras cuentas de manera online, para que sepas que cada euro se reinvierte en tí.]]></string>
-	<string name="lablanca_nofestivals">Las Fiestas de La Blanca. Esos días, del 4 al 9 de agosto, en los que Vitoria-Gasteiz se transforma. Se llena de color y alegría, y en cada esquina puedes encontrar actividades y espectáculos. Todos las estamos esperando.\n\nPor desgracia, aún hay que esperar más.\n\nNosotros ya estamos trabajando en ello. Tan pronto como vayamos sabiendo más, aquí iremos publicando nuestro programa y otra información sobre las fiestas.</string>
+	<string name="lablanca_nofestivals"><![CDATA[Las Fiestas de La Blanca. Esos días, del 4 al 9 de agosto, en los que Vitoria-Gasteiz se transforma. Se llena de color y alegría, y en cada esquina puedes encontrar actividades y espectáculos. Todos las estamos esperando.\n\nPor desgracia, aún hay que esperar más.\n\nNosotros ya estamos trabajando en ello. Tan pronto como vayamos sabiendo más, aquí iremos publicando nuestro programa y otra información sobre las fiestas. Para ir abriendo boca, dejanos contarte algunas de las claves del plan Margolari de fiestas:]]></string>
+	<string name="lablanca_nofestivals_1_title">Planes que se adaptan a tí:</string>
+	<string name="lablanca_nofestivals_1"><![CDATA[Puedes apuntarte días sueltos, o elegir entre las varias ofertas por varios días para conseguir descuentos.]]></string>
+	<string name="lablanca_nofestivals_2_title">Dormir es de cobardes:</string>
+	<string name="lablanca_nofestivals_2"><![CDATA[Casi todos los días organizamos actividades desde la mañana, ya sean almuerzos, actividades para el público general o competiciones en los Herri Kirolak. Después solemos ir a comer juntos, antes de los paseillos, y después, siempre cenamos juntos. Y por la noche, hasta que el cuerpo aguante!]]></string>
+	<string name="lablanca_nofestivals_3_title">Especialistas en paseillos:</string>
+	<string name="lablanca_nofestivals_3"><![CDATA[A la hora de hacer paseillos, no hay quien nos gane. Con nuestra furgoneta siempre abierta a la cabeza, y la txaranga El Postín animando desde atrás, es imposible aburrirse. Y entre paseillos tampoco descansamos, siempre estamos organizando cosas: juegos, carreras, bingos, música, ida a las barracas...]]></string>
+	<string name="lablanca_nofestivals_4_title">Nos gusta comer:</string>
+	<string name="lablanca_nofestivals_4"><![CDATA[No queremos que un Margolari pase hambre. Las comidas en Gasteizko Margolariak son en restaurante, con un buen men&ú, que nos den fuerzas para aguantar el resto del día. Las cenas las hacemos bien en la calle o bien en restaurante, pero siempre con comida buena y caliente. Los mismo que los almuerzos.]]></string>
+	<string name="lablanca_nofestivals_5_title">Y beber:</string>
+	<string name="lablanca_nofestivals_5"><![CDATA[Sea cual sea tu veneno, lo tenemos: Ron, vodka, kalimotxo, cerveza, whiskey, agua, refrescos Durante los paseillos (y varias veces m&aacute;s a lo largo del d&iacute;a) en la furgoneta tendr&aacute;s barra libre de todo lo que quieras.]]></string>
+	<string name="lablanca_nofestivals_6_title">Nos apuntamos a un bombardeo:</string>
+	<string name="lablanca_nofestivals_6"><![CDATA[Carrera de Barricas, Herri Kirolak... Nunca hemos faltado a nada. Ganar, lo que es ganar, aún lo tenemos pendiente, pero lo pasamos bien. Así que ya sabes, si quieres representar a Gasteizko Margolariak, avísanos!]]></string>
+	<string name="lablanca_nofestivals_7_title">Por la ciudad, para la ciudad:</string>
+	<string name="lablanca_nofestivals_7"><![CDATA[No nos gusta mirarnos el ombligo. Aunque la mayor parte de actividades que organizamos son para los miembros de Gasteizko Margolariak, hay otras que son para todo el público. Hasta ahora hemos organizado talleres de Cesta Punta para txikis, Margotxef (un concurso de cocina infantil), visitas a residencias de ancianos...]]></string>
+	<string name="lablanca_nofestivals_8_title">Margolaris:</string>
+	<string name="lablanca_nofestivals_8"><![CDATA[Todo lo demás no sirve de nada si en una cuadrilla no hay buen ambiente. En Gasteizko Margolariak podemos presumir de gente cercana, participativa, capaz de hacer que desde el primer día ya te sientas como en casa. Además, los organizadores son gente cercana, que escucha y está siempre abierta a nuevas propuestas. Por esto, quien prueba, repite.]]></string>
 	<string name="settings_about_content"><![CDATA[La Asociación Cultural Gasteizko Margolariak nace en el año 2013 con la idea de estimular la participación ciudadana y fortalecer la cultura y las tradiciones de Vitoria-Gasteiz.<br/><br/>En nuestro nombre se refleja un barrio en el que las calles nos recuerdan a grandes pintores: el barrio de San Martín. Estamos representados en los barrios, y creemos que son la esencia de esta ciudad.<br/><br/>Nos convertimos en Cuadrilla de Blusas y Neskas en 2013, y en ese mismo año, miembros de la Comisión de Blusas y Neskas.<br/><br/>Desde entonces no hemos hecho más que crecer junto con todos los que han decidido, año tras año, apostar por nosotros.]]></string>
 
 	<!-- Misc strings -->
@@ -182,7 +198,23 @@
 
 	<!-- Pop-up menu entry strings -->
 	<string name="pop_menu_settings">Ajustes</string>
-	<string name="pop_menu_sponsors">Sponsors</string>
+	<string name="pop_menu_share">Compartir</string>
+	<string name="pop_menu_sponsors">Patrocinadores</string>
+	<string name="pop_menu_about">Sobre nosotros</string>
+
+	<!-- Sponsors -->
+	<string name="sponsors_url">Sitio web</string>
+
+	<!-- Us -->
+	<string name="us_title">Nosotros</string>
+	<string name="us_association">La asociación</string>
+	<string name="us_association_content">La Asociación Cultural Gasteizko Margolariak nace en el año 2013 con la idea de estimular la participación ciudadana y fortalecer la cultura y las tradiciones de Vitoria-Gasteiz.\n\nEn nuestro nombre se refleja un barrio en el que las calles nos recuerdan a grandes pintores: el barrio de San Martín. Estamos representados en los barrios, y creemos que son la esencia de esta ciudad.</string>
+	<string name="us_cuadrilla">La cuadrilla</string>
+	<string name="us_cuadrilla_content">Nos convertimos en Cuadrilla de Blusas y Neskas en 2013, y en ese mismo año, miembros de la Comisión de Blusas y Neskas.\n\nDesde entonces no hemos hecho mas que crecer junto con todos los que han decidido, año tras año, apostar por nosotros.</string>
+	<string name="us_activities">Lo que hacemos</string>
+	<string name="us_activities_content">Excursiones, partidos, causas benéficas... No solo se nos ve en fiestas.\n\nCreemos que, como Cuadrilla de Blusas y Neskas, existimos por y para la ciudad, y por eso organizamos actividades durante todo el año, para todo aquel que quiera acompañarnos.</string>
+	<string name="us_transparency">Transparencia</string>
+	<string name="us_transparency_content">¿Te preocupa saber dónde va tu dinero? En Gasteizko Margolariak queremos que estés tranquilo.\n\nMuchas de nuestras actividades son gratuitas. Otras, como las fiestas de La Blanca, tienen una cuota de inscripción. Gasteizko Margolariak no es una empresa, es una Asociación Cultural, y como tal, no tenemos beneficios.\n\nQueremos ser transparentes, y por eso, empezando en 2017, pondremos a tu disposición nuestras cuentas de manera online, para que sepas que cada euro se reinvierte en ti.</string>
 
 	<!--Preferences screen-->
 	<string name="preferences">Preferencias</string>
@@ -214,8 +246,6 @@
 	<string name="eur" translatable="false">€</string>
 	<string name="Kb" translatable="false"> Kb</string>
 	<string name="Mb" translatable="false"> Mb</string>
-	<string name="pop_menu_share">Compartir</string>
-	<string name="pop_menu_about">Sobre nosotros</string>
 	<string name="preferences_info_source">Código fuente</string>
 	<string name="changelog">Changelog</string>
 	<string name="empty" translatable="false"> </string>

+ 1 - 1
build.gradle

@@ -4,7 +4,7 @@ buildscript {
         jcenter()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.2.2'
+        classpath 'com.android.tools.build:gradle:2.3.0'
     }
 }
 

+ 2 - 2
gradle.properties

@@ -1,4 +1,4 @@
 org.gradle.daemon=true
-org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512M -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
+org.gradle.jvmargs=-Xmx2560m -XX:MaxPermSize=512M -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
 org.gradle.parallel=true
-org.gradle.configureondemand=true
+org.gradle.configureondemand=true

+ 2 - 2
gradle/wrapper/gradle-wrapper.properties

@@ -1,6 +1,6 @@
-#Sun Oct 09 00:49:43 CEST 2016
+#Sat Apr 01 22:26:43 CEST 2017
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip