From eb61b3fdb7b8f66b8a81bdc83210edd033c3fd7d Mon Sep 17 00:00:00 2001 From: valentin Date: Tue, 10 Nov 2020 13:42:21 +0100 Subject: [PATCH] Add SharedPreferences to handle global behaviour. First use is "Hiding umbrella ImageView when new city is added into the DB" --- .idea/render.experimental.xml | 6 +++ .../fr/romanet/vj/apps/myweather/AddCity.java | 20 +++++++ .../vj/apps/myweather/MainActivity.java | 53 +++++++++++++++++++ 3 files changed, 79 insertions(+) create mode 100644 .idea/render.experimental.xml diff --git a/.idea/render.experimental.xml b/.idea/render.experimental.xml new file mode 100644 index 0000000..8ec256a --- /dev/null +++ b/.idea/render.experimental.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/java/fr/romanet/vj/apps/myweather/AddCity.java b/app/src/main/java/fr/romanet/vj/apps/myweather/AddCity.java index 90f942e..f9f3222 100644 --- a/app/src/main/java/fr/romanet/vj/apps/myweather/AddCity.java +++ b/app/src/main/java/fr/romanet/vj/apps/myweather/AddCity.java @@ -2,6 +2,9 @@ package fr.romanet.vj.apps.myweather; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; + +import android.content.Context; +import android.content.SharedPreferences; import android.os.Bundle; import android.view.View; import android.widget.Button; @@ -13,6 +16,10 @@ public class AddCity extends AppCompatActivity { private EditText cityName; + // - Define shared preferences var - + SharedPreferences sharedPreferences; + + @Override protected void onCreate(Bundle savedInstanceState) { @@ -37,8 +44,21 @@ public class AddCity extends AppCompatActivity { cityName.setError("Please, enter a city name"); } 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); resetForm(); + + + } }); } diff --git a/app/src/main/java/fr/romanet/vj/apps/myweather/MainActivity.java b/app/src/main/java/fr/romanet/vj/apps/myweather/MainActivity.java index 356ad9d..f0a4f3d 100644 --- a/app/src/main/java/fr/romanet/vj/apps/myweather/MainActivity.java +++ b/app/src/main/java/fr/romanet/vj/apps/myweather/MainActivity.java @@ -3,11 +3,24 @@ package fr.romanet.vj.apps.myweather; import android.content.*; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; +import android.util.Log; import android.view.View; +import android.widget.ImageView; + import com.google.android.material.floatingactionbutton.FloatingActionButton; public class MainActivity extends AppCompatActivity { + // - Umbrella ImageView + public static ImageView imgPara; + + // - Is used to store the shared preference value of umbrella visibility + public int umbrella_visible; + + // - Define shared preferences var - + SharedPreferences sharedPreferences; + + @Override protected void onCreate(Bundle savedInstanceState) { @@ -21,6 +34,46 @@ public class MainActivity extends AppCompatActivity { 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 + protected void onResume() { + super.onResume(); + + // - 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); + Log.d("DEBUG1 -> resume", Integer.toString(umbrella_visible)); + + // - If 'umbrella_visible' is equal to '0', we have to hide the ImageView - + if(umbrella_visible == 0){ + + // - Hide ImageView - + imgPara.setVisibility(View.GONE); + } } public void openAddCityPage()