Jelajahi Sumber

Migrated to daynight material theme

Vadik Sirekanyan 5 tahun lalu
induk
melakukan
673c2d6222
36 mengubah file dengan 206 tambahan dan 240 penghapusan
  1. 3 3
      app/src/main/AndroidManifest.xml
  2. 16 11
      app/src/main/java/com/sirekanyan/knigopis/common/extensions/ImageView.kt
  3. 5 2
      app/src/main/java/com/sirekanyan/knigopis/feature/MainActivity.kt
  4. 1 1
      app/src/main/java/com/sirekanyan/knigopis/feature/profile/ProfileView.kt
  5. 1 1
      app/src/main/java/com/sirekanyan/knigopis/feature/user/UserView.kt
  6. 9 0
      app/src/main/res/drawable/ic_menu_overflow.xml
  7. 0 5
      app/src/main/res/drawable/oval_dark_placeholder_background.xml
  8. 0 5
      app/src/main/res/drawable/oval_dark_placeholder_background_dark.xml
  9. 3 2
      app/src/main/res/drawable/oval_placeholder_background.xml
  10. 1 1
      app/src/main/res/drawable/oval_placeholder_on_primary.xml
  11. 7 1
      app/src/main/res/drawable/progress_bar_background_dark.xml
  12. 0 6
      app/src/main/res/drawable/progress_bar_background_light.xml
  13. 3 2
      app/src/main/res/drawable/rectangle_placeholder_background.xml
  14. 0 5
      app/src/main/res/drawable/rectangle_placeholder_background_dark.xml
  15. 0 8
      app/src/main/res/drawable/recycler_view_divider.xml
  16. 2 2
      app/src/main/res/drawable/subscribe_button_background.xml
  17. 0 19
      app/src/main/res/drawable/text_area_background.xml
  18. 1 1
      app/src/main/res/layout/activity_main.xml
  19. 1 1
      app/src/main/res/layout/book.xml
  20. 22 14
      app/src/main/res/layout/book_edit.xml
  21. 0 1
      app/src/main/res/layout/books_page.xml
  22. 3 3
      app/src/main/res/layout/bottom_sheet_dialog_item.xml
  23. 1 2
      app/src/main/res/layout/bottom_sheet_dialog_view.xml
  24. 2 4
      app/src/main/res/layout/default_app_bar.xml
  25. 2 2
      app/src/main/res/layout/header.xml
  26. 1 1
      app/src/main/res/layout/note.xml
  27. 5 5
      app/src/main/res/layout/profile_activity.xml
  28. 5 6
      app/src/main/res/layout/user_activity.xml
  29. 1 1
      app/src/main/res/menu/profile_menu.xml
  30. 6 0
      app/src/main/res/values-notnight-v29/colors_daynight_splash.xml
  31. 14 0
      app/src/main/res/values-notnight/colors_daynight.xml
  32. 0 7
      app/src/main/res/values/attrs.xml
  33. 5 44
      app/src/main/res/values/colors.xml
  34. 14 0
      app/src/main/res/values/colors_daynight.xml
  35. 6 0
      app/src/main/res/values/colors_daynight_splash.xml
  36. 66 74
      app/src/main/res/values/styles.xml

+ 3 - 3
app/src/main/AndroidManifest.xml

@@ -13,14 +13,14 @@
         android:label="@string/common.title.app"
         android:roundIcon="@mipmap/ic_launcher_round"
         android:supportsRtl="true"
-        android:theme="@style/AppTheme"
+        android:theme="@style/Theme.Knigopis"
         tools:ignore="GoogleAppIndexingWarning">
 
         <activity
             android:name=".feature.MainActivity"
             android:label="@string/common.title.app"
             android:launchMode="singleTop"
-            android:theme="@style/SplashTheme">
+            android:theme="@style/Theme.Knigopis.Splash">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.LAUNCHER" />
@@ -55,7 +55,7 @@
         <activity
             android:name=".feature.profile.ProfileActivity"
             android:screenOrientation="portrait"
-            android:theme="@style/ProfileAppTheme" />
+            android:theme="@style/Theme.Knigopis.Profile" />
 
         <activity android:name=".feature.login.LoginActivity">
             <intent-filter>

+ 16 - 11
app/src/main/java/com/sirekanyan/knigopis/common/extensions/ImageView.kt

@@ -4,9 +4,9 @@ import android.content.Context
 import android.graphics.ColorMatrix
 import android.graphics.ColorMatrixColorFilter
 import android.graphics.drawable.Drawable
-import android.util.TypedValue
 import android.widget.ImageView
-import androidx.annotation.AttrRes
+import androidx.annotation.DrawableRes
+import androidx.core.content.ContextCompat
 import com.bumptech.glide.Glide
 import com.bumptech.glide.load.DataSource
 import com.bumptech.glide.load.engine.GlideException
@@ -21,16 +21,13 @@ private const val DARK_SATURATION = 0.33f
 private fun ImageView.setImage(
     url: String?,
     requestOptions: RequestOptions,
-    @AttrRes placeholderAttr: Int
+    @DrawableRes placeholderRes: Int
 ) {
-    if (isDarkTheme) {
+    if (context.isNightMode) {
         val colorMatrix = ColorMatrix().apply { setSaturation(DARK_SATURATION) }
         colorFilter = ColorMatrixColorFilter(colorMatrix)
     }
-    val placeholder = TypedValue().let { typedValue ->
-        context.theme.resolveAttribute(placeholderAttr, typedValue, false)
-        typedValue.data
-    }
+    val placeholder = ContextCompat.getDrawable(context, placeholderRes)
     Glide.with(context)
         .load(url)
         .apply(requestOptions.placeholder(placeholder))
@@ -38,11 +35,19 @@ private fun ImageView.setImage(
         .into(this)
 }
 
-fun ImageView.setCircleImage(url: String?, @AttrRes placeholder: Int? = null) {
+fun ImageView.setCircleImage(url: String?) {
+    setImage(
+        url,
+        RequestOptions.circleCropTransform(),
+        R.drawable.oval_placeholder_background
+    )
+}
+
+fun ImageView.setCircleImageOnPrimary(url: String?) {
     setImage(
         url,
         RequestOptions.circleCropTransform(),
-        placeholder ?: R.attr.oval_placeholder_drawable
+        R.drawable.oval_placeholder_on_primary
     )
 }
 
@@ -50,7 +55,7 @@ fun ImageView.setSquareImage(url: String?) {
     setImage(
         url,
         RequestOptions.centerCropTransform(),
-        R.attr.rectangle_placeholder_drawable
+        R.drawable.rectangle_placeholder_background
     )
 }
 

+ 5 - 2
app/src/main/java/com/sirekanyan/knigopis/feature/MainActivity.kt

@@ -7,7 +7,10 @@ import android.net.Uri
 import android.os.Bundle
 import com.sirekanyan.knigopis.R
 import com.sirekanyan.knigopis.common.BaseActivity
-import com.sirekanyan.knigopis.common.extensions.*
+import com.sirekanyan.knigopis.common.extensions.app
+import com.sirekanyan.knigopis.common.extensions.io2main
+import com.sirekanyan.knigopis.common.extensions.showToast
+import com.sirekanyan.knigopis.common.extensions.startActivityOrNull
 import com.sirekanyan.knigopis.common.functions.logError
 import com.sirekanyan.knigopis.dependency.providePresenter
 import com.sirekanyan.knigopis.feature.book.createBookIntent
@@ -40,7 +43,7 @@ class MainActivity : BaseActivity(),
     private val api by lazy { app.endpoint }
 
     override fun onCreate(savedInstanceState: Bundle?) {
-        setDarkTheme(app.config.isDarkTheme)
+        setTheme(R.style.Theme_Knigopis)
         super.onCreate(savedInstanceState)
         setContentView(R.layout.activity_main)
         val restoredCurrentTab = savedInstanceState?.getMainState()?.currentTab

+ 1 - 1
app/src/main/java/com/sirekanyan/knigopis/feature/profile/ProfileView.kt

@@ -67,7 +67,7 @@ class ProfileViewImpl(
 
     override fun setProfile(profile: ProfileModel) {
         profileNickname.text = profile.name
-        profileAvatar.setCircleImage(profile.imageUrl)
+        profileAvatar.setCircleImageOnPrimary(profile.imageUrl)
     }
 
     override fun setEditOptionVisible(isVisible: Boolean) {

+ 1 - 1
app/src/main/java/com/sirekanyan/knigopis/feature/user/UserView.kt

@@ -68,7 +68,7 @@ class UserViewImpl(
     }
 
     override fun setImage(url: String?) {
-        userImage.setCircleImage(url, R.attr.oval_dark_placeholder_drawable)
+        userImage.setCircleImageOnPrimary(url)
         userImage.setElevationRes(R.dimen.image_view_elevation)
     }
 

+ 9 - 0
app/src/main/res/drawable/ic_menu_overflow.xml

@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24.0"
+    android:viewportHeight="24.0">
+    <path
+        android:fillColor="?colorOnPrimary"
+        android:pathData="M12,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,10c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM12,16c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2z" />
+</vector>

+ 0 - 5
app/src/main/res/drawable/oval_dark_placeholder_background.xml

@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="oval">
-    <solid android:color="@color/light_image_dark_placeholder_color" />
-</shape>

+ 0 - 5
app/src/main/res/drawable/oval_dark_placeholder_background_dark.xml

@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="oval">
-    <solid android:color="@color/dark_image_dark_placeholder_color" />
-</shape>

+ 3 - 2
app/src/main/res/drawable/oval_placeholder_background.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <shape xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="oval">
-    <solid android:color="@color/light_image_placeholder_color" />
+    android:shape="oval"
+    android:tint="?colorPrimary">
+    <solid android:color="@color/grey_12" />
 </shape>

+ 1 - 1
app/src/main/res/drawable/oval_placeholder_background_dark.xml → app/src/main/res/drawable/oval_placeholder_on_primary.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <shape xmlns:android="http://schemas.android.com/apk/res/android"
     android:shape="oval">
-    <solid android:color="@color/dark_image_placeholder_color" />
+    <solid android:color="@color/white_12" />
 </shape>

+ 7 - 1
app/src/main/res/drawable/progress_bar_background_dark.xml

@@ -1,6 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:id="@android:id/progress">
-        <clip android:drawable="@color/dark_book_progress_color" />
+        <clip>
+            <shape
+                android:shape="rectangle"
+                android:tint="?colorPrimary">
+                <solid android:color="@color/grey_50" />
+            </shape>
+        </clip>
     </item>
 </layer-list>

+ 0 - 6
app/src/main/res/drawable/progress_bar_background_light.xml

@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:id="@android:id/progress">
-        <clip android:drawable="@color/light_book_progress_color" />
-    </item>
-</layer-list>

+ 3 - 2
app/src/main/res/drawable/rectangle_placeholder_background.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <shape xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="rectangle">
-    <solid android:color="@color/light_image_placeholder_color" />
+    android:shape="rectangle"
+    android:tint="?colorPrimary">
+    <solid android:color="@color/grey_12" />
 </shape>

+ 0 - 5
app/src/main/res/drawable/rectangle_placeholder_background_dark.xml

@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
-    android:shape="rectangle">
-    <solid android:color="@color/dark_image_placeholder_color" />
-</shape>

+ 0 - 8
app/src/main/res/drawable/recycler_view_divider.xml

@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<inset xmlns:android="http://schemas.android.com/apk/res/android"
-    android:insetLeft="72dp">
-    <shape>
-        <solid android:color="?recycler_divider_color" />
-        <size android:height="0.5dp" />
-    </shape>
-</inset>

+ 2 - 2
app/src/main/res/drawable/subscribe_button_background.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android" android:color="#000000">
-    <item android:color="@color/colorSuccessAccent" android:state_selected="true" />
-    <item android:color="?colorAccent" />
+    <item android:color="#00E676" android:state_selected="true" />
+    <item android:color="?colorSecondary" />
 </selector>

+ 0 - 19
app/src/main/res/drawable/text_area_background.xml

@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_focused="true">
-        <shape>
-            <corners android:radius="4dp"/>
-            <stroke
-                android:width="2dp"
-                android:color="?colorControlActivated"/>
-        </shape>
-    </item>
-    <item>
-        <shape>
-            <corners android:radius="4dp"/>
-            <stroke
-                android:width="1dp"
-                android:color="?colorControlNormal"/>
-        </shape>
-    </item>
-</selector>

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

@@ -50,7 +50,7 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_gravity="bottom"
-        android:background="?bottom_navigation_color"
+        android:background="@color/knigopis_color_bottom_navigation"
         android:visibility="gone"
         app:menu="@menu/navigation" />
 

+ 1 - 1
app/src/main/res/layout/book.xml

@@ -14,7 +14,7 @@
         android:layout_marginLeft="16dp"
         android:layout_marginTop="64dp"
         android:layout_marginRight="16dp"
-        android:progressDrawable="?book_progress_drawable"
+        android:progressDrawable="@drawable/progress_bar_background_dark"
         tools:progress="80" />
 
     <ImageView

+ 22 - 14
app/src/main/res/layout/book_edit.xml

@@ -22,7 +22,7 @@
 
             <com.google.android.material.textfield.TextInputLayout
                 android:id="@+id/book_title_input"
-                style="@style/TextInputLayoutStyle"
+                style="@style/Widget.Knigopis.TextInputLayout.Filled"
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="16dp"
@@ -43,7 +43,7 @@
 
             <com.google.android.material.textfield.TextInputLayout
                 android:id="@+id/book_author_input"
-                style="@style/TextInputLayoutStyle"
+                style="@style/Widget.Knigopis.TextInputLayout.Filled"
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="16dp"
@@ -98,7 +98,7 @@
 
             <com.google.android.material.textfield.TextInputLayout
                 android:id="@+id/bookYearInput"
-                style="@style/TextInputLayoutStyle"
+                style="@style/Widget.Knigopis.TextInputLayout.Filled"
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:hint="@string/book.hint.year"
@@ -119,7 +119,7 @@
 
             <com.google.android.material.textfield.TextInputLayout
                 android:id="@+id/bookMonthInput"
-                style="@style/TextInputLayoutStyle"
+                style="@style/Widget.Knigopis.TextInputLayout.Filled"
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:hint="@string/book.hint.month"
@@ -138,7 +138,7 @@
 
             <com.google.android.material.textfield.TextInputLayout
                 android:id="@+id/bookDayInput"
-                style="@style/TextInputLayoutStyle"
+                style="@style/Widget.Knigopis.TextInputLayout.Filled"
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:hint="@string/book.hint.day"
@@ -155,20 +155,28 @@
 
             </com.google.android.material.textfield.TextInputLayout>
 
-            <androidx.appcompat.widget.AppCompatEditText
-                android:id="@+id/notesTextArea"
+            <com.google.android.material.textfield.TextInputLayout
+                android:id="@+id/notesTextInputLayout"
+                style="@style/Widget.Knigopis.TextInputLayout.Outlined"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:layout_margin="16dp"
-                android:drawablePadding="16dp"
+                android:layout_marginTop="16dp"
                 android:hint="@string/book.hint.notes"
-                android:inputType="textCapSentences|textMultiLine"
-                android:minLines="2"
-                android:padding="16dp"
-                app:background="@drawable/text_area_background"
+                android:paddingBottom="16dp"
                 app:layout_constraintBottom_toBottomOf="parent"
                 app:layout_constraintTop_toBottomOf="@id/bookYearInput"
-                tools:text="Неистово плюсую" />
+                app:layout_goneMarginTop="0dp">
+
+                <EditText
+                    android:id="@+id/notesTextArea"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:inputType="textCapSentences|textMultiLine"
+                    android:minLines="2"
+                    tools:ignore="LabelFor"
+                    tools:text="Неистово плюсую" />
+
+            </com.google.android.material.textfield.TextInputLayout>
 
             <androidx.constraintlayout.widget.Group
                 android:id="@+id/bookDateInputGroup"

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

@@ -31,7 +31,6 @@
         android:layout_height="wrap_content"
         android:layout_gravity="end|bottom"
         android:layout_margin="16dp"
-        android:tint="@color/white"
         app:srcCompat="@drawable/ic_add" />
 
 </FrameLayout>

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

@@ -5,15 +5,15 @@
     android:layout_height="48dp"
     android:background="?android:selectableItemBackground"
     android:paddingLeft="16dp"
-    android:paddingRight="16dp"
-    tools:background="@color/white">
+    android:paddingRight="16dp">
 
     <ImageView
         android:id="@+id/bottomSheetItemIcon"
         android:layout_width="24dp"
         android:layout_height="24dp"
         android:layout_gravity="center_vertical"
-        android:tint="#777777"
+        android:tint="?android:textColorSecondary"
+        android:tintMode="src_in"
         tools:ignore="ContentDescription"
         tools:src="@drawable/ic_edit" />
 

+ 1 - 2
app/src/main/res/layout/bottom_sheet_dialog_view.xml

@@ -5,8 +5,7 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:orientation="vertical"
-    android:paddingBottom="8dp"
-    tools:background="@color/white">
+    android:paddingBottom="8dp">
 
     <TextView
         android:id="@+id/bottomSheetTitle"

+ 2 - 4
app/src/main/res/layout/default_app_bar.xml

@@ -3,14 +3,12 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/app_bar_layout"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:theme="@style/AppBarTheme">
+    android:layout_height="wrap_content">
 
-    <androidx.appcompat.widget.Toolbar
+    <com.google.android.material.appbar.MaterialToolbar
         android:id="@+id/toolbar"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        app:popupTheme="?toolbar_popup_theme"
         app:title="@string/common.title.app" />
 
 </com.google.android.material.appbar.AppBarLayout>

+ 2 - 2
app/src/main/res/layout/header.xml

@@ -10,7 +10,7 @@
         android:id="@+id/headerDivider"
         android:layout_width="match_parent"
         android:layout_height="0.5dp"
-        android:background="?recycler_divider_color"
+        android:background="@color/knigopis_color_divider"
         android:visibility="invisible" />
 
     <TextView
@@ -42,7 +42,7 @@
         android:layout_width="match_parent"
         android:layout_height="0.5dp"
         android:layout_gravity="bottom"
-        android:background="?recycler_divider_color"
+        android:background="@color/knigopis_color_divider"
         android:visibility="invisible" />
 
 </FrameLayout>

+ 1 - 1
app/src/main/res/layout/note.xml

@@ -93,7 +93,7 @@
         android:layout_width="match_parent"
         android:layout_height="0.5dp"
         android:layout_gravity="bottom"
-        android:src="?recycler_divider_color"
+        android:src="@color/knigopis_color_divider"
         tools:ignore="ContentDescription" />
 
 </FrameLayout>

+ 5 - 5
app/src/main/res/layout/profile_activity.xml

@@ -1,19 +1,19 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout 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:layout_width="match_parent"
     android:layout_height="match_parent"
     android:animateLayoutChanges="true"
     android:orientation="vertical"
+    android:theme="@style/Theme.Knigopis.Profile.Content"
     tools:ignore="ContentDescription">
 
-    <androidx.appcompat.widget.Toolbar
+    <com.google.android.material.appbar.MaterialToolbar
         android:id="@+id/profileToolbar"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
-        app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
+        android:elevation="0dp"
+        android:theme="@style/Theme.Knigopis.Profile" />
 
     <View
         android:id="@+id/topProfileSpace"
@@ -26,7 +26,7 @@
         android:layout_width="128dp"
         android:layout_height="128dp"
         android:layout_gravity="center_horizontal"
-        android:src="@drawable/oval_dark_placeholder_background" />
+        android:src="@drawable/oval_placeholder_on_primary" />
 
     <ViewSwitcher
         android:id="@+id/profileNicknameSwitcher"

+ 5 - 6
app/src/main/res/layout/user_activity.xml

@@ -9,11 +9,11 @@
     <com.google.android.material.appbar.AppBarLayout
         android:id="@+id/app_bar"
         android:layout_width="match_parent"
-        android:layout_height="@dimen/app_bar_height"
-        android:theme="@style/AppBarTheme">
+        android:layout_height="@dimen/app_bar_height">
 
         <com.google.android.material.appbar.CollapsingToolbarLayout
             android:id="@+id/toolbar_layout"
+            style="@style/Widget.Knigopis.CollapsingToolbar"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             app:contentScrim="?colorPrimary"
@@ -24,12 +24,12 @@
             app:layout_scrollFlags="scroll|exitUntilCollapsed"
             app:toolbarId="@+id/toolbar">
 
-            <androidx.appcompat.widget.Toolbar
+            <com.google.android.material.appbar.MaterialToolbar
                 android:id="@+id/toolbar"
                 android:layout_width="match_parent"
                 android:layout_height="@dimen/toolbar_height"
+                android:elevation="0dp"
                 app:layout_collapseMode="pin"
-                app:popupTheme="?toolbar_popup_theme"
                 app:titleMarginStart="@dimen/title_start_margin_collapsed" />
 
         </com.google.android.material.appbar.CollapsingToolbarLayout>
@@ -52,7 +52,7 @@
         app:toX="64dp"
         app:toY="8dp"
         tools:ignore="ContentDescription"
-        tools:src="@drawable/oval_dark_placeholder_background" />
+        tools:src="@drawable/oval_placeholder_on_primary" />
 
     <androidx.recyclerview.widget.RecyclerView
         android:id="@+id/userBooksRecyclerView"
@@ -82,7 +82,6 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_margin="16dp"
-        android:tint="@color/white"
         android:visibility="gone"
         app:backgroundTint="@drawable/subscribe_button_background"
         app:layout_anchor="@id/app_bar"

+ 1 - 1
app/src/main/res/menu/profile_menu.xml

@@ -7,7 +7,7 @@
         android:icon="@drawable/ic_edit"
         android:title="@string/profile.option.edit"
         android:visible="false"
-        app:iconTint="@color/white"
+        app:iconTint="?colorOnPrimary"
         app:showAsAction="ifRoom" />
 
     <item

+ 6 - 0
app/src/main/res/values-notnight-v29/colors_daynight_splash.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <color name="splash_color_primary">@color/common_deep_purple_500</color>
+    <color name="splash_color_primary_variant">@color/common_deep_purple_700</color>
+    <color name="splash_color_background">@color/common_white</color>
+</resources>

+ 14 - 0
app/src/main/res/values-notnight/colors_daynight.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <color name="knigopis_color_primary">@color/common_deep_purple_500</color>
+    <color name="knigopis_color_primary_variant">@color/common_deep_purple_700</color>
+    <color name="knigopis_color_secondary">@color/common_deep_orange_accent_400</color>
+    <color name="knigopis_text_color_primary">@color/black_87</color>
+    <color name="knigopis_text_color_secondary">@color/black_60</color>
+    <color name="knigopis_text_color_tertiary">@color/black_38</color>
+    <color name="knigopis_color_background">@color/common_white</color>
+    <color name="knigopis_color_bottom_navigation">@color/common_grey_50</color>
+    <color name="knigopis_color_divider">@color/black_12</color>
+    <color name="profile_color_primary">@color/common_deep_purple_700</color>
+    <color name="profile_color_primary_variant">@color/common_deep_purple_900</color>
+</resources>

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

@@ -1,12 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
-    <attr name="toolbar_popup_theme" format="reference" />
-    <attr name="bottom_navigation_color" format="reference|color" />
-    <attr name="rectangle_placeholder_drawable" format="reference" />
-    <attr name="oval_placeholder_drawable" format="reference" />
-    <attr name="oval_dark_placeholder_drawable" format="reference" />
-    <attr name="recycler_divider_color" format="reference|color" />
-    <attr name="book_progress_drawable" format="reference" />
     <declare-styleable name="ViewBehavior">
         <attr name="appBarLayout" format="reference" />
         <attr name="appBarMaxHeight" format="dimension" />

+ 5 - 44
app/src/main/res/values/colors.xml

@@ -1,71 +1,32 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
+
+    <!-- palette -->
     <color name="common_deep_purple_900">#472791</color>
     <color name="common_deep_purple_700">#512DA8</color>
     <color name="common_deep_purple_500">#673AB7</color>
-    <color name="common_deep_purple_300">#9575CD</color>
-    <color name="common_deep_purple_200">#B39DDB</color>
-    <color name="common_deep_purple_100">#D1C4E9</color>
-    <color name="common_deep_purple_50">#EDE7F6</color>
     <color name="common_deep_orange_accent_400">#FF3D00</color>
-    <color name="common_blue_gray_900">#263238</color>
+    <color name="common_blue_gray_800">#37474F</color>
     <color name="common_blue_gray_700">#455A64</color>
     <color name="common_blue_gray_500">#607D8B</color>
-    <color name="common_blue_gray_300">#90A4AE</color>
     <color name="common_teal_accent_700">#00BFA5</color>
-    <color name="common_black">#000000</color>
     <color name="common_grey_950">#101010</color>
-    <color name="common_grey_900">#212121</color>
     <color name="common_grey_875">#292929</color>
     <color name="common_grey_850">#303030</color>
-    <color name="common_grey_800">#424242</color>
     <color name="common_grey_50">#FAFAFA</color>
     <color name="common_white">#ffffff</color>
-    <color name="colorAccent">#FF3D00</color>
-    <color name="colorSuccessAccent">#00E676</color>
-    <color name="white">#FFFFFF</color>
     <color name="white_12">#1FFFFFFF</color>
     <color name="white_38">#61FFFFFF</color>
     <color name="white_60">#99FFFFFF</color>
     <color name="white_87">#DEFFFFFF</color>
     <color name="black_12">#1F000000</color>
-    <color name="black_20">#33000000</color>
     <color name="black_38">#61000000</color>
     <color name="black_60">#99000000</color>
     <color name="black_87">#DE000000</color>
+    <color name="grey_12">#1F808080</color>
+    <color name="grey_50">#80808080</color>
     <color name="ic_launcher_background">#512DA8</color>
 
-    <!-- light theme -->
-    <color name="light.color_primary_dark">@color/common_deep_purple_700</color>
-    <color name="light.color_primary">@color/common_deep_purple_500</color>
-    <color name="light.background_color">@color/common_white</color>
-    <color name="light.bottom_navigation">@color/common_grey_50</color>
-    <color name="light.color_accent">@color/common_deep_orange_accent_400</color>
-    <color name="light.text_color_primary">@color/black_87</color>
-    <color name="light.text_color_secondary">@color/black_60</color>
-    <color name="light.text_color_tertiary">@color/black_38</color>
-    <color name="light_image_placeholder_color">@color/common_deep_purple_50</color>
-    <color name="light_image_dark_placeholder_color">@color/common_deep_purple_300</color>
-    <color name="light_book_progress_color">@color/common_deep_purple_200</color>
-    <color name="light_navigation_bar_color">@color/common_grey_950</color>
-
-    <!-- dark theme -->
-    <color name="dark.color_primary_dark">@color/common_blue_gray_700</color>
-    <color name="dark.color_primary">@color/common_blue_gray_500</color>
-    <color name="dark.background_color">@color/common_grey_850</color>
-    <color name="dark.bottom_navigation">@color/common_grey_875</color>
-    <color name="dark.color_accent">@color/common_teal_accent_700</color>
-    <color name="dark.text_color_primary">@color/white_87</color>
-    <color name="dark.text_color_secondary">@color/white_60</color>
-    <color name="dark.text_color_tertiary">@color/white_38</color>
-    <color name="dark_image_placeholder_color">@color/common_blue_gray_700</color>
-    <color name="dark_image_dark_placeholder_color">@color/common_blue_gray_300</color>
-    <color name="dark_book_progress_color">@color/common_blue_gray_700</color>
-    <color name="dark_navigation_bar_color">@color/common_grey_950</color>
-
-    <!-- profile theme -->
-    <color name="image_placeholder_color_dark">@color/common_deep_purple_300</color>
-
     <!-- login -->
     <color name="social_vk">#5181B8</color>
     <color name="social_go">#4A8BF6</color>

+ 14 - 0
app/src/main/res/values/colors_daynight.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <color name="knigopis_color_primary">@color/common_blue_gray_500</color>
+    <color name="knigopis_color_primary_variant">@color/common_blue_gray_700</color>
+    <color name="knigopis_color_secondary">@color/common_teal_accent_700</color>
+    <color name="knigopis_text_color_primary">@color/white_87</color>
+    <color name="knigopis_text_color_secondary">@color/white_60</color>
+    <color name="knigopis_text_color_tertiary">@color/white_38</color>
+    <color name="knigopis_color_background">@color/common_grey_850</color>
+    <color name="knigopis_color_bottom_navigation">@color/common_grey_875</color>
+    <color name="knigopis_color_divider">@color/white_12</color>
+    <color name="profile_color_primary">@color/common_blue_gray_700</color>
+    <color name="profile_color_primary_variant">@color/common_blue_gray_800</color>
+</resources>

+ 6 - 0
app/src/main/res/values/colors_daynight_splash.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <color name="splash_color_primary">@color/common_blue_gray_500</color>
+    <color name="splash_color_primary_variant">@color/common_blue_gray_700</color>
+    <color name="splash_color_background">@color/common_grey_850</color>
+</resources>

+ 66 - 74
app/src/main/res/values/styles.xml

@@ -1,73 +1,64 @@
-<resources xmlns:tools="http://schemas.android.com/tools">
+<resources>
 
-    <style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
+    <style name="Theme.Knigopis" parent="Theme.MaterialComponents.DayNight.NoActionBar">
+        <item name="colorPrimary">@color/knigopis_color_primary</item>
+        <item name="colorPrimaryVariant">@color/knigopis_color_primary_variant</item>
+        <item name="colorOnPrimary">@color/common_white</item>
+        <item name="colorSecondary">@color/knigopis_color_secondary</item>
+        <item name="colorSecondaryVariant">@color/knigopis_color_secondary</item>
+        <item name="colorOnSecondary">@color/common_white</item>
+        <item name="android:textColorPrimary">@color/knigopis_text_color_primary</item>
+        <item name="android:textColorSecondary">@color/knigopis_text_color_secondary</item>
+        <item name="android:textColorTertiary">@color/knigopis_text_color_tertiary</item>
+        <item name="android:colorBackground">@color/knigopis_color_background</item>
+        <item name="colorSurface">@color/knigopis_color_background</item>
+        <item name="appBarLayoutStyle">@style/Widget.MaterialComponents.Toolbar.Primary</item>
+        <item name="toolbarStyle">@style/Widget.MaterialComponents.Toolbar.Primary</item>
+        <item name="actionMenuTextColor">?colorOnPrimary</item>
+        <item name="actionOverflowButtonStyle">@style/Widget.Knigopis.ActionButton.Overflow</item>
+        <item name="android:statusBarColor">?colorPrimaryVariant</item>
+        <item name="android:navigationBarColor">@color/common_grey_950</item>
+    </style>
+
+    <style name="Theme.Knigopis.Splash" parent="Theme.Knigopis">
+        <item name="colorPrimary">@color/splash_color_primary</item>
+        <item name="colorPrimaryVariant">@color/splash_color_primary_variant</item>
+        <item name="android:colorBackground">@color/splash_color_background</item>
         <item name="android:windowTitleSize">?actionBarSize</item>
         <item name="android:windowTitleStyle">@style/SplashWindowTitle</item>
         <item name="android:windowTitleBackgroundStyle">@style/SplashWindowTitleBackground</item>
-        <item name="android:windowBackground">@color/dark.background_color</item>
         <item name="android:windowNoTitle">false</item>
-        <item name="colorPrimary">@color/dark.color_primary</item>
-        <item name="colorPrimaryDark">@color/dark.color_primary_dark</item>
-        <item name="android:navigationBarColor" tools:targetApi="lollipop">
-            @color/dark_navigation_bar_color
-        </item>
-    </style>
-
-    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
-        <item name="colorPrimary">@color/light.color_primary</item>
-        <item name="colorPrimaryDark">@color/light.color_primary_dark</item>
-        <item name="colorAccent">@color/light.color_accent</item>
-        <item name="android:windowBackground">@color/light.background_color</item>
-        <item name="android:listDivider">@drawable/recycler_view_divider</item>
-        <item name="rectangle_placeholder_drawable">@drawable/rectangle_placeholder_background</item>
-        <item name="oval_placeholder_drawable">@drawable/oval_placeholder_background</item>
-        <item name="oval_dark_placeholder_drawable">@drawable/oval_dark_placeholder_background</item>
-        <item name="recycler_divider_color">@color/black_12</item>
-        <item name="book_progress_drawable">@drawable/progress_bar_background_light</item>
-        <item name="android:textColorPrimary">@color/light.text_color_primary</item>
-        <item name="android:textColorSecondary">@color/light.text_color_secondary</item>
-        <item name="android:textColorTertiary">@color/light.text_color_tertiary</item>
-        <item name="bottom_navigation_color">@color/light.bottom_navigation</item>
-        <item name="android:navigationBarColor" tools:targetApi="lollipop">
-            @color/light_navigation_bar_color
-        </item>
-        <item name="toolbar_popup_theme">@style/ThemeOverlay.AppCompat.Light</item>
-    </style>
-
-    <style name="DarkAppTheme" parent="Theme.AppCompat.NoActionBar">
-        <item name="colorPrimary">@color/dark.color_primary</item>
-        <item name="colorPrimaryDark">@color/dark.color_primary_dark</item>
-        <item name="colorAccent">@color/dark.color_accent</item>
-        <item name="android:windowBackground">@color/dark.background_color</item>
-        <item name="android:listDivider">@drawable/recycler_view_divider</item>
-        <item name="rectangle_placeholder_drawable">@drawable/rectangle_placeholder_background_dark</item>
-        <item name="oval_placeholder_drawable">@drawable/oval_placeholder_background_dark</item>
-        <item name="oval_dark_placeholder_drawable">@drawable/oval_dark_placeholder_background_dark</item>
-        <item name="recycler_divider_color">@color/white_12</item>
-        <item name="book_progress_drawable">@drawable/progress_bar_background_dark</item>
-        <item name="android:textColorPrimary">@color/dark.text_color_primary</item>
-        <item name="android:textColorSecondary">@color/dark.text_color_secondary</item>
-        <item name="android:textColorTertiary">@color/dark.text_color_tertiary</item>
-        <item name="bottomSheetDialogTheme">@style/Theme.Design.BottomSheetDialog</item>
-        <item name="bottom_navigation_color">@color/dark.bottom_navigation</item>
-        <item name="android:navigationBarColor" tools:targetApi="lollipop">
-            @color/dark_navigation_bar_color
-        </item>
-        <item name="toolbar_popup_theme">@style/ThemeOverlay.AppCompat.Dark</item>
-    </style>
-
-    <style name="ProfileAppTheme" parent="DarkAppTheme">
-        <item name="colorPrimary">@color/common_deep_purple_700</item>
-        <item name="colorPrimaryDark">@color/common_deep_purple_900</item>
-        <item name="colorAccent">@color/light.color_accent</item>
-        <item name="android:windowBackground">@color/common_deep_purple_700</item>
-        <item name="oval_placeholder_drawable">@drawable/oval_dark_placeholder_background</item>
-        <item name="android:navigationBarColor" tools:targetApi="lollipop">
-            @color/common_deep_purple_900
-        </item>
-    </style>
-
-    <style name="AppBarTheme" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
+    </style>
+
+    <style name="Theme.Knigopis.Profile" parent="Theme.Knigopis">
+        <item name="colorPrimary">@color/profile_color_primary</item>
+        <item name="colorPrimaryVariant">@color/profile_color_primary_variant</item>
+        <item name="android:colorBackground">?colorPrimary</item>
+        <item name="android:navigationBarColor">?colorPrimaryVariant</item>
+    </style>
+
+    <style name="Theme.Knigopis.Profile.Content" parent="Theme.Knigopis.Profile">
+        <item name="android:textColorPrimary">@color/white_87</item>
+        <item name="android:textColorSecondary">@color/white_60</item>
+        <item name="android:textColorTertiary">@color/white_38</item>
+    </style>
+
+    <style name="Widget.Knigopis.ActionButton.Overflow" parent="Widget.AppCompat.ActionButton.Overflow">
+        <item name="android:src">@drawable/ic_menu_overflow</item>
+    </style>
+
+    <style name="Widget.Knigopis.CollapsingToolbar" parent="Widget.Design.CollapsingToolbar">
+        <item name="expandedTitleTextAppearance">@style/Text.Knigopis.ExpandedTitle</item>
+        <item name="collapsedTitleTextAppearance">@style/Text.Knigopis.CollapsedTitle</item>
+    </style>
+
+    <style name="Text.Knigopis.ExpandedTitle" parent="TextAppearance.MaterialComponents.Headline5">
+        <item name="android:textColor">?colorOnPrimary</item>
+    </style>
+
+    <style name="Text.Knigopis.CollapsedTitle" parent="TextAppearance.MaterialComponents.Headline6">
+        <item name="android:textColor">?colorOnPrimary</item>
+    </style>
 
     <style name="AboutItem">
         <item name="android:layout_height">wrap_content</item>
@@ -103,11 +94,14 @@
         <item name="android:textColor">?android:textColorPrimary</item>
     </style>
 
-    <style name="TextInputLayoutStyle">
+    <style name="Widget.Knigopis.TextInputLayout.Filled" parent="Widget.MaterialComponents.TextInputLayout.FilledBox">
+        <item name="android:layout_marginLeft">16dp</item>
+        <item name="android:layout_marginRight">16dp</item>
+    </style>
+
+    <style name="Widget.Knigopis.TextInputLayout.Outlined" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
         <item name="android:layout_marginLeft">16dp</item>
         <item name="android:layout_marginRight">16dp</item>
-        <item name="android:paddingLeft">-4dp</item>
-        <item name="android:paddingRight">-4dp</item>
     </style>
 
     <style name="PlaceholderStyle">
@@ -122,17 +116,15 @@
     </style>
 
     <style name="WhiteAccent">
-        <item name="colorAccent">@color/white</item>
+        <item name="colorSecondary">?colorOnPrimary</item>
     </style>
 
     <style name="SplashWindowTitleBackground">
-        <item name="android:background">@color/dark.color_primary</item>
+        <item name="android:background">?colorPrimary</item>
     </style>
 
-    <style name="SplashWindowTitle">
-        <item name="android:textColor">@color/white</item>
-        <item name="android:textSize">20sp</item>
-        <item name="android:fontFamily">sans-serif-medium</item>
+    <style name="SplashWindowTitle" parent="TextAppearance.MaterialComponents.Headline6">
+        <item name="android:textColor">?colorOnPrimary</item>
         <item name="android:paddingLeft">16dp</item>
         <item name="android:paddingRight">16dp</item>
     </style>