Simple screens and logic with Navigation Component

This commit is contained in:
2021-07-12 00:17:18 +03:00
parent 1c773df3e1
commit 026c0c74af
25 changed files with 650 additions and 142 deletions
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,5c1.66,0 3,1.34 3,3s-1.34,3 -3,3 -3,-1.34 -3,-3 1.34,-3 3,-3zM12,19.2c-2.5,0 -4.71,-1.28 -6,-3.22 0.03,-1.99 4,-3.08 6,-3.08 1.99,0 5.97,1.09 6,3.08 -1.29,1.94 -3.5,3.22 -6,3.22z"/>
</vector>
@@ -4,6 +4,11 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="conversations" />
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
+8 -3
View File
@@ -5,20 +5,25 @@
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="friends" />
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="8dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
app:elevation="0dp">
<com.google.android.material.appbar.CollapsingToolbarLayout
android:layout_width="match_parent"
android:background="@drawable/toolbar_background"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:background="@drawable/toolbar_background"
app:layout_scrollFlags="scroll|enterAlways">
<include layout="@layout/toolbar" />
@@ -3,4 +3,9 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="important" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
+18 -2
View File
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/loginRoot"
@@ -8,6 +9,12 @@
android:layout_height="match_parent"
android:orientation="vertical">
<WebView
android:id="@+id/webView"
android:layout_width="0dp"
android:layout_height="0dp"
android:visibility="gone" />
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
@@ -16,6 +23,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:animateLayoutChanges="true"
android:gravity="center"
android:orientation="vertical"
android:padding="16dp">
@@ -37,6 +45,14 @@
app:tint="?colorAccent" />
</FrameLayout>
<ProgressBar
android:id="@+id/progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="48dp"
android:visibility="gone"
tools:visibility="visible" />
<LinearLayout
android:id="@+id/loginContainer"
android:layout_width="match_parent"
@@ -110,7 +126,7 @@
</LinearLayout>
<com.google.android.material.button.MaterialButton
android:id="@+id/authorize"
android:id="@+id/auth"
style="@style/Widget.MaterialButton"
android:layout_width="wrap_content"
android:layout_height="60dp"
@@ -2,17 +2,17 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/navigationFriends"
android:id="@id/friends"
android:icon="@drawable/ic_people_outline"
android:title="@string/navigation_friends" />
<item
android:id="@+id/navigationConversations"
android:id="@id/messages"
android:icon="@drawable/ic_message_outline"
android:title="@string/navigation_chats" />
<item
android:id="@+id/navigationImportant"
android:id="@id/important"
android:icon="@drawable/ic_star_border"
android:title="@string/navigation_important" />
+9 -1
View File
@@ -1,6 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/friends">
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/friends"
app:startDestination="@+id/friendsFragment">
<fragment
android:id="@+id/friendsFragment"
android:name="com.meloda.fast.fragment.friends.FriendsFragment"
android:label="FriendsFragment"
tools:layout="@layout/fragment_friends" />
</navigation>
+14
View File
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<navigation 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/important"
app:startDestination="@id/importantFragment">
<fragment
android:id="@+id/importantFragment"
android:name="com.meloda.fast.fragment.important.ImportantFragment"
android:label="ImportantFragment"
tools:layout="@layout/fragment_important" />
</navigation>
+41
View File
@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<navigation 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/login"
app:startDestination="@id/loginFragment">
<fragment
android:id="@+id/loginFragment"
android:name="com.meloda.fast.fragment.login.LoginFragment"
android:label="LoginFragment"
tools:layout="@layout/fragment_login">
<action
android:id="@+id/toMain"
app:destination="@id/mainFragment"
app:popUpTo="@id/loginFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/toValidation"
app:destination="@id/validationFragment" />
</fragment>
<fragment
android:id="@+id/validationFragment"
android:name="com.meloda.fast.fragment.login.ValidationFragment"
android:label="ValidationFragment"
tools:layout="@layout/fragment_validation">
<action
android:id="@+id/toLogin"
app:destination="@id/loginFragment"
app:popUpTo="@id/validationFragment"
app:popUpToInclusive="true" />
</fragment>
</navigation>
+8 -2
View File
@@ -3,13 +3,19 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
app:startDestination="@id/loginFragment">
app:startDestination="@id/mainFragment">
<fragment
android:id="@+id/mainFragment"
android:name="com.meloda.fast.fragment.main.MainFragment"
android:label="MainFragment"
tools:layout="@layout/fragment_main" />
tools:layout="@layout/fragment_main">
<action
android:id="@+id/toLogin"
app:destination="@id/loginFragment" />
</fragment>
<fragment
android:id="@+id/loginFragment"
+9 -1
View File
@@ -1,6 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/messages">
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/messages"
app:startDestination="@+id/conversationsFragment">
<fragment
android:id="@+id/conversationsFragment"
android:name="com.meloda.fast.fragment.messages.ConversationsFragment"
android:label="ConversationsFragment"
tools:layout="@layout/fragment_conversations" />
</navigation>
+73
View File
@@ -0,0 +1,73 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar.Bridge">
<item name="colorPrimary">@color/dark_primary</item>
<item name="colorPrimaryDark">@color/dark_primaryDark</item>
<item name="colorAccent">@color/dark_accent</item>
<item name="toolbarStyle">@style/AppTheme.Toolbar</item>
<item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
<item name="dialogCornerRadius">12dp</item>
<item name="android:windowBackground">@color/dark_background</item>
<item name="itemTitleColor">?colorAccent</item>
<item name="dividerHorizontal">@color/dark_divider</item>
<item name="textColorSecondary">@color/dark_textSecondary</item>
<item name="editTextFilledBackgroundColor">@color/dark_edittext_filled_background</item>
<item name="messageInTextColor">@color/dark_message_in</item>
<item name="messageOutTextColor">@color/dark_message_out</item>
<item name="android:windowAnimationStyle">@style/AppTheme.ActivityAnimation</item>
<item name="android:navigationBarColor">@color/dark_navigationBar</item>
<item name="android:navigationBarDividerColor" tools:targetApi="o_mr1">
@android:color/transparent
</item>
</style>
<style name="AppTheme.Toolbar" parent="Widget.MaterialComponents.Toolbar.PrimarySurface">
<item name="titleTextAppearance">@style/Toolbar.Title</item>
<item name="android:textSize">24sp</item>
<item name="android:elevation">3dp</item>
<item name="titleTextColor">@color/dark_accent</item>
</style>
<style name="AppTheme.Login.EditText" parent="">
<item name="android:layout_height">52dp</item>
<item name="android:background">@drawable/edittext_filled_background</item>
<item name="android:paddingStart">16dp</item>
<item name="android:paddingEnd">16dp</item>
<item name="android:layout_marginEnd">16dp</item>
<item name="android:textSize">14sp</item>
<item name="android:textColor">?android:textColorPrimary</item>
<item name="android:textColorHint">?textColorSecondary</item>
<item name="fontFamily">@font/google_sans_regular</item>
<item name="android:singleLine">true</item>
<item name="android:maxLines">1</item>
</style>
<style name="AppTheme.FullScreenDialog" parent="Theme.MaterialComponents.DayNight.Dialog.Bridge">
<item name="colorPrimary">@color/dark_primary</item>
<item name="colorPrimaryDark">@color/dark_primaryDark</item>
<item name="colorAccent">@color/dark_accent</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowBackground">@color/dark_background</item>
<item name="actionMenuTextColor">?colorAccent</item>
<item name="android:navigationBarColor" tools:targetApi="o_mr1">@color/dark_navigationBar</item>
<item name="android:navigationBarDividerColor" tools:targetApi="o_mr1">
@android:color/transparent
</item>
<item name="colorControlNormal">?colorAccent</item>
</style>
<style name="AppTheme.ProfileDialog" parent="Theme.MaterialComponents.DayNight.BottomSheetDialog">
<item name="colorAccent">@color/dark_accent</item>
<item name="colorPrimary">@color/dark_primary</item>
<item name="colorPrimaryDark">@color/dark_primaryDark</item>
</style>
</resources>
+6 -6
View File
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar.Bridge">
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar.Bridge">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primaryDark</item>
<item name="colorAccent">@color/accent</item>
@@ -27,8 +27,6 @@
<item name="android:navigationBarDividerColor" tools:targetApi="o_mr1">
@android:color/transparent
</item>
</style>
<style name="AppTheme.Toolbar" parent="Widget.MaterialComponents.Toolbar.PrimarySurface">
@@ -59,15 +57,16 @@
<item name="android:maxLines">1</item>
</style>
<style name="AppTheme.FullScreenDialog" parent="Theme.MaterialComponents.Light.Dialog.Bridge">
<style name="AppTheme.FullScreenDialog" parent="Theme.MaterialComponents.DayNight.Dialog.Bridge">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primaryDark</item>
<item name="colorAccent">@color/accent</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowBackground">@color/background</item>
<item name="actionMenuTextColor">?colorAccent</item>
<item name="android:windowLightStatusBar">true</item>
<item name="android:navigationBarColor" tools:targetApi="o_mr1">?colorPrimaryDark</item>
<item name="android:navigationBarColor" tools:targetApi="o_mr1">@color/navigationBar</item>
<item name="android:windowLightNavigationBar" tools:targetApi="o_mr1">true</item>
<item name="android:navigationBarDividerColor" tools:targetApi="o_mr1">
@android:color/transparent
@@ -82,10 +81,11 @@
<item name="android:layout_marginEnd">12dp</item>
</style>
<style name="AppTheme.ProfileDialog" parent="Theme.MaterialComponents.Light.BottomSheetDialog">
<style name="AppTheme.ProfileDialog" parent="Theme.MaterialComponents.DayNight.BottomSheetDialog">
<item name="colorAccent">@color/accent</item>
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primaryDark</item>
<item name="android:windowLightStatusBar">true</item>
</style>
<style name="Widget.TextInputLayout" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">