From ada7218c16e03b6e5c94de37d89e7bf23c3bec2c Mon Sep 17 00:00:00 2001 From: NicoHoareau Date: Sun, 18 Mar 2018 14:45:38 +0100 Subject: [PATCH] =?UTF-8?q?bla=20bla=20propre,=20atelier=20qualit=C3=A9=20?= =?UTF-8?q?du=20code=20finit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README | 13 +++- app/src/main/AndroidManifest.xml | 2 +- .../wcs/blablacrade/ListResultsActivity.java | 41 +++++++++++ .../java/fr/wcs/blablacrade/MainActivity.java | 11 +-- .../blablacrade/SearchItineraryActivity.java | 73 ++++++++----------- .../wcs/blablacrade/SearchRequestModel.java | 70 ++++++++++-------- .../fr/wcs/blablacrade/TripResultAdapter.java | 63 +++++----------- .../fr/wcs/blablacrade/TripResultModel.java | 37 ++++++---- ...iewSearchItineraryResultsListActivity.java | 40 ---------- .../res/layout/activity_search_itinerary.xml | 68 +++++++++-------- ...ity_view_search_itinerary_results_list.xml | 2 +- app/src/main/res/layout/trip_item.xml | 10 +-- app/src/main/res/values/strings.xml | 10 +-- 13 files changed, 217 insertions(+), 223 deletions(-) create mode 100644 app/src/main/java/fr/wcs/blablacrade/ListResultsActivity.java delete mode 100644 app/src/main/java/fr/wcs/blablacrade/ViewSearchItineraryResultsListActivity.java diff --git a/README b/README index 47b0d9e..863ef15 100644 --- a/README +++ b/README @@ -1,3 +1,12 @@ -## BLA BLA CRADE +## BLA BLA Propre -Paske c notre projé ! +Notre application est basée sur le même fonctionnement que BlaBlaCar: + * la première page montre un bouto qui envois sur la 2ème activité pour recherche un itinéraire + + * On peut entrer la ville de départ, la ville de destination et la date choisie pour le voyage + afin de voir les résultats de notre recherche. Si les champs départs et destination ne sont pas + remplis, un message d'erreur s'affiche. + + * sur la derière page, le titre de l'activité est dans le format "départ >> destination" et un + toast nous indique la date du voyage souhaitée. Une liste des résultats est affichée avec les + dates et heures des voyages proposées par chaque personne ainsi que le prix du voyage. diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 36c818e..228405e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -20,7 +20,7 @@ - + \ No newline at end of file diff --git a/app/src/main/java/fr/wcs/blablacrade/ListResultsActivity.java b/app/src/main/java/fr/wcs/blablacrade/ListResultsActivity.java new file mode 100644 index 0000000..76633ba --- /dev/null +++ b/app/src/main/java/fr/wcs/blablacrade/ListResultsActivity.java @@ -0,0 +1,41 @@ +package fr.wcs.blablacrade; + +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.widget.ListView; +import android.widget.Toast; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; + +public class ListResultsActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_view_search_itinerary_results_list); + + SearchRequestModel searchRequest = getIntent().getParcelableExtra("searchRequest"); + String departure = searchRequest.getDeparture(); + String destination = searchRequest.getDestination(); + String date = searchRequest.getDate(); + + Toast.makeText(this, date, Toast.LENGTH_LONG).show(); + setTitle(departure + " >> " + destination); + + ListView listView = (ListView) findViewById(R.id.listview_search_results); + + ArrayList table = new ArrayList<>(); + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy-hh:mm"); + try { + table.add(new TripResultModel("Bernard", sdf.parse("21/02/2017-15:30"), 15)); + table.add(new TripResultModel("Jean-Jacques", sdf.parse("21/02/2017-16:00"), 20)); + table.add(new TripResultModel("Bertrand", sdf.parse("21/02/2017-16:30"), 16)); + table.add(new TripResultModel("Gertrude", sdf.parse("21/02/2017-17:00"), 40)); + } catch (ParseException e) { + } + + TripResultAdapter adapter = new TripResultAdapter(this, table); + listView.setAdapter(adapter); + } +} diff --git a/app/src/main/java/fr/wcs/blablacrade/MainActivity.java b/app/src/main/java/fr/wcs/blablacrade/MainActivity.java index 6bce270..c2ce192 100644 --- a/app/src/main/java/fr/wcs/blablacrade/MainActivity.java +++ b/app/src/main/java/fr/wcs/blablacrade/MainActivity.java @@ -16,12 +16,13 @@ protected void onCreate(Bundle savedInstanceState) { Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); - //bouton cherché - Button Search = (Button) findViewById(R.id.gogogo); - Search.setOnClickListener(new View.OnClickListener() { + Button search = (Button) findViewById(R.id.gogogo); + search.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view){ - Intent intent=new Intent(MainActivity.this, SearchItineraryActivity.class);startActivity(intent); - }}); + Intent intent = new Intent(MainActivity.this, SearchItineraryActivity.class); + startActivity(intent); + } + }); } } diff --git a/app/src/main/java/fr/wcs/blablacrade/SearchItineraryActivity.java b/app/src/main/java/fr/wcs/blablacrade/SearchItineraryActivity.java index 7a6c121..95426e7 100644 --- a/app/src/main/java/fr/wcs/blablacrade/SearchItineraryActivity.java +++ b/app/src/main/java/fr/wcs/blablacrade/SearchItineraryActivity.java @@ -9,7 +9,6 @@ import android.widget.DatePicker; import android.widget.EditText; import android.widget.Toast; - import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Locale; @@ -21,61 +20,51 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_search_itinerary); - final EditText edit1 = (EditText) findViewById(R.id.editText1); - final EditText edit2 = (EditText) findViewById(R.id.editText2); - final EditText edit3 = (EditText) findViewById(R.id.editText3); - Button buttonSearch = (Button) findViewById(R.id.push); + final EditText departField = (EditText) findViewById(R.id.depart_field); + final EditText destinationField = (EditText) findViewById(R.id.destination_field); + final EditText dateField = (EditText) findViewById(R.id.date_field); + Button buttonSearch = (Button) findViewById(R.id.button_search); - // clicq action buttonSearch.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - String text1 = edit1.getText().toString(); - String text2 = edit2.getText().toString(); - String texte = edit3.getText().toString(); - - if (text1.isEmpty() || text2.isEmpty() - ) { - Toast painGrillé = Toast.makeText(getApplicationContext(), getResources().getString(R.string.form_error), Toast.LENGTH_SHORT); - painGrillé.show(); - }else {Intent intent = new Intent(SearchItineraryActivity.this, ViewSearchItineraryResultsListActivity.class); - SearchRequestModel searchRequest=new SearchRequestModel(text1, text2, texte); intent.putExtra("searchRequest", searchRequest); + String textDepart = departField.getText().toString(); + String textDestination = destinationField.getText().toString(); + String textDate = dateField.getText().toString(); - SearchItineraryActivity.this.startActivity(intent); + if (textDepart.isEmpty() || textDestination.isEmpty()) { + Toast.makeText(SearchItineraryActivity.this, getResources().getString(R.string.form_error), Toast.LENGTH_SHORT).show(); + } + else { + Intent intent = new Intent(SearchItineraryActivity.this, ListResultsActivity.class); + SearchRequestModel searchRequest =new SearchRequestModel(textDepart,textDestination, textDate); + intent.putExtra("searchRequest", searchRequest); + SearchItineraryActivity.this.startActivity(intent); } } }); - - final Calendar calandréi = Calendar.getInstance(); + final Calendar calendar = Calendar.getInstance(); final DatePickerDialog.OnDateSetListener dateListener = new DatePickerDialog.OnDateSetListener() { - - @Override - public void onDateSet(DatePicker view,int ané,int moi,int joure){ - calandréi.set(Calendar.YEAR, ané); - calandréi.set(Calendar.MONTH, moi); - calandréi.set(Calendar.DAY_OF_MONTH, joure); - UpdateLabel(edit3, calandréi); - }}; - - edit3.setOnClickListener(new View.OnClickListener() { + @Override + public void onDateSet(DatePicker view,int year,int month,int dayOfMonth){ + calendar.set(Calendar.YEAR, year); + calendar.set(Calendar.MONTH, month); + calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth); + UpdateLabel(dateField, calendar); + } + }; + dateField.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - new DatePickerDialog(SearchItineraryActivity.this, - dateListener, - calandréi.get(Calendar.YEAR), - calandréi.get(Calendar.MONTH), - calandréi.get(Calendar.DAY_OF_MONTH) - ).show(); + new DatePickerDialog(SearchItineraryActivity.this, dateListener, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)).show(); } }); } - private void UpdateLabel(EditText editText, Calendar myCalendar) { - String myFormat = "dd/MM/yyyy"; - - - SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.FRANCE); + private void UpdateLabel(EditText dateField, Calendar myCalendar) { + String myFormat = "dd/MM/yyyy"; + SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.FRANCE); + dateField.setText(sdf.format(myCalendar.getTime())); + } - editText.setText(sdf.format(myCalendar.getTime())); - } } diff --git a/app/src/main/java/fr/wcs/blablacrade/SearchRequestModel.java b/app/src/main/java/fr/wcs/blablacrade/SearchRequestModel.java index 9b20bd2..c130918 100644 --- a/app/src/main/java/fr/wcs/blablacrade/SearchRequestModel.java +++ b/app/src/main/java/fr/wcs/blablacrade/SearchRequestModel.java @@ -3,51 +3,59 @@ import android.os.Parcel; import android.os.Parcelable; -/** - * Created by bastienwcs on 21/09/17. - */ - public class SearchRequestModel implements Parcelable { - private String depare; - private String oùilva; - private String quan; + private String departure; + private String destination; + private String date; - public String getDepare() { - return depare; + public SearchRequestModel(String departure, String destination, String date) { + this.departure = departure; + this.destination = destination; + this.date = date; } - public String getOùilva() { - return oùilva; + public void setDeparture(String departure) { + this.departure = departure; } - - public SearchRequestModel(String depare, String oùilva, String quan) { - this.depare = depare; - this.oùilva = oùilva; - this.quan = quan; + public void setDestination(String destination) { + this.destination = destination; + } + public void setDate(String date) { + this.date = date; } - protected SearchRequestModel(Parcel in) { - depare = in.readString(); - oùilva = in.readString(); - quan = in.readString(); - } + public String getDeparture() { + return departure; + } + public String getDestination() { + return destination; + } + public String getDate() { + return date; + } @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeString(depare); - dest.writeString(oùilva); - dest.writeString(quan); + public int describeContents() { + return Integer.parseInt(getDeparture() + getDestination() + getDate()); } @Override - public int describeContents() { - return 0; + public void writeToParcel(Parcel parcel, int i) { + parcel.writeString(departure); + parcel.writeString(destination); + parcel.writeString(date); + } + + protected SearchRequestModel(Parcel in) { + departure = in.readString(); + destination = in.readString(); + date = in.readString(); } public static final Creator CREATOR = new Creator() { - @Override - public SearchRequestModel createFromParcel(Parcel in) { + @Override + public SearchRequestModel createFromParcel(Parcel in) { return new SearchRequestModel(in); } @@ -57,7 +65,5 @@ public SearchRequestModel[] newArray(int size) { } }; - public String getQuan() { - return quan; - } + } diff --git a/app/src/main/java/fr/wcs/blablacrade/TripResultAdapter.java b/app/src/main/java/fr/wcs/blablacrade/TripResultAdapter.java index 9fc3867..b23f45f 100644 --- a/app/src/main/java/fr/wcs/blablacrade/TripResultAdapter.java +++ b/app/src/main/java/fr/wcs/blablacrade/TripResultAdapter.java @@ -4,66 +4,41 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.BaseAdapter; +import android.widget.ArrayAdapter; + import android.widget.TextView; +import java.text.SimpleDateFormat; import java.util.ArrayList; -/** - * Created by wilder on 13/09/17. - */ - -// This is the adapter lol -public class TripResultAdapter extends BaseAdapter { - private Context context; //context - private ArrayList items; //data source of the list adapter - - //public constructor - public TripResultAdapter(Context context, ArrayList items) { - this.context = context; - this.items = items; - } - - @Override - public int getCount() { - return items.size(); //returns total of items in the list - } +public class TripResultAdapter extends ArrayAdapter { - @Override - public Object getItem(int position) { - return items.get(position); //returns list item at the specified position + public TripResultAdapter(Context context, ArrayList trips) { + super(context, 0, trips); } - @Override - public long getItemId(int position) { - return position; - } @Override public View getView(int position, View convertView, ViewGroup parent) { - // inflate the layout for each list row + TripResultModel trip = (TripResultModel) getItem(position); if (convertView == null) { - convertView = LayoutInflater.from(context). - inflate(R.layout.trip_item, parent, false); + convertView = LayoutInflater.from(getContext()).inflate(R.layout.trip_item, parent, false); } - // get current item to be displayed - TripResultModel currentItem = (TripResultModel) getItem(position); + TextView date = (TextView) convertView.findViewById(R.id.item_text_date); + TextView firstname = (TextView) convertView.findViewById(R.id.item_text_firstname); + TextView price = (TextView) convertView.findViewById(R.id.item_text_price); - // get the TextView for item name and item description - TextView departure = (TextView) - convertView.findViewById(R.id.texteresu1); - TextView firstname = (TextView) - convertView.findViewById(R.id.textres2); - TextView price = (TextView) - convertView.findViewById(R.id.txt); + date.setText(trip.getDate().toString()); + firstname.setText(trip.getFirstname().toString()); + price.setText(String.valueOf(trip.getPrice()) + " $"); - //sets the text for item name and item description from the current item object - departure.setText(currentItem.getDepare().toString()); - firstname.setText(currentItem.getPrénom()); - price.setText(String.valueOf(currentItem.getPri())); + //Create new SimpleDateFormat + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm"); + String dateformat = sdf.format(trip.getDate()); + String dateValue = dateformat + " PM"; + date.setText(dateValue); - // returns the view for the current row return convertView; } } \ No newline at end of file diff --git a/app/src/main/java/fr/wcs/blablacrade/TripResultModel.java b/app/src/main/java/fr/wcs/blablacrade/TripResultModel.java index a6960ae..052ed2a 100644 --- a/app/src/main/java/fr/wcs/blablacrade/TripResultModel.java +++ b/app/src/main/java/fr/wcs/blablacrade/TripResultModel.java @@ -2,26 +2,35 @@ import java.util.Date; -/** - * Created by wilder on 13/09/17. - */ - public class TripResultModel { + private String firstname; + private Date date; + private int price; - public Date getDepare() { - return depare; + public TripResultModel(String firstname, Date date, int price) { + this.firstname = firstname; + this.date = date; + this.price = price; } - public int getPri() { - return pri; + public void setFirstname(String firstname) { + this.firstname = firstname; + } + public void setDate(Date date) { + this.date = date; + } + public void setPrice(int price) { + this.price = price; } - private String prénom; - private int pri; - public TripResultModel(String prénom, Date depare, int pri) { - this.prénom = prénom;this.depare = depare;this.pri = pri; + public String getFirstname() { + return firstname; + } + public Date getDate() { + return date; + } + public int getPrice() { + return price; } - private Date depare; - public String getPrénom() {return prénom;} } diff --git a/app/src/main/java/fr/wcs/blablacrade/ViewSearchItineraryResultsListActivity.java b/app/src/main/java/fr/wcs/blablacrade/ViewSearchItineraryResultsListActivity.java deleted file mode 100644 index 546ae80..0000000 --- a/app/src/main/java/fr/wcs/blablacrade/ViewSearchItineraryResultsListActivity.java +++ /dev/null @@ -1,40 +0,0 @@ -package fr.wcs.blablacrade; - -import android.support.v7.app.AppCompatActivity; -import android.os.Bundle; -import android.widget.ListView; -import android.widget.Toast; - -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; - -public class ViewSearchItineraryResultsListActivity extends AppCompatActivity { - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_view_search_itinerary_results_list); - - SearchRequestModel truc = getIntent().getParcelableExtra("searchRequest"); - String text1 = truc.getDepare(); - String TEXTEDEUX = truc.getOùilva(); - String texte3 = truc.getQuan(); - - Toast.makeText(this, texte3, Toast.LENGTH_LONG).show(); - - setTitle(text1 + " >> " + TEXTEDEUX); - - // TODO : add résult to tableau - ListView résultat = (ListView) findViewById(R.id.listViewSearchResults); - ArrayList tableau = new ArrayList<>();SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy-hh:mm"); - try { - tableau.add(new TripResultModel("Bernard", sdf.parse("21/02/2017-15:30"), 15)); - tableau.add(new TripResultModel("Jean-Jacques", sdf.parse("21/02/2017-16:00"), 20)); - tableau.add(new TripResultModel("Bertrand", sdf.parse("21/02/2017-16:30"), 16)); - tableau.add(new TripResultModel("Gertrude", sdf.parse("21/02/2017-17:00"), 40)); - } catch (ParseException e) { - } - TripResultAdapter adapteur = new TripResultAdapter(this, tableau);résultat.setAdapter(adapteur); - } -} diff --git a/app/src/main/res/layout/activity_search_itinerary.xml b/app/src/main/res/layout/activity_search_itinerary.xml index 5e8e7ca..d0d6b81 100644 --- a/app/src/main/res/layout/activity_search_itinerary.xml +++ b/app/src/main/res/layout/activity_search_itinerary.xml @@ -6,47 +6,51 @@ android:padding="20dp" tools:context="fr.wcs.blablacrade.SearchItineraryActivity"> - + + + - /> + - + android:text="@string/date" + android:layout_below="@+id/destination_field" /> - - - - -