Skip to content

Commit 8f1c21e

Browse files
Simplify tab navigation using new extensions
1 parent ca8b5b1 commit 8f1c21e

File tree

7 files changed

+21
-18
lines changed

7 files changed

+21
-18
lines changed

app/src/main/java/org/wikipedia/Constants.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,8 @@ object Constants {
2525
const val INTENT_EXTRA_ACTION = "intentAction"
2626
const val INTENT_EXTRA_DELETE_READING_LIST = "deleteReadingList"
2727
const val INTENT_EXTRA_GO_TO_MAIN_TAB = "goToMainTab"
28-
const val INTENT_EXTRA_GO_TO_SE_TAB = "goToSETab"
2928
const val INTENT_EXTRA_HAS_TRANSITION_ANIM = "hasTransitionAnim"
3029
const val INTENT_EXTRA_INVOKE_SOURCE = "invokeSource"
31-
const val INTENT_EXTRA_PREVIEW_SAVED_READING_LISTS = "previewSavedReadingList"
3230
const val INTENT_EXTRA_NOTIFICATION_ID = "notificationId"
3331
const val INTENT_EXTRA_NOTIFICATION_SYNC_CANCEL = "syncCancel"
3432
const val INTENT_EXTRA_NOTIFICATION_SYNC_PAUSE_RESUME = "syncPauseResume"

app/src/main/java/org/wikipedia/main/MainActivity.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import org.wikipedia.activity.SingleFragmentActivity
1515
import org.wikipedia.analytics.eventplatform.ImageRecommendationsEvent
1616
import org.wikipedia.databinding.ActivityMainBinding
1717
import org.wikipedia.dataclient.WikiSite
18+
import org.wikipedia.extensions.serializableExtra
1819
import org.wikipedia.navtab.NavTab
1920
import org.wikipedia.onboarding.InitialOnboardingActivity
2021
import org.wikipedia.page.PageActivity
@@ -39,8 +40,8 @@ class MainActivity : SingleFragmentActivity<MainFragment>(), MainFragment.Callba
3940
super.onCreate(savedInstanceState)
4041

4142
setImageZoomHelper()
42-
if (Prefs.isInitialOnboardingEnabled && savedInstanceState == null && !intent.hasExtra(
43-
Constants.INTENT_EXTRA_PREVIEW_SAVED_READING_LISTS)) {
43+
if (Prefs.isInitialOnboardingEnabled && savedInstanceState == null &&
44+
intent.serializableExtra<NavTab>(Constants.INTENT_EXTRA_GO_TO_MAIN_TAB) != NavTab.READING_LISTS) {
4445
// Updating preference so the search multilingual tooltip
4546
// is not shown again for first time users
4647
Prefs.isMultilingualSearchTooltipShown = false

app/src/main/java/org/wikipedia/main/MainFragment.kt

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import org.wikipedia.databinding.FragmentMainBinding
3636
import org.wikipedia.dataclient.WikiSite
3737
import org.wikipedia.events.ImportReadingListsEvent
3838
import org.wikipedia.events.LoggedOutInBackgroundEvent
39+
import org.wikipedia.extensions.serializableExtra
3940
import org.wikipedia.feed.FeedFragment
4041
import org.wikipedia.feed.image.FeaturedImage
4142
import org.wikipedia.feed.image.FeaturedImageCard
@@ -296,16 +297,14 @@ class MainFragment : Fragment(), BackPressedHandler, MenuProvider, FeedFragment.
296297
startActivity(PageActivity.newIntent(requireActivity()))
297298
} else if (intent.hasExtra(Constants.INTENT_EXTRA_DELETE_READING_LIST)) {
298299
goToTab(NavTab.READING_LISTS)
299-
} else if (intent.hasExtra(Constants.INTENT_EXTRA_GO_TO_MAIN_TAB) &&
300-
!(binding.mainNavTabLayout.selectedItemId == NavTab.EXPLORE.code() &&
301-
intent.getIntExtra(Constants.INTENT_EXTRA_GO_TO_MAIN_TAB, NavTab.EXPLORE.code()) == NavTab.EXPLORE.code())) {
302-
goToTab(NavTab.of(intent.getIntExtra(Constants.INTENT_EXTRA_GO_TO_MAIN_TAB, NavTab.EXPLORE.code())))
303-
} else if (intent.hasExtra(Constants.INTENT_EXTRA_GO_TO_SE_TAB)) {
304-
goToTab(NavTab.of(intent.getIntExtra(Constants.INTENT_EXTRA_GO_TO_SE_TAB, NavTab.EDITS.code())))
305-
} else if (intent.hasExtra(Constants.INTENT_EXTRA_PREVIEW_SAVED_READING_LISTS)) {
306-
goToTab(NavTab.READING_LISTS)
307-
} else if (lastPageViewedWithin(1) && !intent.hasExtra(Constants.INTENT_RETURN_TO_MAIN) && WikipediaApp.instance.tabCount > 0) {
308-
startActivity(PageActivity.newIntent(requireContext()))
300+
} else {
301+
val tab = intent.serializableExtra<NavTab>(Constants.INTENT_EXTRA_GO_TO_MAIN_TAB)
302+
if (tab != null && (binding.mainNavTabLayout.selectedItemId != NavTab.EXPLORE.code()
303+
|| tab != NavTab.EXPLORE)) {
304+
goToTab(tab)
305+
} else if (lastPageViewedWithin(1) && !intent.hasExtra(Constants.INTENT_RETURN_TO_MAIN) && WikipediaApp.instance.tabCount > 0) {
306+
startActivity(PageActivity.newIntent(requireContext()))
307+
}
309308
}
310309
}
311310

app/src/main/java/org/wikipedia/notifications/NotificationPollBroadcastReceiver.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import org.wikipedia.dataclient.WikiSite
2323
import org.wikipedia.events.UnreadNotificationsEvent
2424
import org.wikipedia.extensions.parcelableExtra
2525
import org.wikipedia.main.MainActivity
26+
import org.wikipedia.navtab.NavTab
2627
import org.wikipedia.notifications.db.Notification
2728
import org.wikipedia.page.PageTitle
2829
import org.wikipedia.push.WikipediaFirebaseMessagingService
@@ -184,7 +185,9 @@ class NotificationPollBroadcastReceiver : BroadcastReceiver() {
184185
}
185186

186187
fun showSuggestedEditsLocalNotification(context: Context, @StringRes description: Int) {
187-
val intent = NotificationPresenter.addIntentExtras(MainActivity.newIntent(context).putExtra(Constants.INTENT_EXTRA_GO_TO_SE_TAB, true), 0, TYPE_LOCAL)
188+
val mainIntent = MainActivity.newIntent(context)
189+
.putExtra(Constants.INTENT_EXTRA_GO_TO_MAIN_TAB, NavTab.EDITS)
190+
val intent = NotificationPresenter.addIntentExtras(mainIntent, 0, TYPE_LOCAL)
188191
NotificationPresenter.showNotification(context, NotificationPresenter.getDefaultBuilder(context, 0, TYPE_LOCAL), 0,
189192
context.getString(R.string.suggested_edits_reactivation_notification_title),
190193
context.getString(description), context.getString(description), null,

app/src/main/java/org/wikipedia/page/PageFragment.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1266,7 +1266,7 @@ class PageFragment : Fragment(), BackPressedHandler, CommunicationBridge.Communi
12661266
startActivity(MainActivity.newIntent(requireContext())
12671267
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
12681268
.putExtra(Constants.INTENT_RETURN_TO_MAIN, true)
1269-
.putExtra(Constants.INTENT_EXTRA_GO_TO_MAIN_TAB, NavTab.EXPLORE.code()))
1269+
.putExtra(Constants.INTENT_EXTRA_GO_TO_MAIN_TAB, NavTab.EXPLORE))
12701270
requireActivity().finish()
12711271
}
12721272

app/src/main/java/org/wikipedia/page/tabs/TabActivity.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ class TabActivity : BaseActivity() {
289289
startActivity(MainActivity.newIntent(this)
290290
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
291291
.putExtra(Constants.INTENT_RETURN_TO_MAIN, true)
292-
.putExtra(Constants.INTENT_EXTRA_GO_TO_MAIN_TAB, NavTab.EXPLORE.code()))
292+
.putExtra(Constants.INTENT_EXTRA_GO_TO_MAIN_TAB, NavTab.EXPLORE))
293293
finish()
294294
}
295295

app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import org.wikipedia.events.PageDownloadEvent
4242
import org.wikipedia.history.HistoryEntry
4343
import org.wikipedia.history.SearchActionModeCallback
4444
import org.wikipedia.main.MainActivity
45+
import org.wikipedia.navtab.NavTab
4546
import org.wikipedia.page.ExclusiveBottomSheetPresenter
4647
import org.wikipedia.page.PageActivity
4748
import org.wikipedia.page.PageAvailableOfflineHandler
@@ -467,7 +468,8 @@ class ReadingListFragment : Fragment(), MenuProvider, ReadingListItemActionsDial
467468
AppDatabase.instance.readingListPageDao().addPagesToList(it, it.pages, true)
468469
Prefs.readingListRecentReceivedId = it.id
469470
requireActivity().startActivity(MainActivity.newIntent(requireContext())
470-
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP).putExtra(Constants.INTENT_EXTRA_PREVIEW_SAVED_READING_LISTS, true))
471+
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
472+
.putExtra(Constants.INTENT_EXTRA_GO_TO_MAIN_TAB, NavTab.READING_LISTS))
471473
requireActivity().finish()
472474
}
473475
.setNegativeButton(R.string.reading_lists_preview_save_dialog_cancel, null)

0 commit comments

Comments
 (0)