Loading app/src/main/java/app/fedilab/android/BaseMainActivity.java +16 −7 Original line number Diff line number Diff line Loading @@ -1096,7 +1096,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt binding.bottomNavView.removeBadge(R.id.nav_privates); } } selectTab(Timeline.TimeLineEnum.CONVERSATION.getValue(), count); setCounterToTab(Timeline.TimeLineEnum.CONVERSATION.getValue(), count); } @Override Loading @@ -1112,9 +1112,15 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt binding.bottomNavView.removeBadge(R.id.nav_notifications); } } selectTab(Timeline.TimeLineEnum.NOTIFICATION.getValue(), count); setCounterToTab(Timeline.TimeLineEnum.NOTIFICATION.getValue(), count); } /** * Get the tab depending of its position * * @param slug String slug for the timeline * @return int - position */ private int getTabPosition(String slug) { int position = 0; for (int i = 0; i < binding.tabLayout.getTabCount(); i++) { Loading @@ -1127,7 +1133,13 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt return -1; } private void selectTab(String slug, int count) { /** * Set the counter to the tab depending of the slug * * @param slug - String slug for the pinned timeline * @param count - int new messages */ private void setCounterToTab(String slug, int count) { int position = getTabPosition(slug); if (position >= 0 && position < binding.tabLayout.getTabCount()) { TabLayout.Tab tab = binding.tabLayout.getTabAt(position); Loading @@ -1141,9 +1153,6 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt if (count > 0) { counter.setVisibility(View.VISIBLE); counter.setText(String.valueOf(count)); } else { counter.setVisibility(View.GONE); counter.setText("0"); } } } Loading Loading @@ -1203,7 +1212,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt break; } } selectTab(slug, count); setCounterToTab(slug, count); } @Override Loading app/src/main/java/app/fedilab/android/helper/PinnedTimelineHelper.java +17 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; import androidx.appcompat.app.AlertDialog; Loading Loading @@ -68,6 +69,7 @@ import app.fedilab.android.databinding.TabCustomViewBinding; import app.fedilab.android.exception.DBException; import app.fedilab.android.ui.fragment.timeline.FragmentMastodonConversation; import app.fedilab.android.ui.fragment.timeline.FragmentMastodonTimeline; import app.fedilab.android.ui.fragment.timeline.FragmentNotificationContainer; import app.fedilab.android.ui.pageadapter.FedilabPageAdapter; import es.dmoral.toasty.Toasty; Loading Loading @@ -121,6 +123,11 @@ public class PinnedTimelineHelper { params.setMargins(0, 0, 0, actionBarHeight); } } //Remove badge when reselecting activityMainBinding.bottomNavView.setOnItemReselectedListener(item -> { activityMainBinding.bottomNavView.removeBadge(item.getItemId()); }); activityMainBinding.viewPager.setLayoutParams(params); List<PinnedTimeline> pinnedTimelines = pinned.pinnedTimelines; Loading Loading @@ -495,10 +502,20 @@ public class PinnedTimelineHelper { @Override public void onTabReselected(TabLayout.Tab tab) { Fragment fragment = fedilabPageAdapter.getCurrentFragment(); View view = tab.getCustomView(); if (view != null) { TextView counter = view.findViewById(R.id.tab_counter); if (counter != null) { counter.setVisibility(View.GONE); counter.setText("0"); } } if (fragment instanceof FragmentMastodonTimeline) { ((FragmentMastodonTimeline) fragment).scrollToTop(); } else if (fragment instanceof FragmentMastodonConversation) { ((FragmentMastodonConversation) fragment).scrollToTop(); } else if (fragment instanceof FragmentNotificationContainer) { ((FragmentNotificationContainer) fragment).scrollToTop(); } } }); Loading app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java +1 −1 Original line number Diff line number Diff line Loading @@ -324,7 +324,7 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. //Update the timeline with new statuses int insertedStatus = updateStatusListWith(fetched_statuses.statuses); //For these directions, the app will display counters for new messages if (insertedStatus >= 0 && update != null && (direction == DIRECTION.FETCH_NEW || direction == DIRECTION.SCROLL_TOP || direction == DIRECTION.REFRESH)) { if (insertedStatus >= 0 && update != null && direction != DIRECTION.FETCH_NEW && !fetchingMissing) { update.onUpdate(insertedStatus, timelineType, slug); } if (direction == DIRECTION.TOP && fetchingMissing) { Loading Loading
app/src/main/java/app/fedilab/android/BaseMainActivity.java +16 −7 Original line number Diff line number Diff line Loading @@ -1096,7 +1096,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt binding.bottomNavView.removeBadge(R.id.nav_privates); } } selectTab(Timeline.TimeLineEnum.CONVERSATION.getValue(), count); setCounterToTab(Timeline.TimeLineEnum.CONVERSATION.getValue(), count); } @Override Loading @@ -1112,9 +1112,15 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt binding.bottomNavView.removeBadge(R.id.nav_notifications); } } selectTab(Timeline.TimeLineEnum.NOTIFICATION.getValue(), count); setCounterToTab(Timeline.TimeLineEnum.NOTIFICATION.getValue(), count); } /** * Get the tab depending of its position * * @param slug String slug for the timeline * @return int - position */ private int getTabPosition(String slug) { int position = 0; for (int i = 0; i < binding.tabLayout.getTabCount(); i++) { Loading @@ -1127,7 +1133,13 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt return -1; } private void selectTab(String slug, int count) { /** * Set the counter to the tab depending of the slug * * @param slug - String slug for the pinned timeline * @param count - int new messages */ private void setCounterToTab(String slug, int count) { int position = getTabPosition(slug); if (position >= 0 && position < binding.tabLayout.getTabCount()) { TabLayout.Tab tab = binding.tabLayout.getTabAt(position); Loading @@ -1141,9 +1153,6 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt if (count > 0) { counter.setVisibility(View.VISIBLE); counter.setText(String.valueOf(count)); } else { counter.setVisibility(View.GONE); counter.setText("0"); } } } Loading Loading @@ -1203,7 +1212,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt break; } } selectTab(slug, count); setCounterToTab(slug, count); } @Override Loading
app/src/main/java/app/fedilab/android/helper/PinnedTimelineHelper.java +17 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; import androidx.appcompat.app.AlertDialog; Loading Loading @@ -68,6 +69,7 @@ import app.fedilab.android.databinding.TabCustomViewBinding; import app.fedilab.android.exception.DBException; import app.fedilab.android.ui.fragment.timeline.FragmentMastodonConversation; import app.fedilab.android.ui.fragment.timeline.FragmentMastodonTimeline; import app.fedilab.android.ui.fragment.timeline.FragmentNotificationContainer; import app.fedilab.android.ui.pageadapter.FedilabPageAdapter; import es.dmoral.toasty.Toasty; Loading Loading @@ -121,6 +123,11 @@ public class PinnedTimelineHelper { params.setMargins(0, 0, 0, actionBarHeight); } } //Remove badge when reselecting activityMainBinding.bottomNavView.setOnItemReselectedListener(item -> { activityMainBinding.bottomNavView.removeBadge(item.getItemId()); }); activityMainBinding.viewPager.setLayoutParams(params); List<PinnedTimeline> pinnedTimelines = pinned.pinnedTimelines; Loading Loading @@ -495,10 +502,20 @@ public class PinnedTimelineHelper { @Override public void onTabReselected(TabLayout.Tab tab) { Fragment fragment = fedilabPageAdapter.getCurrentFragment(); View view = tab.getCustomView(); if (view != null) { TextView counter = view.findViewById(R.id.tab_counter); if (counter != null) { counter.setVisibility(View.GONE); counter.setText("0"); } } if (fragment instanceof FragmentMastodonTimeline) { ((FragmentMastodonTimeline) fragment).scrollToTop(); } else if (fragment instanceof FragmentMastodonConversation) { ((FragmentMastodonConversation) fragment).scrollToTop(); } else if (fragment instanceof FragmentNotificationContainer) { ((FragmentNotificationContainer) fragment).scrollToTop(); } } }); Loading
app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java +1 −1 Original line number Diff line number Diff line Loading @@ -324,7 +324,7 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. //Update the timeline with new statuses int insertedStatus = updateStatusListWith(fetched_statuses.statuses); //For these directions, the app will display counters for new messages if (insertedStatus >= 0 && update != null && (direction == DIRECTION.FETCH_NEW || direction == DIRECTION.SCROLL_TOP || direction == DIRECTION.REFRESH)) { if (insertedStatus >= 0 && update != null && direction != DIRECTION.FETCH_NEW && !fetchingMissing) { update.onUpdate(insertedStatus, timelineType, slug); } if (direction == DIRECTION.TOP && fetchingMissing) { Loading