Просмотр исходного кода

Deleted "About" section.
Implemented "Settings" section.
Improved dialogs.
Some unused files and strings deleted.

seavenois 10 лет назад
Родитель
Сommit
640bc623ae

+ 0 - 51
app/src/main/java/com/ivalentin/gm/AboutLayout.java

@@ -1,51 +0,0 @@
-package com.ivalentin.gm;
-
-import android.annotation.SuppressLint;
-import android.os.Bundle;
-import android.app.Fragment;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.webkit.WebView;
-
-/**
- * Layout that show information about the app and the developer. 
- * It's pretty much static.
- * 
- * @see Fragment
- * 
- * @author Iñigo Valentin
- *
- */
-public class AboutLayout extends Fragment{
-
-	/**
-	 * Run when the fragment is inflated.
-	 * Assigns views, gets the date and does the first call to the {@link @populate function}.
-	 * 
-	 * @param inflater A LayoutInflater to manage views
-	 * @param container The container View
-	 * @param savedInstanceState Bundle containing the state
-	 * 
-	 * @return the fragment view
-	 * 
-	 * @see android.support.v4.app.Fragment#onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)
-	 */
-	@SuppressLint("InflateParams") //Throws unknown error when done properly.
-	@Override
-	public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
-		
-		//Load the layout.
-		View view = inflater.inflate(R.layout.fragment_layout_about, null);
-		
-		//Set the title
-		((MainActivity) getActivity()).setSectionTitle(view.getContext().getString(R.string.menu_about));
-		
-		//Set some tricky webView to show some text	.    
-	    WebView wvCode = (WebView) view.findViewById(R.id.wv_about_code);
-	    wvCode.loadData(view.getContext().getString(R.string.about_code), "text/html", "UTF-8");
-	    
-	    //Return the view itself.
-		return view;
-	}
-}

+ 2 - 2
app/src/main/java/com/ivalentin/gm/AroundLayout.java

@@ -321,10 +321,10 @@ public class AroundLayout extends Fragment implements LocationListener, OnMapRea
 	        	tvRowDistance = (TextView) entry.findViewById(R.id.tv_row_around_distance);
 	        	distance = eventList.get(i).getDistance(coordinates);
 	        	if (distance < 1000){
-	        		tvRowDistance.setText(String.format(getResources().getString(R.string.around_distance), Math.round(distance), getResources().getString(R.string.meters), Math.round(distance * 0.012)));
+	        		tvRowDistance.setText(String.format(getResources().getString(R.string.around_distance_short), Math.round(distance), Math.round(distance * 0.012)));
 	        	}
 	        	else
-	        		tvRowDistance.setText(String.format(getResources().getString(R.string.around_distance), df.format(distance / 1000), getResources().getString(R.string.kilometers), Math.round(distance * 0.012)));
+	        		tvRowDistance.setText(String.format(getResources().getString(R.string.around_distance_long), df.format(distance / 1000)));
 	        	
 	        	//Set time
 	        	tvRowTime = (TextView) entry.findViewById(R.id.tv_row_around_time);

+ 1 - 1
app/src/main/java/com/ivalentin/gm/LocationLayout.java

@@ -75,7 +75,7 @@ public class LocationLayout extends Fragment implements OnMapReadyCallback{
 		v = inflater.inflate(R.layout.fragment_layout_location, container, false);
 		
 		//Set the title
-		((MainActivity) getActivity()).setSectionTitle(v.getContext().getString(R.string.menu_lablanca_location));
+		((MainActivity) getActivity()).setSectionTitle(v.getContext().getString(R.string.menu_location));
 		
 		//LinearLayouts to be shown or hidden
 		LinearLayout llReport = (LinearLayout) v.findViewById(R.id.ll_fragment_location_reported);

+ 25 - 15
app/src/main/java/com/ivalentin/gm/MainActivity.java

@@ -17,9 +17,11 @@ import android.database.sqlite.SQLiteDatabase;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.util.Log;
+import android.view.Gravity;
 import android.view.View;
 import android.view.Window;
 import android.view.View.OnClickListener;
+import android.view.WindowManager;
 import android.widget.Button;
 import android.widget.ImageButton;
 import android.widget.ProgressBar;
@@ -68,7 +70,7 @@ public class MainActivity extends Activity{//} implements LocationListener{
 
 			case GM.SECTION_LOCATION:
 				fragment = new LocationLayout();
-				title = getString(R.string.menu_lablanca_location);
+				title = getString(R.string.menu_location);
 				break;
 
 			case GM.SECTION_LABLANCA:
@@ -117,11 +119,6 @@ public class MainActivity extends Activity{//} implements LocationListener{
 				title = getString(R.string.menu_blog);
 				break;
 
-			case GM.SECTION_ABOUT:
-				fragment = new AboutLayout();
-				title = getString(R.string.menu_about);
-				break;
-
 			case GM.SECTION_SETTINGS:
 				fragment = new SettingsLayout();
 				title = getString(R.string.menu_settings);
@@ -207,15 +204,14 @@ public class MainActivity extends Activity{//} implements LocationListener{
 		});
 		
 		//Assign menu items
-		TextView menuItem[] = new TextView[8];
+		TextView menuItem[] = new TextView[7];
 		menuItem[0] = (TextView) findViewById(R.id.menu_home);
 		menuItem[1] = (TextView) findViewById(R.id.menu_location);
 		menuItem[2] = (TextView) findViewById(R.id.menu_lablanca);
 		menuItem[3] = (TextView) findViewById(R.id.menu_activities);
 		menuItem[4] = (TextView) findViewById(R.id.menu_blog);
 		menuItem[5] = (TextView) findViewById(R.id.menu_gallery);
-		menuItem[6] = (TextView) findViewById(R.id.menu_about);
-		menuItem[7] = (TextView) findViewById(R.id.menu_settings);
+		menuItem[6] = (TextView) findViewById(R.id.menu_settings);
 
 		//Assign buttons for la blanca submenu
 		TextView menuLablancaItem[] = new TextView[3];
@@ -251,10 +247,6 @@ public class MainActivity extends Activity{//} implements LocationListener{
 			public void onClick(View v) { loadSection(GM.SECTION_GALLERY, true); }
 		});
 		menuItem[6].setOnClickListener(new OnClickListener() {
-			@Override
-			public void onClick(View v) { loadSection(GM.SECTION_ABOUT, true); }
-		});
-		menuItem[7].setOnClickListener(new OnClickListener() {
 			@Override
 			public void onClick(View v) { loadSection(GM.SECTION_SETTINGS, true); }
 		});
@@ -489,8 +481,17 @@ public class MainActivity extends Activity{//} implements LocationListener{
 					else{
 						btDialogAction.setVisibility(View.GONE);
 					}
-	
-					//Show the dialog
+
+					//Set dialog parameters
+					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;
+					lp.dimAmount = 0.4f;
+					dialog.getWindow().setAttributes(lp);
+
+					//Show dialog
 					dialog.show();
 				}
 			}
@@ -567,6 +568,15 @@ public class MainActivity extends Activity{//} implements LocationListener{
 		//Set up the window
 		dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
 		dialog.setContentView(R.layout.dialog_sync);
+
+		//Set dialog parameters
+		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;
+		lp.dimAmount = 0.4f;
+		dialog.getWindow().setAttributes(lp);
 		
 		//Sync
 		ProgressBar pbSync = (ProgressBar) findViewById(R.id.pb_sync);

+ 43 - 134
app/src/main/java/com/ivalentin/gm/ScheduleLayout.java

@@ -33,6 +33,7 @@ import android.app.Fragment;
 import android.text.Editable;
 import android.text.TextWatcher;
 import android.util.Log;
+import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.Window;
@@ -172,31 +173,29 @@ public class ScheduleLayout extends Fragment implements OnMapReadyCallback{
 	 * 
 	 */
 	@SuppressLint("InflateParams") //Views are added from a loop: I can't specify the parent when inflating.
-	private int populateSchedule(){
+	private int populateSchedule() {
 
 		int eventCount = 0;
 
 		//Hide or show buttons
 		Button btNext = (Button) view.findViewById(R.id.bt_schedule_r);
 		Button btPrevious = (Button) view.findViewById(R.id.bt_schedule_l);
-		if (selected <= 0){
+		if (selected <= 0) {
 			btPrevious.setVisibility(View.INVISIBLE);
-		}
-		else{
+		} else {
 			btPrevious.setVisibility(View.VISIBLE);
 		}
-		if (selected >= dateCount - 1){
+		if (selected >= dateCount - 1) {
 			btNext.setVisibility(View.INVISIBLE);
-		}
-		else{
+		} else {
 			btNext.setVisibility(View.VISIBLE);
 		}
 
 		//If there are no events,return now
-		if (selected < 0 || selected >= dateCount){
+		if (selected < 0 || selected >= dateCount) {
 			return eventCount;
 		}
-		
+
 		//Search filter
 		String filter = ((EditText) view.findViewById(R.id.et_schedule_filter)).getText().toString().toLowerCase(Locale.US);
 
@@ -204,8 +203,7 @@ public class ScheduleLayout extends Fragment implements OnMapReadyCallback{
 		DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss", Locale.US);
 		try {
 			calendar.setTime(dateFormat.parse(dates[selected] + " 06:00:00"));
-		}
-		catch (Exception ex){
+		} catch (Exception ex) {
 			Log.e("Datetime error", ex.toString());
 		}
 
@@ -217,15 +215,15 @@ public class ScheduleLayout extends Fragment implements OnMapReadyCallback{
 		LinearLayout entry, list;
 
 		//An inflater
-        LayoutInflater factory = LayoutInflater.from(getActivity());
-        
-        //Views in each row
-        TextView tvRowTitle, tvRowTime, tvRowDesc, tvRowPlace, tvRowId, tvRowAddress;
-        
-        //Icon next to the location text
-        Drawable icon = getResources().getDrawable(R.drawable.pinpoint);
-        //icon.setBounds(0, 0, 80, 80);
-		
+		LayoutInflater factory = LayoutInflater.from(getActivity());
+
+		//Views in each row
+		TextView tvRowTitle, tvRowTime, tvRowDesc, tvRowPlace, tvRowId, tvRowAddress;
+
+		//Icon next to the location text
+		Drawable icon = getResources().getDrawable(R.drawable.pinpoint);
+		//icon.setBounds(0, 0, 80, 80);
+
 		//Set date selector texts
 		TextView tvDayNumber = (TextView) view.findViewById(R.id.tv_schedule_day_number);
 		TextView tvDayMonth = (TextView) view.findViewById(R.id.tv_schedule_day_month);
@@ -233,7 +231,7 @@ public class ScheduleLayout extends Fragment implements OnMapReadyCallback{
 
 
 		tvDayNumber.setText(Integer.toString(calendar.get(Calendar.DAY_OF_MONTH)));
-		switch (calendar.get(Calendar.MONTH)){
+		switch (calendar.get(Calendar.MONTH)) {
 			case 6:
 				tvDayMonth.setText(getString(R.string.schedule_month_july));
 				break;
@@ -241,13 +239,12 @@ public class ScheduleLayout extends Fragment implements OnMapReadyCallback{
 				tvDayMonth.setText(getString(R.string.schedule_month_august));
 				break;
 		}
-		if (schedule == GM.SECTION_LABLANCA_GM_SCHEDULE){
+		if (schedule == GM.SECTION_LABLANCA_GM_SCHEDULE) {
 			Cursor cursorDay = db.rawQuery("SELECT name_" + lang + " FROM festival_day WHERE date(date) = '" + dates[selected] + "';", null);
 			if (cursorDay.getCount() > 0) {
 				cursorDay.moveToFirst();
 				tvDayTitle.setText(cursorDay.getString(0));
-			}
-			else{
+			} else {
 				tvDayTitle.setText("");
 			}
 			cursorDay.close();
@@ -259,8 +256,7 @@ public class ScheduleLayout extends Fragment implements OnMapReadyCallback{
 		Calendar c = Calendar.getInstance();
 		try {
 			c.setTime(sdf.parse(dates[selected]));
-		}
-		catch(Exception ex){
+		} catch (Exception ex) {
 			Log.e("Date parsing error", ex.toString());
 			return eventCount;
 		}
@@ -269,27 +265,26 @@ public class ScheduleLayout extends Fragment implements OnMapReadyCallback{
 
 		String query = "SELECT festival_event.id, title_" + lang + ", description_" + lang + ", place, start, end, name_" + lang + ", address_" + lang + ", lat, lon FROM festival_event, place WHERE place = place.id AND start >= '" + dates[selected] + " 06:00:00' AND start < '" + endDate + " 05:59:59' AND ";
 
-		if (schedule == GM.SECTION_LABLANCA_GM_SCHEDULE){
+		if (schedule == GM.SECTION_LABLANCA_GM_SCHEDULE) {
 			query = query + "gm = 1 ";
 			//cursor= db.rawQuery("SELECT festival_event.id, title_" + lang + ", description_" + lang + ", place, start, end, name_" + lang + ", address_" + lang + ", lat, lon FROM festival_event, place WHERE gm = 1 AND place = place.id AND start >= '" + dates[selected] + " 06:00:00' AND start < '" + endDate + " 05:59:59' ORDER BY start;", null);
-		}
-		else{
+		} else {
 			query = query + "gm = 0 ";
 			//cursor= db.rawQuery("SELECT festival_event.id, title_" + lang + ", description_" + lang + ", place, start, end, name_" + lang + ", address_" + lang + ", lat, lon FROM festival_event, place WHERE gm = 0 AND place = place.id AND start >= '" + dates[selected] + " 06:00:00' AND start < '" + endDate + " 05:59:59' ORDER BY start;", null);
 		}
-		if (filter.length() > 0){
-			query = query + "AND (title_" + lang + " like '%" +filter + "%' OR description_" + lang + " like '%" +filter + "%' OR name_" + lang + " like '%" +filter + "%' OR address_" + lang + " like '%" +filter + "%') ";
+		if (filter.length() > 0) {
+			query = query + "AND (title_" + lang + " like '%" + filter + "%' OR description_" + lang + " like '%" + filter + "%' OR name_" + lang + " like '%" + filter + "%' OR address_" + lang + " like '%" + filter + "%') ";
 		}
 		Cursor cursor = db.rawQuery(query, null);
 
 		//If there are entries, clear the list
 		list = (LinearLayout) view.findViewById(R.id.ll_schedule_list);
-		if (cursor.getCount() > 0){
+		if (cursor.getCount() > 0) {
 			list.removeAllViews();
 		}
 
-		while (cursor.moveToNext()){
-			eventCount ++;
+		while (cursor.moveToNext()) {
+			eventCount++;
 
 			entry = (LinearLayout) factory.inflate(R.layout.row_schedule, null);
 
@@ -303,10 +298,9 @@ public class ScheduleLayout extends Fragment implements OnMapReadyCallback{
 
 			//Set description
 			tvRowDesc = (TextView) entry.findViewById(R.id.tv_row_schedule_description);
-			if (cursor.getString(2).length() <= 0  || cursor.getString(2).equals(cursor.getString(1))){
+			if (cursor.getString(2).length() <= 0 || cursor.getString(2).equals(cursor.getString(1))) {
 				tvRowDesc.setVisibility(View.GONE);
-			}
-			else {
+			} else {
 				tvRowDesc.setText(cursor.getString(2));
 			}
 
@@ -316,15 +310,14 @@ public class ScheduleLayout extends Fragment implements OnMapReadyCallback{
 
 			//Set address
 			tvRowAddress = (TextView) entry.findViewById(R.id.tv_row_schedule_address);
-			if (cursor.getString(7).length() <= 0  || cursor.getString(7).equals(cursor.getString(6))) {
+			if (cursor.getString(7).length() <= 0 || cursor.getString(7).equals(cursor.getString(6))) {
 				tvRowAddress.setVisibility(View.GONE);
-			}
-			else{
+			} else {
 				tvRowAddress.setText(cursor.getString(7));
 			}
 
 			//Set icon
-			if (schedule == GM.SECTION_LABLANCA_GM_SCHEDULE){
+			if (schedule == GM.SECTION_LABLANCA_GM_SCHEDULE) {
 				ImageView pinPoint = (ImageView) entry.findViewById(R.id.iv_row_schedule_pinpoint);
 				pinPoint.setImageResource(getResources().getIdentifier("com.ivalentin.gm:drawable/pinpoint_gm", null, null));
 			}
@@ -336,7 +329,7 @@ public class ScheduleLayout extends Fragment implements OnMapReadyCallback{
 			tvRowTime.setText(tm);
 
 			//Set clisk listener
-			entry.setOnClickListener(new OnClickListener(){
+			entry.setOnClickListener(new OnClickListener() {
 				@Override
 				public void onClick(View v) {
 					TextView tvId = (TextView) v.findViewById(R.id.tv_row_schedule_id);
@@ -353,99 +346,8 @@ public class ScheduleLayout extends Fragment implements OnMapReadyCallback{
 		db.close();
 		return eventCount;
 
-		//Read from database
-
-		/*//Elements to parse, format and operate with dates
-		Calendar cal;
-		Date maxDate, minDate;
-		String maxDateStr, minDateStr;
-		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US);
-		SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.US);
-		cal = Calendar.getInstance();
-		
-		//Get date of the selected daye
-	    try {
-			cal.setTime(dayFormat.parse(days[selected][0]));
-		} catch (ParseException e) {
-			Log.e("Error parsing date", e.toString());
-		}
-	    
-	    //Set margins so the days goes from 6:00 in the morning to 5:59 the next day, instead of from 00:00 to 23:59
-	    cal.add(Calendar.HOUR_OF_DAY, 6); 
-	    minDate = cal.getTime();
-	    
-	    //If its the last day, include events of the next one
-	    if (selected == GM.DAY_9)
-	    	cal.add(Calendar.HOUR_OF_DAY, 36);
-	    else
-	    	cal.add(Calendar.HOUR_OF_DAY, 24);
-	    maxDate = cal.getTime();
-	    maxDateStr = dateFormat.format(maxDate);
-	    minDateStr = dateFormat.format(minDate);
-	    
-	    //Get data from database
-	    if (schedule == GM.SECTION_LABLANCA_GM_SCHEDULE)
-	    	cursor = db.rawQuery("SELECT event.id, event.name, event.description, event.place, place.id, place.name, event.start FROM event, place WHERE event = 1 AND place.id = event.place AND start BETWEEN '" + minDateStr + "' AND '" + maxDateStr + "' AND (lower(event.name) LIKE '%" + filter + "%' OR lower(event.description) LIKE '%" + filter + "%' OR lower(place.name) LIKE '%" + filter + "%') ORDER BY start;", null);
-	    else
-	    	cursor = db.rawQuery("SELECT event.id, event.name, event.description, event.place, place.id, place.name, event.start FROM event, place WHERE event = 1 AND place.id = event.place AND start BETWEEN '" + minDateStr + "' AND '" + maxDateStr + "' AND (lower(event.name) LIKE '%" + filter + "%' OR lower(event.description) LIKE '%" + filter + "%' OR lower(place.name) LIKE '%" + filter + "%') ORDER BY start;", null);
-		
-	    //Clear the list
-		list.removeAllViews();
-		
-        //Loop
-        while (cursor.moveToNext()){
-        	
-        	
-        	//Create a new row
-        	entry = (LinearLayout) factory.inflate(R.layout.row_schedule, null);
-        	
-        	//Set id        	
-        	tvRowId = (TextView) entry.findViewById(R.id.tv_row_schedule_id);
-        	tvRowId.setText(cursor.getString(0));
-        	
-        	//Set title
-        	tvRowTitle = (TextView) entry.findViewById(R.id.tv_row_schedule_title);
-        	tvRowTitle.setText(cursor.getString(1));
-        	
-        	//Set description
-        	tvRowDesc = (TextView) entry.findViewById(R.id.tv_row_schedule_description);
-        	tvRowDesc.setText(cursor.getString(2));
-        	
-        	//Set place
-        	tvRowPlace = (TextView) entry.findViewById(R.id.tv_row_schedule_place);
-        	tvRowPlace.setText(cursor.getString(5));
-        	icon.setBounds(0, 0, (int) (tvRowPlace.getTextSize() * 1.5), (int) (tvRowPlace.getTextSize() * 1.5));
-        	tvRowPlace.setCompoundDrawables(icon, null, null, null);
-        	
-        	//Set time
-        	tvRowTime = (TextView) entry.findViewById(R.id.tv_row_schedule_time);
-        	String tm = cursor.getString(6).substring(cursor.getString(6).length() - 8, cursor.getString(6).length() - 3);
-        	tvRowTime.setText(tm);
-        	
-        	//Set onClick event
-        	content = (LinearLayout) entry.findViewById(R.id.ll_row_schedule_content);
-        	content.setOnClickListener(new OnClickListener(){
-				@Override
-				public void onClick(View v) {
-	            	TextView tvName = (TextView) v.findViewById(R.id.tv_row_schedule_id);
-	            	int id = Integer.parseInt(tvName.getText().toString());
-					showDialog(id);
-				}
-        	});
-        	
-        	//Add to the list
-        	list.addView(entry);
-        }
-        
-        //Invalidate the list so it is redrawn
-        list.invalidate();
-        
-        //Close cursor and database
-        cursor.close();*/
-        //db.close();
 	}
 	
-	
 	/**
 	 * Shows a dialog with info about the selected event.
 	 * 
@@ -578,8 +480,15 @@ public class ScheduleLayout extends Fragment implements OnMapReadyCallback{
 			});
 			
 			//Show the dialog
-			WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();
+			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;
 			lp.dimAmount = 0.0f;
+			dialog.getWindow().setAttributes(lp);
+
+			//Show dialog
 			dialog.show();
 			
 			//Start the map

+ 81 - 106
app/src/main/java/com/ivalentin/gm/SettingsLayout.java

@@ -1,19 +1,21 @@
 package com.ivalentin.gm;
 
 import android.annotation.SuppressLint;
-import android.app.AlertDialog;
+import android.app.Dialog;
 import android.content.Context;
-import android.content.DialogInterface;
 import android.content.SharedPreferences;
-import android.content.res.ColorStateList;
 import android.os.Bundle;
 import android.app.Fragment;
+import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.view.ViewGroup;
+import android.view.Window;
+import android.view.WindowManager;
+import android.webkit.WebView;
+import android.widget.Button;
 import android.widget.CheckBox;
-import android.widget.EditText;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
 
@@ -25,12 +27,6 @@ import android.widget.TextView;
  */
 public class SettingsLayout extends Fragment{
 
-	//The user name
-	private String userName;
-	
-	//Color to store default text color before change them
-	private ColorStateList defaultColorTitle, defaultColorSummary;
-	
 	/**
 	 * Run when the fragment is inflated.
 	 * Assigns the view and the click listeners. 
@@ -53,63 +49,25 @@ public class SettingsLayout extends Fragment{
 		
 		//Get views.
 		RelativeLayout rlNotification = (RelativeLayout) view.findViewById(R.id.rl_settings_notifications);
-		RelativeLayout rlNotificationGm = (RelativeLayout) view.findViewById(R.id.rl_settings_notifications_gm);
-		RelativeLayout rlAccountGm = (RelativeLayout) view.findViewById(R.id.rl_settings_gm);
-		RelativeLayout rlAccountName = (RelativeLayout) view.findViewById(R.id.rl_settings_account_name);
 		final CheckBox cbNotification = (CheckBox) view.findViewById(R.id.cb_settings_notifications);
-		final CheckBox cbNotificationGm = (CheckBox) view.findViewById(R.id.cb_settings_notifications_gm);
-		final CheckBox cbAccountGm = (CheckBox) view.findViewById(R.id.cb_settings_gm);
 		final TextView tvNotification = (TextView) view.findViewById(R.id.tv_settings_notifications_summary);
-		final TextView tvNotificationGmTitle = (TextView) view.findViewById(R.id.tv_settings_notifications_gm);
-		final TextView tvNotificationGm = (TextView) view.findViewById(R.id.tv_settings_notifications_gm_summary);
-		final TextView tvAccountGm = (TextView) view.findViewById(R.id.tv_settings_gm_summary);
-		final TextView tvAccountName = (TextView) view.findViewById(R.id.tv_settings_account_name_summary);
-		
-		//Get TextView defaultColors
-		defaultColorTitle = tvNotificationGmTitle.getTextColors();
-		defaultColorSummary = tvNotificationGm.getTextColors();
-		
-		//Set initial state of the settings
+		TextView tvLicense = (TextView) view.findViewById(R.id.tv_setting_license);
+		TextView tvPrivacy = (TextView) view.findViewById(R.id.tv_setting_privacy);
+		TextView tvAbout = (TextView) view.findViewById(R.id.tv_setting_about);
+		TextView tvTransparency = (TextView) view.findViewById(R.id.tv_setting_transparency);
+
+
+		//Set initial state of the notification  settings
 		SharedPreferences settings = view.getContext().getSharedPreferences(GM.PREF, Context.MODE_PRIVATE);
 		if (settings.getInt(GM.PREF_NOTIFICATION, GM.DEFAULT_PREF_NOTIFICATION) == 1){
 			cbNotification.setChecked(true);
 			tvNotification.setText(view.getContext().getString(R.string.settings_notification_on));
-			cbNotificationGm.setEnabled(true);
 		}
 		else{
 			cbNotification.setChecked(false);
 			tvNotification.setText(view.getContext().getString(R.string.settings_notification_off));
-			cbNotificationGm.setEnabled(false);
-			tvNotificationGm.setTextColor(view.getResources().getColor(R.color.settings_disabled));
-			tvNotificationGmTitle.setTextColor(view.getResources().getColor(R.color.settings_disabled));
-		}
-		
-		if (settings.getInt(GM.PREF_NOTIFICATION_GM, GM.DEFAULT_PREF_NOTIFICATION_GM) == 1){
-			cbNotificationGm.setChecked(true);
-			tvNotificationGm.setText(view.getContext().getString(R.string.settings_notification_gm_on));
-		}
-		else{
-			cbNotificationGm.setChecked(false);
-			tvNotificationGm.setText(view.getContext().getString(R.string.settings_notification_gm_off));
-		}
-		
-		if (settings.getInt(GM.PREF_GM, GM.DEFAULT_PREF_GM) == 1){
-			cbAccountGm.setChecked(true);
-			tvAccountGm.setText(view.getContext().getString(R.string.settings_account_gm_on));
-		}
-		else{
-			cbAccountGm.setChecked(false);
-			tvAccountGm.setText(view.getContext().getString(R.string.settings_account_gm_off));
-		}
-		
-		String username = settings.getString(GM.USER_NAME, GM.DEFAULT_PREF_USERNAME);
-		if (username.length() > 0){
-			tvAccountName.setText(username);
 		}
-		else{
-			tvAccountName.setText(view.getContext().getString(R.string.settings_account_unset));
-		}
-		
+
 		//Set click listener for "Notification" preference
 		rlNotification.setOnClickListener(new OnClickListener(){
 			@Override
@@ -117,79 +75,96 @@ public class SettingsLayout extends Fragment{
 				if (cbNotification.isChecked()){
 					cbNotification.setChecked(false);
 					tvNotification.setText(view.getContext().getString(R.string.settings_notification_off));
-					cbNotificationGm.setEnabled(false);
 					SharedPreferences preferences = view.getContext().getSharedPreferences(GM.PREF, Context.MODE_PRIVATE);
 					SharedPreferences.Editor editor = preferences.edit();
 					editor.putInt(GM.PREF_NOTIFICATION, 0);
 					editor.commit();
-					//Change color of disabled preference
-					tvNotificationGm.setTextColor(view.getResources().getColor(R.color.settings_disabled));
-					tvNotificationGmTitle.setTextColor(view.getResources().getColor(R.color.settings_disabled));
 				}
 				else{
 					cbNotification.setChecked(true);
 					tvNotification.setText(view.getContext().getString(R.string.settings_notification_on));
-					cbNotificationGm.setEnabled(true);
 					SharedPreferences preferences = view.getContext().getSharedPreferences(GM.PREF, Context.MODE_PRIVATE);
 					SharedPreferences.Editor editor = preferences.edit();
 					editor.putInt(GM.PREF_NOTIFICATION, 1);
 					editor.commit();
-					//Change color of disabled preferences
-					tvNotificationGmTitle.setTextColor(defaultColorTitle);
-					tvNotificationGm.setTextColor(defaultColorSummary);
 				}
 			}
 			
 		});
-		
-		//Set click listener for the "GM notifications" preference
-		rlNotificationGm.setOnClickListener(new OnClickListener(){
+
+		//Set listener for the other buttons
+		tvLicense.setOnClickListener(new OnClickListener() {
 			@Override
 			public void onClick(View v) {
-				if (cbNotificationGm.isEnabled()){
-					if (cbNotificationGm.isChecked()){
-						cbNotificationGm.setChecked(false);
-						tvNotificationGm.setText(view.getContext().getString(R.string.settings_notification_gm_off));
-						SharedPreferences preferences = view.getContext().getSharedPreferences(GM.PREF, Context.MODE_PRIVATE);
-						SharedPreferences.Editor editor = preferences.edit();
-						editor.putInt(GM.PREF_NOTIFICATION_GM, 0);
-						editor.commit();
-					}
-					else{
-						cbNotificationGm.setChecked(true);
-						tvNotificationGm.setText(view.getContext().getString(R.string.settings_notification_gm_on));
-						SharedPreferences preferences = view.getContext().getSharedPreferences(GM.PREF, Context.MODE_PRIVATE);
-						SharedPreferences.Editor editor = preferences.edit();
-						editor.putInt(GM.PREF_NOTIFICATION_GM, 1);
-						editor.commit();
-					}
-				}
-			}			
+				String title = v.getResources().getString(R.string.settings_license);
+				String text = v.getResources().getString(R.string.settings_license_content);
+				showDialog(title, text);
+			}
 		});
-		
-		//Set click listener for the "I am margolari" preference
-		rlAccountGm.setOnClickListener(new OnClickListener(){
+		tvPrivacy.setOnClickListener(new OnClickListener() {
 			@Override
 			public void onClick(View v) {
-				if (cbAccountGm.isChecked()){
-					cbAccountGm.setChecked(false);
-					tvAccountGm.setText(view.getContext().getString(R.string.settings_account_gm_off));
-					SharedPreferences preferences = view.getContext().getSharedPreferences(GM.PREF, Context.MODE_PRIVATE);
-					SharedPreferences.Editor editor = preferences.edit();
-					editor.putInt(GM.PREF_GM, 0);
-					editor.commit();
-				}
-				else{
-					cbAccountGm.setChecked(true);
-					tvAccountGm.setText(view.getContext().getString(R.string.settings_account_gm_on));
-					SharedPreferences preferences = view.getContext().getSharedPreferences(GM.PREF, Context.MODE_PRIVATE);
-					SharedPreferences.Editor editor = preferences.edit();
-					editor.putInt(GM.PREF_GM, 1);
-					editor.commit();
-				}
-			}	
+				String title = v.getResources().getString(R.string.settings_privacy);
+				String text = v.getResources().getString(R.string.settings_privacy_content);
+				showDialog(title, text);
+			}
+		});
+		tvAbout.setOnClickListener(new OnClickListener() {
+			@Override
+			public void onClick(View v) {
+				String title = v.getResources().getString(R.string.settings_about);
+				String text = v.getResources().getString(R.string.settings_about_content);
+				showDialog(title, text);
+			}
+		});
+		tvTransparency.setOnClickListener(new OnClickListener() {
+			@Override
+			public void onClick(View v) {
+				String title = v.getResources().getString(R.string.settings_transparency);
+				String text = v.getResources().getString(R.string.settings_transparency_content);
+				showDialog(title, text);
+			}
 		});
 
 		return view;
 	}
+
+	private void showDialog(String title, String text){
+		//Create the dialog
+		final Dialog dialog = new Dialog(getActivity());
+
+		//Set up dialog window
+		dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
+		dialog.setContentView(R.layout.dialog_settings);
+
+		//Set the custom dialog components - text, image and button
+		TextView tvTitle = (TextView) dialog.findViewById(R.id.tv_dialog_settings_title);
+		WebView wvText = (WebView) dialog.findViewById(R.id.wv_dialog_settings_text);
+		Button btClose = (Button) dialog.findViewById(R.id.bt_dialog_settings_close);
+
+		//Set text
+		tvTitle.setText(title);
+		wvText.loadDataWithBaseURL(null, text, "text/html", "utf-8", null);
+
+		//Set close button
+		btClose.setOnClickListener(new OnClickListener() {
+			@Override
+			public void onClick(View v) {
+				dialog.dismiss();
+			}
+		});
+
+		//Set parameters
+		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;
+		lp.dimAmount = 0.4f;
+		dialog.getWindow().setAttributes(lp);
+
+		//Show dialog
+		dialog.show();
+
+	}
 }

+ 0 - 17
app/src/main/res/layout/activity_main.xml

@@ -171,23 +171,6 @@
 				android:layout_height="1dp"
 				android:background="@color/background_separator"/>
 
-			<TextView
-				android:id="@+id/menu_about"
-				android:layout_width="fill_parent"
-				android:layout_height="wrap_content"
-				android:layout_marginBottom="10dp"
-				android:layout_marginTop="10dp"
-				android:gravity="center_vertical"
-				android:text="@string/menu_about"
-				android:textAppearance="?android:attr/textAppearanceLarge"
-				android:textStyle="bold"
-				android:textColor="@color/menu_entry" />
-
-			<View
-				android:layout_width="fill_parent"
-				android:layout_height="1dp"
-				android:background="@color/background_separator"/>
-
             <TextView
                 android:id="@+id/menu_settings"
                 android:layout_width="fill_parent"

+ 57 - 0
app/src/main/res/layout/dialog_settings.xml

@@ -0,0 +1,57 @@
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="fill_parent"
+    android:layout_height="wrap_content"
+    android:background="@drawable/section"
+    android:orientation="vertical"
+    android:padding="7dp" >
+
+    <TextView
+        android:id="@+id/tv_dialog_settings_title"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:ellipsize="end"
+        android:maxLines="2"
+        android:textAppearance="@android:style/TextAppearance.Large"
+        android:text="Title"/>
+
+    <ScrollView
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content">
+
+        <LinearLayout
+            android:layout_width="fill_parent"
+            android:layout_height="match_parent"
+            android:orientation="vertical"
+            android:background="@drawable/entry"
+            android:padding="7dp">
+
+            <WebView
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:id="@+id/wv_dialog_settings_text"/>
+
+        </LinearLayout>
+    </ScrollView>
+
+    <Button
+        android:id="@+id/bt_dialog_settings_close"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_margin="10dp"
+        android:background="@drawable/button_selector"
+        android:text="@string/notification_close"
+        android:textColor="@color/input_text_color"
+        android:textStyle="bold"
+        android:layout_gravity="center_horizontal"/>
+
+    <LinearLayout
+        android:id="@+id/ll_dialog_notification_buttons"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:gravity="center_horizontal"
+        android:orientation="vertical" >
+
+    </LinearLayout>
+
+</LinearLayout>

+ 0 - 90
app/src/main/res/layout/fragment_layout_about.xml

@@ -1,90 +0,0 @@
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    android:orientation="vertical" >
-
-    <LinearLayout
-        android:id="@+id/ll_about_header"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_alignParentLeft="true"
-        android:layout_alignParentStart="true"
-        android:layout_margin="10dp" >
-
-        <ImageView
-            android:id="@+id/imageView1"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:adjustViewBounds="true"
-            android:maxWidth="80dp"
-            android:contentDescription="@string/app_name"
-            android:src="@drawable/ic_launcher" />
-
-        <LinearLayout
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="10dp"
-            android:layout_marginStart="10dp"
-            android:orientation="vertical" >
-
-            <TextView
-                android:id="@+id/textView1"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/app_name_software"
-                android:textSize="16sp" />
-
-            <TextView
-                android:id="@+id/textView2"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/about_copyright"
-                android:textSize="12sp" />
-
-            <TextView
-                android:id="@+id/textView3"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="8dp"
-                android:autoLink="email"
-                android:text="@string/about_email"
-                android:textSize="13sp" />
-
-        </LinearLayout>
-
-    </LinearLayout>
-
-    <WebView
-        android:id="@+id/wv_about_code"
-        android:layout_width="fill_parent"
-        android:layout_height="wrap_content"
-        android:layout_alignParentBottom="true"
-        android:layout_marginEnd="10dp"
-        android:layout_marginLeft="10dp"
-        android:layout_marginRight="10dp"
-        android:layout_marginStart="10dp"
-        android:background="@color/about_code_background" />
-
-    <com.ivalentin.gm.CustomScrollView
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:fadingEdge="vertical"
-	    android:fadingEdgeLength="30dp"
-	    android:requiresFadingEdge="vertical"
-        android:layout_above="@id/wv_about_code"
-        android:layout_below="@id/ll_about_header" >
-
-        <TextView
-            android:id="@+id/tv_about_license"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginEnd="5dp"
-            android:layout_marginLeft="5dp"
-            android:layout_marginRight="5dp"
-            android:layout_marginStart="5dp"
-            android:layout_marginTop="30dp"
-            android:text="@string/about_license" />
-
-    </com.ivalentin.gm.CustomScrollView>
-
-</RelativeLayout>

+ 142 - 176
app/src/main/res/layout/fragment_layout_settings.xml

@@ -1,180 +1,146 @@
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
     android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    android:orientation="vertical" >
+    android:background="@color/background_app"
+    android:layout_height="fill_parent">
 
-    <TextView
-        android:id="@+id/textView1"
+    <com.ivalentin.gm.CustomScrollView
         android:layout_width="fill_parent"
-        android:layout_height="wrap_content"
-        android:background="@color/settings_header_background"
-        android:text="@string/settings_section_notification"
-        android:textColor="@color/settings_header"
-        android:textStyle="bold" />
-
-    <RelativeLayout
-        android:id="@+id/rl_settings_notifications"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_margin="10dp" >
-
-        <TextView
-            android:id="@+id/tv_settings_notifications"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_alignParentLeft="true"
-            android:layout_alignParentStart="true"
-            android:layout_alignParentTop="true"
-            android:text="@string/settings_notification"
-            android:textAppearance="?android:attr/textAppearanceLarge" />
-
-        <TextView
-            android:id="@+id/tv_settings_notifications_summary"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_alignParentLeft="true"
-            android:layout_alignParentStart="true"
-            android:layout_below="@id/tv_settings_notifications"
-            android:text="@string/settings_notification_off"
-            android:textAppearance="?android:attr/textAppearanceSmall" />
-
-        <CheckBox
-            android:id="@+id/cb_settings_notifications"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_alignParentEnd="true"
-            android:layout_alignParentRight="true"
-            android:layout_centerVertical="true"
-            android:clickable="false" />
-
-    </RelativeLayout>
-
-    <TextView
-        android:id="@+id/tv_separator"
-        android:layout_width="fill_parent"
-        android:layout_height="1dp"
-        android:layout_margin="15dp"
-        android:background="@color/settings_header_background"
-        android:textAppearance="?android:attr/textAppearanceSmall" />
-    
-    <RelativeLayout
-        android:id="@+id/rl_settings_notifications_gm"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_margin="10dp" >
-
-        <TextView
-            android:id="@+id/tv_settings_notifications_gm"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_alignParentLeft="true"
-            android:layout_alignParentStart="true"
-            android:layout_alignParentTop="true"
-            android:text="@string/settings_notification_gm"
-            android:textAppearance="?android:attr/textAppearanceLarge" />
-
-        <TextView
-            android:id="@+id/tv_settings_notifications_gm_summary"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_alignParentLeft="true"
-            android:layout_alignParentStart="true"
-            android:layout_below="@id/tv_settings_notifications_gm"
-            android:text="@string/settings_notification_gm_off"
-            android:textAppearance="?android:attr/textAppearanceSmall" />
-
-        <CheckBox
-            android:id="@+id/cb_settings_notifications_gm"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_alignParentEnd="true"
-            android:layout_alignParentRight="true"
-            android:layout_centerVertical="true"
-            android:clickable="false" />
-
-    </RelativeLayout>
-    
-    <TextView
-        android:id="@+id/textView2"
-        android:layout_width="fill_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="20dp"
-        android:background="@color/settings_header_background"
-        android:text="@string/settings_section_account"
-        android:textColor="@color/settings_header"
-        android:textStyle="bold" />
-
-    <RelativeLayout
-        android:id="@+id/rl_settings_gm"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_margin="10dp" >
-
-        <TextView
-            android:id="@+id/tv_settings_gm"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_alignParentLeft="true"
-            android:layout_alignParentStart="true"
-            android:layout_alignParentTop="true"
-            android:text="@string/settings_account_gm"
-            android:textAppearance="?android:attr/textAppearanceLarge" />
-
-        <TextView
-            android:id="@+id/tv_settings_gm_summary"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_alignParentLeft="true"
-            android:layout_alignParentStart="true"
-            android:layout_below="@id/tv_settings_gm"
-            android:text="@string/settings_account_gm_off"
-            android:textAppearance="?android:attr/textAppearanceSmall" />
-
-        <CheckBox
-            android:id="@+id/cb_settings_gm"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_alignParentEnd="true"
-            android:layout_alignParentRight="true"
-            android:layout_centerVertical="true"
-            android:clickable="false" />
-
-    </RelativeLayout>
-
-    <TextView
-        android:id="@+id/tv_separator2"
-        android:layout_width="fill_parent"
-        android:layout_height="1dp"
-        android:layout_margin="15dp"
-        android:background="@color/settings_header_background"
-        android:textAppearance="?android:attr/textAppearanceSmall" />
-    
-    <RelativeLayout
-        android:id="@+id/rl_settings_account_name"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_margin="10dp" >
-
-        <TextView
-            android:id="@+id/tv_settings_account_name"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_alignParentLeft="true"
-            android:layout_alignParentStart="true"
-            android:layout_alignParentTop="true"
-            android:text="@string/settings_account_name"
-            android:textAppearance="?android:attr/textAppearanceLarge" />
-
-        <TextView
-            android:id="@+id/tv_settings_account_name_summary"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_alignParentLeft="true"
-            android:layout_alignParentStart="true"
-            android:layout_below="@id/tv_settings_account_name"
-            android:text="@string/settings_account_unset"
-            android:textAppearance="?android:attr/textAppearanceSmall" />
-
-    </RelativeLayout>
-
+        android:layout_height="wrap_content">
+
+        <LinearLayout
+            android:orientation="vertical"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content">
+
+            <RelativeLayout
+                android:id="@+id/rl_settings_notifications"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:paddingLeft="10dp"
+                android:paddingTop="15dp"
+                android:paddingRight="10dp"
+                android:paddingBottom="15dp">
+
+                <TextView
+                    android:id="@+id/tv_settings_notifications"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_alignParentLeft="true"
+                    android:layout_alignParentStart="true"
+                    android:layout_alignParentTop="true"
+                    android:text="@string/settings_notification"
+                    android:textAppearance="@android:style/TextAppearance.Large" />
+
+                <TextView
+                    android:id="@+id/tv_settings_notifications_summary"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_alignParentLeft="true"
+                    android:layout_alignParentStart="true"
+                    android:layout_below="@id/tv_settings_notifications"
+                    android:text="@string/settings_notification_off"
+                    android:textAppearance="@android:style/TextAppearance.Small" />
+
+                <CheckBox
+                    android:id="@+id/cb_settings_notifications"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_alignParentEnd="true"
+                    android:layout_alignParentRight="true"
+                    android:layout_centerVertical="true"
+                    android:clickable="false" />
+
+            </RelativeLayout>
+
+            <TextView
+                android:layout_width="fill_parent"
+                android:layout_height="1dp"
+                android:background="@color/background_separator"
+                android:textAppearance="?android:attr/textAppearanceSmall"
+                android:layout_marginLeft="15dp"
+                android:layout_marginRight="15dp"/>
+
+            <TextView
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:textAppearance="?android:attr/textAppearanceLarge"
+                android:text="@string/settings_license"
+                android:id="@+id/tv_setting_license"
+                android:paddingLeft="10dp"
+                android:paddingTop="20dp"
+                android:paddingRight="10dp"
+                android:paddingBottom="20dp"/>
+
+            <TextView
+                android:layout_width="fill_parent"
+                android:layout_height="1dp"
+                android:background="@color/background_separator"
+                android:textAppearance="?android:attr/textAppearanceSmall"
+                android:layout_marginLeft="15dp"
+                android:layout_marginRight="15dp"/>
+
+            <TextView
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:textAppearance="?android:attr/textAppearanceLarge"
+                android:text="@string/settings_privacy"
+                android:id="@+id/tv_setting_privacy"
+                android:paddingLeft="10dp"
+                android:paddingTop="20dp"
+                android:paddingRight="10dp"
+                android:paddingBottom="20dp"/>
+
+            <TextView
+                android:layout_width="fill_parent"
+                android:layout_height="1dp"
+                android:background="@color/background_separator"
+                android:textAppearance="?android:attr/textAppearanceSmall"
+                android:layout_marginLeft="15dp"
+                android:layout_marginRight="15dp"
+                />
+
+            <TextView
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:textAppearance="?android:attr/textAppearanceLarge"
+                android:text="@string/settings_about"
+                android:id="@+id/tv_setting_about"
+                android:paddingLeft="10dp"
+                android:paddingTop="20dp"
+                android:paddingRight="10dp"
+                android:paddingBottom="20dp"/>
+
+            <TextView
+                android:layout_width="fill_parent"
+                android:layout_height="1dp"
+                android:background="@color/background_separator"
+                android:textAppearance="?android:attr/textAppearanceSmall"
+                android:layout_marginLeft="15dp"
+                android:layout_marginRight="15dp"
+                />
+
+            <TextView
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:textAppearance="?android:attr/textAppearanceLarge"
+                android:text="@string/settings_transparency"
+                android:id="@+id/tv_setting_transparency"
+                android:paddingLeft="10dp"
+                android:paddingTop="20dp"
+                android:paddingRight="10dp"
+                android:paddingBottom="20dp"/>
+
+            <TextView
+                android:layout_width="fill_parent"
+                android:layout_height="1dp"
+                android:background="@color/background_separator"
+                android:textAppearance="?android:attr/textAppearanceSmall"
+                android:layout_marginLeft="15dp"
+                android:layout_marginRight="15dp"
+                />
+
+        </LinearLayout>
+    </com.ivalentin.gm.CustomScrollView>
 </LinearLayout>

+ 2 - 2
app/src/main/res/layout/row_gallery.xml

@@ -82,7 +82,7 @@
     <TextView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:textAppearance="?android:attr/textAppearanceLarge"
+        android:textAppearance="@android:style/TextAppearance.Large"
         android:text="Large Text"
         android:id="@+id/tv_row_gallery_title"
         android:layout_marginTop="15dp"
@@ -91,7 +91,7 @@
     <TextView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:textAppearance="?android:attr/textAppearanceMedium"
+        android:textAppearance="@android:style/TextAppearance.Medium"
         android:text="Medium Text"
         android:id="@+id/tv_row_gallery_counter"
         android:layout_gravity="center_horizontal" />

+ 11 - 31
app/src/main/res/values/strings.xml

@@ -59,16 +59,6 @@
 	<string name="distance_m">meters</string>
 	<string name="distance_k">kilometers</string>
 
-	<!-- "Titles" for days -->
-
-
-	<!-- About section strings -->
-
-	<string name="about_copyright" translatable="false">Copyright 2015 @Iñigo Valentin</string>
-	<string name="about_email" translatable="false">i@inigovalentin.com</string>
-	<string name="about_license">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.\n\nThis 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/.\n\nThe name "Gasteizko Margolariak" and its logotype are property of Gasteizko Margolariak.</string>
-	<string name="about_code">&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>
-
 
 	<!-- Around section string -->
 
@@ -112,29 +102,19 @@
 	<string name="home_section_join_footer">Check out our prices and choose your option.</string>
 
 
-	<!-- Prices dialog strings -->
-
-
 	<!-- Settings section strings -->
 
-	<string name="settings_section_notification">NOTIFICATIONS</string>
-	<string name="settings_notification">Notifications</string>
-	<string name="settings_notification_on">Receive notifications</string>
-	<string name="settings_notification_off">Don\'t receive notifications</string>
-	<string name="settings_notification_gm">Margolari notifications</string>
-	<string name="settings_notification_gm_on">Receive Margolari notifications</string>
-	<string name="settings_notification_gm_off">Don\'t receive Margolari notifications</string>
-	<string name="settings_section_account">ACCOUNT</string>
-	<string name="settings_account_gm">Margolari</string>
-	<string name="settings_account_gm_on">I am Margolari</string>
-	<string name="settings_account_gm_off">I am not Margolari</string>
-	<string name="settings_account_name">Name</string>
-	<string name="settings_account_message_title">Set username</string>
-	<string name="settings_account_message_text">Set a username to help us identify you and offer you better activities.</string>
-	<string name="settings_account_message_save">Save</string>
-	<string name="settings_account_message_cancel">Cancel</string>
-	<string name="settings_account_unset">Not set</string>
-	<string name="settings_account_name_disclaimer">We will not share your name or any other personal info with third parties.</string>
+	<string name="settings_notification">Receive notifications</string>
+	<string name="settings_notification_on">You will receive notifications</string>
+	<string name="settings_notification_off">You won\'t receive notifications</string>
+	<string name="settings_license">License</string>
+	<string name="settings_privacy">Privacy</string>
+	<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">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.&lt;br/>&lt;br/>In order of making you believe us, we\'ll explain what we DO store:&lt;br/>&lt;br/>&lt;ul>&lt;li>A randomly generated user code, unique to your device. This is neccessary 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.&lt;/li>&lt;li>When commenting on a photo ar an entry, we store your current IP address. This is incredibly usefull for us to know how many actual people are posting comments, and it also makes imposible for us to identify you as a person.&lt;/li>&lt;/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>
 
 
 	<!-- Location section strings -->