Преглед на файлове

Added save button to profile toolbar and fixed unnecessary nickname update

Vadik Sirekanyan преди 7 години
родител
ревизия
f958636e41
променени са 3 файла, в които са добавени 19 реда и са изтрити 6 реда
  1. 17 6
      app/src/main/java/me/vadik/knigopis/profile/ProfileActivity.kt
  2. 1 0
      app/src/main/res/values-ru/strings.xml
  3. 1 0
      app/src/main/res/values/strings.xml

+ 17 - 6
app/src/main/java/me/vadik/knigopis/profile/ProfileActivity.kt

@@ -5,6 +5,7 @@ import android.content.Intent
 import android.os.Bundle
 import android.support.v7.app.AppCompatActivity
 import android.support.v7.widget.Toolbar
+import android.view.MenuItem
 import android.view.animation.AccelerateInterpolator
 import android.view.inputmethod.EditorInfo
 import com.bumptech.glide.Glide
@@ -34,6 +35,7 @@ class ProfileActivity : AppCompatActivity() {
     private val doneList = mutableListOf<Book>()
     private var userId: String? = null
     private var profileUrl: String? = null
+    private lateinit var editOption: MenuItem
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
@@ -54,7 +56,7 @@ class ProfileActivity : AppCompatActivity() {
         profileNicknameEditText.setOnEditorActionListener { _, actionId, _ ->
             when (actionId) {
                 EditorInfo.IME_ACTION_DONE -> {
-                    updateNickname()
+                    updateNicknameOrExitEditMode()
                     true
                 }
                 else -> false
@@ -123,6 +125,14 @@ class ProfileActivity : AppCompatActivity() {
             })
     }
 
+    private fun updateNicknameOrExitEditMode() {
+        if (profileNickname.text.toString() == profileNicknameEditText.text.toString()) {
+            quitEditMode()
+        } else {
+            updateNickname()
+        }
+    }
+
     private fun updateNickname() {
         val id = userId ?: return
         api.updateProfile(
@@ -148,11 +158,7 @@ class ProfileActivity : AppCompatActivity() {
             when (it.itemId) {
                 R.id.option_edit_profile -> {
                     if (isEditMode) {
-                        if (profileNickname.text.toString() == profileNicknameEditText.text.toString()) {
-                            quitEditMode()
-                        } else {
-                            updateNickname()
-                        }
+                        updateNicknameOrExitEditMode()
                     } else {
                         enterEditMode()
                         val nickname = profileNickname.text
@@ -177,6 +183,7 @@ class ProfileActivity : AppCompatActivity() {
                 else -> false
             }
         }
+        editOption = toolbar.menu.findItem(R.id.option_edit_profile)
     }
 
     override fun onBackPressed() {
@@ -188,12 +195,16 @@ class ProfileActivity : AppCompatActivity() {
     }
 
     private fun enterEditMode() {
+        editOption.setIcon(R.drawable.ic_done)
+        editOption.setTitle(R.string.profile_option_save)
         topProfileSpace.hideNow()
         profileNicknameSwitcher.displayedChild = 1
         showKeyboard()
     }
 
     private fun quitEditMode() {
+        editOption.setIcon(R.drawable.ic_edit)
+        editOption.setTitle(R.string.profile_option_edit)
         hideKeyboard()
         topProfileSpace.showNow()
         profileNicknameSwitcher.displayedChild = 0

+ 1 - 0
app/src/main/res/values-ru/strings.xml

@@ -25,6 +25,7 @@
 
     <!-- profile menu -->
     <string name="profile_option_edit">Редактировать</string>
+    <string name="profile_option_save">Сохранить</string>
     <string name="profile_option_share">Поделиться</string>
 
     <!-- books -->

+ 1 - 0
app/src/main/res/values/strings.xml

@@ -26,6 +26,7 @@
 
     <!-- profile menu -->
     <string name="profile_option_edit">Edit</string>
+    <string name="profile_option_save">Save</string>
     <string name="profile_option_share">Share</string>
 
     <!-- books -->