Prechádzať zdrojové kódy

Show welcome placeholder when unauthorized error occurred

sirekanyan 8 rokov pred
rodič
commit
8e24643b07

+ 11 - 3
app/src/main/java/me/vadik/knigopis/MainActivity.kt

@@ -21,6 +21,7 @@ import me.vadik.knigopis.auth.KAuth
 import me.vadik.knigopis.auth.KAuthImpl
 import me.vadik.knigopis.model.*
 import me.vadik.knigopis.model.CurrentTab.*
+import retrofit2.HttpException
 
 private const val ULOGIN_REQUEST_CODE = 0
 private const val BOOK_REQUEST_CODE = 1
@@ -40,7 +41,7 @@ class MainActivity : AppCompatActivity(), Router {
   private val navigation by lazy { findView<BottomNavigationView>(R.id.navigation) }
   private val fab by lazy { findView<FloatingActionButton>(R.id.add_book_button) }
   private val progressBar by lazy { findView<View>(R.id.books_progress_bar) }
-  private val booksNotFoundView by lazy { findView<View>(R.id.books_not_found) }
+  private val booksPlaceholder by lazy { findView<TextView>(R.id.books_placeholder) }
   private var needUpdate = false
   private lateinit var booksRecyclerView: RecyclerView
   private lateinit var loginOption: MenuItem
@@ -163,7 +164,7 @@ class MainActivity : AppCompatActivity(), Router {
     ).io2main()
         .doOnSubscribe {
           progressBar.fadeIn()
-          booksNotFoundView.fadeOut()
+          booksPlaceholder.fadeOut()
         }
         .doAfterTerminate {
           progressBar.fadeOut()
@@ -176,7 +177,14 @@ class MainActivity : AppCompatActivity(), Router {
           fab.show()
         }, {
           logError("cannot load books", it)
-          booksNotFoundView.fadeIn()
+          booksPlaceholder.setText(
+              if (it is HttpException && it.code() == 401) {
+                R.string.error_unauthorized
+              } else {
+                R.string.error_loading_books
+              }
+          )
+          booksPlaceholder.fadeIn()
         })
   }
 

+ 3 - 3
app/src/main/res/layout/activity_main.xml

@@ -41,15 +41,15 @@
             tools:alpha="1" />
 
         <TextView
-            android:id="@+id/books_not_found"
+            android:id="@+id/books_placeholder"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_gravity="center"
             android:alpha="0"
             android:gravity="center"
             android:padding="16dp"
-            android:text="@string/error_loading_books"
-            tools:alpha="1" />
+            tools:alpha="1"
+            tools:text="@string/error_loading_books" />
 
         <android.support.design.widget.FloatingActionButton
             android:id="@+id/add_book_button"

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

@@ -42,6 +42,7 @@
     <string name="about_designer">Дизайн: anna@sirekanyan.com</string>
 
     <!-- error -->
+    <string name="error_unauthorized">Это — Книгопись. Привет!</string>
     <string name="error_loading_books">Проверьте подключение к сети.</string>
 
 </resources>