Skip to content

Commit

Permalink
Migrate windows waitlist to navlib (duckduckgo#3073)
Browse files Browse the repository at this point in the history
Task/Issue URL: https://app.asana.com/0/488551667048375/1204415151858383/f

### Description
Ditto

### Steps to test this PR
Smoke test the windows waitlist UX
  • Loading branch information
aitorvs authored Apr 18, 2023
1 parent 56d6cde commit d5426bc
Show file tree
Hide file tree
Showing 8 changed files with 18 additions and 47 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ import com.duckduckgo.windows.api.WindowsWaitlistState
import com.duckduckgo.windows.api.WindowsWaitlistState.InBeta
import com.duckduckgo.windows.api.WindowsWaitlistState.JoinedWaitlist
import com.duckduckgo.windows.api.WindowsWaitlistState.NotJoinedQueue
import com.duckduckgo.windows.impl.waitlist.ui.WindowsWaitlistActivity
import com.duckduckgo.windows.api.ui.WindowsWaitlistScreenWithEmptyParams
import javax.inject.Inject
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach
Expand Down Expand Up @@ -649,7 +649,7 @@ class SettingsActivity : DuckDuckGoActivity() {

private fun launchWindowsScreen() {
val options = ActivityOptions.makeSceneTransitionAnimation(this).toBundle()
startActivity(WindowsWaitlistActivity.intent(this), options)
globalActivityStarter.start(this, WindowsWaitlistScreenWithEmptyParams, options)
}

private fun launchSyncSettings() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ import com.duckduckgo.macos_impl.MacOsViewModel.Command.ShareLink
import com.duckduckgo.macos_impl.MacOsViewModel.ViewState
import com.duckduckgo.macos_impl.databinding.ActivityMacosBinding
import com.duckduckgo.mobile.android.ui.viewbinding.viewBinding
import com.duckduckgo.windows.api.WindowsSettingsNav
import com.duckduckgo.navigation.api.GlobalActivityStarter
import com.duckduckgo.windows.api.ui.WindowsWaitlistScreenWithEmptyParams
import javax.inject.Inject
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach
Expand All @@ -47,7 +48,7 @@ class MacOsActivity : DuckDuckGoActivity() {
private val viewModel: MacOsViewModel by bindViewModel()
private val binding: ActivityMacosBinding by viewBinding()

@Inject lateinit var windowsSettingsNav: WindowsSettingsNav
@Inject lateinit var globalActivityStarter: GlobalActivityStarter

private val toolbar
get() = binding.includeToolbar.toolbar
Expand Down Expand Up @@ -87,7 +88,7 @@ class MacOsActivity : DuckDuckGoActivity() {
}

private fun launchWindowsClientSettings() {
startActivity(windowsSettingsNav.openWindowsSettings(this))
globalActivityStarter.start(this, WindowsWaitlistScreenWithEmptyParams)
finish()
}

Expand Down
3 changes: 2 additions & 1 deletion windows/windows-api/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,6 @@ android {

dependencies {
implementation Kotlin.stdlib.jdk7
api project(path: ':feature-toggles-api')
api project(':navigation-api')
api project(':feature-toggles-api')
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,11 @@
* limitations under the License.
*/

package com.duckduckgo.windows.api
package com.duckduckgo.windows.api.ui

import android.content.Context
import android.content.Intent
import com.duckduckgo.navigation.api.GlobalActivityStarter

/**
* Public interface to provide navigation Intents related to Windows App Settings
* Use this model to start the windows waitlist activity with no arguments
*/
interface WindowsSettingsNav {
fun openWindowsSettings(activityContext: Context): Intent
}
object WindowsWaitlistScreenWithEmptyParams : GlobalActivityStarter.ActivityParams

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ import androidx.core.view.isVisible
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.flowWithLifecycle
import androidx.lifecycle.lifecycleScope
import com.duckduckgo.anvil.annotations.ContributeToActivityStarter
import com.duckduckgo.anvil.annotations.InjectWith
import com.duckduckgo.app.global.DuckDuckGoActivity
import com.duckduckgo.di.scopes.ActivityScope
Expand All @@ -46,6 +47,7 @@ import com.duckduckgo.mobile.android.ui.viewbinding.viewBinding
import com.duckduckgo.windows.api.WindowsWaitlistState.InBeta
import com.duckduckgo.windows.api.WindowsWaitlistState.JoinedWaitlist
import com.duckduckgo.windows.api.WindowsWaitlistState.NotJoinedQueue
import com.duckduckgo.windows.api.ui.WindowsWaitlistScreenWithEmptyParams
import com.duckduckgo.windows.impl.R
import com.duckduckgo.windows.impl.databinding.ActivityWindowsWaitlistBinding
import com.duckduckgo.windows.impl.waitlist.ui.WindowsWaitlistViewModel.Command
Expand All @@ -60,6 +62,7 @@ import kotlinx.coroutines.flow.onEach
import timber.log.Timber

@InjectWith(ActivityScope::class)
@ContributeToActivityStarter(WindowsWaitlistScreenWithEmptyParams::class)
class WindowsWaitlistActivity : DuckDuckGoActivity() {

private val viewModel: WindowsWaitlistViewModel by bindViewModel()
Expand Down Expand Up @@ -221,10 +224,10 @@ class WindowsWaitlistActivity : DuckDuckGoActivity() {
}

companion object {
const val CLIPBOARD_LABEL = "INVITE_CODE"
const val LAUNCH_FROM_NOTIFICATION_PIXEL_NAME = "LAUNCH_FROM_NOTIFICATION_PIXEL_NAME"
private const val CLIPBOARD_LABEL = "INVITE_CODE"
internal const val LAUNCH_FROM_NOTIFICATION_PIXEL_NAME = "LAUNCH_FROM_NOTIFICATION_PIXEL_NAME"

fun intent(context: Context): Intent {
internal fun intent(context: Context): Intent {
return Intent(context, WindowsWaitlistActivity::class.java)
}
}
Expand Down

0 comments on commit d5426bc

Please sign in to comment.