diff --git a/app/src/main/java/com/amine/myterio/app/MainActivity.java b/app/src/main/java/com/amine/myterio/app/MainActivity.java index 3b4c995..45ba3cf 100644 --- a/app/src/main/java/com/amine/myterio/app/MainActivity.java +++ b/app/src/main/java/com/amine/myterio/app/MainActivity.java @@ -1,12 +1,9 @@ package com.amine.myterio.app; -import android.content.Context; -import android.content.res.Configuration; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.Menu; import android.view.MenuItem; -import android.widget.Toast; public class MainActivity extends AppCompatActivity { @@ -15,25 +12,6 @@ public class MainActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); - Toast.makeText(getApplicationContext(), getSizeName(this), Toast.LENGTH_LONG).show(); - } - - private static String getSizeName(Context context) { - int screenLayout = context.getResources().getConfiguration().screenLayout; - screenLayout &= Configuration.SCREENLAYOUT_SIZE_MASK; - - switch (screenLayout) { - case Configuration.SCREENLAYOUT_SIZE_SMALL: - return "small"; - case Configuration.SCREENLAYOUT_SIZE_NORMAL: - return "normal"; - case Configuration.SCREENLAYOUT_SIZE_LARGE: - return "large"; - case 4: // Configuration.SCREENLAYOUT_SIZE_XLARGE is API >= 9 - return "xlarge"; - default: - return "undefined"; - } } @Override diff --git a/app/src/main/java/com/amine/myterio/app/adapters/CitiesAdapter.java b/app/src/main/java/com/amine/myterio/app/adapters/CitiesAdapter.java index 9c13ca3..21874c4 100644 --- a/app/src/main/java/com/amine/myterio/app/adapters/CitiesAdapter.java +++ b/app/src/main/java/com/amine/myterio/app/adapters/CitiesAdapter.java @@ -1,8 +1,13 @@ package com.amine.myterio.app.adapters; +import android.app.Activity; +import android.app.FragmentManager; +import android.app.FragmentTransaction; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; +import android.content.res.Configuration; +import android.os.Bundle; import android.support.v7.app.AlertDialog; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; @@ -17,6 +22,7 @@ import com.amine.myterio.app.api.WeatherAdapters; import com.amine.myterio.app.api.WeatherApis; import com.amine.myterio.app.config.Config; import com.amine.myterio.app.db.CityDAO; +import com.amine.myterio.app.fragments.DetailsFragment; import com.amine.myterio.app.model.City; import retrofit.Callback; import retrofit.RetrofitError; @@ -27,10 +33,12 @@ import java.util.ArrayList; public class CitiesAdapter extends RecyclerView.Adapter { private ArrayList mDataset; private Context c; + private Activity activity; - public CitiesAdapter(ArrayList cities, Context c) { + public CitiesAdapter(ArrayList cities, Context c, Activity a) { this.mDataset = cities; this.c = c; + this.activity = a; } @Override @@ -102,11 +110,32 @@ public class CitiesAdapter extends RecyclerView.Adapter cb); } public interface WeatherCityApi { - @GET("/data/2.5/weather") + @GET("/data/2.5/weather?units=metric") void cityWeather(@Query("id") int city, @Query("lang") String lang, Callback cb); } public interface WeatherDailyForecastApi { diff --git a/app/src/main/java/com/amine/myterio/app/fragments/CitiesListFragment.java b/app/src/main/java/com/amine/myterio/app/fragments/CitiesListFragment.java index 1cafa83..f26447e 100644 --- a/app/src/main/java/com/amine/myterio/app/fragments/CitiesListFragment.java +++ b/app/src/main/java/com/amine/myterio/app/fragments/CitiesListFragment.java @@ -4,9 +4,7 @@ import android.app.Activity; import android.app.Fragment; import android.content.Context; import android.content.Intent; -import android.content.res.Configuration; import android.os.Bundle; -import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.telephony.TelephonyManager; @@ -53,15 +51,8 @@ public class CitiesListFragment extends Fragment { private void handleView() { saveUserCountry(); - // Google way to test is tablet - boolean isTablet = ((this.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE); - RecyclerView.LayoutManager layoutManager; - if (isTablet) { - layoutManager = new GridLayoutManager(mActivity, 2); - } else { - layoutManager = new LinearLayoutManager(mActivity); - } + layoutManager = new LinearLayoutManager(mActivity); mRecyclerView.setLayoutManager(layoutManager); mRecyclerView.setHasFixedSize(true); @@ -71,7 +62,7 @@ public class CitiesListFragment extends Fragment { CityDAO dao = CityDAO.getInstance(mActivity); cities = dao.getAllCities(); - RecyclerView.Adapter mAdapter = new CitiesAdapter(cities, mActivity); + RecyclerView.Adapter mAdapter = new CitiesAdapter(cities, mActivity, this.getActivity()); mRecyclerView.setAdapter(mAdapter); fab.attachToRecyclerView(mRecyclerView); diff --git a/app/src/main/java/com/amine/myterio/app/fragments/DetailsFragment.java b/app/src/main/java/com/amine/myterio/app/fragments/DetailsFragment.java index 51185e5..52fbe7b 100644 --- a/app/src/main/java/com/amine/myterio/app/fragments/DetailsFragment.java +++ b/app/src/main/java/com/amine/myterio/app/fragments/DetailsFragment.java @@ -38,7 +38,17 @@ public class DetailsFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View fragView = inflater.inflate(R.layout.details_fragment, null, false); - String cityName = getActivity().getIntent().getExtras().getString("city_name"); + String cityName = null; + City city = null; + if (this.getArguments() != null) { + Bundle bundle = this.getArguments(); + city = bundle.getParcelable("city"); + } else { + cityName = getActivity().getIntent().getExtras().getString("city_name"); + if (cityName == null) { + city = getActivity().getIntent().getExtras().getParcelable("city"); + } + } WeatherAdapters adapters = new WeatherAdapters(); final Forecast[] f = {null}; @@ -81,7 +91,6 @@ public class DetailsFragment extends Fragment { } }); } else { - City city = getActivity().getIntent().getExtras().getParcelable("city"); cityName = city.getName(); isFav = dao.getCity(city.getCityIdentifier()) != null; WeatherApis.WeatherDailyForecastApi s = adapters.getWeatherForecastAdapter(); diff --git a/app/src/main/res/layout-large/activity_main.xml b/app/src/main/res/layout-large/activity_main.xml index ab6a4e6..8ae247a 100644 --- a/app/src/main/res/layout-large/activity_main.xml +++ b/app/src/main/res/layout-large/activity_main.xml @@ -1,16 +1,25 @@ - + tools:context=".MainActivity"> + + diff --git a/app/src/main/res/layout-large/cities_list_fragment.xml b/app/src/main/res/layout-large/cities_list_fragment.xml index 5f346aa..2cca585 100644 --- a/app/src/main/res/layout-large/cities_list_fragment.xml +++ b/app/src/main/res/layout-large/cities_list_fragment.xml @@ -11,7 +11,7 @@ android:layout_alignParentLeft="true" android:layout_alignParentStart="true"/> - + tools:context=".MainActivity"> + + diff --git a/app/src/main/res/layout-xlarge/search_fragment.xml b/app/src/main/res/layout-xlarge/search_fragment.xml index b691300..357317b 100644 --- a/app/src/main/res/layout-xlarge/search_fragment.xml +++ b/app/src/main/res/layout-xlarge/search_fragment.xml @@ -10,7 +10,7 @@ Myterio Hello world! Settings - SearchActivity - DetailsActivity + Search + Details This location dosn\'t have any weather. Can\'t get the weather from the API. Cancel diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f8ae9c0..900fe3b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,9 +1,9 @@ - Myterio + Myterio Hello world! - Settings - SearchActivity - DetailsActivity + Paramètres + Rechercher + Détails Pas de prévisions pour cette ville. Erreur lors de la récupération des prévisions Voulez-vous vraiment supprimer cette ville ?