From bee2301cfe0a1fb9be29f68678654c2a84281de8 Mon Sep 17 00:00:00 2001 From: FireCode <69737708+firecode16@users.noreply.github.com> Date: Mon, 22 Jul 2024 18:06:28 -0600 Subject: [PATCH 01/31] firecode16 --- app/build.gradle | 4 ++-- app/src/main/java/com/brain/util/Util.java | 2 +- app/src/main/res/drawable-v24/ic_chrome.png | Bin 471 -> 0 bytes app/src/main/res/drawable-v24/ic_home_public.png | Bin 907 -> 0 bytes .../main/res/drawable-v24/ic_home_rocket_50.png | Bin 0 -> 969 bytes app/src/main/res/drawable-v24/ic_plane_24.png | Bin 0 -> 528 bytes app/src/main/res/layout/dialog_think.xml | 4 ++-- 7 files changed, 5 insertions(+), 5 deletions(-) delete mode 100644 app/src/main/res/drawable-v24/ic_chrome.png delete mode 100644 app/src/main/res/drawable-v24/ic_home_public.png create mode 100644 app/src/main/res/drawable-v24/ic_home_rocket_50.png create mode 100644 app/src/main/res/drawable-v24/ic_plane_24.png diff --git a/app/build.gradle b/app/build.gradle index 57fa92c..f31acac 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -57,8 +57,8 @@ dependencies { implementation 'com.squareup.okhttp3:logging-interceptor:4.9.2' implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" testImplementation 'junit:junit:4.13.2' - androidTestImplementation 'androidx.test.ext:junit:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.0' + androidTestImplementation 'androidx.test.ext:junit:1.2.1' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' } repositories { diff --git a/app/src/main/java/com/brain/util/Util.java b/app/src/main/java/com/brain/util/Util.java index 7c546ba..b46050f 100644 --- a/app/src/main/java/com/brain/util/Util.java +++ b/app/src/main/java/com/brain/util/Util.java @@ -24,7 +24,7 @@ public class Util { public static final String IMG_JPG = "image/jpg"; public static int[] getTabIcon = { - R.drawable.ic_home_public, + R.drawable.ic_home_rocket_50, R.drawable.ic_chat, R.drawable.ic_setting_50 }; diff --git a/app/src/main/res/drawable-v24/ic_chrome.png b/app/src/main/res/drawable-v24/ic_chrome.png deleted file mode 100644 index 3b3d5ab7d887be77948065593bdca856fff6e45d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 471 zcmV;|0Vw{7P)tFQf!D= z*;uPvSZbkN@&JN`f{~42iX>tsCMnHY+;ib@@0{F?b{QD%<@_`MKWFBg!*RD$n8O&K z@C$obPiuG3|5x&B_>O6ZZ(#nY4?O+FL#mO#M*xdOmVwJ-os`R zc-TmKhpRY;^SFW4g1|&!@OQJIK_>DTC%U$dGq{frScn3~nZR0F8z%C;s=wRV!YHfq z0-ob{mj5ym_}19!Aj3x5tr#WjdVsA*0{e}i)ePGXNOlr-Ho$i4#QfYIGz14Yo&Kjm zL4Tqun_RiTk09_;`o0LTdhK$6?F4IHX>avS!uqP7Z)p$teUKLp`Cbq>#e*m~*`q?v zFbeKzpQPH~;)-e}b>$0%*h%6FZN89{`=aVL|199Q4%sny+97ZeuM1e`V@Gv!pA-l_ zE4OCZjL&s#bE?NLCwZpbnu!_OQnH?EE@OPfN7XI;qB@F0hYa+1*k5_X-kG_y>H+`& N002ovPDHLkV1kB};Di7G diff --git a/app/src/main/res/drawable-v24/ic_home_public.png b/app/src/main/res/drawable-v24/ic_home_public.png deleted file mode 100644 index ff362e6dcff9dfb20aefb37bc972b9bd77216148..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 907 zcmV;619bd}P)ajx|mIAdBwS+*|@YAJi-h1n=fee<2~&lRF6O=(Jl3hiVW zCC@AsmH=3y!Yp}4$&L7e69ywU@>yEAqZ#8&L#UB$p5nJ0 zcJ&erk^>TgN#El7$q9vofsU{$EiTm02Dg(15`yc};_W(FB{}npWen8GFKKzMwsOgs zXE8=t%1i4@wJV7&W1xF6fKE&6w`x= zj_IB4ExZJQUXj)0!&g$_BmF4AI$R0F4l zWxe3)Pe1x2v^;Ad-Si`npxuwu@+^TKY9?p_V_V~3q@D#3X4%SR)2S+T6w$*+B^ni^R#<7j82m0A4)>lj=Xz%} z=)bvg&)je3=bV}O{@;W`|7Au%5|9t<0!{0IO1PJR3kT4hkiNI0ftLe5O(t+E=UmI*fqyTp@ zqjH-dm6+2NTM%n7tH-t$w>phYs@(?2PK|*y10_JNtfd)1Dez7cq}w#aDBzRNAR2(o zD8J7D>NP-mO@kcMn2CrGE|?~tI9(yb$)Czly;P(bYllyqHj^Ni@Yh7mSd#~3*8-LR ze>6anG~=cC#JOk!A_2IMo+fF=%=L*=7VBVhfNelE@CfJtHp;V2=u3Bvl=#G16cj+& z&RU?)73cvlOkM%C6X{CrMj1YRW&$l9FL6e((VAkRUZw8eh78Wc& z!+~d(LAJyM;RCqcGQ`QaLkNh?*|?$HrYVpvOAt-K7$XoCcdJfdwlN5YdGd2_15qEa z)+mH4A3CS$KZ2^v3WN)270?<-h#K)WBb05h0kAu~5M_2M<1jl9fmDfE1?)2ou}}v6 z5t!%rex;9x@KQ(EIRbm-yE@Y#7aRka>3Wtb*9UGB=A~Z_Z&Tn%L|>YO$Z*{8HG8yM z5x_NWmEX()zS^o=t#@?P;L}!Tb}FQ87VygT?7K;jilF5fU^(zM0>n)zb|=c;ZhbHb z;=Fmf>hlU70>(Kq>2g`rZE^;s%QJPC9!XD3f~Y|_(}>X#+RO!>OB>}jmwLo2^my&6 zOoDW~I=iO)yWE-QOV!1>CZ2kgeq<}}wdO%$%zRsQs*1q*D2^~EWJ&?Nh$<3{50Heq zix}0$Af(gd8W8HhObZzIvg?4%Ge^$OT#VvM`m5$ACHM;^J;`LgeSlR};{ rTANkII)Ip}hI~&d`pNMf@js@&%4<`?!eEfa00000NkvXXu0mjfIF_?_ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-v24/ic_plane_24.png b/app/src/main/res/drawable-v24/ic_plane_24.png new file mode 100644 index 0000000000000000000000000000000000000000..fcc5c54458a4ce5c685f2b375abd939915041c65 GIT binary patch literal 528 zcmV+r0`L8aP)ep)E_2BrXZLTCE-go~a$+@}hxbjC<858Mx0MObrep>;&%T!2cY$J~3F`rruHi z6v4X!Cnf>c)m!RZ0rXSg<44%mL?t zkGb>NQ5CNNPN|=V^!O)mSe+?|&lG}Nt=5WcI0Y4Ta{f)-58NIQznf<-uU4x^)wd(S z9rX*aM?F0x=i)rNdSwi72Y3%`2M(yehvXj0_x$D<@YgZMv|g`o0ltpN-!)I5*=()^ zjsuU2Dg&NZDwR+!m)EN=N5I=5gtY@VNG)gc03LR4YPKci?3En!EaclbbVYMw^U5JK3|{qZSqCL45&v6;R1z^ej*lM@NpH$?SV zFRt!Zuc>c<4 Date: Tue, 23 Jul 2024 17:13:49 -0600 Subject: [PATCH 02/31] firecode16 --- app/build.gradle | 2 +- .../main/java/com/brain/adapters/MultimediaAdapter.java | 1 + .../main/java/com/brain/holders/MultimediaViewHolder.java | 2 ++ .../main/java/com/brain/holders/ProgressViewHolder.java | 8 +++++--- app/src/main/res/layout/container_cards.xml | 1 - build.gradle | 4 ++-- gradle/wrapper/gradle-wrapper.properties | 6 +++--- 7 files changed, 14 insertions(+), 10 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index f31acac..4585d59 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -45,7 +45,7 @@ dependencies { implementation 'androidx.media3:media3-exoplayer:1.3.1' implementation 'androidx.media3:media3-exoplayer-dash:1.3.1' implementation 'androidx.media3:media3-ui:1.3.1' - implementation 'androidx.appcompat:appcompat:1.6.1' + implementation 'androidx.appcompat:appcompat:1.7.0' implementation "androidx.cardview:cardview:1.0.0" implementation "androidx.recyclerview:recyclerview:1.3.2" implementation 'androidx.constraintlayout:constraintlayout:2.1.4' diff --git a/app/src/main/java/com/brain/adapters/MultimediaAdapter.java b/app/src/main/java/com/brain/adapters/MultimediaAdapter.java index b71cbf6..7e26639 100644 --- a/app/src/main/java/com/brain/adapters/MultimediaAdapter.java +++ b/app/src/main/java/com/brain/adapters/MultimediaAdapter.java @@ -113,6 +113,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi case VIEW_TYPE_ITEM: final MultimediaViewHolder multimediaViewHolder = (MultimediaViewHolder) holder; multimediaViewHolder.userName.setText(getProfile().getUserName()); + multimediaViewHolder.descrProject.setText(mediaDetail.getOverview()); List contentList = mediaDetail.getContent(); diff --git a/app/src/main/java/com/brain/holders/MultimediaViewHolder.java b/app/src/main/java/com/brain/holders/MultimediaViewHolder.java index f3944c6..3096dbe 100644 --- a/app/src/main/java/com/brain/holders/MultimediaViewHolder.java +++ b/app/src/main/java/com/brain/holders/MultimediaViewHolder.java @@ -21,6 +21,7 @@ public class MultimediaViewHolder extends RecyclerView.ViewHolder { public MultimediaSlider multimediaSlider; public TextView userName; + public TextView descrProject; public MultimediaViewHolder(@NonNull View itemView) { super(itemView); @@ -32,5 +33,6 @@ public MultimediaViewHolder(@NonNull View itemView) { multimediaSlider = itemView.findViewById(R.id.multimediaSlider); userName = itemView.findViewById(R.id.userName); + descrProject = itemView.findViewById(R.id.descrProject); } } diff --git a/app/src/main/java/com/brain/holders/ProgressViewHolder.java b/app/src/main/java/com/brain/holders/ProgressViewHolder.java index 523a118..5b1f6c6 100644 --- a/app/src/main/java/com/brain/holders/ProgressViewHolder.java +++ b/app/src/main/java/com/brain/holders/ProgressViewHolder.java @@ -37,9 +37,11 @@ public ProgressViewHolder(@NonNull View itemView) { @SuppressLint("NonConstantResourceId") @Override public void onClick(View v) { - switch (v.getId()) { - case R.id.load_more_retry: - case R.id.loadmore_errorlayout: + int id = v.getId(); + if (id == R.id.load_more_retry) { + // logic + } else if (id == R.id.loadmore_errorlayout) { + // logic } } } diff --git a/app/src/main/res/layout/container_cards.xml b/app/src/main/res/layout/container_cards.xml index 3ea5385..6f04ce6 100644 --- a/app/src/main/res/layout/container_cards.xml +++ b/app/src/main/res/layout/container_cards.xml @@ -70,7 +70,6 @@ android:layout_below="@+id/imagePost" android:layout_marginStart="5dp" android:layout_marginEnd="5dp" - android:text="Proyecto e-commerce, buscamos competir vs mercado libre, shoppe y themu." android:textColor="@color/black" android:textSize="17sp" android:textStyle="normal" /> diff --git a/build.gradle b/build.gradle index 440a9d2..1123ef4 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.android.tools.build:gradle:8.5.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -26,5 +26,5 @@ allprojects { } tasks.register('clean', Delete) { - delete rootProject.buildDir + delete rootProject.layout.buildDirectory } \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 39dca4c..0417e9b 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Tue Nov 09 13:23:37 CST 2021 +#Tue Jul 23 13:44:12 CST 2024 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip distributionPath=wrapper/dists -zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists From 5d596b62f819b5a9e439a6d2f471c220519a4d66 Mon Sep 17 00:00:00 2001 From: FireCode <69737708+firecode16@users.noreply.github.com> Date: Thu, 25 Jul 2024 16:47:16 -0600 Subject: [PATCH 03/31] firecode16 --- app/build.gradle | 6 +++--- multimediaplayer/build.gradle | 6 +++--- multimediapuzzlesviewer/build.gradle | 6 +++--- multimediaslider/build.gradle | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 4585d59..d6d0b58 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -42,9 +42,9 @@ dependencies { implementation 'de.hdodenhof:circleimageview:3.1.0' implementation 'com.google.android.material:material:1.12.0' implementation 'com.google.code.gson:gson:2.10.1' - implementation 'androidx.media3:media3-exoplayer:1.3.1' - implementation 'androidx.media3:media3-exoplayer-dash:1.3.1' - implementation 'androidx.media3:media3-ui:1.3.1' + implementation 'androidx.media3:media3-exoplayer:1.4.0' + implementation 'androidx.media3:media3-exoplayer-dash:1.4.0' + implementation 'androidx.media3:media3-ui:1.4.0' implementation 'androidx.appcompat:appcompat:1.7.0' implementation "androidx.cardview:cardview:1.0.0" implementation "androidx.recyclerview:recyclerview:1.3.2" diff --git a/multimediaplayer/build.gradle b/multimediaplayer/build.gradle index f5da270..e72423f 100644 --- a/multimediaplayer/build.gradle +++ b/multimediaplayer/build.gradle @@ -36,7 +36,7 @@ dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'com.google.code.gson:gson:2.10.1' - implementation 'androidx.media3:media3-exoplayer:1.3.1' - implementation 'androidx.media3:media3-exoplayer-dash:1.3.1' - implementation 'androidx.media3:media3-ui:1.3.1' + implementation 'androidx.media3:media3-exoplayer:1.4.0' + implementation 'androidx.media3:media3-exoplayer-dash:1.4.0' + implementation 'androidx.media3:media3-ui:1.4.0' } \ No newline at end of file diff --git a/multimediapuzzlesviewer/build.gradle b/multimediapuzzlesviewer/build.gradle index aae79dd..29df8b0 100644 --- a/multimediapuzzlesviewer/build.gradle +++ b/multimediapuzzlesviewer/build.gradle @@ -39,7 +39,7 @@ dependencies { implementation 'com.github.bumptech.glide:glide:4.12.0' implementation 'com.google.android.material:material:1.12.0' implementation 'com.google.code.gson:gson:2.10.1' - implementation 'androidx.media3:media3-exoplayer:1.3.1' - implementation 'androidx.media3:media3-exoplayer-dash:1.3.1' - implementation 'androidx.media3:media3-ui:1.3.1' + implementation 'androidx.media3:media3-exoplayer:1.4.0' + implementation 'androidx.media3:media3-exoplayer-dash:1.4.0' + implementation 'androidx.media3:media3-ui:1.4.0' } \ No newline at end of file diff --git a/multimediaslider/build.gradle b/multimediaslider/build.gradle index 53cbf22..090b029 100644 --- a/multimediaslider/build.gradle +++ b/multimediaslider/build.gradle @@ -39,7 +39,7 @@ dependencies { implementation 'com.github.bumptech.glide:glide:4.12.0' implementation 'com.google.android.material:material:1.12.0' implementation 'com.google.code.gson:gson:2.10.1' - implementation 'androidx.media3:media3-exoplayer:1.3.1' - implementation 'androidx.media3:media3-exoplayer-dash:1.3.1' - implementation 'androidx.media3:media3-ui:1.3.1' + implementation 'androidx.media3:media3-exoplayer:1.4.0' + implementation 'androidx.media3:media3-exoplayer-dash:1.4.0' + implementation 'androidx.media3:media3-ui:1.4.0' } \ No newline at end of file From c14d1e6ca601562d1729cd6fc7349dec83bec87c Mon Sep 17 00:00:00 2001 From: FireCode <69737708+firecode16@users.noreply.github.com> Date: Fri, 16 Aug 2024 10:28:32 -0600 Subject: [PATCH 04/31] firecode16 --- app/src/main/java/com/brain/fragments/GenericFragment.java | 2 +- app/src/main/res/layout/error_layout.xml | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/brain/fragments/GenericFragment.java b/app/src/main/java/com/brain/fragments/GenericFragment.java index 9e704af..c7a080c 100644 --- a/app/src/main/java/com/brain/fragments/GenericFragment.java +++ b/app/src/main/java/com/brain/fragments/GenericFragment.java @@ -181,7 +181,7 @@ private Result fetchResults(Response response) { } private Call callTopRatedMultimediaApi() { - return apiRestImpl.getTopRatedMultimedia(111101L, currentPage, ITEMS_SIZE); + return apiRestImpl.getTopRatedMultimedia(190881L, currentPage, ITEMS_SIZE); } private void showErrorView(Throwable throwable) { diff --git a/app/src/main/res/layout/error_layout.xml b/app/src/main/res/layout/error_layout.xml index 8e46952..516966f 100644 --- a/app/src/main/res/layout/error_layout.xml +++ b/app/src/main/res/layout/error_layout.xml @@ -17,7 +17,8 @@ style="@style/TextAppearance.AppCompat.Subhead" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="Sorry! Couldn\'t fetch movies." /> + android:text="Posts not found." + android:textAlignment="center" /> Date: Thu, 22 Aug 2024 18:32:04 -0600 Subject: [PATCH 05/31] firecode16 --- .../com/brain/fragments/GenericFragment.java | 23 ++------- .../brain/service/CustomScrollStateService.kt | 47 +++++++++++++++++++ .../service/PaginationListenerService.kt | 34 -------------- build.gradle | 2 +- 4 files changed, 51 insertions(+), 55 deletions(-) create mode 100644 app/src/main/java/com/brain/service/CustomScrollStateService.kt delete mode 100644 app/src/main/java/com/brain/service/PaginationListenerService.kt diff --git a/app/src/main/java/com/brain/fragments/GenericFragment.java b/app/src/main/java/com/brain/fragments/GenericFragment.java index c7a080c..3052af8 100644 --- a/app/src/main/java/com/brain/fragments/GenericFragment.java +++ b/app/src/main/java/com/brain/fragments/GenericFragment.java @@ -28,8 +28,8 @@ import com.brain.model.MediaDetail; import com.brain.model.Profile; import com.brain.model.Result; +import com.brain.service.CustomScrollStateService; import com.brain.service.MediaPlayerService; -import com.brain.service.PaginationListenerService; import com.brain.util.Util; import java.util.ArrayList; @@ -98,35 +98,18 @@ private void setUpFragmentView(final RecyclerView recyclerView) { recyclerView.setItemAnimator(new DefaultItemAnimator()); recyclerView.setAdapter(multimediaAdapter); - recyclerView.addOnScrollListener(new PaginationListenerService(layoutManager) { + recyclerView.addOnScrollListener(new CustomScrollStateService(layoutManager) { @Override - public void isLastVisibleItemPosition(int index) { + public void visibleItemCenterPosition(int index) { if (index != -1) { MediaPlayerService.Companion.playIndexAndPausePreviousPlayer(index); } } - @Override - protected void loadMoreItems() { - isLoading = true; - currentPage += 1; - loadNextPage(); - } - @Override public int getTotalPageCount() { return TOTAL_PAGES; } - - @Override - public boolean isLastPage() { - return isLastPage; - } - - @Override - public boolean isLoading() { - return isLoading; - } }); // init service and load data diff --git a/app/src/main/java/com/brain/service/CustomScrollStateService.kt b/app/src/main/java/com/brain/service/CustomScrollStateService.kt new file mode 100644 index 0000000..e0fc042 --- /dev/null +++ b/app/src/main/java/com/brain/service/CustomScrollStateService.kt @@ -0,0 +1,47 @@ +package com.brain.service; + +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import kotlin.math.abs + + +/** + * @Author FLE + * @Company Brain Inc. + * @Email hfredi35@gmail.com + */ +abstract class CustomScrollStateService( + private var linearLayoutManager: LinearLayoutManager +) : RecyclerView.OnScrollListener() { + private val controlState: Int = RecyclerView.SCROLL_STATE_IDLE + + override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) { + super.onScrollStateChanged(recyclerView, newState) + + if (newState == controlState) { + val visibleItemCount = linearLayoutManager.childCount + val firstVisibleItemPosition = linearLayoutManager.findFirstVisibleItemPosition() + + val screenCenter: Int = recyclerView.context.resources.displayMetrics.widthPixels / 2 + var minCenterOffset = Int.MAX_VALUE + var middleItemIndex = 0 + + for (index in 0 until visibleItemCount) { + val itemChild = linearLayoutManager.getChildAt(index) ?: return + + val topOffset = itemChild.top + val bottomOffset = itemChild.bottom + val centerOffset = abs(topOffset - screenCenter) + abs(bottomOffset - screenCenter) + + if (minCenterOffset > centerOffset) { + minCenterOffset = centerOffset + middleItemIndex = index + firstVisibleItemPosition + } + } + visibleItemCenterPosition(middleItemIndex) + } + } + + abstract fun visibleItemCenterPosition(index: Int) + abstract fun getTotalPageCount(): Int +} \ No newline at end of file diff --git a/app/src/main/java/com/brain/service/PaginationListenerService.kt b/app/src/main/java/com/brain/service/PaginationListenerService.kt deleted file mode 100644 index ff783d7..0000000 --- a/app/src/main/java/com/brain/service/PaginationListenerService.kt +++ /dev/null @@ -1,34 +0,0 @@ -package com.brain.service; - -import androidx.recyclerview.widget.LinearLayoutManager -import androidx.recyclerview.widget.RecyclerView - -/** - * @Author FLE - * @Company Brain Inc. - * @Email hfredi35@gmail.com - */ -abstract class PaginationListenerService(var linearLayoutManager: LinearLayoutManager) : RecyclerView.OnScrollListener() { - override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { - super.onScrolled(recyclerView, dx, dy) - - val visibleItemCount = linearLayoutManager.childCount - val totalItemCount = linearLayoutManager.itemCount - val firstVisibleItemPosition = linearLayoutManager.findFirstVisibleItemPosition() - val lastVisibleItemPosition = linearLayoutManager.findLastCompletelyVisibleItemPosition() - - if (!isLoading() && !isLastPage()) { - if ((visibleItemCount + firstVisibleItemPosition) >= totalItemCount && firstVisibleItemPosition >= 0) { - loadMoreItems(); - } - } - - isLastVisibleItemPosition(lastVisibleItemPosition) - } - - abstract fun isLastVisibleItemPosition(index: Int) - protected abstract fun loadMoreItems() - abstract fun getTotalPageCount(): Int - abstract fun isLastPage(): Boolean - abstract fun isLoading(): Boolean -} \ No newline at end of file diff --git a/build.gradle b/build.gradle index 1123ef4..5c5c6d3 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:8.5.1' + classpath 'com.android.tools.build:gradle:8.5.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files From de97b96d4e37256a8f209fa380452e9e24766a12 Mon Sep 17 00:00:00 2001 From: FireCode <69737708+firecode16@users.noreply.github.com> Date: Fri, 23 Aug 2024 08:39:11 -0600 Subject: [PATCH 06/31] firecode16 --- .../main/java/com/brain/service/CustomScrollStateService.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/brain/service/CustomScrollStateService.kt b/app/src/main/java/com/brain/service/CustomScrollStateService.kt index e0fc042..30373ef 100644 --- a/app/src/main/java/com/brain/service/CustomScrollStateService.kt +++ b/app/src/main/java/com/brain/service/CustomScrollStateService.kt @@ -1,4 +1,4 @@ -package com.brain.service; +package com.brain.service import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView @@ -22,7 +22,7 @@ abstract class CustomScrollStateService( val visibleItemCount = linearLayoutManager.childCount val firstVisibleItemPosition = linearLayoutManager.findFirstVisibleItemPosition() - val screenCenter: Int = recyclerView.context.resources.displayMetrics.widthPixels / 2 + val screenCenter: Int = recyclerView.context.resources.displayMetrics.heightPixels / 2 var minCenterOffset = Int.MAX_VALUE var middleItemIndex = 0 From 67ef668f87d2d71cc5f42700697c92412eee666c Mon Sep 17 00:00:00 2001 From: FireCode <69737708+firecode16@users.noreply.github.com> Date: Fri, 23 Aug 2024 12:53:52 -0600 Subject: [PATCH 07/31] firecode16 --- .../com/brain/service/CustomScrollStateService.kt | 14 +++++++------- app/src/main/res/layout/container_cards.xml | 9 ++++++--- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/brain/service/CustomScrollStateService.kt b/app/src/main/java/com/brain/service/CustomScrollStateService.kt index 30373ef..b5d8d81 100644 --- a/app/src/main/java/com/brain/service/CustomScrollStateService.kt +++ b/app/src/main/java/com/brain/service/CustomScrollStateService.kt @@ -22,19 +22,19 @@ abstract class CustomScrollStateService( val visibleItemCount = linearLayoutManager.childCount val firstVisibleItemPosition = linearLayoutManager.findFirstVisibleItemPosition() - val screenCenter: Int = recyclerView.context.resources.displayMetrics.heightPixels / 2 - var minCenterOffset = Int.MAX_VALUE + val displayMetricsOfHeightInPixels: Int = recyclerView.context.resources.displayMetrics.heightPixels / 2 + var maxCenterOffset = Int.MAX_VALUE var middleItemIndex = 0 for (index in 0 until visibleItemCount) { val itemChild = linearLayoutManager.getChildAt(index) ?: return - val topOffset = itemChild.top - val bottomOffset = itemChild.bottom - val centerOffset = abs(topOffset - screenCenter) + abs(bottomOffset - screenCenter) + val topView = itemChild.top + val bottomView = itemChild.bottom + val calculateCenterViewChild = abs(topView - displayMetricsOfHeightInPixels) + abs(bottomView - displayMetricsOfHeightInPixels) - if (minCenterOffset > centerOffset) { - minCenterOffset = centerOffset + if (maxCenterOffset > calculateCenterViewChild) { + maxCenterOffset = calculateCenterViewChild middleItemIndex = index + firstVisibleItemPosition } } diff --git a/app/src/main/res/layout/container_cards.xml b/app/src/main/res/layout/container_cards.xml index 6f04ce6..cd7e6cf 100644 --- a/app/src/main/res/layout/container_cards.xml +++ b/app/src/main/res/layout/container_cards.xml @@ -13,7 +13,8 @@ @@ -56,7 +58,8 @@ Date: Tue, 27 Aug 2024 14:15:51 -0600 Subject: [PATCH 08/31] firecode16 --- .../com/brain/adapters/MultimediaAdapter.java | 31 ++------ .../com/brain/fragments/GenericFragment.java | 75 +++++++++++++------ .../impl/PaginationAdapterCallbackImpl.java | 10 --- app/src/main/java/com/brain/model/Video.java | 69 ----------------- .../brain/service/CustomScrollStateService.kt | 16 ++++ .../com/brain/service/MediaPlayerService.kt | 18 +++++ app/src/main/java/com/brain/util/Util.java | 24 ++++++ 7 files changed, 114 insertions(+), 129 deletions(-) delete mode 100644 app/src/main/java/com/brain/impl/PaginationAdapterCallbackImpl.java delete mode 100644 app/src/main/java/com/brain/model/Video.java diff --git a/app/src/main/java/com/brain/adapters/MultimediaAdapter.java b/app/src/main/java/com/brain/adapters/MultimediaAdapter.java index 7e26639..2cf0c0e 100644 --- a/app/src/main/java/com/brain/adapters/MultimediaAdapter.java +++ b/app/src/main/java/com/brain/adapters/MultimediaAdapter.java @@ -7,7 +7,6 @@ import android.annotation.SuppressLint; import android.content.Context; -import android.graphics.drawable.Drawable; import android.os.Build; import android.view.LayoutInflater; import android.view.View; @@ -27,18 +26,11 @@ import com.brain.model.MediaContent; import com.brain.model.MediaDetail; import com.brain.model.Profile; -import com.brain.model.Video; import com.brain.multimediaslider.model.Multimedia; import com.brain.service.MediaPlayerService; import com.brain.service.OnImageViewClickListenerService; import com.brain.service.OnMultimediaSliderClickListener; -import com.bumptech.glide.Glide; -import com.bumptech.glide.RequestBuilder; -import com.bumptech.glide.load.DataSource; -import com.bumptech.glide.load.engine.DiskCacheStrategy; -import com.bumptech.glide.load.engine.GlideException; -import com.bumptech.glide.request.RequestListener; -import com.bumptech.glide.request.target.Target; +import com.brain.util.Util; import java.util.ArrayList; import java.util.List; @@ -56,11 +48,10 @@ public class MultimediaAdapter extends RecyclerView.Adapter multimediaList; - protected ArrayList