瀏覽代碼

Share system implemented.

seavenois 9 年之前
父節點
當前提交
886d364754

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

@@ -82,7 +82,7 @@ public class ActivityFutureLayout extends Fragment implements OnMapReadyCallback
         final Cursor cursor;
 		String lang = GM.getLang();
 
-        cursor = db.rawQuery("SELECT id, title_" + lang+ " AS title, text_" + lang + " AS text, date, city, price FROM activity WHERE id = " + id + ";", null);
+        cursor = db.rawQuery("SELECT id, title_" + lang+ " AS title, text_" + lang + " AS text, date, city, price, permalink FROM activity WHERE id = " + id + ";", null);
         cursor.moveToFirst();
 
         //Get display elements
@@ -102,6 +102,7 @@ public class ActivityFutureLayout extends Fragment implements OnMapReadyCallback
         //Set fields
         tvTitle.setText(cursor.getString(1));
         ((MainActivity) getActivity()).setSectionTitle(cursor.getString(1));
+		((MainActivity) getActivity()).setShareLink(String.format(getString(R.string.share_with_title), cursor.getString(1)), GM.SHARE.ACTIVITIES + cursor.getString(6));
 		if (Build.VERSION.SDK_INT >= 19) {
 			wvText.setLayerType(View.LAYER_TYPE_HARDWARE, null);
 		}

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

@@ -50,7 +50,7 @@ public class ActivityPastLayout extends Fragment {
         SQLiteDatabase db = SQLiteDatabase.openDatabase(getActivity().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, title_" + lang+ " AS title, text_" + lang + " AS text, date, city, after_" + lang + " AS after FROM activity WHERE id = " + id + ";", null);
+        cursor = db.rawQuery("SELECT id, title_" + lang+ " AS title, text_" + lang + " AS text, date, city, after_" + lang + " AS after, permalink FROM activity WHERE id = " + id + ";", null);
         cursor.moveToFirst();
 
         //Get display elements
@@ -75,6 +75,7 @@ public class ActivityPastLayout extends Fragment {
         //Set fields
         tvTitle.setText(cursor.getString(1));
         ((MainActivity) getActivity()).setSectionTitle(cursor.getString(1));
+        ((MainActivity) getActivity()).setShareLink(String.format(getString(R.string.share_with_title), cursor.getString(1)), GM.SHARE.ACTIVITIES + cursor.getString(6));
         if (cursor.getString(5) == null || cursor.getString(5).length() < 1) {
             wvText.loadDataWithBaseURL(null, cursor.getString(2), "text/html", "utf-8", null);
         } else {

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

@@ -52,7 +52,7 @@ public class AlbumLayout extends Fragment {
         SQLiteDatabase db = SQLiteDatabase.openDatabase(getActivity().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, title_" + lang + " AS title, description_" + lang + " AS description FROM album WHERE id = " + id + ";", null);
+        cursor = db.rawQuery("SELECT id, title_" + lang + " AS title, description_" + lang + " AS description, permalink FROM album WHERE id = " + id + ";", null);
         cursor.moveToFirst();
 
         //Set album elements
@@ -67,7 +67,11 @@ public class AlbumLayout extends Fragment {
 		}
 
         tvTitle.setText(cursor.getString(1));
+		((MainActivity) getActivity()).setSectionTitle(cursor.getString(1));
+		((MainActivity) getActivity()).setShareLink(String.format(getString(R.string.share_with_title), cursor.getString(1)), GM.SHARE.GALLERY + cursor.getString(3));
+
 		final String albumName = cursor.getString(1);
+		final String albumPerm = cursor.getString(3);
         if (cursor.getString(2) == null || cursor.getString(2).length() < 1){
             tvDescription.setVisibility(View.GONE);
         }
@@ -95,6 +99,7 @@ public class AlbumLayout extends Fragment {
 
             //Set title
             TextView tvTitleLeft = (TextView) entry.findViewById(R.id.tv_row_album_title_left);
+
 			if (imageCursor.getString(1) != null && imageCursor.getString(1).length() > 0) {
 				tvTitleLeft.setText(imageCursor.getString(1));
 			}
@@ -148,6 +153,7 @@ public class AlbumLayout extends Fragment {
 				int id = Integer.parseInt(((TextView) v.findViewById(R.id.tv_row_album_hidden_left)).getText().toString());
 				bundle.putInt("photo", id);
 				bundle.putString("albumName", albumName);
+				bundle.putString("albumPerm", albumPerm);
 				fragment.setArguments(bundle);
 
 				FragmentManager fm = AlbumLayout.this.getActivity().getFragmentManager();

+ 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.gasteizkomargolariak.com";
+		static final String HOME = "http://www.margolariak.com";
 		static final String LABLANCA = HOME + "/lablanca/";
 		static final String ACTIVITIES = HOME + "/actividades/";
 		static final String BLOG = HOME + "/blog/";

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

@@ -81,11 +81,26 @@ public class MainActivity extends Activity {
 	private String shareURL = GM.SHARE.HOME;
 	private String shareTitle = "";
 
+	/**
+	 * Sets the displayed section url and localized title.
+	 * Thy can be retrieved later with getShareLink() to share the URL.
+	 *
+	 * @param title The title of the displayed section.
+	 * @param url The URL of the current section.
+	 *
+	 * @see MainActivity#getShareLink();
+	 */
 	public void setShareLink(String title, String url){
 		shareTitle = title;
 		shareURL = url;
 	}
 
+	/**
+	 * Returns the url of the current sections and a title.
+	 * To be used with the share option.
+	 *
+	 * @return String array. Index 0 has the title of the section. Index 1 has the URL.
+	 */
 	public String[] getShareLink(){
 		return(new String[]{shareTitle, shareURL});
 	}
@@ -112,7 +127,12 @@ public class MainActivity extends Activity {
 		}
 	}
 
-	//Not referenced in code.
+	/**
+	 * Opens and closes the app menu.
+	 * Not referenced in code.
+	 *
+	 * @param v Menu view.
+	 */
 	public void showMenu(View v) {
 		PopupMenu popup = new PopupMenu(this, v);
 		MenuInflater inflater = popup.getMenuInflater();
@@ -123,9 +143,9 @@ public class MainActivity extends Activity {
 			public boolean onMenuItemClick(MenuItem item) {
 				Intent sendIntent = new Intent();
 				sendIntent.setAction(Intent.ACTION_SEND);
-				sendIntent.putExtra(Intent.EXTRA_TEXT, getShareLink()[0] + " - " + getShareLink()[1]);
+				sendIntent.putExtra(Intent.EXTRA_TEXT, getShareLink()[0] + "\n\n" + getShareLink()[1] + "\n\n");
 				sendIntent.setType("text/plain");
-				startActivity(sendIntent);
+				startActivity(Intent.createChooser(sendIntent, getResources().getText(R.string.share_with)));
 				return true;
 			}
 		});
@@ -171,6 +191,8 @@ public class MainActivity extends Activity {
 		FragmentTransaction ft = fm.beginTransaction();
 		Fragment fragment = null;
 		String title = "";
+		String shareURL = GM.SHARE.HOME;
+		String shareTitle = getString(R.string.share_home);
 		Bundle bundle = new Bundle();
 
 		//Get measures in dp
@@ -189,6 +211,8 @@ public class MainActivity extends Activity {
 			case GM.SECTION.HOME:
 				fragment = new HomeLayout();
 				title = getString(R.string.menu_home);
+				shareURL = GM.SHARE.HOME;
+				shareTitle = getString(R.string.share_home);
 				menuText[0].setTypeface(null, Typeface.BOLD);
 				menuImage[0].getLayoutParams().height = dp7;
 				break;
@@ -196,6 +220,8 @@ public class MainActivity extends Activity {
 			case GM.SECTION.LOCATION:
 				fragment = new LocationLayout();
 				title = getString(R.string.menu_location);
+				shareURL = GM.SHARE.HOME;
+				shareTitle = getString(R.string.share_home);
 				menuText[1].setTypeface(null, Typeface.BOLD);
 				menuImage[1].getLayoutParams().height = dp7;
 				break;
@@ -209,6 +235,8 @@ public class MainActivity extends Activity {
 					fragment = new LablancaNoFestivalsLayout();
 				}
 				title = getString(R.string.menu_lablanca);
+				shareURL = GM.SHARE.LABLANCA;
+				shareTitle = getString(R.string.share_lablanca);
 				menuText[2].setTypeface(null, Typeface.BOLD);
 				menuImage[2].getLayoutParams().height = dp7;
 				break;
@@ -218,6 +246,8 @@ public class MainActivity extends Activity {
 				bundle.putInt(GM.SCHEDULE.KEY, GM.SCHEDULE.MARGOLARIAK);
 				fragment.setArguments(bundle);
 				title = getString(R.string.menu_lablanca_schedule);
+				shareURL = GM.SHARE.LABLANCA;
+				shareTitle = getString(R.string.share_lablanca);
 				menuText[2].setTypeface(null, Typeface.BOLD);
 				menuImage[2].getLayoutParams().height = dp7;
 				break;
@@ -227,6 +257,8 @@ public class MainActivity extends Activity {
 				bundle.putInt(GM.SCHEDULE.KEY, GM.SCHEDULE.MARGOLARIAK);
 				fragment.setArguments(bundle);
 				title = getString(R.string.menu_lablanca_gm_schedule);
+				shareURL = GM.SHARE.LABLANCA;
+				shareTitle = getString(R.string.share_lablanca);
 				menuText[2].setTypeface(null, Typeface.BOLD);
 				menuImage[2].getLayoutParams().height = dp7;
 				break;
@@ -234,6 +266,8 @@ public class MainActivity extends Activity {
 			case GM.SECTION.ACTIVITIES:
 				fragment = new ActivityLayout();
 				title = getString(R.string.menu_activities);
+				shareURL = GM.SHARE.ACTIVITIES;
+				shareTitle = getString(R.string.share_activities);
 				menuText[3].setTypeface(null, Typeface.BOLD);
 				menuImage[3].getLayoutParams().height = dp7;
 				break;
@@ -241,6 +275,8 @@ public class MainActivity extends Activity {
 			case GM.SECTION.BLOG:
 				fragment = new BlogLayout();
 				title = getString(R.string.menu_blog);
+				shareURL = GM.SHARE.BLOG;
+				shareTitle = getString(R.string.share_blog);
 				menuText[4].setTypeface(null, Typeface.BOLD);
 				menuImage[4].getLayoutParams().height = dp7;
 				break;
@@ -248,6 +284,8 @@ public class MainActivity extends Activity {
 			case GM.SECTION.GALLERY:
 				fragment = new GalleryLayout();
 				title = getString(R.string.menu_blog);
+				shareURL = GM.SHARE.GALLERY;
+				shareTitle = getString(R.string.share_gallery);
 				menuText[5].setTypeface(null, Typeface.BOLD);
 				menuImage[5].getLayoutParams().height = dp7;
 				break;
@@ -258,6 +296,8 @@ public class MainActivity extends Activity {
 		//ft.addToBackStack(title);
 		ft.commit();
 		setSectionTitle(title);
+		//Set the shareable url
+		setShareLink(shareTitle, shareURL);
 	}
 
 	/**
@@ -285,9 +325,6 @@ public class MainActivity extends Activity {
 		String actionText = getIntent().getStringExtra(GM.EXTRA.TEXT);
 		String actionTitle = getIntent().getStringExtra(GM.EXTRA.TITLE);
 
-		//Set the shareable url
-		setShareLink(getString(R.string.share_home), GM.SHARE.HOME);
-
 		//Set an alarm for notifications..
 		//Wait a little
 		final Intent intent = this.getIntent();

+ 6 - 2
app/src/main/java/com/ivalentin/margolariak/PhotoLayout.java

@@ -37,6 +37,7 @@ public class PhotoLayout extends Fragment {
 	private View view;
 
 	private String albumName;
+	private String albumPerm;
 
 	private Integer photos[];
 	private int position;
@@ -54,6 +55,7 @@ public class PhotoLayout extends Fragment {
 		//Get bundled id
 		Bundle bundle = this.getArguments();
 		albumName = bundle.getString("albumName", "");
+		albumPerm = bundle.getString("albumPerm", "");
 		int id = bundle.getInt("photo", -1);
 		if (id == -1) {
 			Log.e("Photo error", "No such photo: " + id);
@@ -85,6 +87,9 @@ public class PhotoLayout extends Fragment {
 			}
 		});
 
+		//Set title and share link
+		((MainActivity) getActivity()).setShareLink(String.format(getString(R.string.share_with_title), albumName), GM.SHARE.GALLERY + albumPerm);
+
 		populate(id, view);
 
 		return view;
@@ -123,9 +128,8 @@ public class PhotoLayout extends Fragment {
 	 */
 	private Integer[] loadPhotos(int id){
 
-		SQLiteDatabase db = SQLiteDatabase.openDatabase(getActivity().getDatabasePath(GM.DB.NAME).getAbsolutePath(), null, SQLiteDatabase.NO_LOCALIZED_COLLATORS | SQLiteDatabase.OPEN_READONLY);
-
 		//Get album id for the photo
+		SQLiteDatabase db = SQLiteDatabase.openDatabase(getActivity().getDatabasePath(GM.DB.NAME).getAbsolutePath(), null, SQLiteDatabase.NO_LOCALIZED_COLLATORS | SQLiteDatabase.OPEN_READONLY);
 		Cursor cAlbum = db.rawQuery("SELECT album FROM photo_album WHERE photo = " + id + ";", null);
 		cAlbum.moveToFirst();
 		int album = cAlbum.getInt(0);

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

@@ -60,7 +60,7 @@ public class PostLayout extends Fragment {
         SQLiteDatabase db = SQLiteDatabase.openDatabase(getActivity().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, title_" + lang+ " AS title, text_" + lang + " AS text, dtime FROM post WHERE id = " + id + ";", null);
+        cursor = db.rawQuery("SELECT id, title_" + lang+ " AS title, text_" + lang + " AS text, dtime, permalink FROM post WHERE id = " + id + ";", null);
         cursor.moveToFirst();
 
         //Get display elements
@@ -88,6 +88,7 @@ public class PostLayout extends Fragment {
         //Set fields
         tvTitle.setText(cursor.getString(1));
         ((MainActivity) getActivity()).setSectionTitle(cursor.getString(1));
+        ((MainActivity) getActivity()).setShareLink(String.format(getString(R.string.share_with_title), cursor.getString(1)), GM.SHARE.BLOG + cursor.getString(4));
         wvText.loadDataWithBaseURL(null, cursor.getString(2), "text/html", "utf-8", null);
         tvDate.setText(GM.formatDate(cursor.getString(3), lang, true));
 

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

@@ -112,6 +112,7 @@ public class ScheduleLayout extends Fragment implements OnMapReadyCallback{
 			((MainActivity) getActivity()).setSectionTitle(view.getContext().getString(R.string.menu_lablanca_schedule));
 		else
 			((MainActivity) getActivity()).setSectionTitle(view.getContext().getString(R.string.menu_lablanca_gm_schedule));
+		((MainActivity) getActivity()).setShareLink(getString(R.string.share_lablanca), GM.SHARE.LABLANCA);
 
 		//Populate the dates array
 		SQLiteDatabase db = SQLiteDatabase.openDatabase(getActivity().getDatabasePath(GM.DB.NAME).getAbsolutePath(), null, SQLiteDatabase.NO_LOCALIZED_COLLATORS | SQLiteDatabase.OPEN_READONLY);

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

@@ -65,7 +65,7 @@
 	<string name="settings_about">About us</string>
 	<string name="settings_transparency">Transparency</string>
 	<string name="settings_license_content">Copyright 2016 Iñigo Valentin&lt;br/>&lt;br/>This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.&lt;br/>&lt;br/>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details at http://www.gnu.org/licenses/.&lt;br/>&lt;br/>The name "Gasteizko Margolariak" and its logotype are property of Gasteizko Margolariak.&lt;br/>&lt;br/>&lt;br/>&lt;div style="background-color:#bbbbbb;padding:6px;border-radius:5px;border-style:solid;border-width:2px;border-color:#333333;text-align:center;">You can get the source code for this project at &lt;a href="https://github.com/Seavenois/GM">Github&lt;/a>&lt;/div></string>
-	<string name="settings_privacy_content"><![CDATA[In Gasteizko Margolariak we respect your privacy. We don\'t collect ANY data from our users, including personal information, location, shopping habits, sexual preferences, favourite colour, first love\'s name… ANY.<br/><br/>In order of making you believe us, we\'ll explain what we DO store:<br/><br/><ul><li>A randomly generated user code, unique to your device. This is necessary to sync content with aur database, so you can get info about our post, activities... But it\'s done in a way that won\'t allow un to identify you as a person with that number.</li><li>When commenting on a photo ar an entry, we store your current IP address. This is incredibly useful for us to know how many actual people are posting comments, and it also makes imposible for us to identify you as a person.</li></ul>]]></string>
+	<string name="settings_privacy_content"><![CDATA[In Gasteizko Margolariak we respect your privacy. We don\'t collect ANY data from our users, including personal information, location, shopping habits, sexual preferences, favourite colour, first love\'s name… ANY.<br/><br/>In order of making you believe us, we\'ll explain what we DO store:<br/><br/><ul><li>A randomly generated user code, unique to your device. This is necessary to sync content with aur database, so you can get info about our post, activities But it\'s done in a way that won\'t allow un to identify you as a person with that number.</li><li>When commenting on a photo ar an entry, we store your current IP address. This is incredibly useful for us to know how many actual people are posting comments, and it also makes imposible for us to identify you as a person.</li></ul>]]></string>
 	<string name="settings_about_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.&lt;br/>&lt;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.&lt;br/>&lt;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.&lt;br/>&lt;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>
 	<string name="settings_transparency_content">¿Te preocupa saber dónde va tu dinero? En Gasteizko Margolariak queremos que estés tranquilo.&lt;br/>&lt;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.&lt;br/>&lt;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>
 
@@ -185,6 +185,7 @@
 
 	<!-- Share menu -->
 	<string name="share">Share</string>
+	<string name="share_with">Share using…</string>
 	<string name="share_home">Gasteizko Margolariak</string>
 	<string name="share_lablanca">La Blanca - Gasteizko Margolariak</string>
 	<string name="share_activities">Activities - Gasteizko Margolariak</string>

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

@@ -150,7 +150,7 @@
 	<string name="settings_license_content"><![CDATA[Copyright 2016 Iñigo Valentin<br/><br/>This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.<br/><br/>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details at http://www.gnu.org/licenses/.<br/><br/>The name "Gasteizko Margolariak" and its logotype are property of Gasteizko Margolariak.<br/><br/><br/><div style="background-color:#bbbbbb;padding:6px;border-radius:5px;border-style:solid;border-width:2px;border-color:#333333;text-align:center;">You can get the source code for this project at <a href="https://github.com/Seavenois/GM">Github</a></div>]]></string>
 	<string name="settings_privacy">Pribazitatea</string>
 	<string name="settings_transparency">Transparentzia</string>
-	<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_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_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="dialog_sync_text_0">Locating Don Margolo&#8230;</string>
 	<string name="dialog_sync_text_1">Starting up the van&#8230;</string>
@@ -189,7 +189,8 @@
 	<string name="changelog">Changelog</string>
 
 	<!-- Share menu -->
-	<string name="share">Share</string>
+	<string name="share">Compartir</string>
+	<string name="share_with">Enviar con…</string>
 	<string name="share_home">Gasteizko Margolariak</string>
 	<string name="share_lablanca">Andre Zuria - Gasteizko Margolariak</string>
 	<string name="share_activities">Aktibitateak - Gasteizko Margolariak</string>

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

@@ -202,7 +202,8 @@
 	<string name="preferences_info_feedback_summary">Enviar información anónima al desarrollador</string>
 
 	<!-- Share menu -->
-	<string name="share">Share</string>
+	<string name="share">Comartir</string>
+	<string name="share_with">Enviar con…</string>
 	<string name="share_home">Gasteizko Margolariak</string>
 	<string name="share_lablanca">La Blanca - Gasteizko Margolariak</string>
 	<string name="share_activities">Actividades - Gasteizko Margolariak</string>
@@ -217,6 +218,6 @@
 	<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>
+	<string name="empty" translatable="false"> </string>
 
 </resources>