1
0
Fork 0

Closes #265: Integrate feature-prompts component

master
Christian Sadilek 2019-01-30 14:41:01 -05:00 committed by Colin Lee
parent c78f299390
commit 614374942a
3 changed files with 21 additions and 0 deletions

View File

@ -114,6 +114,7 @@ dependencies {
implementation Deps.mozilla_feature_awesomebar implementation Deps.mozilla_feature_awesomebar
implementation Deps.mozilla_feature_downloads implementation Deps.mozilla_feature_downloads
implementation Deps.mozilla_feature_intent implementation Deps.mozilla_feature_intent
implementation Deps.mozilla_feature_prompts
implementation Deps.mozilla_feature_session implementation Deps.mozilla_feature_session
implementation Deps.mozilla_feature_toolbar implementation Deps.mozilla_feature_toolbar
implementation Deps.mozilla_feature_tabs implementation Deps.mozilla_feature_tabs

View File

@ -3,6 +3,7 @@
xmlns:tools="http://schemas.android.com/tools" package="org.mozilla.fenix"> xmlns:tools="http://schemas.android.com/tools" package="org.mozilla.fenix">
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application <application

View File

@ -6,6 +6,7 @@ package org.mozilla.fenix.browser
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Context import android.content.Context
import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.transition.TransitionInflater import android.transition.TransitionInflater
import android.view.LayoutInflater import android.view.LayoutInflater
@ -22,10 +23,12 @@ import mozilla.components.support.ktx.android.arch.lifecycle.addObservers
import org.mozilla.fenix.R import org.mozilla.fenix.R
import org.mozilla.fenix.components.toolbar.ToolbarIntegration import org.mozilla.fenix.components.toolbar.ToolbarIntegration
import org.mozilla.fenix.ext.requireComponents import org.mozilla.fenix.ext.requireComponents
import mozilla.components.feature.prompts.PromptFeature
class BrowserFragment : Fragment() { class BrowserFragment : Fragment() {
private lateinit var downloadsFeature: DownloadsFeature private lateinit var downloadsFeature: DownloadsFeature
private lateinit var promptsFeature: PromptFeature
private lateinit var sessionFeature: SessionFeature private lateinit var sessionFeature: SessionFeature
override fun onCreateView( override fun onCreateView(
@ -57,6 +60,15 @@ class BrowserFragment : Fragment() {
} }
) )
promptsFeature = PromptFeature(
fragment = this,
sessionManager = sessionManager,
fragmentManager = requireFragmentManager(),
onNeedToRequestPermissions = { permissions ->
requestPermissions(permissions, REQUEST_CODE_PROMPT_PERMISSIONS)
}
)
sessionFeature = SessionFeature( sessionFeature = SessionFeature(
sessionManager, sessionManager,
SessionUseCases(sessionManager), SessionUseCases(sessionManager),
@ -72,6 +84,7 @@ class BrowserFragment : Fragment() {
lifecycle.addObservers( lifecycle.addObservers(
downloadsFeature, downloadsFeature,
promptsFeature,
sessionFeature, sessionFeature,
ToolbarIntegration(requireContext(), ToolbarIntegration(requireContext(),
toolbar, toolbar,
@ -83,10 +96,16 @@ class BrowserFragment : Fragment() {
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String>, grantResults: IntArray) { override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String>, grantResults: IntArray) {
when (requestCode) { when (requestCode) {
REQUEST_CODE_DOWNLOAD_PERMISSIONS -> downloadsFeature.onPermissionsResult(permissions, grantResults) REQUEST_CODE_DOWNLOAD_PERMISSIONS -> downloadsFeature.onPermissionsResult(permissions, grantResults)
REQUEST_CODE_PROMPT_PERMISSIONS -> promptsFeature.onPermissionsResult(permissions, grantResults)
} }
} }
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
promptsFeature.onActivityResult(requestCode, resultCode, data)
}
companion object { companion object {
private const val REQUEST_CODE_DOWNLOAD_PERMISSIONS = 1 private const val REQUEST_CODE_DOWNLOAD_PERMISSIONS = 1
private const val REQUEST_CODE_PROMPT_PERMISSIONS = 2
} }
} }