1
0
Fork 0

Closes #268: Integrate feature-intent component

master
Jonathan Almeida 2019-01-29 15:46:11 -05:00 committed by Colin Lee
parent 8ac32ee988
commit 6c06651ecc
4 changed files with 67 additions and 5 deletions

View File

@ -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>

View File

@ -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()
}
}

View File

@ -21,4 +21,5 @@ class Components(private val context: Context) {
core.sessionManager
)
}
val utils by lazy { Utilities(context, core.sessionManager, useCases.sessionUseCases, useCases.searchUseCases) }
}

View 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)
}
}