Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
permission_handler
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
songyanzhi
permission_handler
Commits
e700d04d
Unverified
Commit
e700d04d
authored
Apr 01, 2020
by
Maurits van Beusekom
Committed by
GitHub
Apr 01, 2020
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #252 from ened/4.4.0+hotfix.2-bg-fix
4.4.0+hotfix.2 bg fix
parents
9b12a9f8
332445d0
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
100 additions
and
76 deletions
+100
-76
permission_handler/android/src/main/java/com/baseflow/permissionhandler/MethodCallHandlerImpl.java
+25
-21
permission_handler/android/src/main/java/com/baseflow/permissionhandler/PermissionHandlerPlugin.java
+75
-55
No files found.
permission_handler/android/src/main/java/com/baseflow/permissionhandler/MethodCallHandlerImpl.java
View file @
e700d04d
...
...
@@ -5,6 +5,7 @@ import android.content.Context;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
io.flutter.plugin.common.BinaryMessenger
;
import
io.flutter.plugin.common.MethodCall
;
import
io.flutter.plugin.common.MethodChannel
;
...
...
@@ -16,38 +17,45 @@ import java.util.List;
final
class
MethodCallHandlerImpl
implements
MethodChannel
.
MethodCallHandler
{
private
final
Context
applicationContext
;
private
final
Activity
activity
;
private
final
AppSettingsManager
appSettingsManager
;
private
final
PermissionManager
permissionManager
;
private
final
ServiceManager
serviceManager
;
private
final
ActivityRegistry
activityRegistry
;
private
final
PermissionRegistry
permissionRegistry
;
private
final
MethodChannel
methodChannel
;
MethodCallHandlerImpl
(
Context
applicationContext
,
Activity
activity
,
BinaryMessenger
messenger
,
AppSettingsManager
appSettingsManager
,
PermissionManager
permissionManager
,
ServiceManager
serviceManager
,
ActivityRegistry
activityRegistry
,
PermissionRegistry
permissionRegistry
)
{
ServiceManager
serviceManager
)
{
this
.
applicationContext
=
applicationContext
;
this
.
activity
=
activity
;
this
.
appSettingsManager
=
appSettingsManager
;
this
.
permissionManager
=
permissionManager
;
this
.
serviceManager
=
serviceManager
;
this
.
activityRegistry
=
activityRegistry
;
this
.
permissionRegistry
=
permissionRegistry
;
}
@Nullable
private
Activity
activity
;
@Nullable
private
ActivityRegistry
activityRegistry
;
@Nullable
private
PermissionRegistry
permissionRegistry
;
public
void
setActivity
(
@Nullable
Activity
activity
)
{
this
.
activity
=
activity
;
}
public
void
setActivityRegistry
(
@Nullable
ActivityRegistry
activityRegistry
)
{
this
.
activityRegistry
=
activityRegistry
;
}
methodChannel
=
new
MethodChannel
(
messenger
,
"flutter.baseflow.com/permissions/methods"
);
methodChannel
.
setMethodCallHandler
(
this
);
public
void
setPermissionRegistry
(
@Nullable
PermissionRegistry
permissionRegistry
)
{
this
.
permissionRegistry
=
permissionRegistry
;
}
@Override
@Override
public
void
onMethodCall
(
@NonNull
MethodCall
call
,
@NonNull
final
Result
result
)
{
switch
(
call
.
method
)
{
...
...
@@ -102,8 +110,4 @@ final class MethodCallHandlerImpl implements MethodChannel.MethodCallHandler {
break
;
}
}
void
stopListening
()
{
methodChannel
.
setMethodCallHandler
(
null
);
}
}
permission_handler/android/src/main/java/com/baseflow/permissionhandler/PermissionHandlerPlugin.java
View file @
e700d04d
...
...
@@ -2,19 +2,16 @@ package com.baseflow.permissionhandler;
import
android.app.Activity
;
import
android.content.Context
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
com.baseflow.permissionhandler.PermissionManager.ActivityRegistry
;
import
com.baseflow.permissionhandler.PermissionManager.PermissionRegistry
;
import
io.flutter.embedding.engine.plugins.FlutterPlugin
;
import
io.flutter.embedding.engine.plugins.activity.ActivityAware
;
import
io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding
;
import
io.flutter.plugin.common.BinaryMessenger
;
import
io.flutter.plugin.common.MethodChannel
;
import
io.flutter.plugin.common.PluginRegistry.Registrar
;
import
io.flutter.embedding.engine.plugins.FlutterPlugin
;
import
com.baseflow.permissionhandler.PermissionManager.ActivityRegistry
;
import
com.baseflow.permissionhandler.PermissionManager.PermissionRegistry
;
/**
* Platform implementation of the permission_handler Flutter plugin.
...
...
@@ -26,8 +23,11 @@ import com.baseflow.permissionhandler.PermissionManager.PermissionRegistry;
* stable {@code io.flutter.plugin.common} package.
*/
public
final
class
PermissionHandlerPlugin
implements
FlutterPlugin
,
ActivityAware
{
private
@Nullable
FlutterPluginBinding
flutterPluginBinding
;
private
@Nullable
MethodCallHandlerImpl
methodCallHandler
;
private
MethodChannel
methodChannel
;
@Nullable
private
MethodCallHandlerImpl
methodCallHandler
;
/**
* Registers a plugin implementation that uses the stable {@code io.flutter.plugin.common}
...
...
@@ -36,44 +36,39 @@ public final class PermissionHandlerPlugin implements FlutterPlugin, ActivityAwa
* <p>Calling this automatically initializes the plugin. However plugins initialized this way
* won't react to changes in activity or context, unlike {@link PermissionHandlerPlugin}.
*/
public
static
void
registerWith
(
Registrar
registrar
)
{
final
PermissionHandlerPlugin
permissionHandlerPlugin
=
new
PermissionHandlerPlugin
();
permissionHandlerPlugin
.
startListening
(
registrar
.
context
(),
registrar
.
activity
(),
registrar
.
messenger
(),
registrar:
:
addActivityResultListener
,
registrar:
:
addRequestPermissionsResultListener
);
}
public
static
void
registerWith
(
Registrar
registrar
)
{
final
PermissionHandlerPlugin
plugin
=
new
PermissionHandlerPlugin
();
plugin
.
startListening
(
registrar
.
context
(),
registrar
.
messenger
());
if
(
registrar
.
activeContext
()
instanceof
Activity
)
{
plugin
.
startListeningToActivity
(
registrar
.
activity
(),
registrar:
:
addActivityResultListener
,
registrar:
:
addRequestPermissionsResultListener
);
}
}
@Override
public
void
onAttachedToEngine
(
@NonNull
FlutterPluginBinding
binding
)
{
this
.
flutterPluginBinding
=
binding
;
startListening
(
binding
.
getApplicationContext
(),
binding
.
getBinaryMessenger
()
);
}
@Override
public
void
onDetachedFromEngine
(
@NonNull
FlutterPluginBinding
binding
)
{
this
.
flutterPluginBinding
=
null
;
stopListening
()
;
}
@Override
public
void
onAttachedToActivity
(
@NonNull
ActivityPluginBinding
binding
)
{
if
(
flutterPluginBinding
==
null
)
{
return
;
}
startListening
(
flutterPluginBinding
.
getApplicationContext
(),
binding
.
getActivity
(),
flutterPluginBinding
.
getBinaryMessenger
(),
binding:
:
addActivityResultListener
,
binding:
:
addRequestPermissionsResultListener
);
}
@Override
public
void
onDetachedFromActivityForConfigChanges
()
{
onDetachedFromActivity
();
startListeningToActivity
(
binding
.
getActivity
(),
binding:
:
addActivityResultListener
,
binding:
:
addRequestPermissionsResultListener
);
}
@Override
...
...
@@ -83,28 +78,53 @@ public final class PermissionHandlerPlugin implements FlutterPlugin, ActivityAwa
@Override
public
void
onDetachedFromActivity
()
{
if
(
methodCallHandler
==
null
)
{
return
;
}
stopListeningToActivity
();
}
@Override
public
void
onDetachedFromActivityForConfigChanges
()
{
onDetachedFromActivity
();
}
methodCallHandler
.
stopListening
();
private
void
startListening
(
Context
applicationContext
,
BinaryMessenger
messenger
)
{
methodChannel
=
new
MethodChannel
(
messenger
,
"flutter.baseflow.com/permissions/methods"
);
methodCallHandler
=
new
MethodCallHandlerImpl
(
applicationContext
,
new
AppSettingsManager
(),
new
PermissionManager
(),
new
ServiceManager
()
);
methodChannel
.
setMethodCallHandler
(
methodCallHandler
);
}
private
void
stopListening
()
{
methodChannel
.
setMethodCallHandler
(
null
);
methodChannel
=
null
;
methodCallHandler
=
null
;
}
private
void
startListening
(
Context
applicationContext
,
Activity
activity
,
BinaryMessenger
messenger
,
ActivityRegistry
activityRegistry
,
PermissionRegistry
permissionRegistry
)
{
methodCallHandler
=
new
MethodCallHandlerImpl
(
applicationContext
,
activity
,
messenger
,
new
AppSettingsManager
(),
new
PermissionManager
(),
new
ServiceManager
(),
activityRegistry
,
permissionRegistry
);
private
void
startListeningToActivity
(
Activity
activity
,
ActivityRegistry
activityRegistry
,
PermissionRegistry
permissionRegistry
)
{
if
(
methodCallHandler
!=
null
)
{
methodCallHandler
.
setActivity
(
activity
);
methodCallHandler
.
setActivityRegistry
(
activityRegistry
);
methodCallHandler
.
setPermissionRegistry
(
permissionRegistry
);
}
}
private
void
stopListeningToActivity
()
{
if
(
methodCallHandler
!=
null
)
{
methodCallHandler
.
setActivity
(
null
);
methodCallHandler
.
setActivityRegistry
(
null
);
methodCallHandler
.
setPermissionRegistry
(
null
);
}
}
}
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