From 253874d14f8a94a4b968257744fe7efc5eb1a163 Mon Sep 17 00:00:00 2001 From: Matthieu <24-artectrex@users.noreply.shinice.net> Date: Tue, 18 May 2021 12:06:38 +0200 Subject: [PATCH] Click tab again to scroll to top --- .../java/org/pixeldroid/app/MainActivity.kt | 40 +++++++++++++------ .../feeds/cachedFeeds/CachedFeedFragment.kt | 4 ++ 2 files changed, 32 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/org/pixeldroid/app/MainActivity.kt b/app/src/main/java/org/pixeldroid/app/MainActivity.kt index 77977123..1df075f7 100644 --- a/app/src/main/java/org/pixeldroid/app/MainActivity.kt +++ b/app/src/main/java/org/pixeldroid/app/MainActivity.kt @@ -11,7 +11,6 @@ import android.widget.ImageView import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat import androidx.core.view.GravityCompat -import androidx.core.view.NestedScrollingChild import androidx.fragment.app.Fragment import androidx.lifecycle.lifecycleScope import androidx.paging.ExperimentalPagingApi @@ -19,9 +18,22 @@ import androidx.recyclerview.widget.RecyclerView import androidx.viewpager2.adapter.FragmentStateAdapter import androidx.viewpager2.widget.ViewPager2 import com.bumptech.glide.Glide +import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayoutMediator +import com.mikepenz.iconics.typeface.library.googlematerial.GoogleMaterial +import com.mikepenz.materialdrawer.iconics.iconicsIcon +import com.mikepenz.materialdrawer.model.PrimaryDrawerItem +import com.mikepenz.materialdrawer.model.ProfileDrawerItem +import com.mikepenz.materialdrawer.model.ProfileSettingDrawerItem +import com.mikepenz.materialdrawer.model.interfaces.* +import com.mikepenz.materialdrawer.util.AbstractDrawerImageLoader +import com.mikepenz.materialdrawer.util.DrawerImageLoader +import com.mikepenz.materialdrawer.widget.AccountHeaderView +import org.ligi.tracedroid.sending.sendTraceDroidStackTracesIfExist import org.pixeldroid.app.databinding.ActivityMainBinding import org.pixeldroid.app.postCreation.camera.CameraFragment +import org.pixeldroid.app.posts.NestedScrollableHost +import org.pixeldroid.app.posts.feeds.cachedFeeds.CachedFeedFragment import org.pixeldroid.app.posts.feeds.cachedFeeds.notifications.NotificationsFragment import org.pixeldroid.app.posts.feeds.cachedFeeds.postFeeds.PostFeedFragment import org.pixeldroid.app.profile.ProfileActivity @@ -33,20 +45,10 @@ import org.pixeldroid.app.utils.db.entities.HomeStatusDatabaseEntity import org.pixeldroid.app.utils.db.entities.PublicFeedStatusDatabaseEntity import org.pixeldroid.app.utils.db.entities.UserDatabaseEntity import org.pixeldroid.app.utils.hasInternet -import com.mikepenz.iconics.typeface.library.googlematerial.GoogleMaterial -import com.mikepenz.materialdrawer.iconics.iconicsIcon -import com.mikepenz.materialdrawer.model.PrimaryDrawerItem -import com.mikepenz.materialdrawer.model.ProfileDrawerItem -import com.mikepenz.materialdrawer.model.ProfileSettingDrawerItem -import com.mikepenz.materialdrawer.model.interfaces.* -import com.mikepenz.materialdrawer.util.AbstractDrawerImageLoader -import com.mikepenz.materialdrawer.util.DrawerImageLoader -import com.mikepenz.materialdrawer.widget.AccountHeaderView -import org.ligi.tracedroid.sending.sendTraceDroidStackTracesIfExist -import org.pixeldroid.app.posts.NestedScrollableHost import retrofit2.HttpException import java.io.IOException + class MainActivity : BaseActivity() { private lateinit var header: AccountHeaderView @@ -297,6 +299,20 @@ class MainActivity : BaseActivity() { return tab_array.size } } + binding.tabs.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener { + override fun onTabSelected(tab: TabLayout.Tab?){} + + override fun onTabUnselected(tab: TabLayout.Tab?) {} + + override fun onTabReselected(tab: TabLayout.Tab?) { + tab?.position?.let { position -> + val page = + //No clue why this works but it does. F to pay respects + supportFragmentManager.findFragmentByTag("f$position") + (page as? CachedFeedFragment<*>)?.onTabReClicked() + } + } + }) TabLayoutMediator(binding.tabs, binding.viewPager) { tab, position -> tab.icon = ContextCompat.getDrawable(applicationContext, diff --git a/app/src/main/java/org/pixeldroid/app/posts/feeds/cachedFeeds/CachedFeedFragment.kt b/app/src/main/java/org/pixeldroid/app/posts/feeds/cachedFeeds/CachedFeedFragment.kt index db534500..b8484efe 100644 --- a/app/src/main/java/org/pixeldroid/app/posts/feeds/cachedFeeds/CachedFeedFragment.kt +++ b/app/src/main/java/org/pixeldroid/app/posts/feeds/cachedFeeds/CachedFeedFragment.kt @@ -76,6 +76,10 @@ open class CachedFeedFragment : BaseFragment() { return binding.root } + + fun onTabReClicked() { + binding.list.scrollToPosition(0) + } }