Closes #268: Integrate feature-intent component
parent
8ac32ee988
commit
6c06651ecc
|
@ -19,13 +19,21 @@
|
||||||
|
|
||||||
<category android:name="android.intent.category.LAUNCHER"/>
|
<category android:name="android.intent.category.LAUNCHER"/>
|
||||||
</intent-filter>
|
</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>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.VIEW"/>
|
<action android:name="android.intent.action.SEND" />
|
||||||
<category android:name="android.intent.category.DEFAULT"/>
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
<category android:name="android.intent.category.BROWSABLE"/>
|
<data android:mimeType="text/plain" />
|
||||||
<data android:scheme="http"/>
|
|
||||||
<data android:scheme="https"/>
|
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
</application>
|
</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
|
core.sessionManager
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
val utils by lazy { Utilities(context, core.sessionManager, useCases.sessionUseCases, useCases.searchUseCases) }
|
||||||
}
|
}
|
|
@ -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