diff --git a/UI/AndroidApp/flavoursWithoutBorders/app/build.gradle b/UI/AndroidApp/flavoursWithoutBorders/app/build.gradle
index 4eb80b3..7ec20e0 100644
--- a/UI/AndroidApp/flavoursWithoutBorders/app/build.gradle
+++ b/UI/AndroidApp/flavoursWithoutBorders/app/build.gradle
@@ -25,6 +25,7 @@ dependencies {
implementation 'androidx.preference:preference:1.1.0-alpha02'
implementation 'androidx.legacy:legacy-preference-v14:1.0.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
+ implementation 'androidx.coordinatorlayout:coordinatorlayout:1.0.0'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
diff --git a/UI/AndroidApp/flavoursWithoutBorders/app/src/main/AndroidManifest.xml b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/AndroidManifest.xml
index 889519a..5b7d964 100644
--- a/UI/AndroidApp/flavoursWithoutBorders/app/src/main/AndroidManifest.xml
+++ b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/AndroidManifest.xml
@@ -39,7 +39,7 @@
android:value="@string/google_maps_key" />
diff --git a/UI/AndroidApp/flavoursWithoutBorders/app/src/main/java/gr/auth/databases/flavours/LoginActivity.java b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/java/gr/auth/databases/flavours/LoginActivity.java
index 0555db9..d4b6e88 100644
--- a/UI/AndroidApp/flavoursWithoutBorders/app/src/main/java/gr/auth/databases/flavours/LoginActivity.java
+++ b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/java/gr/auth/databases/flavours/LoginActivity.java
@@ -5,6 +5,7 @@ import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
+import gr.auth.databases.flavours.main.MainActivity;
public class LoginActivity extends AppCompatActivity {
diff --git a/UI/AndroidApp/flavoursWithoutBorders/app/src/main/java/gr/auth/databases/flavours/main/MainActivity.java b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/java/gr/auth/databases/flavours/main/MainActivity.java
new file mode 100644
index 0000000..36eb438
--- /dev/null
+++ b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/java/gr/auth/databases/flavours/main/MainActivity.java
@@ -0,0 +1,156 @@
+package gr.auth.databases.flavours.main;
+
+import android.os.Bundle;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.animation.AccelerateInterpolator;
+import android.view.animation.AlphaAnimation;
+import android.view.animation.Animation;
+import android.view.animation.DecelerateInterpolator;
+
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentStatePagerAdapter;
+import androidx.viewpager.widget.PagerAdapter;
+import androidx.viewpager.widget.ViewPager;
+import gr.auth.databases.flavours.R;
+import gr.auth.databases.flavours.main.fragments.MainListFragment;
+import gr.auth.databases.flavours.main.fragments.MainMapFragment;
+
+public class MainActivity extends AppCompatActivity {
+ private static final int NUM_PAGES = 2;
+ private ViewPager viewPager;
+ private MenuItem menuMapItem;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+
+ Toolbar toolbar = findViewById(R.id.main_toolbar);
+ toolbar.setTitle("Restaurants");
+ setSupportActionBar(toolbar);
+
+ final Animation fadeIn = new AlphaAnimation(0, 1);
+ fadeIn.setInterpolator(new DecelerateInterpolator());
+ fadeIn.setDuration(700);
+ fadeIn.setAnimationListener(new Animation.AnimationListener() {
+ @Override
+ public void onAnimationStart(Animation animation) {
+ menuMapItem.setVisible(true);
+ }
+
+ @Override
+ public void onAnimationRepeat(Animation animation) {
+ }
+
+ @Override
+ public void onAnimationEnd(Animation animation) {
+ menuMapItem.setVisible(true);
+ }
+ });
+
+ final Animation fadeOut = new AlphaAnimation(1, 0);
+ fadeOut.setInterpolator(new AccelerateInterpolator());
+ fadeOut.setStartOffset(100);
+ fadeOut.setDuration(700);
+ fadeOut.setAnimationListener(new Animation.AnimationListener() {
+ @Override
+ public void onAnimationStart(Animation animation) {
+ }
+
+ @Override
+ public void onAnimationRepeat(Animation animation) {
+ }
+
+ @Override
+ public void onAnimationEnd(Animation animation) {
+ menuMapItem.setVisible(false);
+ }
+ });
+
+ viewPager = findViewById(R.id.main_pager);
+ viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+ public void onPageScrollStateChanged(int state) {
+ }
+
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+ }
+
+ public void onPageSelected(int position) {
+ if (menuMapItem == null) {
+ return;
+ }
+
+ if (position == 0) {
+ menuMapItem.setVisible(true);
+ menuMapItem.getActionView().startAnimation(fadeIn);
+ } else {
+ menuMapItem.getActionView().startAnimation(fadeOut);
+ }
+ }
+ });
+
+ PagerAdapter pagerAdapter = new MainPagerAdapter(getSupportFragmentManager());
+ viewPager.setAdapter(pagerAdapter);
+ }
+
+ @Override
+ public void onBackPressed() {
+ if (viewPager.getCurrentItem() == 0) {
+ super.onBackPressed();
+ } else {
+ viewPager.setCurrentItem(0);
+ }
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ getMenuInflater().inflate(R.menu.main_tollbar_menu, menu);
+ menuMapItem = menu.findItem(R.id.main_toolbar_menu_map);
+
+ View view = getLayoutInflater().inflate(R.layout.menu_item_main_map, null);
+ menuMapItem.setActionView(view);
+ return true;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ int id = item.getItemId();
+
+ if (id == R.id.main_toolbar_menu_filter) {
+ return true;
+ } else if (id == R.id.main_toolbar_menu_map) {
+ viewPager.setCurrentItem(1);
+ return true;
+ }
+
+ return super.onOptionsItemSelected(item);
+ }
+
+ private class MainPagerAdapter extends FragmentStatePagerAdapter {
+ MainPagerAdapter(FragmentManager fm) {
+ super(fm);
+ }
+
+ @NonNull
+ @Override
+ public Fragment getItem(int position) {
+ if (position == 0) {
+ return new MainListFragment();
+ } else {
+ return new MainMapFragment();
+ }
+ }
+
+ @Override
+ public int getCount() {
+ return NUM_PAGES;
+ }
+ }
+}
diff --git a/UI/AndroidApp/flavoursWithoutBorders/app/src/main/java/gr/auth/databases/flavours/main/MainAdapter.java b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/java/gr/auth/databases/flavours/main/MainAdapter.java
new file mode 100644
index 0000000..436d258
--- /dev/null
+++ b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/java/gr/auth/databases/flavours/main/MainAdapter.java
@@ -0,0 +1,83 @@
+package gr.auth.databases.flavours.main;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+import gr.auth.databases.flavours.R;
+import gr.auth.databases.flavours.model.Restaurant;
+
+public class MainAdapter extends RecyclerView.Adapter {
+ private Context context;
+ private Restaurant[] restaurants;
+
+ public MainAdapter(Context context, Restaurant[] restaurants) {
+ this.context = context;
+ this.restaurants = restaurants;
+ }
+
+ @NonNull
+ @Override
+ public MainAdapter.RestaurantViewHolder onCreateViewHolder(@NonNull ViewGroup parent,
+ int viewType) {
+ View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.activity_main_list_row,
+ parent, false);
+ return new RestaurantViewHolder(v);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull RestaurantViewHolder holder, int position) {
+ holder.name.setText(restaurants[position].getName());
+ holder.workingHours.setText(context.getString(R.string.main_row_working_hours_placeholder,
+ restaurants[position].getOpeningTime().substring(0,5),
+ restaurants[position].getClosingTime().substring(0,5)));
+
+ if (restaurants[position].getType().equals("restaurant")) {
+ holder.typeImage.setImageResource(R.drawable.restaurant_marker);
+ holder.typeText.setText(context.getResources().getString(R.string.main_restaurant_type));
+ }
+ if (restaurants[position].getType().equals("bar")) {
+ holder.typeImage.setImageResource(R.drawable.bar_marker);
+ holder.typeText.setText(context.getResources().getString(R.string.main_bar_type));
+ }
+ if (restaurants[position].getType().equals("cafeteria")) {
+ holder.typeImage.setImageResource(R.drawable.cafeteria_marker);
+ holder.typeText.setText(context.getResources().getString(R.string.main_cafeteria_type));
+ }
+ if (restaurants[position].getType().equals("pub")) {
+ holder.typeImage.setImageResource(R.drawable.pub_marker);
+ holder.typeText.setText(context.getResources().getString(R.string.main_pub_type));
+ }
+ if (restaurants[position].getType().equals("fast_food")) {
+ holder.typeImage.setImageResource(R.drawable.fast_food_marker);
+ holder.typeText.setText(context.getResources().getString(R.string.main_fast_food_type));
+ }
+ if (restaurants[position].getType().equals("ethnic")) {
+ holder.typeImage.setImageResource(R.drawable.restaurant_marker);
+ holder.typeText.setText(context.getResources().getString(R.string.main_ethnic_type));
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return restaurants.length;
+ }
+
+ static class RestaurantViewHolder extends RecyclerView.ViewHolder {
+ TextView name, typeText, workingHours;
+ ImageView typeImage;
+
+ RestaurantViewHolder(View v) {
+ super(v);
+ name = v.findViewById(R.id.main_row_name);
+ typeText = v.findViewById(R.id.main_row_type_txt);
+ workingHours = v.findViewById(R.id.main_row_working_hours);
+ typeImage = v.findViewById(R.id.main_row_type_img);
+ }
+ }
+}
\ No newline at end of file
diff --git a/UI/AndroidApp/flavoursWithoutBorders/app/src/main/java/gr/auth/databases/flavours/main/fragments/MainListFragment.java b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/java/gr/auth/databases/flavours/main/fragments/MainListFragment.java
new file mode 100644
index 0000000..f5abf14
--- /dev/null
+++ b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/java/gr/auth/databases/flavours/main/fragments/MainListFragment.java
@@ -0,0 +1,47 @@
+package gr.auth.databases.flavours.main.fragments;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+import gr.auth.databases.flavours.R;
+import gr.auth.databases.flavours.main.MainAdapter;
+import gr.auth.databases.flavours.model.Restaurant;
+
+public class MainListFragment extends Fragment {
+ private Restaurant[] restaurants = new Restaurant[13];
+
+ @Override
+ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment_main_list, container, false);
+
+ RecyclerView recyclerView = rootView.findViewById(R.id.main_recycler);
+ recyclerView.setHasFixedSize(true);
+ LinearLayoutManager layoutManager = new LinearLayoutManager(getContext());
+ recyclerView.setLayoutManager(layoutManager);
+
+ restaurants[0] = new Restaurant("U Fleků", "pub", "18:00:00", "04:00:00");
+ restaurants[1] = new Restaurant("Σ σύγχρονα εστιατόρια", "restaurant", "12:00:00", "22:00:00");
+ restaurants[2] = new Restaurant("U Fleků Garden", "pub", "18:00:00", "02:00:00");
+ restaurants[3] = new Restaurant("McDonald\'s", "fast_food", "12:00:00", "23:59:00");
+ restaurants[4] = new Restaurant("Grill 15", "fast_food", "12:00:00", "01:30:00");
+ restaurants[5] = new Restaurant("Butterflies and Hurricanes", "cafeteria", "08:00:00", "20:00:00");
+ restaurants[6] = new Restaurant("The Hoppy Pub", "pub", "17:30:00", "01:30:00");
+ restaurants[7] = new Restaurant("Belleville sin patron", "bar", "12:00:00", "02:00:00");
+ restaurants[8] = new Restaurant("Αιθερόπλοο", "pub", "08:00:00", "02:00:00");
+ restaurants[9] = new Restaurant("Οδυσσέας", "restaurant", "12:30:00", "18:00:00");
+ restaurants[10] = new Restaurant("Pulp", "bar", "09:00:00", "23:59:00");
+ restaurants[11] = new Restaurant("McDonald\'s", "fast_food", "12:00:00", "23:59:00");
+ restaurants[12] = new Restaurant("Γιαννούλα", "restaurant", "13:30:00", "01:00:00");
+
+ MainAdapter mainAdapter = new MainAdapter(getContext(), restaurants);
+ recyclerView.setAdapter(mainAdapter);
+
+ return rootView;
+ }
+}
diff --git a/UI/AndroidApp/flavoursWithoutBorders/app/src/main/java/gr/auth/databases/flavours/MainActivity.java b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/java/gr/auth/databases/flavours/main/fragments/MainMapFragment.java
similarity index 63%
rename from UI/AndroidApp/flavoursWithoutBorders/app/src/main/java/gr/auth/databases/flavours/MainActivity.java
rename to UI/AndroidApp/flavoursWithoutBorders/app/src/main/java/gr/auth/databases/flavours/main/fragments/MainMapFragment.java
index 43c0e0d..5fc9811 100644
--- a/UI/AndroidApp/flavoursWithoutBorders/app/src/main/java/gr/auth/databases/flavours/MainActivity.java
+++ b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/java/gr/auth/databases/flavours/main/fragments/MainMapFragment.java
@@ -1,32 +1,81 @@
-package gr.auth.databases.flavours;
+package gr.auth.databases.flavours.main.fragments;
-import android.graphics.BitmapFactory;
import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
+import com.google.android.gms.maps.MapView;
import com.google.android.gms.maps.OnMapReadyCallback;
-import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
-import androidx.fragment.app.FragmentActivity;
+import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
+import gr.auth.databases.flavours.R;
-public class MainActivity extends FragmentActivity implements OnMapReadyCallback {
+public class MainMapFragment extends Fragment implements OnMapReadyCallback {
+ private MapView gMapView = null;
- private GoogleMap mMap;
+ @Override
+ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment_main_map, container, false);
+
+ gMapView = rootView.findViewById(R.id.main_map);
+ gMapView.getMapAsync(this);
+ gMapView.onCreate(getArguments());
+
+ return rootView;
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+
+ if (gMapView != null) {
+ gMapView.onResume();
+ }
+ }
+
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+
+ if (gMapView != null) {
+ gMapView.onDestroy();
+ }
+ }
@Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- // Obtain the SupportMapFragment and get notified when the map is ready to be used.
- SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
- .findFragmentById(R.id.map);
- mapFragment.getMapAsync(this);
+ public void onStart() {
+ super.onStart();
+
+ if (gMapView != null) {
+ gMapView.onStart();
+ }
}
+ @Override
+ public void onStop() {
+ super.onStop();
+
+ if (gMapView != null) {
+ gMapView.onStop();
+ }
+
+ }
+
+ @Override
+ public void onSaveInstanceState(@NonNull Bundle outState) {
+ super.onSaveInstanceState(outState);
+
+ if (gMapView != null) {
+ gMapView.onSaveInstanceState(outState);
+ }
+ }
/**
* Manipulates the map once available.
@@ -39,8 +88,6 @@ public class MainActivity extends FragmentActivity implements OnMapReadyCallback
*/
@Override
public void onMapReady(GoogleMap googleMap) {
- mMap = googleMap;
-
// Add markers and move the camera
LatLng uFleku = new LatLng(40.6357, 22.9367);
LatLng sSyxronaEstiatoria = new LatLng(40.6173, 22.9597);
@@ -56,58 +103,58 @@ public class MainActivity extends FragmentActivity implements OnMapReadyCallback
LatLng mcDonalds2 = new LatLng(40.5745, 22.9715);
LatLng gianoula = new LatLng(40.64, 22.9468);
- mMap.addMarker(new MarkerOptions()
+ googleMap.addMarker(new MarkerOptions()
.position(uFleku)
.title("U Fleků")
.icon(BitmapDescriptorFactory.fromResource(R.drawable.pub_marker)));
- mMap.addMarker(new MarkerOptions()
+ googleMap.addMarker(new MarkerOptions()
.position(sSyxronaEstiatoria)
.title("Σ σύγχρονα εστιατόρια")
.icon(BitmapDescriptorFactory.fromResource(R.drawable.restaurant_marker)));
- mMap.addMarker(new MarkerOptions()
+ googleMap.addMarker(new MarkerOptions()
.position(uFlekuGarden)
.title("U Fleků Garden")
.icon(BitmapDescriptorFactory.fromResource(R.drawable.pub_marker)));
- mMap.addMarker(new MarkerOptions()
+ googleMap.addMarker(new MarkerOptions()
.position(mcDonalds)
.title("McDonald\'s")
.icon(BitmapDescriptorFactory.fromResource(R.drawable.fast_food_marker)));
- mMap.addMarker(new MarkerOptions()
+ googleMap.addMarker(new MarkerOptions()
.position(grill15)
.title("Grill 15")
.icon(BitmapDescriptorFactory.fromResource(R.drawable.fast_food_marker)));
- mMap.addMarker(new MarkerOptions()
+ googleMap.addMarker(new MarkerOptions()
.position(butterfliesAndHurricanes)
.title("Butterflies and Hurricanes")
.icon(BitmapDescriptorFactory.fromResource(R.drawable.cafeteria_marker)));
- mMap.addMarker(new MarkerOptions()
+ googleMap.addMarker(new MarkerOptions()
.position(theHoppyPub)
.title("The Hoppy Pub")
.icon(BitmapDescriptorFactory.fromResource(R.drawable.pub_marker)));
- mMap.addMarker(new MarkerOptions()
+ googleMap.addMarker(new MarkerOptions()
.position(bellevilleSinPatron)
.title("Belleville sin patron")
.icon(BitmapDescriptorFactory.fromResource(R.drawable.bar_marker)));
- mMap.addMarker(new MarkerOptions()
+ googleMap.addMarker(new MarkerOptions()
.position(aitheroploo)
.title("Αιθερόπλοο")
.icon(BitmapDescriptorFactory.fromResource(R.drawable.pub_marker)));
- mMap.addMarker(new MarkerOptions()
+ googleMap.addMarker(new MarkerOptions()
.position(odysseas)
.title("Οδυσσέας")
.icon(BitmapDescriptorFactory.fromResource(R.drawable.restaurant_marker)));
- mMap.addMarker(new MarkerOptions()
+ googleMap.addMarker(new MarkerOptions()
.position(pulp)
.title("Pulp")
.icon(BitmapDescriptorFactory.fromResource(R.drawable.bar_marker)));
- mMap.addMarker(new MarkerOptions()
+ googleMap.addMarker(new MarkerOptions()
.position(mcDonalds2)
.title("McDonald\'s")
.icon(BitmapDescriptorFactory.fromResource(R.drawable.fast_food_marker)));
- mMap.addMarker(new MarkerOptions()
+ googleMap.addMarker(new MarkerOptions()
.position(gianoula)
.title("Γιαννούλα")
.icon(BitmapDescriptorFactory.fromResource(R.drawable.restaurant_marker)));
- mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(grill15, 12.0f));
+ googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(grill15, 12.0f));
}
}
diff --git a/UI/AndroidApp/flavoursWithoutBorders/app/src/main/java/gr/auth/databases/flavours/model/Restaurant.java b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/java/gr/auth/databases/flavours/model/Restaurant.java
new file mode 100644
index 0000000..2706c47
--- /dev/null
+++ b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/java/gr/auth/databases/flavours/model/Restaurant.java
@@ -0,0 +1,28 @@
+package gr.auth.databases.flavours.model;
+
+public class Restaurant {
+ private final String name, type, openingTime, closingTime;
+
+ public Restaurant(String name, String type, String openingTime, String closingTime) {
+ this.name = name;
+ this.type= type;
+ this.openingTime = openingTime;
+ this.closingTime = closingTime;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public String getOpeningTime() {
+ return openingTime;
+ }
+
+ public String getClosingTime() {
+ return closingTime;
+ }
+}
diff --git a/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/drawable-hdpi/ic_filter_list_black_24dp.png b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/drawable-hdpi/ic_filter_list_black_24dp.png
new file mode 100644
index 0000000..22625e0
Binary files /dev/null and b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/drawable-hdpi/ic_filter_list_black_24dp.png differ
diff --git a/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/drawable-mdpi/ic_filter_list_black_24dp.png b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/drawable-mdpi/ic_filter_list_black_24dp.png
new file mode 100644
index 0000000..5b4c4d7
Binary files /dev/null and b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/drawable-mdpi/ic_filter_list_black_24dp.png differ
diff --git a/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/drawable-xhdpi/ic_filter_list_black_24dp.png b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/drawable-xhdpi/ic_filter_list_black_24dp.png
new file mode 100644
index 0000000..a4f754d
Binary files /dev/null and b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/drawable-xhdpi/ic_filter_list_black_24dp.png differ
diff --git a/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/drawable-xxhdpi/ic_filter_list_black_24dp.png b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/drawable-xxhdpi/ic_filter_list_black_24dp.png
new file mode 100644
index 0000000..c3869b0
Binary files /dev/null and b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/drawable-xxhdpi/ic_filter_list_black_24dp.png differ
diff --git a/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/drawable-xxxhdpi/ic_filter_list_black_24dp.png b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/drawable-xxxhdpi/ic_filter_list_black_24dp.png
new file mode 100644
index 0000000..e9ac927
Binary files /dev/null and b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/drawable-xxxhdpi/ic_filter_list_black_24dp.png differ
diff --git a/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/layout/activity_main.xml b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/layout/activity_main.xml
index cfbceaa..419ab8b 100644
--- a/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/layout/activity_main.xml
+++ b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/layout/activity_main.xml
@@ -1,9 +1,36 @@
-
\ No newline at end of file
+ android:background="@android:color/background_light"
+ android:fitsSystemWindows="true">
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/layout/activity_main_list_row.xml b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/layout/activity_main_list_row.xml
new file mode 100644
index 0000000..4e1b66d
--- /dev/null
+++ b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/layout/activity_main_list_row.xml
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/layout/fragment_main_list.xml b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/layout/fragment_main_list.xml
new file mode 100644
index 0000000..2b9e532
--- /dev/null
+++ b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/layout/fragment_main_list.xml
@@ -0,0 +1,8 @@
+
+
\ No newline at end of file
diff --git a/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/layout/fragment_main_map.xml b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/layout/fragment_main_map.xml
new file mode 100644
index 0000000..8c3bbe5
--- /dev/null
+++ b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/layout/fragment_main_map.xml
@@ -0,0 +1,5 @@
+
+
\ No newline at end of file
diff --git a/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/layout/map_view.xml b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/layout/map_view.xml
new file mode 100644
index 0000000..ac55966
--- /dev/null
+++ b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/layout/map_view.xml
@@ -0,0 +1,8 @@
+
+
\ No newline at end of file
diff --git a/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/layout/menu_item_main_map.xml b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/layout/menu_item_main_map.xml
new file mode 100644
index 0000000..1c6b6a9
--- /dev/null
+++ b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/layout/menu_item_main_map.xml
@@ -0,0 +1,6 @@
+
+
diff --git a/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/menu/main_tollbar_menu.xml b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/menu/main_tollbar_menu.xml
new file mode 100644
index 0000000..01c485d
--- /dev/null
+++ b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/menu/main_tollbar_menu.xml
@@ -0,0 +1,19 @@
+
+
\ No newline at end of file
diff --git a/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/values/strings.xml b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/values/strings.xml
index c6bf6cc..8c37770 100644
--- a/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/values/strings.xml
+++ b/UI/AndroidApp/flavoursWithoutBorders/app/src/main/res/values/strings.xml
@@ -17,4 +17,21 @@
SIGN UP
or login
Main
+
+
+ Filter results
+ Show in map
+
+ Restaurant
+ Bar
+ Cafeteria
+ Pub
+ Fast food
+ Ethnic
+
+
+ Restaurant name
+ Restaurant type
+ Restaurant working hours
+ %1$s - %2$s