sirekanyan %!s(int64=8) %!d(string=hai) anos
pai
achega
fa514d9bfa

+ 4 - 1
app/src/main/java/me/vadik/knigopis/BookActivity.kt

@@ -96,7 +96,10 @@ class BookActivity : AppCompatActivity() {
                 setResult(RESULT_OK)
                 finish()
               },
-              { logError("cannot post planned book", it) }
+              {
+                toast("Ошибка при сохранении книги")
+                logError("cannot post planned book", it)
+              }
           )
           true
         }

+ 18 - 8
app/src/main/java/me/vadik/knigopis/MainActivity.kt

@@ -171,7 +171,15 @@ class MainActivity : AppCompatActivity(), Router {
         api.getFinishedBooks(auth.getAccessToken())
             .map { it.sortedByDescending(FinishedBook::order) }
             .map { it.groupFinishedBooks() }
-    ).io2main()
+    ).map { (planned, finished) ->
+      mutableListOf<Book>().apply {
+        if (planned.isNotEmpty()) {
+          add(BookHeader(getString(R.string.book_header_todo)))
+        }
+        addAll(planned)
+        addAll(finished)
+      }
+    }.io2main()
         .doOnSubscribe {
           progressBar.fadeIn()
           booksPlaceholder.fadeOut()
@@ -179,10 +187,12 @@ class MainActivity : AppCompatActivity(), Router {
         .doAfterTerminate {
           progressBar.fadeOut()
         }
-        .subscribe({ (planned, finished) ->
-          allBooks.add(BookHeader("К прочтению"))
-          allBooks.addAll(planned)
-          allBooks.addAll(finished)
+        .subscribe({ books ->
+          if (books.isEmpty()) {
+            booksPlaceholder.setText(R.string.error_no_books)
+            booksPlaceholder.fadeIn()
+          }
+          allBooks.addAll(books)
           allBooksAdapter.notifyDataSetChanged()
           fab.show()
         }, {
@@ -214,9 +224,9 @@ class MainActivity : AppCompatActivity(), Router {
       if (previousReadYear != readYear) {
         groupedBooks.add(BookHeader(
             when {
-              book.readYear.isEmpty() -> "Прочие года"
-              index == 0 -> "Прочитано в $readYear г."
-              else -> "$readYear г."
+              book.readYear.isEmpty() -> getString(R.string.book_header_done_other)
+              index == 0 -> getString(R.string.book_header_done_first, readYear)
+              else -> getString(R.string.book_header_done, readYear)
             }
         ))
       }

+ 1 - 0
app/src/main/res/layout/activity_main.xml

@@ -48,6 +48,7 @@
             android:alpha="0"
             android:gravity="center"
             android:padding="16dp"
+            android:textSize="16sp"
             tools:alpha="1"
             tools:text="@string/error_loading_books" />
 

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

@@ -14,6 +14,12 @@
     <string name="option_logout">Выйти</string>
     <string name="option_about">О приложении</string>
 
+    <!-- books -->
+    <string name="book_header_todo">К прочтению</string>
+    <string name="book_header_done_first">Прочитано в %s г.</string>
+    <string name="book_header_done">%s г.</string>
+    <string name="book_header_done_other">Прочие года</string>
+
     <!-- edit book -->
     <string name="book_option_save">Сохранить</string>
     <string name="book_hint_title">Название</string>
@@ -44,5 +50,6 @@
     <!-- error -->
     <string name="error_unauthorized">Это — Книгопись. Привет!</string>
     <string name="error_loading_books">Проверьте подключение к сети.</string>
+    <string name="error_no_books">У вас пока нет книг.</string>
 
 </resources>

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

@@ -14,6 +14,12 @@
     <string name="option_logout">Logout</string>
     <string name="option_about">About</string>
 
+    <!-- books -->
+    <string name="book_header_todo">Todo</string>
+    <string name="book_header_done_first">Done in %s</string>
+    <string name="book_header_done">%s</string>
+    <string name="book_header_done_other">Other years</string>
+
     <!-- edit book -->
     <string name="book_option_save">Save</string>
     <string name="book_hint_title">Title</string>
@@ -42,6 +48,8 @@
     <string name="about_designer">Designer — anna@sirekanyan.com</string>
 
     <!-- error -->
+    <string name="error_unauthorized">Welcome to Knigopis! Please log in.</string>
     <string name="error_loading_books">Check your network connection.</string>
+    <string name="error_no_books">You don\'t have any books.</string>
 
 </resources>