Loading app/src/main/java/foundation/e/apps/settings/SettingsFragment.kt +25 −4 Original line number Diff line number Diff line Loading @@ -24,12 +24,17 @@ import android.view.View import androidx.fragment.app.viewModels import androidx.navigation.findNavController import androidx.preference.PreferenceFragmentCompat import coil.load import com.aurora.gplayapi.data.models.AuthData import com.google.gson.Gson import dagger.hilt.android.AndroidEntryPoint import foundation.e.apps.MainActivity import foundation.e.apps.MainActivityViewModel import foundation.e.apps.R import foundation.e.apps.databinding.CustomPreferenceBinding import foundation.e.apps.setup.signin.SignInViewModel import foundation.e.apps.utils.USER import javax.inject.Inject @AndroidEntryPoint class SettingsFragment : PreferenceFragmentCompat() { Loading @@ -37,6 +42,10 @@ class SettingsFragment : PreferenceFragmentCompat() { private var _binding: CustomPreferenceBinding? = null private val binding get() = _binding!! private val viewModel: SignInViewModel by viewModels() private val mainActivityViewModel: MainActivityViewModel by viewModels() @Inject lateinit var gson: Gson override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.settings_preferences, rootKey) Loading Loading @@ -74,10 +83,22 @@ class SettingsFragment : PreferenceFragmentCompat() { super.onViewCreated(view, savedInstanceState) viewModel.userType.observe(viewLifecycleOwner) { if (it.equals(USER.ANONYMOUS.name)) { mainActivityViewModel.authDataJson.observe(viewLifecycleOwner) { val authData = gson.fromJson(it, AuthData::class.java) viewModel.userType.observe(viewLifecycleOwner) { user -> when (user) { USER.ANONYMOUS.name -> { binding.accountType.text = view.context.getString(R.string.user_anonymous) } USER.GOOGLE.name -> { if (authData.userProfile != null) { binding.accountType.text = authData.userProfile?.name binding.email.text = authData.userProfile?.email binding.avatar.load(authData.userProfile?.artwork?.url) } } } } } binding.tos.setOnClickListener { Loading app/src/main/res/layout/custom_preference.xml +18 −4 Original line number Diff line number Diff line Loading @@ -61,16 +61,18 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" /> <ImageView <com.google.android.material.imageview.ShapeableImageView android:id="@+id/avatar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_width="40dp" android:layout_height="40dp" android:layout_marginStart="16dp" android:layout_marginTop="30dp" android:scaleType="centerCrop" android:src="@drawable/ic_user_icon" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/account" /> app:layout_constraintTop_toBottomOf="@id/account" app:shapeAppearanceOverlay="@style/roundedCornersImageView" /> <TextView android:id="@+id/accountType" Loading @@ -83,6 +85,18 @@ app:layout_constraintStart_toEndOf="@id/avatar" app:layout_constraintTop_toTopOf="@id/avatar" /> <TextView android:id="@+id/email" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="18dp" android:layout_marginTop="5dp" android:textColor="?android:textColorSecondary" android:textSize="13sp" app:layout_constraintBottom_toBottomOf="@id/avatar" app:layout_constraintStart_toEndOf="@id/avatar" app:layout_constraintTop_toBottomOf="@id/accountType" /> <com.google.android.material.button.MaterialButton android:id="@+id/logout" style="@style/Widget.MaterialComponents.Button.OutlinedButton" Loading app/src/main/res/values/themes.xml +5 −0 Original line number Diff line number Diff line Loading @@ -53,4 +53,9 @@ <item name="android:colorControlNormal">@color/colorAccent</item> </style> <style name="roundedCornersImageView" parent=""> <item name="cornerFamily">rounded</item> <item name="cornerSize">50%</item> </style> </resources> No newline at end of file Loading
app/src/main/java/foundation/e/apps/settings/SettingsFragment.kt +25 −4 Original line number Diff line number Diff line Loading @@ -24,12 +24,17 @@ import android.view.View import androidx.fragment.app.viewModels import androidx.navigation.findNavController import androidx.preference.PreferenceFragmentCompat import coil.load import com.aurora.gplayapi.data.models.AuthData import com.google.gson.Gson import dagger.hilt.android.AndroidEntryPoint import foundation.e.apps.MainActivity import foundation.e.apps.MainActivityViewModel import foundation.e.apps.R import foundation.e.apps.databinding.CustomPreferenceBinding import foundation.e.apps.setup.signin.SignInViewModel import foundation.e.apps.utils.USER import javax.inject.Inject @AndroidEntryPoint class SettingsFragment : PreferenceFragmentCompat() { Loading @@ -37,6 +42,10 @@ class SettingsFragment : PreferenceFragmentCompat() { private var _binding: CustomPreferenceBinding? = null private val binding get() = _binding!! private val viewModel: SignInViewModel by viewModels() private val mainActivityViewModel: MainActivityViewModel by viewModels() @Inject lateinit var gson: Gson override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.settings_preferences, rootKey) Loading Loading @@ -74,10 +83,22 @@ class SettingsFragment : PreferenceFragmentCompat() { super.onViewCreated(view, savedInstanceState) viewModel.userType.observe(viewLifecycleOwner) { if (it.equals(USER.ANONYMOUS.name)) { mainActivityViewModel.authDataJson.observe(viewLifecycleOwner) { val authData = gson.fromJson(it, AuthData::class.java) viewModel.userType.observe(viewLifecycleOwner) { user -> when (user) { USER.ANONYMOUS.name -> { binding.accountType.text = view.context.getString(R.string.user_anonymous) } USER.GOOGLE.name -> { if (authData.userProfile != null) { binding.accountType.text = authData.userProfile?.name binding.email.text = authData.userProfile?.email binding.avatar.load(authData.userProfile?.artwork?.url) } } } } } binding.tos.setOnClickListener { Loading
app/src/main/res/layout/custom_preference.xml +18 −4 Original line number Diff line number Diff line Loading @@ -61,16 +61,18 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" /> <ImageView <com.google.android.material.imageview.ShapeableImageView android:id="@+id/avatar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_width="40dp" android:layout_height="40dp" android:layout_marginStart="16dp" android:layout_marginTop="30dp" android:scaleType="centerCrop" android:src="@drawable/ic_user_icon" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/account" /> app:layout_constraintTop_toBottomOf="@id/account" app:shapeAppearanceOverlay="@style/roundedCornersImageView" /> <TextView android:id="@+id/accountType" Loading @@ -83,6 +85,18 @@ app:layout_constraintStart_toEndOf="@id/avatar" app:layout_constraintTop_toTopOf="@id/avatar" /> <TextView android:id="@+id/email" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="18dp" android:layout_marginTop="5dp" android:textColor="?android:textColorSecondary" android:textSize="13sp" app:layout_constraintBottom_toBottomOf="@id/avatar" app:layout_constraintStart_toEndOf="@id/avatar" app:layout_constraintTop_toBottomOf="@id/accountType" /> <com.google.android.material.button.MaterialButton android:id="@+id/logout" style="@style/Widget.MaterialComponents.Button.OutlinedButton" Loading
app/src/main/res/values/themes.xml +5 −0 Original line number Diff line number Diff line Loading @@ -53,4 +53,9 @@ <item name="android:colorControlNormal">@color/colorAccent</item> </style> <style name="roundedCornersImageView" parent=""> <item name="cornerFamily">rounded</item> <item name="cornerSize">50%</item> </style> </resources> No newline at end of file