summaryrefslogtreecommitdiffstats
path: root/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/timeline/FragmentProfileTimeline.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/app/fedilab/android/mastodon/ui/fragment/timeline/FragmentProfileTimeline.java')
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/ui/fragment/timeline/FragmentProfileTimeline.java62
1 files changed, 36 insertions, 26 deletions
diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/timeline/FragmentProfileTimeline.java b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/timeline/FragmentProfileTimeline.java
index 52d8394bd..b1c1f9d77 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/timeline/FragmentProfileTimeline.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/timeline/FragmentProfileTimeline.java
@@ -14,6 +14,8 @@ package app.fedilab.android.mastodon.ui.fragment.timeline;
* You should have received a copy of the GNU General Public License along with Fedilab; if not,
* see <http://www.gnu.org/licenses>. */
+import static app.fedilab.android.BaseMainActivity.currentAccount;
+
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
@@ -33,7 +35,9 @@ import com.google.android.material.tabs.TabLayout;
import app.fedilab.android.R;
import app.fedilab.android.databinding.FragmentProfileTimelinesBinding;
import app.fedilab.android.mastodon.client.entities.api.Account;
+import app.fedilab.android.mastodon.client.entities.app.CachedBundle;
import app.fedilab.android.mastodon.client.entities.app.Timeline;
+import app.fedilab.android.mastodon.exception.DBException;
import app.fedilab.android.mastodon.helper.Helper;
import app.fedilab.android.mastodon.ui.pageadapter.FedilabProfilePageAdapter;
@@ -46,19 +50,22 @@ public class FragmentProfileTimeline extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
-
+ binding = FragmentProfileTimelinesBinding.inflate(inflater, container, false);
if (getArguments() != null) {
- account = (Account) getArguments().getSerializable(Helper.ARG_ACCOUNT);
+ String cached_account_id = getArguments().getString(Helper.ARG_CACHED_ACCOUNT_ID);
+ try {
+ account = new CachedBundle(requireActivity()).getCachedAccount(currentAccount, cached_account_id);
+ } catch (DBException e) {
+ e.printStackTrace();
+ }
checkRemotely = getArguments().getBoolean(Helper.ARG_CHECK_REMOTELY, false);
+ initializeAfterBundle();
}
- binding = FragmentProfileTimelinesBinding.inflate(inflater, container, false);
return binding.getRoot();
}
- @Override
- public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
- super.onViewCreated(view, savedInstanceState);
+ private void initializeAfterBundle() {
binding.tabLayout.addTab(binding.tabLayout.newTab().setText(getString(R.string.toots)));
binding.tabLayout.addTab(binding.tabLayout.newTab().setText(getString(R.string.replies)));
binding.tabLayout.addTab(binding.tabLayout.newTab().setText(getString(R.string.media)));
@@ -80,10 +87,7 @@ public class FragmentProfileTimeline extends Fragment {
public void onTabReselected(TabLayout.Tab tab) {
if (binding.viewpager.getAdapter() != null && binding.viewpager
.getAdapter()
- .instantiateItem(binding.viewpager, binding.viewpager.getCurrentItem()) instanceof FragmentMastodonTimeline) {
- FragmentMastodonTimeline fragmentMastodonTimeline = (FragmentMastodonTimeline) binding.viewpager
- .getAdapter()
- .instantiateItem(binding.viewpager, binding.viewpager.getCurrentItem());
+ .instantiateItem(binding.viewpager, binding.viewpager.getCurrentItem()) instanceof FragmentMastodonTimeline fragmentMastodonTimeline) {
fragmentMastodonTimeline.goTop();
}
}
@@ -105,24 +109,25 @@ public class FragmentProfileTimeline extends Fragment {
popup.setOnDismissListener(menu1 -> {
if (binding.viewpager.getAdapter() != null && binding.viewpager
.getAdapter()
- .instantiateItem(binding.viewpager, binding.viewpager.getCurrentItem()) instanceof FragmentMastodonTimeline) {
- FragmentMastodonTimeline fragmentMastodonTimeline = (FragmentMastodonTimeline) binding.viewpager
- .getAdapter()
- .instantiateItem(binding.viewpager, binding.viewpager.getCurrentItem());
+ .instantiateItem(binding.viewpager, binding.viewpager.getCurrentItem()) instanceof FragmentMastodonTimeline fragmentMastodonTimeline) {
FragmentTransaction fragTransaction = getChildFragmentManager().beginTransaction();
fragTransaction.detach(fragmentMastodonTimeline).commit();
- Bundle bundle = new Bundle();
- bundle.putSerializable(Helper.ARG_TIMELINE_TYPE, Timeline.TimeLineEnum.ACCOUNT_TIMELINE);
- bundle.putSerializable(Helper.ARG_ACCOUNT, account);
- bundle.putBoolean(Helper.ARG_SHOW_PINNED, true);
- bundle.putBoolean(Helper.ARG_CHECK_REMOTELY, checkRemotely);
- bundle.putBoolean(Helper.ARG_SHOW_REBLOGS, show_boosts);
- bundle.putBoolean(Helper.ARG_SHOW_REPLIES, show_replies);
- fragmentMastodonTimeline.setArguments(bundle);
- FragmentTransaction fragTransaction2 = getChildFragmentManager().beginTransaction();
- fragTransaction2.attach(fragmentMastodonTimeline);
- fragTransaction2.commit();
- fragmentMastodonTimeline.recreate();
+ Bundle args = new Bundle();
+ args.putSerializable(Helper.ARG_TIMELINE_TYPE, Timeline.TimeLineEnum.ACCOUNT_TIMELINE);
+ args.putSerializable(Helper.ARG_ACCOUNT, account);
+ args.putBoolean(Helper.ARG_SHOW_PINNED, true);
+ args.putBoolean(Helper.ARG_CHECK_REMOTELY, checkRemotely);
+ args.putBoolean(Helper.ARG_SHOW_REBLOGS, show_boosts);
+ args.putBoolean(Helper.ARG_SHOW_REPLIES, show_replies);
+ new CachedBundle(requireActivity()).insertBundle(args, currentAccount, bundleId -> {
+ Bundle bundle = new Bundle();
+ bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
+ fragmentMastodonTimeline.setArguments(bundle);
+ FragmentTransaction fragTransaction2 = getChildFragmentManager().beginTransaction();
+ fragTransaction2.attach(fragmentMastodonTimeline);
+ fragTransaction2.commit();
+ fragmentMastodonTimeline.recreate();
+ });
}
});
@@ -158,5 +163,10 @@ public class FragmentProfileTimeline extends Fragment {
}
+ @Override
+ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+ }
+
}