Closes #268: Integrate feature-intent component
This commit is contained in:
parent
8ac32ee988
commit
6c06651ecc
|
@ -19,13 +19,21 @@
|
|||
|
||||
<category android:name="android.intent.category.LAUNCHER"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity android:name=".IntentReceiverActivity">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
<data android:scheme="http" />
|
||||
<data android:scheme="https" />
|
||||
</intent-filter>
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW"/>
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
<category android:name="android.intent.category.BROWSABLE"/>
|
||||
<data android:scheme="http"/>
|
||||
<data android:scheme="https"/>
|
||||
<action android:name="android.intent.action.SEND" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<data android:mimeType="text/plain" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
</application>
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
package org.mozilla.fenix
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import mozilla.components.browser.session.tab.CustomTabConfig
|
||||
import mozilla.components.support.utils.SafeIntent
|
||||
import org.mozilla.fenix.ext.components
|
||||
|
||||
class IntentReceiverActivity : Activity() {
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
components.utils.intentProcessor.process(intent)
|
||||
|
||||
val intent = Intent(intent)
|
||||
if (CustomTabConfig.isCustomTabIntent(SafeIntent(intent))) {
|
||||
// TODO Enter CustomTabActivity here.
|
||||
} else {
|
||||
intent.setClassName(applicationContext, HomeActivity::class.java.name)
|
||||
}
|
||||
|
||||
startActivity(intent)
|
||||
finish()
|
||||
}
|
||||
}
|
|
@ -21,4 +21,5 @@ class Components(private val context: Context) {
|
|||
core.sessionManager
|
||||
)
|
||||
}
|
||||
val utils by lazy { Utilities(context, core.sessionManager, useCases.sessionUseCases, useCases.searchUseCases) }
|
||||
}
|
26
app/src/main/java/org/mozilla/fenix/components/Utilities.kt
Normal file
26
app/src/main/java/org/mozilla/fenix/components/Utilities.kt
Normal file
|
@ -0,0 +1,26 @@
|
|||
package org.mozilla.fenix.components
|
||||
|
||||
import android.content.Context
|
||||
import mozilla.components.browser.session.SessionManager
|
||||
import mozilla.components.feature.intent.IntentProcessor
|
||||
import mozilla.components.feature.search.SearchUseCases
|
||||
import mozilla.components.feature.session.SessionUseCases
|
||||
|
||||
|
||||
/**
|
||||
* Component group for miscellaneous components.
|
||||
*/
|
||||
class Utilities(
|
||||
private val context: Context,
|
||||
private val sessionManager: SessionManager,
|
||||
private val sessionUseCases: SessionUseCases,
|
||||
private val searchUseCases: SearchUseCases
|
||||
) {
|
||||
/**
|
||||
* Provides intent processing functionality for CustomTab, ACTION_VIEW
|
||||
* and ACTION_SEND intents.
|
||||
*/
|
||||
val intentProcessor by lazy {
|
||||
IntentProcessor(sessionUseCases, sessionManager, searchUseCases, context)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user