Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
F
flutter_boost_1.22.4
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
李增强
flutter_boost_1.22.4
Commits
308502f7
Commit
308502f7
authored
Sep 05, 2019
by
yangwu.jia
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed crash and activity leak
parent
f887dd98
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
36 additions
and
27 deletions
+36
-27
android/src/main/java/com/idlefish/flutterboost/BoostFlutterView.java
...main/java/com/idlefish/flutterboost/BoostFlutterView.java
+0
-5
android/src/main/java/com/idlefish/flutterboost/XFlutterView.java
...src/main/java/com/idlefish/flutterboost/XFlutterView.java
+36
-22
No files found.
android/src/main/java/com/idlefish/flutterboost/BoostFlutterView.java
View file @
308502f7
...
@@ -55,8 +55,6 @@ public class BoostFlutterView extends FrameLayout {
...
@@ -55,8 +55,6 @@ public class BoostFlutterView extends FrameLayout {
private
XFlutterView
mFlutterView
;
private
XFlutterView
mFlutterView
;
private
PlatformPlugin
mPlatformPlugin
;
private
Bundle
mArguments
;
private
Bundle
mArguments
;
private
RenderingProgressCoverCreator
mRenderingProgressCoverCreator
;
private
RenderingProgressCoverCreator
mRenderingProgressCoverCreator
;
...
@@ -116,8 +114,6 @@ public class BoostFlutterView extends FrameLayout {
...
@@ -116,8 +114,6 @@ public class BoostFlutterView extends FrameLayout {
mArguments
=
new
Bundle
();
mArguments
=
new
Bundle
();
}
}
mPlatformPlugin
=
new
PlatformPlugin
((
Activity
)
getContext
(),
mFlutterEngine
.
getPlatformChannel
());
mFlutterView
=
new
XFlutterView
(
getContext
(),
getRenderMode
(),
getTransparencyMode
());
mFlutterView
=
new
XFlutterView
(
getContext
(),
getRenderMode
(),
getTransparencyMode
());
addView
(
mFlutterView
,
new
FrameLayout
.
LayoutParams
(
addView
(
mFlutterView
,
new
FrameLayout
.
LayoutParams
(
ViewGroup
.
LayoutParams
.
MATCH_PARENT
,
ViewGroup
.
LayoutParams
.
MATCH_PARENT
));
ViewGroup
.
LayoutParams
.
MATCH_PARENT
,
ViewGroup
.
LayoutParams
.
MATCH_PARENT
));
...
@@ -213,7 +209,6 @@ public class BoostFlutterView extends FrameLayout {
...
@@ -213,7 +209,6 @@ public class BoostFlutterView extends FrameLayout {
@Override
@Override
protected
void
onAttachedToWindow
()
{
protected
void
onAttachedToWindow
()
{
super
.
onAttachedToWindow
();
super
.
onAttachedToWindow
();
mPlatformPlugin
.
onPostResume
();
ViewCompat
.
requestApplyInsets
(
this
);
ViewCompat
.
requestApplyInsets
(
this
);
getViewTreeObserver
().
addOnGlobalLayoutListener
(
mGlobalLayoutListener
);
getViewTreeObserver
().
addOnGlobalLayoutListener
(
mGlobalLayoutListener
);
}
}
...
...
android/src/main/java/com/idlefish/flutterboost/XFlutterView.java
View file @
308502f7
...
@@ -168,8 +168,14 @@ public class XFlutterView extends FrameLayout {
...
@@ -168,8 +168,14 @@ public class XFlutterView extends FrameLayout {
@Override
@Override
protected
void
onConfigurationChanged
(
Configuration
newConfig
)
{
protected
void
onConfigurationChanged
(
Configuration
newConfig
)
{
super
.
onConfigurationChanged
(
newConfig
);
super
.
onConfigurationChanged
(
newConfig
);
sendLocalesToFlutter
(
newConfig
);
try
{
sendUserSettingsToFlutter
();
sendLocalesToFlutter
(
newConfig
);
sendUserSettingsToFlutter
();
}
catch
(
Throwable
e
){
Log
.
e
(
TAG
,
"onConfigurationChanged error "
);
}
}
}
/**
/**
...
@@ -462,25 +468,31 @@ public class XFlutterView extends FrameLayout {
...
@@ -462,25 +468,31 @@ public class XFlutterView extends FrameLayout {
textInputPlugin
textInputPlugin
);
);
androidTouchProcessor
=
new
AndroidTouchProcessor
(
this
.
flutterEngine
.
getRenderer
());
androidTouchProcessor
=
new
AndroidTouchProcessor
(
this
.
flutterEngine
.
getRenderer
());
accessibilityBridge
=
new
AccessibilityBridge
(
this
,
if
(
accessibilityBridge
==
null
){
flutterEngine
.
getAccessibilityChannel
(),
accessibilityBridge
=
new
AccessibilityBridge
(
(
AccessibilityManager
)
getContext
().
getSystemService
(
Context
.
ACCESSIBILITY_SERVICE
),
this
,
getContext
().
getContentResolver
(),
flutterEngine
.
getAccessibilityChannel
(),
// TODO(mattcaroll): plumb the platform views controller to the accessibility bridge.
(
AccessibilityManager
)
getContext
().
getSystemService
(
Context
.
ACCESSIBILITY_SERVICE
),
// https://github.com/flutter/flutter/issues/29618
getContext
().
getContentResolver
(),
null
// TODO(mattcaroll): plumb the platform views controller to the accessibility bridge.
);
// https://github.com/flutter/flutter/issues/29618
accessibilityBridge
.
setOnAccessibilityChangeListener
(
onAccessibilityChangeListener
);
null
resetWillNotDraw
(
);
accessibilityBridge
.
isAccessibilityEnabled
(),
accessibilityBridge
.
setOnAccessibilityChangeListener
(
onAccessibilityChangeListener
);
accessibilityBridge
.
isTouchExplorationEnabled
()
resetWillNotDraw
(
);
accessibilityBridge
.
isAccessibilityEnabled
(),
accessibilityBridge
.
isTouchExplorationEnabled
()
);
textInputPlugin
.
getInputMethodManager
().
restartInput
(
this
);
}
// Inform the Android framework that it should retrieve a new InputConnection
// Inform the Android framework that it should retrieve a new InputConnection
// now that an engine is attached.
// now that an engine is attached.
// TODO(mattcarroll): once this is proven to work, move this line ot TextInputPlugin
// TODO(mattcarroll): once this is proven to work, move this line ot TextInputPlugin
textInputPlugin
.
getInputMethodManager
().
restartInput
(
this
);
// Push View and Context related information from Android to Flutter.
// Push View and Context related information from Android to Flutter.
sendUserSettingsToFlutter
();
sendUserSettingsToFlutter
();
...
@@ -511,7 +523,6 @@ public class XFlutterView extends FrameLayout {
...
@@ -511,7 +523,6 @@ public class XFlutterView extends FrameLayout {
// signifies that this View does not process input (until a new engine is attached).
// signifies that this View does not process input (until a new engine is attached).
// TODO(mattcarroll): once this is proven to work, move this line ot TextInputPlugin
// TODO(mattcarroll): once this is proven to work, move this line ot TextInputPlugin
textInputPlugin
.
getInputMethodManager
().
restartInput
(
this
);
textInputPlugin
.
getInputMethodManager
().
restartInput
(
this
);
// Instruct our FlutterRenderer that we are no longer interested in being its RenderSurface.
// Instruct our FlutterRenderer that we are no longer interested in being its RenderSurface.
flutterEngine
.
getRenderer
().
detachFromRenderSurface
();
flutterEngine
.
getRenderer
().
detachFromRenderSurface
();
flutterEngine
=
null
;
flutterEngine
=
null
;
...
@@ -560,10 +571,13 @@ public class XFlutterView extends FrameLayout {
...
@@ -560,10 +571,13 @@ public class XFlutterView extends FrameLayout {
* FlutterEngine must be non-null when this method is invoked.
* FlutterEngine must be non-null when this method is invoked.
*/
*/
private
void
sendUserSettingsToFlutter
()
{
private
void
sendUserSettingsToFlutter
()
{
flutterEngine
.
getSettingsChannel
().
startMessage
()
if
(
flutterEngine
!=
null
&&
flutterEngine
.
getSettingsChannel
()!=
null
){
.
setTextScaleFactor
(
getResources
().
getConfiguration
().
fontScale
)
flutterEngine
.
getSettingsChannel
().
startMessage
()
.
setUse24HourFormat
(
DateFormat
.
is24HourFormat
(
getContext
()))
.
setTextScaleFactor
(
getResources
().
getConfiguration
().
fontScale
)
.
send
();
.
setUse24HourFormat
(
DateFormat
.
is24HourFormat
(
getContext
()))
.
send
();
}
}
}
// TODO(mattcarroll): consider introducing a system channel for this communication instead of JNI
// TODO(mattcarroll): consider introducing a system channel for this communication instead of JNI
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment