summaryrefslogtreecommitdiffstats
path: root/app/src/main/java/app/fedilab/android/BaseMainActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/app/fedilab/android/BaseMainActivity.java')
-rw-r--r--app/src/main/java/app/fedilab/android/BaseMainActivity.java52
1 files changed, 31 insertions, 21 deletions
diff --git a/app/src/main/java/app/fedilab/android/BaseMainActivity.java b/app/src/main/java/app/fedilab/android/BaseMainActivity.java
index 6fe89afc5..343bbcc5d 100644
--- a/app/src/main/java/app/fedilab/android/BaseMainActivity.java
+++ b/app/src/main/java/app/fedilab/android/BaseMainActivity.java
@@ -107,6 +107,7 @@ import app.fedilab.android.activities.ReorderTimelinesActivity;
import app.fedilab.android.activities.ScheduledActivity;
import app.fedilab.android.activities.SearchResultTabActivity;
import app.fedilab.android.activities.SettingsActivity;
+import app.fedilab.android.activities.TrendsActivity;
import app.fedilab.android.broadcastreceiver.NetworkStateReceiver;
import app.fedilab.android.client.entities.api.Emoji;
import app.fedilab.android.client.entities.api.EmojiInstance;
@@ -509,6 +510,9 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
} else if (id == R.id.nav_announcements) {
Intent intent = new Intent(this, AnnouncementActivity.class);
startActivity(intent);
+ } else if (id == R.id.nav_trends) {
+ Intent intent = new Intent(this, TrendsActivity.class);
+ startActivity(intent);
} else if (id == R.id.nav_cache) {
Intent intent = new Intent(BaseMainActivity.this, CacheActivity.class);
startActivity(intent);
@@ -900,10 +904,12 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
itemFilter.setTitle(show_filtered);
}
popup.setOnDismissListener(menu1 -> {
- Fragment fragment = getSupportFragmentManager().findFragmentByTag("f" + binding.viewPager.getCurrentItem());
- if (fragment instanceof FragmentMastodonTimeline && fragment.isVisible()) {
- FragmentMastodonTimeline fragmentMastodonTimeline = ((FragmentMastodonTimeline) fragment);
- fragmentMastodonTimeline.refreshAllAdapters();
+ if (binding.viewPager.getAdapter() != null) {
+ Fragment fragment = (Fragment) binding.viewPager.getAdapter().instantiateItem(binding.viewPager, binding.tabLayout.getSelectedTabPosition());
+ if (fragment instanceof FragmentMastodonTimeline && fragment.isVisible()) {
+ FragmentMastodonTimeline fragmentMastodonTimeline = ((FragmentMastodonTimeline) fragment);
+ fragmentMastodonTimeline.refreshAllAdapters();
+ }
}
});
String finalShow_filtered = show_filtered;
@@ -990,13 +996,15 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
}
public void refreshFragment() {
- Fragment fragment = getSupportFragmentManager().findFragmentByTag("f" + binding.viewPager.getCurrentItem());
- if (fragment instanceof FragmentNotificationContainer) {
- FragmentTransaction fragTransaction = getSupportFragmentManager().beginTransaction();
- fragTransaction.detach(fragment).commit();
- FragmentTransaction fragTransaction2 = getSupportFragmentManager().beginTransaction();
- fragTransaction2.attach(fragment);
- fragTransaction2.commit();
+ if (binding.viewPager.getAdapter() != null) {
+ Fragment fragment = (Fragment) binding.viewPager.getAdapter().instantiateItem(binding.viewPager, binding.tabLayout.getSelectedTabPosition());
+ if (fragment instanceof FragmentNotificationContainer) {
+ FragmentTransaction fragTransaction = getSupportFragmentManager().beginTransaction();
+ fragTransaction.detach(fragment).commit();
+ FragmentTransaction fragTransaction2 = getSupportFragmentManager().beginTransaction();
+ fragTransaction2.attach(fragment);
+ fragTransaction2.commit();
+ }
}
}
@@ -1035,16 +1043,18 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
*/
private void scrollToTop() {
- Fragment fragment = getSupportFragmentManager().findFragmentByTag("f" + binding.viewPager.getCurrentItem());
- if (fragment instanceof FragmentMastodonTimeline) {
- FragmentMastodonTimeline fragmentMastodonTimeline = ((FragmentMastodonTimeline) fragment);
- fragmentMastodonTimeline.scrollToTop();
- } else if (fragment instanceof FragmentMastodonConversation) {
- FragmentMastodonConversation fragmentMastodonConversation = ((FragmentMastodonConversation) fragment);
- fragmentMastodonConversation.scrollToTop();
- } else if (fragment instanceof FragmentNotificationContainer) {
- FragmentNotificationContainer fragmentNotificationContainer = ((FragmentNotificationContainer) fragment);
- fragmentNotificationContainer.scrollToTop();
+ if (binding.viewPager.getAdapter() != null) {
+ Fragment fragment = (Fragment) binding.viewPager.getAdapter().instantiateItem(binding.viewPager, binding.tabLayout.getSelectedTabPosition());
+ if (fragment instanceof FragmentMastodonTimeline) {
+ FragmentMastodonTimeline fragmentMastodonTimeline = ((FragmentMastodonTimeline) fragment);
+ fragmentMastodonTimeline.scrollToTop();
+ } else if (fragment instanceof FragmentMastodonConversation) {
+ FragmentMastodonConversation fragmentMastodonConversation = ((FragmentMastodonConversation) fragment);
+ fragmentMastodonConversation.scrollToTop();
+ } else if (fragment instanceof FragmentNotificationContainer) {
+ FragmentNotificationContainer fragmentNotificationContainer = ((FragmentNotificationContainer) fragment);
+ fragmentNotificationContainer.scrollToTop();
+ }
}
}