Compare commits

..

4 Commits

Author SHA1 Message Date
BGbaderguet
39779040ad Adding the list of city (retrieved from the database) 2020-11-14 02:58:12 +01:00
BGbaderguet
b535207dae Activity to show temperature 2020-11-14 02:57:40 +01:00
BGbaderguet
64a6883c81 Class where we are going to call the API to show the temperature of a city 2020-11-14 02:57:06 +01:00
BGbaderguet
5c58efae68 Getting off shared preferencies 2020-11-14 02:56:19 +01:00
6 changed files with 150 additions and 69 deletions

View File

@ -9,15 +9,22 @@
android:roundIcon="@mipmap/ic_launcher_round" android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/Theme.MyWeather"> android:theme="@style/Theme.MyWeather">
<!-- Adding an attribute to remove the app bar (.NoActionBar) only in the activity that allows the user to add a city, also declaring <activity
the mainActivity as a parent of AddCity activity in order to go back to the mainActivity screen--> android:name=".ShowTemparature"
<activity android:name=".AddCity"
android:parentActivityName=".MainActivity" android:parentActivityName=".MainActivity"
android:theme="@style/Theme.MyWeather.NoActionBar"> android:theme="@style/Theme.MyWeather.NoActionBar"></activity>
</activity> <!--
Adding an attribute to remove the app bar (.NoActionBar) only in the activity that allows the user to add a city, also declaring
the mainActivity as a parent of AddCity activity in order to go back to the mainActivity screen
-->
<activity
android:name=".AddCity"
android:parentActivityName=".MainActivity"
android:theme="@style/Theme.MyWeather.NoActionBar"></activity>
<activity android:name=".MainActivity"> <activity android:name=".MainActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity> </activity>

View File

@ -4,6 +4,7 @@ import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
import android.view.View; import android.view.View;
@ -16,10 +17,6 @@ public class AddCity extends AppCompatActivity {
private EditText cityName; private EditText cityName;
// - Define shared preferences var -
SharedPreferences sharedPreferences;
@Override @Override
protected void onCreate(Bundle savedInstanceState) protected void onCreate(Bundle savedInstanceState)
{ {
@ -39,26 +36,15 @@ public class AddCity extends AppCompatActivity {
{ {
cityName = (EditText) findViewById(R.id.editTextNewCity); cityName = (EditText) findViewById(R.id.editTextNewCity);
final String newCityString = cityName.getEditableText().toString(); final String newCityString = cityName.getEditableText().toString();
if(newCityString.length() == 0) if(newCityString.isEmpty())
{ {
cityName.setError("Please, enter a city name"); cityName.setError("Please, enter a city name");
} }
else else {
// - Load Shared Preferences (named 'prefs') -
sharedPreferences = getSharedPreferences("prefs", Context.MODE_PRIVATE);
// - Now the ImageView has to be hidden, so write it into the shared preferences -
// - Put value '0' into the preference 'umbrella_visible' of the shared preference book called 'prefs'
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt("umbrella_visible", 0);
editor.apply();
saveCity(newCityString); saveCity(newCityString);
resetForm(); resetForm();
openAddCityPage();
}
} }
}); });
} }
@ -73,4 +59,10 @@ public class AddCity extends AppCompatActivity {
CityRepository.getInstance(this).addCity(new City(cityName)); CityRepository.getInstance(this).addCity(new City(cityName));
} }
public void openAddCityPage()
{
Intent intent = new Intent(AddCity.this, MainActivity.class);
startActivity(intent);
}
} }

View File

@ -2,31 +2,59 @@ package fr.romanet.vj.apps.myweather;
import android.content.*; import android.content.*;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.RecyclerView;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.google.android.material.floatingactionbutton.FloatingActionButton;
import org.w3c.dom.Text;
import java.util.ArrayList;
import java.util.List;
import fr.romanet.vj.apps.myweather.bo.City;
import fr.romanet.vj.apps.myweather.repository.CityRepository;
public class MainActivity extends AppCompatActivity { public class MainActivity extends AppCompatActivity {
// - Umbrella ImageView private ListView listViewCityNames;
public static ImageView imgPara; private FloatingActionButton buttonPlus;
private ImageView imgPara;
// - Is used to store the shared preference value of umbrella visibility private TextView addCityText;
public int umbrella_visible;
// - Define shared preferences var -
SharedPreferences sharedPreferences;
@Override @Override
protected void onCreate(Bundle savedInstanceState) protected void onCreate(Bundle savedInstanceState)
{ {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); setContentView(R.layout.activity_main);
FloatingActionButton buttonPlus = (FloatingActionButton) findViewById(R.id.plusButton);
listViewCityNames = findViewById(R.id.listeCity);
buttonPlus = (FloatingActionButton) findViewById(R.id.plusButton);
imgPara = (ImageView) findViewById(R.id.imageView);
addCityText = (TextView) findViewById(R.id.textViewAddCity);
initialisingComponents();
listViewCityNames.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
String currentCityName = adapterView.getItemAtPosition(i).toString();
Intent intent = new Intent(MainActivity.this, ShowTemparature.class);
intent.putExtra( "cityName", currentCityName);
startActivity(intent);
}
});
buttonPlus.setOnClickListener(new View.OnClickListener() { buttonPlus.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) public void onClick(View view)
@ -34,46 +62,39 @@ public class MainActivity extends AppCompatActivity {
openAddCityPage(); openAddCityPage();
} }
}); });
// - Assign Activity ImageView to var -
imgPara = (ImageView) findViewById(R.id.imageView);
// - Load Shared Preferences (named 'prefs') -
sharedPreferences = getSharedPreferences("prefs", Context.MODE_PRIVATE);
// - Try to retrieve 'umbrella_visible', if not set return 3 -
umbrella_visible = sharedPreferences.getInt("umbrella_visible", 3);
// - If preference not yet defined, set value to 1 (visible) -
if (umbrella_visible == 3){
// - Put value '1' into the preference 'umbrella_visible' of the shared preference book called 'prefs'
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt("umbrella_visible", 1);
editor.apply();
}
Log.d("DEBUG1 -> create", Integer.toString(umbrella_visible));
} }
@Override @Override
protected void onResume() { protected void onResume()
{
super.onResume(); super.onResume();
//initList();
}
// - Load Shared Preferences (named 'prefs') - public void initialisingComponents()
sharedPreferences = getSharedPreferences("prefs", Context.MODE_PRIVATE); {
final List<City> city = CityRepository.getInstance(this).getCity();
// - Try to retrieve 'umbrella_visible', if not set return 3 - if(city.isEmpty())
umbrella_visible = sharedPreferences.getInt("umbrella_visible", 3); {
Log.d("DEBUG1 -> resume", Integer.toString(umbrella_visible)); listViewCityNames.setVisibility(View.GONE);
// - If 'umbrella_visible' is equal to '0', we have to hide the ImageView -
if(umbrella_visible == 0){
// - Hide ImageView -
imgPara.setVisibility(View.GONE);
} }
else{
imgPara.setVisibility(View.GONE);
addCityText.setVisibility(View.GONE);
}
initList();
}
public void initList()
{
final List<City> city = CityRepository.getInstance(this).getCity();
ArrayList<String> listeExample = new ArrayList<String>();
for(int i = 0; i < city.size(); i++)
{
listeExample.add("" + city.get(i).nameCity);
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>( this, android.R.layout.simple_list_item_1, listeExample);
listViewCityNames.setAdapter(adapter);
} }
public void openAddCityPage() public void openAddCityPage()

View File

@ -0,0 +1,26 @@
package fr.romanet.vj.apps.myweather;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import android.os.Bundle;
public class ShowTemparature extends AppCompatActivity {
private String currentCityName;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_temparature);
currentCityName = (String) getIntent().getExtras().get("cityName");
Toolbar toolbarAddCity = (Toolbar) findViewById(R.id.toolbarCityTemp);
toolbarAddCity.setTitle(currentCityName);
setSupportActionBar(toolbarAddCity);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
}
}

View File

@ -7,6 +7,7 @@
tools:context=".MainActivity"> tools:context=".MainActivity">
<com.google.android.material.appbar.AppBarLayout <com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:theme="@style/Theme.MyWeather.AppBarOverlay" android:theme="@style/Theme.MyWeather.AppBarOverlay"
@ -24,7 +25,7 @@
app:srcCompat="@drawable/ic_baseline_umbrella_24" /> app:srcCompat="@drawable/ic_baseline_umbrella_24" />
<TextView <TextView
android:id="@+id/textView" android:id="@+id/textViewAddCity"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="51dp" android:layout_height="51dp"
android:gravity="center" android:gravity="center"
@ -46,4 +47,11 @@
app:rippleColor="#FFFFFF" app:rippleColor="#FFFFFF"
app:srcCompat="@android:drawable/ic_input_add"/> app:srcCompat="@android:drawable/ic_input_add"/>
<ListView
android:id="@+id/listeCity"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintTop_toBottomOf="@+id/appBarLayout"
tools:layout_editor_absoluteX="6dp" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ShowTemparature">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/Theme.MyWeather.AppBarOverlay"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbarCityTemp"
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="?attr/colorPrimary"
android:clickable="false"
android:minHeight="60dp"
app:popupTheme="@style/Theme.MyWeather.PopupOverlay" />
</com.google.android.material.appbar.AppBarLayout>
</androidx.constraintlayout.widget.ConstraintLayout>