From 685c94c0c0f7dc590651ad3012f0c8fdde43ed90 Mon Sep 17 00:00:00 2001 From: Valentina Vispo Date: Thu, 21 Oct 2021 13:52:31 -0300 Subject: [PATCH 1/6] Add default language as ES, add scroll view in sucessful payment, fix strings and themes --- .../com/example/myapplication/HomeFragment.kt | 2 - .../com/example/myapplication/MainActivity.kt | 2 +- .../example/myapplication/ProfileFragment.kt | 16 ++-- .../example/myapplication/SettingsFragment.kt | 42 +++++++++ .../com/example/myapplication/UserConfig.kt | 26 ++++++ .../main/res/drawable/ic_prof_settings.xml | 5 + app/src/main/res/layout/fragment_profile.xml | 42 +++++---- app/src/main/res/layout/fragment_settings.xml | 54 +++++++++++ .../res/layout/fragment_sucessful_payment.xml | 93 ++++++++++--------- .../main/res/navigation/menu_navigation.xml | 12 +++ app/src/main/res/values-en-rUS/strings.xml | 9 ++ app/src/main/res/values-es-rAR/strings.xml | 9 ++ app/src/main/res/values/strings.xml | 16 ++++ app/src/main/res/values/themes.xml | 7 +- 14 files changed, 262 insertions(+), 73 deletions(-) create mode 100644 app/src/main/java/com/example/myapplication/SettingsFragment.kt create mode 100644 app/src/main/res/drawable/ic_prof_settings.xml create mode 100644 app/src/main/res/layout/fragment_settings.xml diff --git a/app/src/main/java/com/example/myapplication/HomeFragment.kt b/app/src/main/java/com/example/myapplication/HomeFragment.kt index 0394d3a..e0eca2c 100644 --- a/app/src/main/java/com/example/myapplication/HomeFragment.kt +++ b/app/src/main/java/com/example/myapplication/HomeFragment.kt @@ -22,7 +22,6 @@ import retrofit2.converter.gson.GsonConverterFactory class HomeFragment : Fragment() { - private lateinit var recycler: RecyclerView private lateinit var homeProgressBar: ProgressBar private lateinit var sharedPreferences: SharedPreferences @@ -32,7 +31,6 @@ class HomeFragment : Fragment() { inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { - // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_home, container, false) } diff --git a/app/src/main/java/com/example/myapplication/MainActivity.kt b/app/src/main/java/com/example/myapplication/MainActivity.kt index 882df3c..434f2cc 100644 --- a/app/src/main/java/com/example/myapplication/MainActivity.kt +++ b/app/src/main/java/com/example/myapplication/MainActivity.kt @@ -15,9 +15,9 @@ class MainActivity : AppCompatActivity() { Log.d("MYDEBUG","$products") } - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + UserConfig.setLocale(this, UserConfig.getLanguage(this)) this.setTheme(UserConfig.getThemeResourceId(this)) val sharedPreferences = this.getSharedPreferences( getString(R.string.login_shared_preference_file), diff --git a/app/src/main/java/com/example/myapplication/ProfileFragment.kt b/app/src/main/java/com/example/myapplication/ProfileFragment.kt index 2fbe0cc..6d0f518 100644 --- a/app/src/main/java/com/example/myapplication/ProfileFragment.kt +++ b/app/src/main/java/com/example/myapplication/ProfileFragment.kt @@ -8,6 +8,7 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.Button +import android.widget.ImageView import android.widget.TextView import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.LinearLayoutManager @@ -17,13 +18,13 @@ import com.google.android.material.switchmaterial.SwitchMaterial import com.squareup.picasso.Picasso class ProfileFragment : Fragment() { - private lateinit var themeSwitch: SwitchMaterial private lateinit var recycler: RecyclerView private lateinit var userFirstName : TextView private lateinit var userImage : ShapeableImageView private lateinit var userEmail : TextView private var sharedPreferences: SharedPreferences? = null + private lateinit var profSettings: ImageView private lateinit var closeSession: Button override fun onCreateView( @@ -39,13 +40,8 @@ class ProfileFragment : Fragment() { userFirstName = view.findViewById(R.id.user_first_name) userImage = view.findViewById(R.id.user_shapeable_image) userEmail = view.findViewById(R.id.user_email) - themeSwitch = view.findViewById(R.id.theme_switch) - themeSwitch.isChecked = UserConfig.isDarkTheme(requireContext()) - themeSwitch.setOnCheckedChangeListener { _, _ -> - activity?.applicationContext?.let { UserConfig.switchTheme(it) } - activity?.recreate() - } + profSettings = view.findViewById(R.id.prof_settings) closeSession = view.findViewById(R.id.buttonCloseSession) recycler.adapter = OptionAdapter( getOptionsClickListener(), getProfileOptions()) @@ -57,6 +53,12 @@ class ProfileFragment : Fragment() { Context.MODE_PRIVATE ) + profSettings.setOnClickListener { + findNavController().navigate( + R.id.action_profileFragment_to_settingsFragment, + null + ) + } closeSession.setOnClickListener { closeSession() } setUserData() diff --git a/app/src/main/java/com/example/myapplication/SettingsFragment.kt b/app/src/main/java/com/example/myapplication/SettingsFragment.kt new file mode 100644 index 0000000..6cc3561 --- /dev/null +++ b/app/src/main/java/com/example/myapplication/SettingsFragment.kt @@ -0,0 +1,42 @@ +package com.example.myapplication + +import android.os.Bundle +import androidx.fragment.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.Button +import androidx.navigation.fragment.findNavController +import com.google.android.material.switchmaterial.SwitchMaterial + +class SettingsFragment : Fragment() { + private lateinit var themeSwitch: SwitchMaterial + private lateinit var returnToProfile: Button + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + return inflater.inflate(R.layout.fragment_settings, container, false) + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + themeSwitch = view.findViewById(R.id.theme_switch) + themeSwitch.isChecked = UserConfig.isDarkTheme(requireContext()) + + returnToProfile = view.findViewById(R.id.return_to_profile_bt) + + themeSwitch.setOnCheckedChangeListener { _, _ -> + activity?.applicationContext?.let { UserConfig.switchTheme(it) } + activity?.recreate() + } + + returnToProfile.setOnClickListener { + findNavController().navigate( + R.id.action_settingsFragment_to_profileFragment, + null + ) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/myapplication/UserConfig.kt b/app/src/main/java/com/example/myapplication/UserConfig.kt index 1f3a86c..acbb92a 100644 --- a/app/src/main/java/com/example/myapplication/UserConfig.kt +++ b/app/src/main/java/com/example/myapplication/UserConfig.kt @@ -2,11 +2,37 @@ package com.example.myapplication import android.content.Context import androidx.preference.PreferenceManager +import android.app.Activity +import android.content.res.Configuration +import android.content.res.Resources +import java.util.* class UserConfig { companion object { private const val IS_DARK_THEME_DEFAULT: Boolean = true + private const val DEFAULT_LANGUAGE: String = "es" + + fun setLocale(activity: Activity, languageCode: String?) { + val locale = Locale(languageCode) + Locale.setDefault(locale) + val resources: Resources = activity.resources + val config: Configuration = resources.configuration + config.setLocale(locale) + resources.updateConfiguration(config, resources.displayMetrics) + } + + fun setLanguage(context: Context, iso_lan: String){ + val userPrefs = PreferenceManager.getDefaultSharedPreferences(context) + userPrefs.edit().putString( + context.getString(R.string.pref_key_ISO_Language), iso_lan).apply() + } + + fun getLanguage(context: Context): String{ + val userPrefs = PreferenceManager.getDefaultSharedPreferences(context) + val isoLanguage = context.getString(R.string.pref_key_ISO_Language) + return userPrefs.getString(isoLanguage, DEFAULT_LANGUAGE) ?: DEFAULT_LANGUAGE + } fun setTheme(context: Context, isDark: Boolean) { val userPreferences = PreferenceManager.getDefaultSharedPreferences(context) diff --git a/app/src/main/res/drawable/ic_prof_settings.xml b/app/src/main/res/drawable/ic_prof_settings.xml new file mode 100644 index 0000000..c6e468c --- /dev/null +++ b/app/src/main/res/drawable/ic_prof_settings.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/fragment_profile.xml b/app/src/main/res/layout/fragment_profile.xml index 2a4b033..dc14d36 100644 --- a/app/src/main/res/layout/fragment_profile.xml +++ b/app/src/main/res/layout/fragment_profile.xml @@ -11,6 +11,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" > + + + + app:layout_constraintTop_toBottomOf="@+id/user_shapeable_image" /> + app:layout_constraintTop_toBottomOf="@+id/user_first_name" /> - - + app:layout_constraintVertical_bias="1.0" /> diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml new file mode 100644 index 0000000..579cb1c --- /dev/null +++ b/app/src/main/res/layout/fragment_settings.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_sucessful_payment.xml b/app/src/main/res/layout/fragment_sucessful_payment.xml index f5bcc27..4a62539 100644 --- a/app/src/main/res/layout/fragment_sucessful_payment.xml +++ b/app/src/main/res/layout/fragment_sucessful_payment.xml @@ -7,49 +7,58 @@ android:background="@color/white" tools:context=".SuccessfulPaymentFragment"> - + + + - + - + -