mirror of
https://github.com/recloudstream/cloudstream.git
synced 2024-08-15 01:53:11 +00:00
added nice ass loading
This commit is contained in:
parent
1e858ddd04
commit
7e83670963
16 changed files with 321 additions and 32 deletions
|
@ -35,8 +35,8 @@ android {
|
|||
minSdkVersion 21
|
||||
targetSdkVersion 31
|
||||
|
||||
versionCode 36
|
||||
versionName "2.4.4"
|
||||
versionCode 37
|
||||
versionName "2.4.5"
|
||||
|
||||
resValue "string", "app_version",
|
||||
"${defaultConfig.versionName}${versionNameSuffix ?: ""}"
|
||||
|
@ -159,4 +159,7 @@ dependencies {
|
|||
|
||||
// debugImplementation because LeakCanary should only run in debug builds.
|
||||
// debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.7'
|
||||
|
||||
// for shimmer when loading
|
||||
implementation 'com.facebook.shimmer:shimmer:0.5.0'
|
||||
}
|
|
@ -248,6 +248,8 @@ class HomeFragment : Fragment() {
|
|||
observe(homeViewModel.page) { data ->
|
||||
when (data) {
|
||||
is Resource.Success -> {
|
||||
home_loading_shimmer?.stopShimmer()
|
||||
|
||||
val d = data.value
|
||||
|
||||
currentHomePage = d
|
||||
|
@ -263,11 +265,13 @@ class HomeFragment : Fragment() {
|
|||
|
||||
home_master_recycler?.adapter?.notifyDataSetChanged()
|
||||
|
||||
home_loading.visibility = View.GONE
|
||||
home_loading_error.visibility = View.GONE
|
||||
home_loaded.visibility = View.VISIBLE
|
||||
home_loading?.isVisible = false
|
||||
home_loading_error?.isVisible = false
|
||||
home_loaded?.isVisible = true
|
||||
}
|
||||
is Resource.Failure -> {
|
||||
home_loading_shimmer?.stopShimmer()
|
||||
|
||||
result_error_text.text = data.errorString
|
||||
|
||||
home_reload_connectionerror.setOnClickListener(apiChangeClickListener)
|
||||
|
@ -287,14 +291,15 @@ class HomeFragment : Fragment() {
|
|||
}
|
||||
}
|
||||
|
||||
home_loading.visibility = View.GONE
|
||||
home_loading_error.visibility = View.VISIBLE
|
||||
home_loaded.visibility = View.GONE
|
||||
home_loading?.isVisible = false
|
||||
home_loading_error?.isVisible = true
|
||||
home_loaded?.isVisible = false
|
||||
}
|
||||
is Resource.Loading -> {
|
||||
home_loading.visibility = View.VISIBLE
|
||||
home_loading_error.visibility = View.GONE
|
||||
home_loaded.visibility = View.GONE
|
||||
home_loading_shimmer?.startShimmer()
|
||||
home_loading?.isVisible = true
|
||||
home_loading_error?.isVisible = false
|
||||
home_loaded?.isVisible = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -801,7 +801,7 @@ class ResultFragment : Fragment() {
|
|||
WatchType.values().map { fab.context.getString(it.stringRes) }.toList(),
|
||||
watchType.ordinal,
|
||||
fab.context.getString(R.string.action_add_to_bookmarks),
|
||||
showApply = true,
|
||||
showApply = false,
|
||||
{}) {
|
||||
viewModel.updateWatchStatus(fab.context, WatchType.values()[it])
|
||||
}
|
||||
|
|
|
@ -135,11 +135,36 @@
|
|||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"/>
|
||||
|
||||
<!--
|
||||
<ProgressBar
|
||||
android:visibility="visible"
|
||||
tools:visibility="gone"
|
||||
android:id="@+id/download_loading"
|
||||
android:layout_gravity="center"
|
||||
android:layout_width="50dp" android:layout_height="50dp">
|
||||
</ProgressBar>
|
||||
</ProgressBar>-->
|
||||
|
||||
<com.facebook.shimmer.ShimmerFrameLayout
|
||||
android:id="@+id/download_loading"
|
||||
app:shimmer_base_alpha="0.2"
|
||||
app:shimmer_highlight_alpha="0.3"
|
||||
app:shimmer_duration="@integer/loading_time"
|
||||
app:shimmer_auto_start="true"
|
||||
android:paddingTop="40dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center"
|
||||
android:orientation="vertical">
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
<include layout="@layout/loading_downloads"/>
|
||||
<include layout="@layout/loading_downloads"/>
|
||||
<include layout="@layout/loading_downloads"/>
|
||||
<include layout="@layout/loading_downloads"/>
|
||||
<include layout="@layout/loading_downloads"/>
|
||||
<include layout="@layout/loading_downloads"/>
|
||||
</LinearLayout>
|
||||
</com.facebook.shimmer.ShimmerFrameLayout>
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
|
@ -11,17 +11,81 @@
|
|||
|
||||
<FrameLayout
|
||||
android:visibility="gone"
|
||||
tools:visibility="gone"
|
||||
tools:visibility="visible"
|
||||
android:id="@+id/home_loading"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
<ProgressBar
|
||||
android:layout_gravity="center"
|
||||
android:visibility="visible"
|
||||
tools:visibility="visible"
|
||||
android:visibility="gone"
|
||||
tools:visibility="gone"
|
||||
android:layout_width="50dp"
|
||||
android:layout_height="50dp">
|
||||
</ProgressBar>
|
||||
<com.facebook.shimmer.ShimmerFrameLayout
|
||||
android:id="@+id/home_loading_shimmer"
|
||||
app:shimmer_base_alpha="0.2"
|
||||
app:shimmer_highlight_alpha="0.3"
|
||||
app:shimmer_duration="@integer/loading_time"
|
||||
app:shimmer_auto_start="true"
|
||||
android:paddingTop="40dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginTop="15dp"
|
||||
android:orientation="vertical">
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
<FrameLayout
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
<androidx.cardview.widget.CardView
|
||||
android:layout_margin="@dimen/loading_margin"
|
||||
android:layout_gravity="center"
|
||||
app:cardCornerRadius="@dimen/loading_radius"
|
||||
android:background="@color/grayShimmer"
|
||||
android:translationX="-164dp"
|
||||
android:layout_width="125dp"
|
||||
android:layout_height="200dp">
|
||||
</androidx.cardview.widget.CardView>
|
||||
<androidx.cardview.widget.CardView
|
||||
android:layout_margin="@dimen/loading_margin"
|
||||
android:layout_gravity="center"
|
||||
app:cardCornerRadius="@dimen/loading_radius"
|
||||
android:background="@color/grayShimmer"
|
||||
android:layout_width="148dp"
|
||||
android:layout_height="234dp">
|
||||
</androidx.cardview.widget.CardView>
|
||||
<androidx.cardview.widget.CardView
|
||||
android:layout_margin="@dimen/loading_margin"
|
||||
android:layout_gravity="center"
|
||||
app:cardCornerRadius="@dimen/loading_radius"
|
||||
android:background="@color/grayShimmer"
|
||||
android:translationX="164dp"
|
||||
android:layout_width="125dp"
|
||||
android:layout_height="200dp">
|
||||
</androidx.cardview.widget.CardView>
|
||||
</FrameLayout>
|
||||
<include layout="@layout/loading_line_short_center"/>
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_marginTop="@dimen/result_padding"
|
||||
android:layout_marginStart="@dimen/result_padding"
|
||||
android:layout_marginEnd="@dimen/result_padding"
|
||||
|
||||
android:layout_width="match_parent" android:layout_height="wrap_content">
|
||||
|
||||
<include layout="@layout/loading_list"/>
|
||||
<include layout="@layout/loading_list"/>
|
||||
<include layout="@layout/loading_list"/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</com.facebook.shimmer.ShimmerFrameLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/home_loading_statusbar"
|
||||
android:layout_width="match_parent"
|
||||
|
@ -84,7 +148,7 @@
|
|||
</LinearLayout>
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:background="?attr/primaryBlackBackground"
|
||||
tools:visibility="visible"
|
||||
tools:visibility="gone"
|
||||
android:visibility="gone"
|
||||
android:id="@+id/home_loaded"
|
||||
android:layout_width="match_parent"
|
||||
|
@ -304,6 +368,7 @@
|
|||
</ImageView>
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:paddingHorizontal="5dp"
|
||||
android:clipToPadding="false"
|
||||
|
@ -315,6 +380,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
tools:listitem="@layout/home_result_grid"
|
||||
/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
|
@ -404,7 +470,6 @@
|
|||
android:contentDescription="@string/home_more_info">
|
||||
</ImageView>
|
||||
</FrameLayout>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:paddingHorizontal="5dp"
|
||||
android:clipToPadding="false"
|
||||
|
|
|
@ -10,13 +10,59 @@
|
|||
android:focusable="true"
|
||||
>
|
||||
|
||||
<ProgressBar
|
||||
<com.facebook.shimmer.ShimmerFrameLayout
|
||||
tools:visibility="gone"
|
||||
app:shimmer_base_alpha="0.2"
|
||||
app:shimmer_highlight_alpha="0.3"
|
||||
app:shimmer_duration="@integer/loading_time"
|
||||
app:shimmer_auto_start="true"
|
||||
android:paddingTop="40dp"
|
||||
android:id="@+id/result_loading"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginTop="15dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_margin="@dimen/result_padding"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
<LinearLayout
|
||||
android:layout_marginBottom="@dimen/loading_margin"
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
<include layout="@layout/loading_poster"/>
|
||||
<LinearLayout
|
||||
android:layout_marginStart="@dimen/loading_margin"
|
||||
android:layout_marginEnd="@dimen/loading_margin"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
<include layout="@layout/loading_line"/>
|
||||
<include layout="@layout/loading_line"/>
|
||||
<include layout="@layout/loading_line"/>
|
||||
<include layout="@layout/loading_line"/>
|
||||
<include layout="@layout/loading_line_short"/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<ImageView android:layout_width="match_parent" android:layout_height="20dp"
|
||||
tools:ignore="ContentDescription"/>
|
||||
<include layout="@layout/loading_episode"/>
|
||||
<include layout="@layout/loading_episode"/>
|
||||
<include layout="@layout/loading_episode"/>
|
||||
</LinearLayout>
|
||||
</com.facebook.shimmer.ShimmerFrameLayout>
|
||||
<!--<ProgressBar
|
||||
android:visibility="visible"
|
||||
tools:visibility="gone"
|
||||
android:id="@+id/result_loading"
|
||||
android:layout_gravity="center"
|
||||
android:layout_width="50dp" android:layout_height="50dp">
|
||||
</ProgressBar>
|
||||
</ProgressBar>-->
|
||||
<LinearLayout
|
||||
android:id="@+id/result_loading_error"
|
||||
|
||||
|
@ -611,6 +657,8 @@
|
|||
android:id="@+id/result_bookmark_fab"
|
||||
android:layout_gravity="end|bottom"
|
||||
app:icon="@drawable/ic_baseline_bookmark_24"
|
||||
android:textAllCaps="false"
|
||||
android:gravity="center"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
tools:ignore="ContentDescription">
|
||||
|
|
21
app/src/main/res/layout/loading_downloads.xml
Normal file
21
app/src/main/res/layout/loading_downloads.xml
Normal file
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<LinearLayout
|
||||
android:paddingBottom="@dimen/loading_margin"
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<include layout="@layout/loading_poster"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_marginStart="15dp"
|
||||
android:orientation="vertical"
|
||||
android:layout_gravity="center"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_marginEnd="50dp"
|
||||
android:layout_height="wrap_content">
|
||||
<include layout="@layout/loading_line"/>
|
||||
<include layout="@layout/loading_line_short"/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
37
app/src/main/res/layout/loading_episode.xml
Normal file
37
app/src/main/res/layout/loading_episode.xml
Normal file
|
@ -0,0 +1,37 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<LinearLayout
|
||||
android:paddingTop="@dimen/loading_margin"
|
||||
android:paddingBottom="@dimen/loading_margin"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<LinearLayout
|
||||
android:layout_marginBottom="@dimen/loading_margin"
|
||||
android:layout_width="match_parent"
|
||||
android:orientation="horizontal"
|
||||
android:layout_height="wrap_content">
|
||||
<!--app:cardCornerRadius="@dimen/roundedImageRadius"-->
|
||||
<androidx.cardview.widget.CardView
|
||||
android:background="@color/grayShimmer"
|
||||
app:cardCornerRadius="@dimen/loading_radius"
|
||||
android:layout_width="126dp"
|
||||
android:layout_height="72dp"
|
||||
android:foreground="@drawable/outline_drawable"
|
||||
>
|
||||
</androidx.cardview.widget.CardView>
|
||||
<LinearLayout
|
||||
android:layout_marginStart="15dp"
|
||||
android:orientation="vertical"
|
||||
android:layout_gravity="center"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_marginEnd="50dp"
|
||||
android:layout_height="wrap_content">
|
||||
<include layout="@layout/loading_line"/>
|
||||
<include layout="@layout/loading_line_short"/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<include layout="@layout/loading_line"/>
|
||||
<include layout="@layout/loading_line"/>
|
||||
</LinearLayout>
|
11
app/src/main/res/layout/loading_line.xml
Normal file
11
app/src/main/res/layout/loading_line.xml
Normal file
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.cardview.widget.CardView
|
||||
app:cardCornerRadius="@dimen/loading_radius"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/loading_line_height"
|
||||
android:layout_marginBottom="@dimen/loading_margin"
|
||||
android:background="@color/grayShimmer"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
tools:ignore="ContentDescription"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"/>
|
11
app/src/main/res/layout/loading_line_short.xml
Normal file
11
app/src/main/res/layout/loading_line_short.xml
Normal file
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.cardview.widget.CardView
|
||||
app:cardCornerRadius="@dimen/loading_radius"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="120dp"
|
||||
android:layout_height="@dimen/loading_line_height"
|
||||
android:layout_marginBottom="@dimen/loading_margin"
|
||||
android:background="@color/grayShimmer"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
tools:ignore="ContentDescription"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"/>
|
12
app/src/main/res/layout/loading_line_short_center.xml
Normal file
12
app/src/main/res/layout/loading_line_short_center.xml
Normal file
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.cardview.widget.CardView
|
||||
app:cardCornerRadius="@dimen/loading_radius"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="200dp"
|
||||
android:layout_gravity="center"
|
||||
android:layout_height="@dimen/loading_line_height"
|
||||
android:layout_marginBottom="@dimen/loading_margin"
|
||||
android:background="@color/grayShimmer"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
tools:ignore="ContentDescription"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"/>
|
31
app/src/main/res/layout/loading_list.xml
Normal file
31
app/src/main/res/layout/loading_list.xml
Normal file
|
@ -0,0 +1,31 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:paddingTop="@dimen/loading_margin"
|
||||
android:paddingBottom="@dimen/loading_margin"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="200dp" android:layout_width="match_parent">
|
||||
<include layout="@layout/loading_line_short"/>
|
||||
<LinearLayout
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<include layout="@layout/loading_poster"/>
|
||||
<View android:layout_height="wrap_content" android:layout_width="@dimen/loading_margin"/>
|
||||
<include layout="@layout/loading_poster"/>
|
||||
<View android:layout_height="wrap_content" android:layout_width="@dimen/loading_margin"/>
|
||||
<include layout="@layout/loading_poster"/>
|
||||
<View android:layout_height="wrap_content" android:layout_width="@dimen/loading_margin"/>
|
||||
<include layout="@layout/loading_poster"/>
|
||||
<View android:layout_height="wrap_content" android:layout_width="@dimen/loading_margin"/>
|
||||
<include layout="@layout/loading_poster"/>
|
||||
<View android:layout_height="wrap_content" android:layout_width="@dimen/loading_margin"/>
|
||||
<include layout="@layout/loading_poster"/>
|
||||
<View android:layout_height="match_parent" android:layout_width="@dimen/loading_margin"/>
|
||||
<include layout="@layout/loading_poster"/>
|
||||
<View android:layout_height="wrap_content" android:layout_width="@dimen/loading_margin"/>
|
||||
<include layout="@layout/loading_poster"/>
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
10
app/src/main/res/layout/loading_poster.xml
Normal file
10
app/src/main/res/layout/loading_poster.xml
Normal file
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.cardview.widget.CardView
|
||||
app:cardCornerRadius="@dimen/loading_radius"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="100dp"
|
||||
android:layout_height="140dp"
|
||||
android:background="@color/grayShimmer"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
tools:ignore="ContentDescription"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"/>
|
|
@ -14,6 +14,7 @@
|
|||
|
||||
<color name="textColor">#e9eaee</color> <!--FFF-->
|
||||
<color name="grayTextColor">#9ba0a4</color> <!-- 5e5f62-->
|
||||
<color name="grayShimmer">#DCDCDC</color> <!-- 5e5f62-->
|
||||
|
||||
<color name="searchColorTransparent">#1AFFFFFF</color> <!--DADADA-->
|
||||
<color name="transparent">#00000000</color>
|
||||
|
|
|
@ -6,4 +6,10 @@
|
|||
<dimen name="navbar_height">0dp</dimen>
|
||||
<dimen name="card_corner_radius">2dp</dimen>
|
||||
<dimen name="result_padding">15dp</dimen>
|
||||
|
||||
<dimen name="loading_line_height">15dp</dimen>
|
||||
<dimen name="loading_radius">3dp</dimen>
|
||||
<dimen name="loading_margin">15dp</dimen>
|
||||
|
||||
<integer name="loading_time">2000</integer>
|
||||
</resources>
|
|
@ -315,7 +315,10 @@
|
|||
<item name="strokeColor">@color/toggle_button_outline</item>
|
||||
<item name="android:layout_width">wrap_content</item>
|
||||
<item name="android:layout_height">45dp</item>
|
||||
<item name="android:padding">0dp</item>
|
||||
<item name="android:paddingTop">0dp</item>
|
||||
<item name="android:paddingBottom">0dp</item>
|
||||
<item name="android:paddingStart">10dp</item>
|
||||
<item name="android:paddingEnd">10dp</item>
|
||||
<!--<item name="android:layout_marginStart">10dp</item>-->
|
||||
<item name="android:layout_marginEnd">5dp</item>
|
||||
<item name="textAllCaps">false</item>
|
||||
|
|
Loading…
Reference in a new issue