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