Ver código fonte

Added placeholder for empty subscribers; fixed fab appearing

Vadik Sirekanyan 7 anos atrás
pai
commit
b169490eeb

+ 12 - 9
app/src/main/java/me/vadik/knigopis/MainActivity.kt

@@ -17,6 +17,8 @@ import android.view.View
 import com.tbruyelle.rxpermissions2.RxPermissions
 import kotlinx.android.synthetic.main.about.view.*
 import kotlinx.android.synthetic.main.activity_main.*
+import kotlinx.android.synthetic.main.books_page.*
+import kotlinx.android.synthetic.main.users_page.*
 import me.vadik.knigopis.adapters.BooksAdapter
 import me.vadik.knigopis.adapters.notes.NotesAdapter
 import me.vadik.knigopis.adapters.users.UsersAdapter
@@ -321,9 +323,8 @@ class MainActivity : AppCompatActivity(), Router {
     }
 
     private fun setCurrentTab(tab: CurrentTab, isForce: Boolean = false) {
-        addBookButton.hide()
         currentTab = tab
-        toggleRecyclerView(tab)
+        togglePage(tab)
         val isFirst = isFirstOpenTab(tab)
         if (isFirst) {
             when (tab) {
@@ -348,10 +349,10 @@ class MainActivity : AppCompatActivity(), Router {
             NOTES_TAB -> notesRecyclerView.adapter == null
         }
 
-    private fun toggleRecyclerView(tab: CurrentTab) {
-        usersRecyclerView.show(tab == USERS_TAB)
+    private fun togglePage(tab: CurrentTab) {
+        booksPage.show(tab == HOME_TAB)
+        usersPage.show(tab == USERS_TAB)
         notesRecyclerView.show(tab == NOTES_TAB)
-        booksRecyclerView.show(tab == HOME_TAB)
     }
 
     private fun refreshHomeTab() {
@@ -378,7 +379,6 @@ class MainActivity : AppCompatActivity(), Router {
                 allBooks.clear()
                 allBooks.addAll(books)
                 allBooksAdapter.notifyDataSetChanged()
-                addBookButton.show()
             }, {
                 handleNetworkError("cannot load books", it)
             })
@@ -391,13 +391,17 @@ class MainActivity : AppCompatActivity(), Router {
                 if (!swipeRefresh.isRefreshing) {
                     booksProgressBar.show()
                 }
-                booksPlaceholder.hide()
+                usersPlaceholder.hide()
             }
             .doFinally {
                 booksProgressBar.hide()
                 swipeRefresh.isRefreshing = false
             }
             .subscribe({ subscriptions ->
+                if (subscriptions.isEmpty()) {
+                    usersPlaceholder.setText(R.string.error_no_users)
+                    usersPlaceholder.show()
+                }
                 allUsers.clear()
                 allUsers.addAll(subscriptions)
                 usersAdapter.notifyDataSetChanged()
@@ -413,7 +417,6 @@ class MainActivity : AppCompatActivity(), Router {
                 if (!swipeRefresh.isRefreshing) {
                     booksProgressBar.show()
                 }
-                booksPlaceholder.hide()
             }
             .doFinally {
                 booksProgressBar.hide()
@@ -434,7 +437,7 @@ class MainActivity : AppCompatActivity(), Router {
             if (throwable is HttpException && throwable.code() == 401) {
                 R.string.error_unauthorized
             } else {
-                R.string.error_loading_books
+                R.string.error_loading_data
             }
         )
     }

+ 2 - 37
app/src/main/res/layout/activity_main.xml

@@ -32,21 +32,9 @@
             android:layout_width="match_parent"
             android:layout_height="match_parent">
 
-            <android.support.v7.widget.RecyclerView
-                android:id="@+id/booksRecyclerView"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                tools:listitem="@layout/book" />
+            <include layout="@layout/books_page" />
 
-            <android.support.v7.widget.RecyclerView
-                android:id="@+id/usersRecyclerView"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:clipToPadding="false"
-                android:paddingBottom="8dp"
-                android:paddingTop="8dp"
-                tools:listitem="@layout/user"
-                tools:visibility="gone" />
+            <include layout="@layout/users_page" />
 
             <android.support.v7.widget.RecyclerView
                 android:id="@+id/notesRecyclerView"
@@ -66,29 +54,6 @@
                 android:alpha="0"
                 tools:alpha="1" />
 
-            <TextView
-                android:id="@+id/booksPlaceholder"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center"
-                android:alpha="0"
-                android:gravity="center"
-                android:padding="16dp"
-                android:textSize="16sp"
-                android:visibility="gone"
-                tools:alpha="1"
-                tools:text="@string/error_loading_books"
-                tools:visibility="visible" />
-
-            <android.support.design.widget.FloatingActionButton
-                android:id="@+id/addBookButton"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="end|bottom"
-                android:layout_margin="16dp"
-                android:tint="@color/white"
-                app:srcCompat="@drawable/ic_add" />
-
         </FrameLayout>
 
     </android.support.v4.widget.SwipeRefreshLayout>

+ 38 - 0
app/src/main/res/layout/books_page.xml

@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/booksPage"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <android.support.v7.widget.RecyclerView
+        android:id="@+id/booksRecyclerView"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        tools:listitem="@layout/book" />
+
+    <TextView
+        android:id="@+id/booksPlaceholder"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:alpha="0"
+        android:gravity="center"
+        android:padding="16dp"
+        android:textSize="16sp"
+        android:visibility="gone"
+        tools:alpha="1"
+        tools:text="@string/error_loading_data"
+        tools:visibility="visible" />
+
+    <android.support.design.widget.FloatingActionButton
+        android:id="@+id/addBookButton"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="end|bottom"
+        android:layout_margin="16dp"
+        android:tint="@color/white"
+        app:srcCompat="@drawable/ic_add" />
+
+</FrameLayout>

+ 32 - 0
app/src/main/res/layout/users_page.xml

@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/usersPage"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <android.support.v7.widget.RecyclerView
+        android:id="@+id/usersRecyclerView"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:clipToPadding="false"
+        android:paddingBottom="8dp"
+        android:paddingTop="8dp"
+        tools:listitem="@layout/user"
+        tools:visibility="gone" />
+
+    <TextView
+        android:id="@+id/usersPlaceholder"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:alpha="0"
+        android:gravity="center"
+        android:padding="16dp"
+        android:textSize="16sp"
+        android:visibility="gone"
+        tools:alpha="1"
+        tools:text="@string/error_loading_data"
+        tools:visibility="visible" />
+
+</FrameLayout>

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

@@ -54,8 +54,9 @@
 
     <!-- error -->
     <string name="error_unauthorized">Это — Книгопись. Привет!</string>
-    <string name="error_loading_books">Проверьте подключение к сети.</string>
+    <string name="error_loading_data">Проверьте подключение к сети.</string>
     <string name="error_no_books">У вас пока нет книг.</string>
+    <string name="error_no_users">Вы ещё ни на кого не подписаны.</string>
 
     <!-- permissions -->
     <string name="no_access">Нет доступа</string>

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

@@ -60,8 +60,9 @@
 
     <!-- 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_loading_data">Check your network connection.</string>
     <string name="error_no_books">You don\'t have any books.</string>
+    <string name="error_no_users">You don\'t have any subscriptions yet.</string>
 
     <!-- permissions -->
     <string name="no_access">Permission denied</string>