diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeFragment.java index ca33aefd9..6948dd14c 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeFragment.java @@ -20,6 +20,7 @@ import org.joinmastodon.android.R; import org.joinmastodon.android.api.session.AccountSession; import org.joinmastodon.android.api.session.AccountSessionManager; import org.joinmastodon.android.fragments.discover.DiscoverFragment; +import org.joinmastodon.android.fragments.ListTimelinesFragment; import org.joinmastodon.android.model.Account; import org.joinmastodon.android.ui.AccountSwitcherSheet; import org.joinmastodon.android.ui.utils.UiUtils; @@ -42,6 +43,7 @@ import me.grishka.appkit.views.FragmentRootLinearLayout; public class HomeFragment extends AppKitFragment implements OnBackPressedListener{ private FragmentRootLinearLayout content; private HomeTimelineFragment homeTimelineFragment; + private ListTimelinesFragment listTimelinesFragment; private NotificationsFragment notificationsFragment; private DiscoverFragment searchFragment; private ProfileFragment profileFragment; @@ -71,6 +73,8 @@ public class HomeFragment extends AppKitFragment implements OnBackPressedListene args.putBoolean("noAutoLoad", true); searchFragment=new DiscoverFragment(); searchFragment.setArguments(args); + listTimelinesFragment =new ListTimelinesFragment(); + listTimelinesFragment.setArguments(args); notificationsFragment=new NotificationsFragment(); notificationsFragment.setArguments(args); args=new Bundle(args); @@ -112,6 +116,7 @@ public class HomeFragment extends AppKitFragment implements OnBackPressedListene getChildFragmentManager().beginTransaction() .add(R.id.fragment_wrap, homeTimelineFragment) .add(R.id.fragment_wrap, searchFragment).hide(searchFragment) + .add(R.id.fragment_wrap, listTimelinesFragment).hide(listTimelinesFragment) .add(R.id.fragment_wrap, notificationsFragment).hide(notificationsFragment) .add(R.id.fragment_wrap, profileFragment).hide(profileFragment) .commit(); @@ -191,6 +196,8 @@ public class HomeFragment extends AppKitFragment implements OnBackPressedListene return homeTimelineFragment; }else if(tab==R.id.tab_search){ return searchFragment; + }else if(tab==R.id.tab_lists) { + return listTimelinesFragment; }else if(tab==R.id.tab_notifications){ return notificationsFragment; }else if(tab==R.id.tab_profile){ diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/ListTimelinesFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/ListTimelinesFragment.java index 96c567161..f01711df8 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/ListTimelinesFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/ListTimelinesFragment.java @@ -1,5 +1,6 @@ package org.joinmastodon.android.fragments; +import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; @@ -8,11 +9,13 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.CheckBox; +import android.widget.FrameLayout; import android.widget.LinearLayout; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import androidx.viewpager2.widget.ViewPager2; import org.joinmastodon.android.R; import org.joinmastodon.android.api.MastodonAPIRequest; @@ -20,6 +23,8 @@ import org.joinmastodon.android.api.requests.lists.AddAccountsToList; import org.joinmastodon.android.api.requests.lists.GetLists; import org.joinmastodon.android.api.requests.lists.RemoveAccountsFromList; import org.joinmastodon.android.model.ListTimeline; +import org.joinmastodon.android.ui.tabs.TabLayout; +import org.joinmastodon.android.ui.tabs.TabLayoutMediator; import org.joinmastodon.android.ui.utils.UiUtils; import java.util.ArrayList; @@ -37,6 +42,11 @@ import me.grishka.appkit.utils.V; import me.grishka.appkit.views.UsableRecyclerView; public class ListTimelinesFragment extends BaseRecyclerFragment implements ScrollableToTop { + private TabLayout tabLayout; + private ViewPager2 pager; + private FrameLayout[] tabViews; + private TabLayoutMediator tabLayoutMediator; + private String accountId; private String profileAccountId; private String profileDisplayUsername; @@ -69,6 +79,13 @@ public class ListTimelinesFragment extends BaseRecyclerFragment im loadData(); } + @Override + public void onAttach(Activity activity){ + super.onAttach(activity); + setHasOptionsMenu(true); + setTitle(R.string.sk_list_timelines); + } + // @Override // public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { // Button saveButton=new Button(getActivity()); @@ -94,6 +111,7 @@ public class ListTimelinesFragment extends BaseRecyclerFragment im }).exec(accountId); } + @Override protected void doLoadData(int offset, int count){ userInListBefore.clear(); diff --git a/mastodon/src/main/res/layout/tab_bar.xml b/mastodon/src/main/res/layout/tab_bar.xml index 2ad234cb5..966ffe2e6 100644 --- a/mastodon/src/main/res/layout/tab_bar.xml +++ b/mastodon/src/main/res/layout/tab_bar.xml @@ -44,6 +44,21 @@ android:layout_height="1px" android:layout_weight="1"/> + + + + Yellow Material You Not supported on your device + Lists picker