Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DiDi
DoraemonKit
提交
af0d82da
D
DoraemonKit
项目概览
DiDi
/
DoraemonKit
12 个月 前同步成功
通知
166
Star
19623
Fork
3062
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
DoraemonKit
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
af0d82da
编写于
1月 02, 2020
作者:
J
jackjintai
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
modify:
1、新增系统模式下页面倒计时浮标
上级
48e453cf
变更
51
隐藏空白更改
内联
并排
Showing
51 changed file
with
784 addition
and
422 deletion
+784
-422
Android/app/src/main/java/com/didichuxing/doraemondemo/dokit/DemoDokitView.java
...ava/com/didichuxing/doraemondemo/dokit/DemoDokitView.java
+2
-2
Android/app/src/main/java/com/didichuxing/doraemondemo/dokit/DemoKit.java
...main/java/com/didichuxing/doraemondemo/dokit/DemoKit.java
+2
-2
Android/doraemonkit-weex/src/main/java/com/didichuxing/doraemonkit/weex/log/WeexLogKit.java
...java/com/didichuxing/doraemonkit/weex/log/WeexLogKit.java
+2
-2
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/DokitActivityLifecycleCallbacks.java
...ichuxing/doraemonkit/DokitActivityLifecycleCallbacks.java
+269
-0
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/DokitFragmentLifecycleCallbacks.java
...ichuxing/doraemonkit/DokitFragmentLifecycleCallbacks.java
+48
-0
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/DoraemonKitReal.java
...ain/java/com/didichuxing/doraemonkit/DoraemonKitReal.java
+14
-218
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/config/GpsMockConfig.java
...ava/com/didichuxing/doraemonkit/config/GpsMockConfig.java
+1
-1
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/constant/DokitConstant.java
...a/com/didichuxing/doraemonkit/constant/DokitConstant.java
+14
-0
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/alignruler/AlignRulerInfoDokitView.java
...g/doraemonkit/kit/alignruler/AlignRulerInfoDokitView.java
+5
-5
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/alignruler/AlignRulerKit.java
...didichuxing/doraemonkit/kit/alignruler/AlignRulerKit.java
+5
-5
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/alignruler/AlignRulerLineDokitView.java
...g/doraemonkit/kit/alignruler/AlignRulerLineDokitView.java
+2
-4
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/alignruler/AlignRulerSettingFragment.java
...doraemonkit/kit/alignruler/AlignRulerSettingFragment.java
+5
-5
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/colorpick/ColorPickerDokitView.java
...uxing/doraemonkit/kit/colorpick/ColorPickerDokitView.java
+2
-2
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/colorpick/ColorPickerInfoDokitView.java
...g/doraemonkit/kit/colorpick/ColorPickerInfoDokitView.java
+3
-3
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/colorpick/ColorPickerSettingFragment.java
...doraemonkit/kit/colorpick/ColorPickerSettingFragment.java
+4
-4
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/custom/MonitorDataUploadFragment.java
...ing/doraemonkit/kit/custom/MonitorDataUploadFragment.java
+3
-3
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/custom/RealTimePerformDataDokitView.java
.../doraemonkit/kit/custom/RealTimePerformDataDokitView.java
+2
-2
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/gpsmock/GpsMockFragment.java
.../didichuxing/doraemonkit/kit/gpsmock/GpsMockFragment.java
+1
-1
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/gpsmock/GpsMockKit.java
...a/com/didichuxing/doraemonkit/kit/gpsmock/GpsMockKit.java
+1
-1
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/layoutborder/LayoutBorderKit.java
...chuxing/doraemonkit/kit/layoutborder/LayoutBorderKit.java
+3
-3
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/layoutborder/LayoutBorderSettingFragment.java
...emonkit/kit/layoutborder/LayoutBorderSettingFragment.java
+3
-3
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/layoutborder/LayoutLevelDokitView.java
...ng/doraemonkit/kit/layoutborder/LayoutLevelDokitView.java
+2
-3
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/logInfo/LogInfoSettingFragment.java
...uxing/doraemonkit/kit/logInfo/LogInfoSettingFragment.java
+3
-3
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/room_db/DokitDbManager.java
...uxing/doraemonkit/kit/network/room_db/DokitDbManager.java
+2
-5
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/temporaryclose/TemporaryCloseKit.java
...ing/doraemonkit/kit/temporaryclose/TemporaryCloseKit.java
+2
-2
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/timecounter/TimeCounterManager.java
...uxing/doraemonkit/kit/timecounter/TimeCounterManager.java
+4
-4
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/timecounter/counter/ActivityCounter.java
.../doraemonkit/kit/timecounter/counter/ActivityCounter.java
+2
-4
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/uiperformance/UIPerformanceDisplayDokitView.java
...nkit/kit/uiperformance/UIPerformanceDisplayDokitView.java
+1
-2
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/uiperformance/UIPerformanceInfoDokitView.java
...emonkit/kit/uiperformance/UIPerformanceInfoDokitView.java
+4
-4
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/uiperformance/UIPerformanceKit.java
...uxing/doraemonkit/kit/uiperformance/UIPerformanceKit.java
+4
-4
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/uiperformance/UIPerformanceManager.java
...g/doraemonkit/kit/uiperformance/UIPerformanceManager.java
+1
-1
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/viewcheck/ViewCheckDrawDokitView.java
...ing/doraemonkit/kit/viewcheck/ViewCheckDrawDokitView.java
+4
-5
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/viewcheck/ViewCheckInfoDokitView.java
...ing/doraemonkit/kit/viewcheck/ViewCheckInfoDokitView.java
+6
-6
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/viewcheck/ViewCheckerKit.java
...didichuxing/doraemonkit/kit/viewcheck/ViewCheckerKit.java
+5
-5
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/model/ActivityLifecycleInfo.java
.../didichuxing/doraemonkit/model/ActivityLifecycleInfo.java
+52
-0
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/model/LatLng.java
...c/main/java/com/didichuxing/doraemonkit/model/LatLng.java
+1
-1
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/model/ViewInfo.java
...main/java/com/didichuxing/doraemonkit/model/ViewInfo.java
+1
-1
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/base/AbsDokitView.java
...ava/com/didichuxing/doraemonkit/ui/base/AbsDokitView.java
+14
-14
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/base/BaseFragment.java
...ava/com/didichuxing/doraemonkit/ui/base/BaseFragment.java
+2
-2
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/base/DokitViewManagerInterface.java
...huxing/doraemonkit/ui/base/DokitViewManagerInterface.java
+18
-1
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/base/DokitViewManagerProxy.java
...idichuxing/doraemonkit/ui/base/DokitViewManagerProxy.java
+20
-5
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/base/NormalDokitViewManager.java
...dichuxing/doraemonkit/ui/base/NormalDokitViewManager.java
+79
-45
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/base/SystemDokitViewManager.java
...dichuxing/doraemonkit/ui/base/SystemDokitViewManager.java
+94
-17
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/health/CountDownDokitView.java
...didichuxing/doraemonkit/ui/health/CountDownDokitView.java
+17
-2
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/kit/KitAdapter.java
...n/java/com/didichuxing/doraemonkit/ui/kit/KitAdapter.java
+2
-2
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/main/FloatIconDokitView.java
...m/didichuxing/doraemonkit/ui/main/FloatIconDokitView.java
+4
-4
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/realtime/PerformanceDokitView.java
...chuxing/doraemonkit/ui/realtime/PerformanceDokitView.java
+3
-3
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/realtime/PerformanceDokitViewManager.java
.../doraemonkit/ui/realtime/PerformanceDokitViewManager.java
+6
-6
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/viewcheck/LayoutBorderView.java
...idichuxing/doraemonkit/ui/viewcheck/LayoutBorderView.java
+1
-4
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/util/SystemUtil.java
...ain/java/com/didichuxing/doraemonkit/util/SystemUtil.java
+38
-0
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/util/WebUtil.java
...c/main/java/com/didichuxing/doraemonkit/util/WebUtil.java
+1
-1
未找到文件。
Android/app/src/main/java/com/didichuxing/doraemondemo/dokit/DemoDokitView.java
浏览文件 @
af0d82da
...
...
@@ -10,7 +10,7 @@ import android.widget.TextView;
import
com.didichuxing.doraemondemo.R
;
import
com.didichuxing.doraemonkit.ui.base.AbsDokitView
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewLayoutParams
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
Proxy
;
/**
* ================================================
...
...
@@ -38,7 +38,7 @@ public class DemoDokitView extends AbsDokitView {
tvClose
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
DokitViewManager
.
getInstance
().
detach
(
DemoDokitView
.
this
);
DokitViewManager
Proxy
.
getInstance
().
detach
(
DemoDokitView
.
this
);
}
});
}
...
...
Android/app/src/main/java/com/didichuxing/doraemondemo/dokit/DemoKit.java
浏览文件 @
af0d82da
...
...
@@ -6,7 +6,7 @@ import com.didichuxing.doraemondemo.R;
import
com.didichuxing.doraemonkit.kit.AbstractKit
;
import
com.didichuxing.doraemonkit.kit.Category
;
import
com.didichuxing.doraemonkit.ui.base.DokitIntent
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
Proxy
;
/**
* ================================================
...
...
@@ -37,7 +37,7 @@ public class DemoKit extends AbstractKit {
public
void
onClick
(
Context
context
)
{
DokitIntent
dokitIntent
=
new
DokitIntent
(
DemoDokitView
.
class
);
dokitIntent
.
mode
=
DokitIntent
.
MODE_SINGLE_INSTANCE
;
DokitViewManager
.
getInstance
().
attach
(
dokitIntent
);
DokitViewManager
Proxy
.
getInstance
().
attach
(
dokitIntent
);
}
@Override
...
...
Android/doraemonkit-weex/src/main/java/com/didichuxing/doraemonkit/weex/log/WeexLogKit.java
浏览文件 @
af0d82da
...
...
@@ -5,7 +5,7 @@ import android.content.Context;
import
com.didichuxing.doraemonkit.kit.AbstractKit
;
import
com.didichuxing.doraemonkit.kit.Category
;
import
com.didichuxing.doraemonkit.ui.base.DokitIntent
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
Proxy
;
import
com.didichuxing.doraemonkit.weex.R
;
/**
...
...
@@ -33,7 +33,7 @@ public class WeexLogKit extends AbstractKit {
public
void
onClick
(
Context
context
)
{
DokitIntent
intent
=
new
DokitIntent
(
WeexLogInfoDokitView
.
class
);
intent
.
mode
=
DokitIntent
.
MODE_SINGLE_INSTANCE
;
DokitViewManager
.
getInstance
().
attach
(
intent
);
DokitViewManager
Proxy
.
getInstance
().
attach
(
intent
);
}
@Override
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/DokitActivityLifecycleCallbacks.java
0 → 100644
浏览文件 @
af0d82da
package
com.didichuxing.doraemonkit
;
import
android.app.Activity
;
import
android.app.Application
;
import
android.content.Context
;
import
android.os.Bundle
;
import
android.support.v4.app.FragmentActivity
;
import
android.support.v4.app.FragmentManager
;
import
android.widget.Toast
;
import
com.blankj.utilcode.util.ActivityUtils
;
import
com.didichuxing.doraemonkit.constant.DokitConstant
;
import
com.didichuxing.doraemonkit.model.ActivityLifecycleInfo
;
import
com.didichuxing.doraemonkit.ui.UniversalActivity
;
import
com.didichuxing.doraemonkit.ui.base.AbsDokitView
;
import
com.didichuxing.doraemonkit.ui.base.DokitIntent
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManagerProxy
;
import
com.didichuxing.doraemonkit.ui.main.FloatIconDokitView
;
import
com.didichuxing.doraemonkit.util.LifecycleListenerUtil
;
import
com.didichuxing.doraemonkit.util.PermissionUtil
;
import
com.didichuxing.doraemonkit.util.UIUtils
;
import
java.util.Map
;
/**
* ================================================
* 作 者:jint(金台)
* 版 本:1.0
* 创建日期:2019-12-31-10:04
* 描 述:全局的activity生命周期回调
* 修订历史:
* ================================================
*/
class
DokitActivityLifecycleCallbacks
implements
Application
.
ActivityLifecycleCallbacks
{
private
int
startedActivityCounts
;
private
boolean
sHasRequestPermission
;
/**
* fragment 生命周期回调
*/
private
FragmentManager
.
FragmentLifecycleCallbacks
sFragmentLifecycleCallbacks
;
DokitActivityLifecycleCallbacks
()
{
sFragmentLifecycleCallbacks
=
new
DokitFragmentLifecycleCallbacks
();
}
@Override
public
void
onActivityCreated
(
Activity
activity
,
Bundle
savedInstanceState
)
{
recordActivityLifeCycleStatus
(
activity
,
LIFE_CYCLE_STATUS_CREATE
);
if
(
ignoreCurrentActivityDokitView
(
activity
))
{
return
;
}
if
(
activity
instanceof
FragmentActivity
)
{
//注册fragment生命周期回调
((
FragmentActivity
)
activity
).
getSupportFragmentManager
().
registerFragmentLifecycleCallbacks
(
sFragmentLifecycleCallbacks
,
true
);
}
}
@Override
public
void
onActivityStarted
(
Activity
activity
)
{
if
(
ignoreCurrentActivityDokitView
(
activity
))
{
return
;
}
if
(
startedActivityCounts
==
0
)
{
DokitViewManagerProxy
.
getInstance
().
notifyForeground
();
}
startedActivityCounts
++;
}
@Override
public
void
onActivityResumed
(
Activity
activity
)
{
recordActivityLifeCycleStatus
(
activity
,
LIFE_CYCLE_STATUS_RESUME
);
//如果是leakCanary页面不进行添加
if
(
ignoreCurrentActivityDokitView
(
activity
))
{
return
;
}
//设置app的直接子view的Id
if
(
UIUtils
.
getDokitAppContentView
(
activity
)
!=
null
)
{
UIUtils
.
getDokitAppContentView
(
activity
).
setId
(
R
.
id
.
dokit_app_contentview_id
);
}
//添加DokitView
resumeAndAttachDokitViews
(
activity
);
for
(
LifecycleListenerUtil
.
LifecycleListener
listener
:
LifecycleListenerUtil
.
LIFECYCLE_LISTENERS
)
{
listener
.
onActivityResumed
(
activity
);
}
}
@Override
public
void
onActivityPaused
(
Activity
activity
)
{
if
(
ignoreCurrentActivityDokitView
(
activity
))
{
return
;
}
for
(
LifecycleListenerUtil
.
LifecycleListener
listener
:
LifecycleListenerUtil
.
LIFECYCLE_LISTENERS
)
{
listener
.
onActivityPaused
(
activity
);
}
}
@Override
public
void
onActivityStopped
(
Activity
activity
)
{
recordActivityLifeCycleStatus
(
activity
,
LIFE_CYCLE_STATUS_STOPPED
);
if
(
ignoreCurrentActivityDokitView
(
activity
))
{
return
;
}
startedActivityCounts
--;
//通知app退出到后台
if
(
startedActivityCounts
==
0
)
{
DokitViewManagerProxy
.
getInstance
().
notifyBackground
();
}
}
@Override
public
void
onActivitySaveInstanceState
(
Activity
activity
,
Bundle
outState
)
{
if
(
ignoreCurrentActivityDokitView
(
activity
))
{
return
;
}
}
@Override
public
void
onActivityDestroyed
(
Activity
activity
)
{
recordActivityLifeCycleStatus
(
activity
,
LIFE_CYCLE_STATUS_DESTROY
);
if
(
ignoreCurrentActivityDokitView
(
activity
))
{
return
;
}
//注销fragment的生命周期回调
if
(
activity
instanceof
FragmentActivity
)
{
((
FragmentActivity
)
activity
).
getSupportFragmentManager
().
unregisterFragmentLifecycleCallbacks
(
sFragmentLifecycleCallbacks
);
}
DokitViewManagerProxy
.
getInstance
().
onActivityDestroy
(
activity
);
}
/**
* 是否忽略在当前的activity上显示浮标
*
* @param activity
* @return
*/
private
static
boolean
ignoreCurrentActivityDokitView
(
Activity
activity
)
{
String
[]
ignoreActivityClassNames
=
new
String
[]{
"DisplayLeakActivity"
};
for
(
String
activityClassName
:
ignoreActivityClassNames
)
{
if
(
activity
.
getClass
().
getSimpleName
().
equals
(
activityClassName
))
{
return
true
;
}
}
return
false
;
}
/**
* 显示所有应该显示的dokitView
*
* @param activity
*/
private
void
resumeAndAttachDokitViews
(
Activity
activity
)
{
if
(
DokitConstant
.
IS_NORMAL_FLOAT_MODE
)
{
//显示内置dokitView icon
DokitViewManagerProxy
.
getInstance
().
resumeAndAttachDokitViews
(
activity
);
}
//系统模式
else
{
//悬浮窗权限 vivo 华为可以不需要动态权限 小米需要
if
(
PermissionUtil
.
canDrawOverlays
(
activity
))
{
DokitViewManagerProxy
.
getInstance
().
resumeAndAttachDokitViews
(
activity
);
}
else
{
//请求悬浮窗权限
requestPermission
(
activity
);
}
}
}
/**
* 显示系统悬浮窗icon
*/
private
void
showSystemMainIcon
()
{
if
(
ActivityUtils
.
getTopActivity
()
instanceof
UniversalActivity
)
{
return
;
}
if
(!
DokitConstant
.
AWAYS_SHOW_MAIN_ICON
)
{
return
;
}
DokitIntent
intent
=
new
DokitIntent
(
FloatIconDokitView
.
class
);
intent
.
mode
=
DokitIntent
.
MODE_SINGLE_INSTANCE
;
DokitViewManagerProxy
.
getInstance
().
attach
(
intent
);
DokitConstant
.
MAIN_ICON_HAS_SHOW
=
true
;
}
/**
* 生命周期回调
*
* @param activity
*/
private
void
systemDokitViewOnResume
(
Activity
activity
)
{
Map
<
String
,
AbsDokitView
>
dokitViewMap
=
DokitViewManagerProxy
.
getInstance
().
getDokitViews
(
activity
);
for
(
AbsDokitView
absDokitView
:
dokitViewMap
.
values
())
{
absDokitView
.
onResume
();
}
}
/**
* 请求悬浮窗权限
*
* @param context
*/
private
void
requestPermission
(
Context
context
)
{
if
(!
PermissionUtil
.
canDrawOverlays
(
context
)
&&
!
sHasRequestPermission
)
{
Toast
.
makeText
(
context
,
context
.
getText
(
R
.
string
.
dk_float_permission_toast
),
Toast
.
LENGTH_SHORT
).
show
();
//请求悬浮窗权限
PermissionUtil
.
requestDrawOverlays
(
context
);
sHasRequestPermission
=
true
;
}
}
/**
* Activity 创建
*/
private
static
int
LIFE_CYCLE_STATUS_CREATE
=
100
;
/**
* Activity resume
*/
private
static
int
LIFE_CYCLE_STATUS_RESUME
=
101
;
/**
* Activity stop
*/
private
static
int
LIFE_CYCLE_STATUS_STOPPED
=
102
;
/**
* Activity destroy
*/
private
static
int
LIFE_CYCLE_STATUS_DESTROY
=
103
;
/**
* 记录当前Activity的生命周期状态
*/
private
void
recordActivityLifeCycleStatus
(
Activity
activity
,
int
lifeCycleStatus
)
{
ActivityLifecycleInfo
activityLifecaycleInfo
=
DokitConstant
.
ACTIVITY_LIFECYCLE_INFOS
.
get
(
activity
.
getClass
().
getCanonicalName
());
if
(
activityLifecaycleInfo
==
null
)
{
activityLifecaycleInfo
=
new
ActivityLifecycleInfo
();
activityLifecaycleInfo
.
setActivityName
(
activity
.
getClass
().
getCanonicalName
());
if
(
lifeCycleStatus
==
LIFE_CYCLE_STATUS_CREATE
)
{
activityLifecaycleInfo
.
setActivityLifeCycleCount
(
0
);
}
else
if
(
lifeCycleStatus
==
LIFE_CYCLE_STATUS_RESUME
)
{
activityLifecaycleInfo
.
setActivityLifeCycleCount
(
activityLifecaycleInfo
.
getActivityLifeCycleCount
()
+
1
);
}
else
if
(
lifeCycleStatus
==
LIFE_CYCLE_STATUS_STOPPED
)
{
activityLifecaycleInfo
.
setInvokeStopMethod
(
true
);
}
DokitConstant
.
ACTIVITY_LIFECYCLE_INFOS
.
put
(
activity
.
getClass
().
getCanonicalName
(),
activityLifecaycleInfo
);
}
else
{
activityLifecaycleInfo
.
setActivityName
(
activity
.
getClass
().
getCanonicalName
());
if
(
lifeCycleStatus
==
LIFE_CYCLE_STATUS_CREATE
)
{
activityLifecaycleInfo
.
setActivityLifeCycleCount
(
0
);
}
else
if
(
lifeCycleStatus
==
LIFE_CYCLE_STATUS_RESUME
)
{
activityLifecaycleInfo
.
setActivityLifeCycleCount
(
activityLifecaycleInfo
.
getActivityLifeCycleCount
()
+
1
);
}
else
if
(
lifeCycleStatus
==
LIFE_CYCLE_STATUS_STOPPED
)
{
activityLifecaycleInfo
.
setInvokeStopMethod
(
true
);
}
else
if
(
lifeCycleStatus
==
LIFE_CYCLE_STATUS_DESTROY
)
{
DokitConstant
.
ACTIVITY_LIFECYCLE_INFOS
.
remove
(
activity
.
getClass
().
getCanonicalName
());
}
}
}
}
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/DokitFragmentLifecycleCallbacks.java
0 → 100644
浏览文件 @
af0d82da
package
com.didichuxing.doraemonkit
;
import
android.content.Context
;
import
android.support.v4.app.Fragment
;
import
android.support.v4.app.FragmentManager
;
import
com.didichuxing.doraemonkit.constant.DokitConstant
;
import
com.didichuxing.doraemonkit.kit.dbdebug.DbDebugFragment
;
import
com.didichuxing.doraemonkit.util.LifecycleListenerUtil
;
import
com.didichuxing.doraemonkit.util.LogHelper
;
/**
* ================================================
* 作 者:jint(金台)
* 版 本:1.0
* 创建日期:2019-12-31-10:56
* 描 述:全局的fragment 生命周期回调
* 修订历史:
* ================================================
*/
public
class
DokitFragmentLifecycleCallbacks
extends
FragmentManager
.
FragmentLifecycleCallbacks
{
private
static
final
String
TAG
=
"DokitFragmentLifecycleCallbacks"
;
@Override
public
void
onFragmentAttached
(
FragmentManager
fm
,
Fragment
fragment
,
Context
context
)
{
super
.
onFragmentAttached
(
fm
,
fragment
,
context
);
LogHelper
.
d
(
TAG
,
"onFragmentAttached: "
+
fragment
);
if
(
fragment
instanceof
DbDebugFragment
)
{
DokitConstant
.
DB_DEBUG_FRAGMENT
=
(
DbDebugFragment
)
fragment
;
}
for
(
LifecycleListenerUtil
.
LifecycleListener
listener
:
LifecycleListenerUtil
.
LIFECYCLE_LISTENERS
)
{
listener
.
onFragmentAttached
(
fragment
);
}
}
@Override
public
void
onFragmentDetached
(
FragmentManager
fm
,
Fragment
fragment
)
{
super
.
onFragmentDetached
(
fm
,
fragment
);
LogHelper
.
d
(
TAG
,
"onFragmentDetached: "
+
fragment
);
if
(
fragment
instanceof
DbDebugFragment
)
{
DokitConstant
.
DB_DEBUG_FRAGMENT
=
null
;
}
for
(
LifecycleListenerUtil
.
LifecycleListener
listener
:
LifecycleListenerUtil
.
LIFECYCLE_LISTENERS
)
{
listener
.
onFragmentDetached
(
fragment
);
}
}
}
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/DoraemonKitReal.java
浏览文件 @
af0d82da
package
com.didichuxing.doraemonkit
;
import
android.app.Activity
;
import
android.app.Application
;
import
android.content.Context
;
import
android.os.Build
;
import
android.os.Bundle
;
import
android.support.v4.app.Fragment
;
import
android.support.v4.app.FragmentActivity
;
import
android.support.v4.app.FragmentManager
;
import
android.widget.Toast
;
import
com.amitshekhar.DebugDB
;
import
com.amitshekhar.debug.encrypt.sqlite.DebugDBEncryptFactory
;
...
...
@@ -19,8 +12,8 @@ import com.blankj.utilcode.util.NetworkUtils;
import
com.blankj.utilcode.util.ToastUtils
;
import
com.blankj.utilcode.util.Utils
;
import
com.didichuxing.doraemonkit.aop.OkHttpHook
;
import
com.didichuxing.doraemonkit.constant.DokitConstant
;
import
com.didichuxing.doraemonkit.config.PerformanceSpInfoConfig
;
import
com.didichuxing.doraemonkit.constant.DokitConstant
;
import
com.didichuxing.doraemonkit.constant.SharedPrefsKey
;
import
com.didichuxing.doraemonkit.kit.Category
;
import
com.didichuxing.doraemonkit.kit.IKit
;
...
...
@@ -30,7 +23,6 @@ import com.didichuxing.doraemonkit.kit.colorpick.ColorPickerKit;
import
com.didichuxing.doraemonkit.kit.crash.CrashCaptureKit
;
import
com.didichuxing.doraemonkit.kit.custom.CustomKit
;
import
com.didichuxing.doraemonkit.kit.dataclean.DataCleanKit
;
import
com.didichuxing.doraemonkit.kit.dbdebug.DbDebugFragment
;
import
com.didichuxing.doraemonkit.kit.dbdebug.DbDebugKit
;
import
com.didichuxing.doraemonkit.kit.fileexplorer.FileExplorerKit
;
import
com.didichuxing.doraemonkit.kit.gpsmock.GpsMockKit
;
...
...
@@ -59,17 +51,13 @@ import com.didichuxing.doraemonkit.kit.weaknetwork.WeakNetworkKit;
import
com.didichuxing.doraemonkit.kit.webdoor.WebDoorKit
;
import
com.didichuxing.doraemonkit.kit.webdoor.WebDoorManager
;
import
com.didichuxing.doraemonkit.ui.UniversalActivity
;
import
com.didichuxing.doraemonkit.ui.base.AbsDokitView
;
import
com.didichuxing.doraemonkit.ui.base.DokitIntent
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
Proxy
;
import
com.didichuxing.doraemonkit.ui.main.FloatIconDokitView
;
import
com.didichuxing.doraemonkit.ui.main.ToolPanelDokitView
;
import
com.didichuxing.doraemonkit.util.DoraemonStatisticsUtil
;
import
com.didichuxing.doraemonkit.util.LifecycleListenerUtil
;
import
com.didichuxing.doraemonkit.util.LogHelper
;
import
com.didichuxing.doraemonkit.util.PermissionUtil
;
import
com.didichuxing.doraemonkit.util.SharedPrefsUtil
;
import
com.didichuxing.doraemonkit.util.UIUtils
;
import
com.sjtu.yifei.AbridgeCallBack
;
import
com.sjtu.yifei.IBridge
;
...
...
@@ -77,7 +65,6 @@ import java.lang.reflect.InvocationTargetException;
import
java.lang.reflect.Method
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
/**
* Created by jintai on 2019/12/18.
...
...
@@ -87,8 +74,6 @@ class DoraemonKitReal {
private
static
final
String
TAG
=
"DoraemonKitReal"
;
private
static
boolean
sHasRequestPermission
;
private
static
boolean
sHasInit
=
false
;
/**
...
...
@@ -96,40 +81,13 @@ class DoraemonKitReal {
*/
private
static
boolean
sEnableUpload
=
true
;
private
static
Application
APPLICATION
;
private
static
DbDebugFragment
mDbDebugFragment
;
/**
* 用来判断是否接入了dokit插件 如果安装了插件会动态修改这个值为true
*/
private
static
boolean
IS_HOOK
=
false
;
/**
* fragment 生命周期回调
*/
private
static
FragmentManager
.
FragmentLifecycleCallbacks
sFragmentLifecycleCallbacks
=
new
FragmentManager
.
FragmentLifecycleCallbacks
()
{
@Override
public
void
onFragmentAttached
(
FragmentManager
fm
,
Fragment
fragment
,
Context
context
)
{
super
.
onFragmentAttached
(
fm
,
fragment
,
context
);
LogHelper
.
d
(
TAG
,
"onFragmentAttached: "
+
fragment
);
if
(
fragment
instanceof
DbDebugFragment
)
{
mDbDebugFragment
=
(
DbDebugFragment
)
fragment
;
}
for
(
LifecycleListenerUtil
.
LifecycleListener
listener
:
LifecycleListenerUtil
.
LIFECYCLE_LISTENERS
)
{
listener
.
onFragmentAttached
(
fragment
);
}
}
@Override
public
void
onFragmentDetached
(
FragmentManager
fm
,
Fragment
fragment
)
{
super
.
onFragmentDetached
(
fm
,
fragment
);
LogHelper
.
d
(
TAG
,
"onFragmentDetached: "
+
fragment
);
if
(
fragment
instanceof
DbDebugFragment
)
{
mDbDebugFragment
=
null
;
}
for
(
LifecycleListenerUtil
.
LifecycleListener
listener
:
LifecycleListenerUtil
.
LIFECYCLE_LISTENERS
)
{
listener
.
onFragmentDetached
(
fragment
);
}
}
};
static
void
setDebug
(
boolean
debug
)
{
LogHelper
.
setDebug
(
debug
);
...
...
@@ -170,8 +128,8 @@ class DoraemonKitReal {
sHasInit
=
true
;
//赋值
APPLICATION
=
app
;
String
str
floa
tMode
=
SharedPrefsUtil
.
getString
(
app
,
SharedPrefsKey
.
FLOAT_START_MODE
,
"normal"
);
if
(
str
floa
tMode
.
equals
(
"normal"
))
{
String
str
Doki
tMode
=
SharedPrefsUtil
.
getString
(
app
,
SharedPrefsKey
.
FLOAT_START_MODE
,
"normal"
);
if
(
str
Doki
tMode
.
equals
(
"normal"
))
{
DokitConstant
.
IS_NORMAL_FLOAT_MODE
=
true
;
}
else
{
DokitConstant
.
IS_NORMAL_FLOAT_MODE
=
false
;
...
...
@@ -186,124 +144,9 @@ class DoraemonKitReal {
OkHttpHook
.
installInterceptor
();
LogHelper
.
i
(
TAG
,
"IS_HOOK====>"
+
IS_HOOK
);
//注册全局的activity生命周期回调
app
.
registerActivityLifecycleCallbacks
(
new
Application
.
ActivityLifecycleCallbacks
()
{
int
startedActivityCounts
;
@Override
public
void
onActivityCreated
(
Activity
activity
,
Bundle
savedInstanceState
)
{
if
(
ignoreCurrentActivityDokitView
(
activity
))
{
return
;
}
if
(
activity
instanceof
FragmentActivity
)
{
//注册fragment生命周期回调
((
FragmentActivity
)
activity
).
getSupportFragmentManager
().
registerFragmentLifecycleCallbacks
(
sFragmentLifecycleCallbacks
,
true
);
}
}
@Override
public
void
onActivityStarted
(
Activity
activity
)
{
if
(
ignoreCurrentActivityDokitView
(
activity
))
{
return
;
}
if
(
startedActivityCounts
==
0
)
{
DokitViewManager
.
getInstance
().
notifyForeground
();
}
startedActivityCounts
++;
}
/**
* 当activity进入可交互状态
* @param activity
*/
@Override
public
void
onActivityResumed
(
Activity
activity
)
{
//如果是leakCanary页面不进行添加
if
(
ignoreCurrentActivityDokitView
(
activity
))
{
return
;
}
//设置app的直接子view的Id
if
(
UIUtils
.
getDokitAppContentView
(
activity
)
!=
null
)
{
UIUtils
.
getDokitAppContentView
(
activity
).
setId
(
R
.
id
.
dokit_app_contentview_id
);
}
if
(
DokitConstant
.
IS_NORMAL_FLOAT_MODE
)
{
//显示内置dokitView icon
resumeAndAttachDokitViews
(
activity
);
}
else
{
//悬浮窗权限 vivo 华为可以不需要动态权限 小米需要
if
(
PermissionUtil
.
canDrawOverlays
(
activity
))
{
//系统悬浮窗需要判断浮标是否已经显示
if
(!
DokitConstant
.
MAIN_ICON_HAS_SHOW
)
{
showSystemMainIcon
();
}
//生命周期回调
systemDokitViewOnResume
(
activity
);
}
else
{
//请求悬浮窗权限
requestPermission
(
activity
);
}
}
for
(
LifecycleListenerUtil
.
LifecycleListener
listener
:
LifecycleListenerUtil
.
LIFECYCLE_LISTENERS
)
{
listener
.
onActivityResumed
(
activity
);
}
}
@Override
public
void
onActivityPaused
(
Activity
activity
)
{
if
(
ignoreCurrentActivityDokitView
(
activity
))
{
return
;
}
for
(
LifecycleListenerUtil
.
LifecycleListener
listener
:
LifecycleListenerUtil
.
LIFECYCLE_LISTENERS
)
{
listener
.
onActivityPaused
(
activity
);
}
//sCurrentResumedActivity = null;
}
@Override
public
void
onActivityStopped
(
Activity
activity
)
{
if
(
ignoreCurrentActivityDokitView
(
activity
))
{
return
;
}
startedActivityCounts
--;
//通知app退出到后台
if
(
startedActivityCounts
==
0
)
{
DokitViewManager
.
getInstance
().
notifyBackground
();
}
}
@Override
public
void
onActivitySaveInstanceState
(
Activity
activity
,
Bundle
outState
)
{
if
(
ignoreCurrentActivityDokitView
(
activity
))
{
return
;
}
}
@Override
public
void
onActivityDestroyed
(
Activity
activity
)
{
if
(
ignoreCurrentActivityDokitView
(
activity
))
{
return
;
}
//注销fragment的生命周期回调
if
(
activity
instanceof
FragmentActivity
)
{
((
FragmentActivity
)
activity
).
getSupportFragmentManager
().
unregisterFragmentLifecycleCallbacks
(
sFragmentLifecycleCallbacks
);
}
DokitViewManager
.
getInstance
().
onActivityDestroy
(
activity
);
}
});
app
.
registerActivityLifecycleCallbacks
(
new
DokitActivityLifecycleCallbacks
());
DokitConstant
.
KIT_MAPS
.
clear
();
//两个条件只要满足一个就可以
if
(
IS_HOOK
)
{
}
//业务专区
List
<
IKit
>
biz
=
new
ArrayList
<>();
//weex专区
...
...
@@ -433,7 +276,7 @@ class DoraemonKitReal {
DokitConstant
.
KIT_MAPS
.
put
(
Category
.
CLOSE
,
exit
);
DokitConstant
.
KIT_MAPS
.
put
(
Category
.
VERSION
,
version
);
//初始化悬浮窗管理类
DokitViewManager
.
getInstance
().
init
(
app
);
DokitViewManager
Proxy
.
getInstance
().
init
(
app
);
//上传app基本信息便于统计
if
(
sEnableUpload
)
{
DoraemonStatisticsUtil
.
uploadUserInfo
(
app
);
...
...
@@ -475,8 +318,8 @@ class DoraemonKitReal {
ToastUtils
.
showShort
(
"当前网络已断开"
);
try
{
DebugDB
.
shutDown
();
if
(
mDbDebugFragment
!=
null
)
{
mDbDebugFragment
.
networkChanged
(
NetworkUtils
.
NetworkType
.
NETWORK_NO
);
if
(
DokitConstant
.
DB_DEBUG_FRAGMENT
!=
null
)
{
DokitConstant
.
DB_DEBUG_FRAGMENT
.
networkChanged
(
NetworkUtils
.
NetworkType
.
NETWORK_NO
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
...
...
@@ -491,8 +334,8 @@ class DoraemonKitReal {
DebugDB
.
shutDown
();
DebugDB
.
initialize
(
APPLICATION
,
new
DebugDBFactory
());
DebugDB
.
initialize
(
APPLICATION
,
new
DebugDBEncryptFactory
());
if
(
mDbDebugFragment
!=
null
)
{
mDbDebugFragment
.
networkChanged
(
networkType
);
if
(
DokitConstant
.
DB_DEBUG_FRAGMENT
!=
null
)
{
DokitConstant
.
DB_DEBUG_FRAGMENT
.
networkChanged
(
networkType
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
...
...
@@ -567,15 +410,6 @@ class DoraemonKitReal {
}
private
static
void
requestPermission
(
Context
context
)
{
if
(!
PermissionUtil
.
canDrawOverlays
(
context
)
&&
!
sHasRequestPermission
)
{
Toast
.
makeText
(
context
,
context
.
getText
(
R
.
string
.
dk_float_permission_toast
),
Toast
.
LENGTH_SHORT
).
show
();
//请求悬浮窗权限
PermissionUtil
.
requestDrawOverlays
(
context
);
sHasRequestPermission
=
true
;
}
}
/**
* 显示系统悬浮窗icon
*/
...
...
@@ -590,48 +424,10 @@ class DoraemonKitReal {
DokitIntent
intent
=
new
DokitIntent
(
FloatIconDokitView
.
class
);
intent
.
mode
=
DokitIntent
.
MODE_SINGLE_INSTANCE
;
DokitViewManager
.
getInstance
().
attach
(
intent
);
DokitViewManager
Proxy
.
getInstance
().
attach
(
intent
);
DokitConstant
.
MAIN_ICON_HAS_SHOW
=
true
;
}
/**
* 显示所有应该显示的dokitView
*
* @param activity
*/
private
static
void
resumeAndAttachDokitViews
(
Activity
activity
)
{
DokitViewManager
.
getInstance
().
resumeAndAttachDokitViews
(
activity
);
}
/**
* 生命周期回调
*
* @param activity
*/
private
static
void
systemDokitViewOnResume
(
Activity
activity
)
{
Map
<
String
,
AbsDokitView
>
dokitViewMap
=
DokitViewManager
.
getInstance
().
getDokitViews
(
activity
);
for
(
AbsDokitView
absDokitView
:
dokitViewMap
.
values
())
{
absDokitView
.
onResume
();
}
}
/**
* 是否忽略在当前的activity上显示浮标
*
* @param activity
* @return
*/
private
static
boolean
ignoreCurrentActivityDokitView
(
Activity
activity
)
{
String
[]
ignoreActivityClassNames
=
new
String
[]{
"DisplayLeakActivity"
};
for
(
String
activityClassName
:
ignoreActivityClassNames
)
{
if
(
activity
.
getClass
().
getSimpleName
().
equals
(
activityClassName
))
{
return
true
;
}
}
return
false
;
}
static
void
show
()
{
DokitConstant
.
AWAYS_SHOW_MAIN_ICON
=
true
;
...
...
@@ -648,14 +444,14 @@ class DoraemonKitReal {
static
void
showToolPanel
()
{
DokitIntent
dokitViewIntent
=
new
DokitIntent
(
ToolPanelDokitView
.
class
);
dokitViewIntent
.
mode
=
DokitIntent
.
MODE_SINGLE_INSTANCE
;
DokitViewManager
.
getInstance
().
attach
(
dokitViewIntent
);
DokitViewManager
Proxy
.
getInstance
().
attach
(
dokitViewIntent
);
}
static
void
hide
()
{
DokitConstant
.
MAIN_ICON_HAS_SHOW
=
false
;
DokitConstant
.
AWAYS_SHOW_MAIN_ICON
=
false
;
DokitViewManager
.
getInstance
().
detach
(
FloatIconDokitView
.
class
.
getSimpleName
());
DokitViewManager
Proxy
.
getInstance
().
detach
(
FloatIconDokitView
.
class
.
getSimpleName
());
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/config/GpsMockConfig.java
浏览文件 @
af0d82da
...
...
@@ -4,7 +4,7 @@ import android.content.Context;
import
com.didichuxing.doraemonkit.constant.CachesKey
;
import
com.didichuxing.doraemonkit.constant.SharedPrefsKey
;
import
com.didichuxing.doraemonkit.
core.
model.LatLng
;
import
com.didichuxing.doraemonkit.model.LatLng
;
import
com.didichuxing.doraemonkit.util.CacheUtils
;
import
com.didichuxing.doraemonkit.util.SharedPrefsUtil
;
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/constant/DokitConstant.java
浏览文件 @
af0d82da
...
...
@@ -3,10 +3,14 @@ package com.didichuxing.doraemonkit.constant;
import
android.util.SparseArray
;
import
com.didichuxing.doraemonkit.kit.IKit
;
import
com.didichuxing.doraemonkit.kit.dbdebug.DbDebugFragment
;
import
com.didichuxing.doraemonkit.model.ActivityLifecycleInfo
;
import
com.didichuxing.doraemonkit.ui.kit.KitItem
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* ================================================
...
...
@@ -35,8 +39,18 @@ public class DokitConstant {
public
static
String
PRODUCT_ID
=
""
;
/**
* 全局DBDebugFragment
*/
public
static
DbDebugFragment
DB_DEBUG_FRAGMENT
=
null
;
/**
* 全局的dokit Kit信息
*/
public
static
SparseArray
<
List
<
IKit
>>
KIT_MAPS
=
new
SparseArray
<>();
public
static
Map
<
String
,
ActivityLifecycleInfo
>
ACTIVITY_LIFECYCLE_INFOS
=
new
HashMap
<>();
public
static
List
<
IKit
>
getKitList
(
int
catgory
)
{
if
(
KIT_MAPS
.
get
(
catgory
)
!=
null
)
{
return
new
ArrayList
<>(
KIT_MAPS
.
get
(
catgory
));
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/alignruler/AlignRulerInfoDokitView.java
浏览文件 @
af0d82da
...
...
@@ -14,7 +14,7 @@ import com.didichuxing.doraemonkit.R;
import
com.didichuxing.doraemonkit.config.AlignRulerConfig
;
import
com.didichuxing.doraemonkit.ui.base.AbsDokitView
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewLayoutParams
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
Proxy
;
import
com.didichuxing.doraemonkit.util.UIUtils
;
/**
...
...
@@ -60,7 +60,7 @@ public class AlignRulerInfoDokitView extends AbsDokitView implements AlignRulerM
postDelayed
(
new
Runnable
()
{
@Override
public
void
run
()
{
mMarker
=
(
AlignRulerMarkerDokitView
)
DokitViewManager
.
getInstance
().
getDokitView
(
ActivityUtils
.
getTopActivity
(),
AlignRulerMarkerDokitView
.
class
.
getSimpleName
());
mMarker
=
(
AlignRulerMarkerDokitView
)
DokitViewManager
Proxy
.
getInstance
().
getDokitView
(
ActivityUtils
.
getTopActivity
(),
AlignRulerMarkerDokitView
.
class
.
getSimpleName
());
if
(
mMarker
!=
null
)
{
mMarker
.
addPositionChangeListener
(
AlignRulerInfoDokitView
.
this
);
}
...
...
@@ -83,9 +83,9 @@ public class AlignRulerInfoDokitView extends AbsDokitView implements AlignRulerM
@Override
public
void
onClick
(
View
v
)
{
AlignRulerConfig
.
setAlignRulerOpen
(
getContext
(),
false
);
DokitViewManager
.
getInstance
().
detach
(
AlignRulerMarkerDokitView
.
class
.
getSimpleName
());
DokitViewManager
.
getInstance
().
detach
(
AlignRulerLineDokitView
.
class
.
getSimpleName
());
DokitViewManager
.
getInstance
().
detach
(
AlignRulerInfoDokitView
.
class
.
getSimpleName
());
DokitViewManager
Proxy
.
getInstance
().
detach
(
AlignRulerMarkerDokitView
.
class
.
getSimpleName
());
DokitViewManager
Proxy
.
getInstance
().
detach
(
AlignRulerLineDokitView
.
class
.
getSimpleName
());
DokitViewManager
Proxy
.
getInstance
().
detach
(
AlignRulerInfoDokitView
.
class
.
getSimpleName
());
}
});
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/alignruler/AlignRulerKit.java
浏览文件 @
af0d82da
...
...
@@ -7,7 +7,7 @@ import com.didichuxing.doraemonkit.config.AlignRulerConfig;
import
com.didichuxing.doraemonkit.kit.AbstractKit
;
import
com.didichuxing.doraemonkit.kit.Category
;
import
com.didichuxing.doraemonkit.ui.base.DokitIntent
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
Proxy
;
/**
* Created by wanglikun on 2018/9/19.
...
...
@@ -31,19 +31,19 @@ public class AlignRulerKit extends AbstractKit {
@Override
public
void
onClick
(
Context
context
)
{
DokitViewManager
.
getInstance
().
detachToolPanel
();
DokitViewManager
Proxy
.
getInstance
().
detachToolPanel
();
DokitIntent
pageIntent
=
new
DokitIntent
(
AlignRulerMarkerDokitView
.
class
);
pageIntent
.
mode
=
DokitIntent
.
MODE_SINGLE_INSTANCE
;
DokitViewManager
.
getInstance
().
attach
(
pageIntent
);
DokitViewManager
Proxy
.
getInstance
().
attach
(
pageIntent
);
pageIntent
=
new
DokitIntent
(
AlignRulerLineDokitView
.
class
);
pageIntent
.
mode
=
DokitIntent
.
MODE_SINGLE_INSTANCE
;
DokitViewManager
.
getInstance
().
attach
(
pageIntent
);
DokitViewManager
Proxy
.
getInstance
().
attach
(
pageIntent
);
pageIntent
=
new
DokitIntent
(
AlignRulerInfoDokitView
.
class
);
pageIntent
.
mode
=
DokitIntent
.
MODE_SINGLE_INSTANCE
;
DokitViewManager
.
getInstance
().
attach
(
pageIntent
);
DokitViewManager
Proxy
.
getInstance
().
attach
(
pageIntent
);
AlignRulerConfig
.
setAlignRulerOpen
(
context
,
true
);
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/alignruler/AlignRulerLineDokitView.java
浏览文件 @
af0d82da
...
...
@@ -7,15 +7,13 @@ import android.view.WindowManager;
import
android.widget.FrameLayout
;
import
com.blankj.utilcode.util.ActivityUtils
;
import
com.blankj.utilcode.util.BarUtils
;
import
com.blankj.utilcode.util.ConvertUtils
;
import
com.blankj.utilcode.util.ScreenUtils
;
import
com.didichuxing.doraemonkit.R
;
import
com.didichuxing.doraemonkit.ui.alignruler.AlignLineView
;
import
com.didichuxing.doraemonkit.ui.base.AbsDokitView
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewLayoutParams
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.util.LogHelper
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManagerProxy
;
/**
* Created by jintai on 2019/09/26.
...
...
@@ -54,7 +52,7 @@ public class AlignRulerLineDokitView extends AbsDokitView implements AlignRulerM
postDelayed
(
new
Runnable
()
{
@Override
public
void
run
()
{
mMarker
=
(
AlignRulerMarkerDokitView
)
DokitViewManager
.
getInstance
().
getDokitView
(
ActivityUtils
.
getTopActivity
(),
AlignRulerMarkerDokitView
.
class
.
getSimpleName
());
mMarker
=
(
AlignRulerMarkerDokitView
)
DokitViewManager
Proxy
.
getInstance
().
getDokitView
(
ActivityUtils
.
getTopActivity
(),
AlignRulerMarkerDokitView
.
class
.
getSimpleName
());
if
(
mMarker
!=
null
)
{
mMarker
.
addPositionChangeListener
(
AlignRulerLineDokitView
.
this
);
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/alignruler/AlignRulerSettingFragment.java
浏览文件 @
af0d82da
...
...
@@ -11,7 +11,7 @@ import com.didichuxing.doraemonkit.R;
import
com.didichuxing.doraemonkit.config.AlignRulerConfig
;
import
com.didichuxing.doraemonkit.ui.base.BaseFragment
;
import
com.didichuxing.doraemonkit.ui.base.DokitIntent
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
Proxy
;
import
com.didichuxing.doraemonkit.ui.setting.SettingItem
;
import
com.didichuxing.doraemonkit.ui.setting.SettingItemAdapter
;
import
com.didichuxing.doraemonkit.ui.widget.titlebar.HomeTitleBar
;
...
...
@@ -50,11 +50,11 @@ public class AlignRulerSettingFragment extends BaseFragment {
if
(
data
.
desc
==
R
.
string
.
dk_kit_align_ruler
)
{
if
(
on
)
{
DokitIntent
pageIntent
=
new
DokitIntent
(
AlignRulerMarkerDokitView
.
class
);
DokitViewManager
.
getInstance
().
attach
(
pageIntent
);
DokitViewManager
.
getInstance
().
attach
(
new
DokitIntent
(
AlignRulerLineDokitView
.
class
));
DokitViewManager
Proxy
.
getInstance
().
attach
(
pageIntent
);
DokitViewManager
Proxy
.
getInstance
().
attach
(
new
DokitIntent
(
AlignRulerLineDokitView
.
class
));
}
else
{
DokitViewManager
.
getInstance
().
detach
(
AlignRulerMarkerDokitView
.
class
);
DokitViewManager
.
getInstance
().
detach
(
AlignRulerLineDokitView
.
class
);
DokitViewManager
Proxy
.
getInstance
().
detach
(
AlignRulerMarkerDokitView
.
class
);
DokitViewManager
Proxy
.
getInstance
().
detach
(
AlignRulerLineDokitView
.
class
);
}
AlignRulerConfig
.
setAlignRulerOpen
(
getContext
(),
on
);
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/colorpick/ColorPickerDokitView.java
浏览文件 @
af0d82da
...
...
@@ -14,7 +14,7 @@ import com.blankj.utilcode.util.ActivityUtils;
import
com.didichuxing.doraemonkit.R
;
import
com.didichuxing.doraemonkit.ui.base.AbsDokitView
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewLayoutParams
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
Proxy
;
import
com.didichuxing.doraemonkit.ui.colorpicker.ColorPickerView
;
import
com.didichuxing.doraemonkit.util.ImageUtil
;
import
com.didichuxing.doraemonkit.util.UIUtils
;
...
...
@@ -68,7 +68,7 @@ public class ColorPickerDokitView extends AbsDokitView {
@Override
public
void
onCreate
(
Context
context
)
{
mInfoDokitView
=
(
ColorPickerInfoDokitView
)
DokitViewManager
.
getInstance
().
getDokitView
(
ActivityUtils
.
getTopActivity
(),
ColorPickerInfoDokitView
.
class
.
getSimpleName
());
mInfoDokitView
=
(
ColorPickerInfoDokitView
)
DokitViewManager
Proxy
.
getInstance
().
getDokitView
(
ActivityUtils
.
getTopActivity
(),
ColorPickerInfoDokitView
.
class
.
getSimpleName
());
mImageCapture
=
new
ImageCapture
();
mImageCapture
.
init
(
context
,
getBundle
());
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/colorpick/ColorPickerInfoDokitView.java
浏览文件 @
af0d82da
...
...
@@ -16,7 +16,7 @@ import com.didichuxing.doraemonkit.config.ColorPickConfig;
import
com.didichuxing.doraemonkit.ui.TranslucentActivity
;
import
com.didichuxing.doraemonkit.ui.base.AbsDokitView
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewLayoutParams
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
Proxy
;
import
com.didichuxing.doraemonkit.util.ColorUtil
;
import
com.didichuxing.doraemonkit.util.UIUtils
;
...
...
@@ -59,8 +59,8 @@ public class ColorPickerInfoDokitView extends AbsDokitView {
@Override
public
void
onClick
(
View
v
)
{
ColorPickConfig
.
setColorPickOpen
(
getContext
(),
false
);
DokitViewManager
.
getInstance
().
detach
(
ColorPickerDokitView
.
class
.
getSimpleName
());
DokitViewManager
.
getInstance
().
detach
(
ColorPickerInfoDokitView
.
class
.
getSimpleName
());
DokitViewManager
Proxy
.
getInstance
().
detach
(
ColorPickerDokitView
.
class
.
getSimpleName
());
DokitViewManager
Proxy
.
getInstance
().
detach
(
ColorPickerInfoDokitView
.
class
.
getSimpleName
());
//取色器kit是依赖在当前透明的Activity上的 所以关闭控件时需要finish
if
(
ActivityUtils
.
getTopActivity
()
!=
null
&&
ActivityUtils
.
getTopActivity
()
instanceof
TranslucentActivity
)
{
ActivityUtils
.
getTopActivity
().
finish
();
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/colorpick/ColorPickerSettingFragment.java
浏览文件 @
af0d82da
...
...
@@ -15,7 +15,7 @@ import com.didichuxing.doraemonkit.constant.DokitConstant;
import
com.didichuxing.doraemonkit.constant.RequestCode
;
import
com.didichuxing.doraemonkit.ui.base.BaseFragment
;
import
com.didichuxing.doraemonkit.ui.base.DokitIntent
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
Proxy
;
/**
* Created by wanglikun on 2018/9/15.
...
...
@@ -63,16 +63,16 @@ public class ColorPickerSettingFragment extends BaseFragment {
* @param data
*/
private
void
showColorPicker
(
Intent
data
)
{
DokitViewManager
.
getInstance
().
detachToolPanel
();
DokitViewManager
Proxy
.
getInstance
().
detachToolPanel
();
DokitIntent
pageIntent
=
new
DokitIntent
(
ColorPickerInfoDokitView
.
class
);
pageIntent
.
mode
=
DokitIntent
.
MODE_SINGLE_INSTANCE
;
DokitViewManager
.
getInstance
().
attach
(
pageIntent
);
DokitViewManager
Proxy
.
getInstance
().
attach
(
pageIntent
);
pageIntent
=
new
DokitIntent
(
ColorPickerDokitView
.
class
);
pageIntent
.
bundle
=
data
.
getExtras
();
pageIntent
.
mode
=
DokitIntent
.
MODE_SINGLE_INSTANCE
;
DokitViewManager
.
getInstance
().
attach
(
pageIntent
);
DokitViewManager
Proxy
.
getInstance
().
attach
(
pageIntent
);
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/custom/MonitorDataUploadFragment.java
浏览文件 @
af0d82da
...
...
@@ -15,7 +15,7 @@ import com.didichuxing.doraemonkit.config.PerformanceSpInfoConfig;
import
com.didichuxing.doraemonkit.kit.common.PerformanceDataManager
;
import
com.didichuxing.doraemonkit.ui.base.BaseFragment
;
import
com.didichuxing.doraemonkit.ui.base.DokitIntent
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
Proxy
;
import
com.didichuxing.doraemonkit.ui.dialog.DialogInfo
;
import
com.didichuxing.doraemonkit.ui.dialog.SimpleDialogListener
;
import
com.didichuxing.doraemonkit.ui.setting.SettingItem
;
...
...
@@ -112,7 +112,7 @@ public class MonitorDataUploadFragment extends BaseFragment {
mCommitButton
.
setText
(
R
.
string
.
dk_platform_monitor_data_button
);
PerformanceDataManager
.
getInstance
().
stopUploadMonitorData
();
if
(
PerformanceSpInfoConfig
.
isFrameUiOpen
(
getContext
()))
{
DokitViewManager
.
getInstance
().
detach
(
RealTimePerformDataDokitView
.
class
.
getSimpleName
());
DokitViewManager
Proxy
.
getInstance
().
detach
(
RealTimePerformDataDokitView
.
class
.
getSimpleName
());
}
return
true
;
...
...
@@ -135,7 +135,7 @@ public class MonitorDataUploadFragment extends BaseFragment {
if
(
PerformanceSpInfoConfig
.
isFrameUiOpen
(
getContext
()))
{
DokitIntent
dokitIntent
=
new
DokitIntent
(
RealTimePerformDataDokitView
.
class
);
dokitIntent
.
mode
=
DokitIntent
.
MODE_SINGLE_INSTANCE
;
DokitViewManager
.
getInstance
().
attach
(
dokitIntent
);
DokitViewManager
Proxy
.
getInstance
().
attach
(
dokitIntent
);
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/custom/RealTimePerformDataDokitView.java
浏览文件 @
af0d82da
...
...
@@ -17,7 +17,7 @@ import com.didichuxing.doraemonkit.kit.common.PerformanceDataManager;
import
com.didichuxing.doraemonkit.kit.timecounter.TimeCounterManager
;
import
com.didichuxing.doraemonkit.ui.base.AbsDokitView
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewLayoutParams
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
Proxy
;
import
com.didichuxing.doraemonkit.util.UIUtils
;
/**
...
...
@@ -94,7 +94,7 @@ public class RealTimePerformDataDokitView extends AbsDokitView {
mIvClose
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
DokitViewManager
.
getInstance
().
detach
(
RealTimePerformDataDokitView
.
class
.
getSimpleName
());
DokitViewManager
Proxy
.
getInstance
().
detach
(
RealTimePerformDataDokitView
.
class
.
getSimpleName
());
}
});
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/gpsmock/GpsMockFragment.java
浏览文件 @
af0d82da
...
...
@@ -16,7 +16,7 @@ import android.widget.Toast;
import
com.didichuxing.doraemonkit.R
;
import
com.didichuxing.doraemonkit.config.GpsMockConfig
;
import
com.didichuxing.doraemonkit.
core.
model.LatLng
;
import
com.didichuxing.doraemonkit.model.LatLng
;
import
com.didichuxing.doraemonkit.ui.base.BaseFragment
;
import
com.didichuxing.doraemonkit.ui.setting.SettingItem
;
import
com.didichuxing.doraemonkit.ui.setting.SettingItemAdapter
;
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/gpsmock/GpsMockKit.java
浏览文件 @
af0d82da
...
...
@@ -5,7 +5,7 @@ import android.content.Context;
import
com.didichuxing.doraemonkit.R
;
import
com.didichuxing.doraemonkit.config.GpsMockConfig
;
import
com.didichuxing.doraemonkit.constant.FragmentIndex
;
import
com.didichuxing.doraemonkit.
core.
model.LatLng
;
import
com.didichuxing.doraemonkit.model.LatLng
;
import
com.didichuxing.doraemonkit.kit.AbstractKit
;
import
com.didichuxing.doraemonkit.kit.Category
;
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/layoutborder/LayoutBorderKit.java
浏览文件 @
af0d82da
...
...
@@ -7,7 +7,7 @@ import com.didichuxing.doraemonkit.config.LayoutBorderConfig;
import
com.didichuxing.doraemonkit.kit.AbstractKit
;
import
com.didichuxing.doraemonkit.kit.Category
;
import
com.didichuxing.doraemonkit.ui.base.DokitIntent
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
Proxy
;
/**
* Created by wanglikun on 2019/1/7
...
...
@@ -32,11 +32,11 @@ public class LayoutBorderKit extends AbstractKit {
public
void
onClick
(
Context
context
)
{
//隐藏当前工具dokitview
DokitViewManager
.
getInstance
().
detachToolPanel
();
DokitViewManager
Proxy
.
getInstance
().
detachToolPanel
();
DokitIntent
intent
=
new
DokitIntent
(
LayoutLevelDokitView
.
class
);
intent
.
mode
=
DokitIntent
.
MODE_SINGLE_INSTANCE
;
DokitViewManager
.
getInstance
().
attach
(
intent
);
DokitViewManager
Proxy
.
getInstance
().
attach
(
intent
);
LayoutBorderManager
.
getInstance
().
start
();
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/layoutborder/LayoutBorderSettingFragment.java
浏览文件 @
af0d82da
...
...
@@ -11,7 +11,7 @@ import com.didichuxing.doraemonkit.R;
import
com.didichuxing.doraemonkit.config.LayoutBorderConfig
;
import
com.didichuxing.doraemonkit.ui.base.BaseFragment
;
import
com.didichuxing.doraemonkit.ui.base.DokitIntent
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
Proxy
;
import
com.didichuxing.doraemonkit.ui.setting.SettingItem
;
import
com.didichuxing.doraemonkit.ui.setting.SettingItemAdapter
;
import
com.didichuxing.doraemonkit.ui.widget.titlebar.HomeTitleBar
;
...
...
@@ -58,9 +58,9 @@ public class LayoutBorderSettingFragment extends BaseFragment {
if
(
on
)
{
DokitIntent
intent
=
new
DokitIntent
(
LayoutLevelDokitView
.
class
);
intent
.
mode
=
DokitIntent
.
MODE_SINGLE_INSTANCE
;
DokitViewManager
.
getInstance
().
attach
(
intent
);
DokitViewManager
Proxy
.
getInstance
().
attach
(
intent
);
}
else
{
DokitViewManager
.
getInstance
().
detach
(
LayoutLevelDokitView
.
class
);
DokitViewManager
Proxy
.
getInstance
().
detach
(
LayoutLevelDokitView
.
class
);
}
LayoutBorderConfig
.
setLayoutLevelOpen
(
on
);
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/layoutborder/LayoutLevelDokitView.java
浏览文件 @
af0d82da
...
...
@@ -14,13 +14,12 @@ import android.widget.FrameLayout;
import
com.blankj.utilcode.util.ActivityUtils
;
import
com.blankj.utilcode.util.ToastUtils
;
import
com.didichuxing.doraemonkit.DoraemonKit
;
import
com.didichuxing.doraemonkit.R
;
import
com.didichuxing.doraemonkit.config.LayoutBorderConfig
;
import
com.didichuxing.doraemonkit.ui.UniversalActivity
;
import
com.didichuxing.doraemonkit.ui.base.AbsDokitView
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewLayoutParams
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
Proxy
;
import
com.didichuxing.doraemonkit.ui.layoutborder.ScalpelFrameLayout
;
import
com.didichuxing.doraemonkit.util.LifecycleListenerUtil
;
import
com.didichuxing.doraemonkit.util.LogHelper
;
...
...
@@ -138,7 +137,7 @@ public class LayoutLevelDokitView extends AbsDokitView {
LayoutBorderConfig
.
setLayoutBorderOpen
(
false
);
LayoutBorderManager
.
getInstance
().
stop
();
DokitViewManager
.
getInstance
().
detach
(
LayoutLevelDokitView
.
this
);
DokitViewManager
Proxy
.
getInstance
().
detach
(
LayoutLevelDokitView
.
this
);
}
});
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/logInfo/LogInfoSettingFragment.java
浏览文件 @
af0d82da
...
...
@@ -11,7 +11,7 @@ import com.didichuxing.doraemonkit.R;
import
com.didichuxing.doraemonkit.config.LogInfoConfig
;
import
com.didichuxing.doraemonkit.ui.base.BaseFragment
;
import
com.didichuxing.doraemonkit.ui.base.DokitIntent
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
Proxy
;
import
com.didichuxing.doraemonkit.ui.setting.SettingItem
;
import
com.didichuxing.doraemonkit.ui.setting.SettingItemAdapter
;
import
com.didichuxing.doraemonkit.ui.widget.titlebar.HomeTitleBar
;
...
...
@@ -50,9 +50,9 @@ public class LogInfoSettingFragment extends BaseFragment {
if
(
on
)
{
DokitIntent
intent
=
new
DokitIntent
(
LogInfoDokitView
.
class
);
intent
.
mode
=
DokitIntent
.
MODE_SINGLE_INSTANCE
;
DokitViewManager
.
getInstance
().
attach
(
intent
);
DokitViewManager
Proxy
.
getInstance
().
attach
(
intent
);
}
else
{
DokitViewManager
.
getInstance
().
detach
(
LogInfoDokitView
.
class
);
DokitViewManager
Proxy
.
getInstance
().
detach
(
LogInfoDokitView
.
class
);
}
LogInfoConfig
.
setLogInfoOpen
(
getContext
(),
on
);
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/room_db/DokitDbManager.java
浏览文件 @
af0d82da
...
...
@@ -3,14 +3,11 @@ package com.didichuxing.doraemonkit.kit.network.room_db;
import
android.text.TextUtils
;
import
com.blankj.utilcode.util.ThreadUtils
;
import
com.chad.library.adapter.base.entity.MultiItemEntity
;
import
com.didichuxing.doraemonkit.BuildConfig
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManagerProxy
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
import
java.nio.file.Path
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.Iterator
;
...
...
@@ -29,7 +26,7 @@ import java.util.Map;
public
class
DokitDbManager
<
T
extends
AbsMockApiBean
>
{
private
final
DokitDatabase
mDb
=
DokitViewManager
.
getInstance
().
getDb
();
private
final
DokitDatabase
mDb
=
DokitViewManager
Proxy
.
getInstance
().
getDb
();
private
Map
<
String
,
List
<
T
>>
mGlobalInterceptApiMaps
=
new
HashMap
<>();
private
Map
<
String
,
List
<
T
>>
mGlobalTemplateApiMaps
=
new
HashMap
<>();
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/temporaryclose/TemporaryCloseKit.java
浏览文件 @
af0d82da
...
...
@@ -6,7 +6,7 @@ import com.didichuxing.doraemonkit.DoraemonKit;
import
com.didichuxing.doraemonkit.R
;
import
com.didichuxing.doraemonkit.kit.AbstractKit
;
import
com.didichuxing.doraemonkit.kit.Category
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
Proxy
;
/**
* Created by wanglikun on 2018/10/26.
...
...
@@ -32,7 +32,7 @@ public class TemporaryCloseKit extends AbstractKit {
@Override
public
void
onClick
(
Context
context
)
{
DokitViewManager
.
getInstance
().
detachToolPanel
();
DokitViewManager
Proxy
.
getInstance
().
detachToolPanel
();
DoraemonKit
.
hide
();
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/timecounter/TimeCounterManager.java
浏览文件 @
af0d82da
...
...
@@ -7,7 +7,7 @@ import com.didichuxing.doraemonkit.kit.timecounter.bean.CounterInfo;
import
com.didichuxing.doraemonkit.kit.timecounter.counter.ActivityCounter
;
import
com.didichuxing.doraemonkit.kit.timecounter.counter.AppCounter
;
import
com.didichuxing.doraemonkit.ui.base.DokitIntent
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
Proxy
;
import
java.util.List
;
...
...
@@ -71,10 +71,10 @@ public class TimeCounterManager {
return
;
}
mIsRunning
=
true
;
DokitViewManager
.
getInstance
().
detachToolPanel
();
DokitViewManager
Proxy
.
getInstance
().
detachToolPanel
();
DokitIntent
pageIntent
=
new
DokitIntent
(
TimeCounterDokitView
.
class
);
pageIntent
.
mode
=
DokitIntent
.
MODE_SINGLE_INSTANCE
;
DokitViewManager
.
getInstance
().
attach
(
pageIntent
);
DokitViewManager
Proxy
.
getInstance
().
attach
(
pageIntent
);
}
...
...
@@ -89,7 +89,7 @@ public class TimeCounterManager {
}
Looper
.
getMainLooper
().
setMessageLogging
(
null
);
mIsRunning
=
false
;
DokitViewManager
.
getInstance
().
detach
(
TimeCounterDokitView
.
class
.
getSimpleName
());
DokitViewManager
Proxy
.
getInstance
().
detach
(
TimeCounterDokitView
.
class
.
getSimpleName
());
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/timecounter/counter/ActivityCounter.java
浏览文件 @
af0d82da
...
...
@@ -3,11 +3,9 @@ package com.didichuxing.doraemonkit.kit.timecounter.counter;
import
android.app.Activity
;
import
com.blankj.utilcode.util.ActivityUtils
;
import
com.didichuxing.doraemonkit.DoraemonKit
;
import
com.didichuxing.doraemonkit.kit.timecounter.TimeCounterDokitView
;
import
com.didichuxing.doraemonkit.kit.timecounter.bean.CounterInfo
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.util.LogHelper
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManagerProxy
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
@@ -125,7 +123,7 @@ public class ActivityCounter {
counterInfo
.
totalCost
=
mTotalCostTime
;
counterInfo
.
otherCost
=
mOtherCostTime
;
mCounterInfos
.
add
(
counterInfo
);
TimeCounterDokitView
dokitView
=
(
TimeCounterDokitView
)
DokitViewManager
.
getInstance
().
getDokitView
(
ActivityUtils
.
getTopActivity
(),
TimeCounterDokitView
.
class
.
getSimpleName
());
TimeCounterDokitView
dokitView
=
(
TimeCounterDokitView
)
DokitViewManager
Proxy
.
getInstance
().
getDokitView
(
ActivityUtils
.
getTopActivity
(),
TimeCounterDokitView
.
class
.
getSimpleName
());
if
(
dokitView
!=
null
)
{
dokitView
.
showInfo
(
counterInfo
);
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/uiperformance/UIPerformanceDisplayDokitView.java
浏览文件 @
af0d82da
...
...
@@ -3,11 +3,10 @@ package com.didichuxing.doraemonkit.kit.uiperformance;
import
android.content.Context
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.WindowManager
;
import
android.widget.FrameLayout
;
import
com.didichuxing.doraemonkit.R
;
import
com.didichuxing.doraemonkit.
core.
model.ViewInfo
;
import
com.didichuxing.doraemonkit.model.ViewInfo
;
import
com.didichuxing.doraemonkit.ui.base.AbsDokitView
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewLayoutParams
;
import
com.didichuxing.doraemonkit.ui.viewcheck.LayoutBorderView
;
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/uiperformance/UIPerformanceInfoDokitView.java
浏览文件 @
af0d82da
...
...
@@ -8,10 +8,10 @@ import android.widget.FrameLayout;
import
android.widget.ImageView
;
import
com.didichuxing.doraemonkit.R
;
import
com.didichuxing.doraemonkit.
core.
model.ViewInfo
;
import
com.didichuxing.doraemonkit.model.ViewInfo
;
import
com.didichuxing.doraemonkit.ui.base.AbsDokitView
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewLayoutParams
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
Proxy
;
import
com.didichuxing.doraemonkit.ui.widget.textview.LabelTextView
;
import
java.util.List
;
...
...
@@ -39,8 +39,8 @@ public class UIPerformanceInfoDokitView extends AbsDokitView implements UIPerfor
mClose
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
DokitViewManager
.
getInstance
().
detach
(
UIPerformanceDisplayDokitView
.
class
.
getSimpleName
());
DokitViewManager
.
getInstance
().
detach
(
UIPerformanceInfoDokitView
.
class
.
getSimpleName
());
DokitViewManager
Proxy
.
getInstance
().
detach
(
UIPerformanceDisplayDokitView
.
class
.
getSimpleName
());
DokitViewManager
Proxy
.
getInstance
().
detach
(
UIPerformanceInfoDokitView
.
class
.
getSimpleName
());
UIPerformanceManager
.
getInstance
().
stop
();
}
});
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/uiperformance/UIPerformanceKit.java
浏览文件 @
af0d82da
...
...
@@ -6,7 +6,7 @@ import com.didichuxing.doraemonkit.R;
import
com.didichuxing.doraemonkit.kit.AbstractKit
;
import
com.didichuxing.doraemonkit.kit.Category
;
import
com.didichuxing.doraemonkit.ui.base.DokitIntent
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
Proxy
;
/**
* Created by wanglikun on 2019-06-27
...
...
@@ -32,14 +32,14 @@ public class UIPerformanceKit extends AbstractKit {
public
void
onClick
(
Context
context
)
{
UIPerformanceManager
.
getInstance
().
start
(
context
);
DokitViewManager
.
getInstance
().
detachToolPanel
();
DokitViewManager
Proxy
.
getInstance
().
detachToolPanel
();
DokitIntent
intent
=
new
DokitIntent
(
UIPerformanceDisplayDokitView
.
class
);
intent
.
mode
=
DokitIntent
.
MODE_SINGLE_INSTANCE
;
DokitViewManager
.
getInstance
().
attach
(
intent
);
DokitViewManager
Proxy
.
getInstance
().
attach
(
intent
);
DokitIntent
intentInfo
=
new
DokitIntent
(
UIPerformanceInfoDokitView
.
class
);
intentInfo
.
mode
=
DokitIntent
.
MODE_SINGLE_INSTANCE
;
DokitViewManager
.
getInstance
().
attach
(
intentInfo
);
DokitViewManager
Proxy
.
getInstance
().
attach
(
intentInfo
);
//直接显示层级
UIPerformanceManager
.
getInstance
().
initRefresh
();
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/uiperformance/UIPerformanceManager.java
浏览文件 @
af0d82da
...
...
@@ -9,7 +9,7 @@ import android.view.View;
import
android.view.ViewGroup
;
import
com.blankj.utilcode.util.ActivityUtils
;
import
com.didichuxing.doraemonkit.
core.
model.ViewInfo
;
import
com.didichuxing.doraemonkit.model.ViewInfo
;
import
com.didichuxing.doraemonkit.util.LifecycleListenerUtil
;
import
com.didichuxing.doraemonkit.util.LogHelper
;
import
com.didichuxing.doraemonkit.util.UIUtils
;
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/viewcheck/ViewCheckDrawDokitView.java
浏览文件 @
af0d82da
package
com.didichuxing.doraemonkit.kit.viewcheck
;
import
android.app.ActionBar
;
import
android.content.Context
;
import
android.view.LayoutInflater
;
import
android.view.View
;
...
...
@@ -8,10 +7,10 @@ import android.widget.FrameLayout;
import
com.blankj.utilcode.util.ActivityUtils
;
import
com.didichuxing.doraemonkit.R
;
import
com.didichuxing.doraemonkit.
core.
model.ViewInfo
;
import
com.didichuxing.doraemonkit.model.ViewInfo
;
import
com.didichuxing.doraemonkit.ui.base.AbsDokitView
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewLayoutParams
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
Proxy
;
import
com.didichuxing.doraemonkit.ui.viewcheck.LayoutBorderView
;
/**
...
...
@@ -29,7 +28,7 @@ public class ViewCheckDrawDokitView extends AbsDokitView implements ViewCheckDok
@Override
public
void
onDestroy
()
{
super
.
onDestroy
();
ViewCheckDokitView
page
=
(
ViewCheckDokitView
)
DokitViewManager
.
getInstance
().
getDokitView
(
ActivityUtils
.
getTopActivity
(),
ViewCheckDokitView
.
class
.
getSimpleName
());
ViewCheckDokitView
page
=
(
ViewCheckDokitView
)
DokitViewManager
Proxy
.
getInstance
().
getDokitView
(
ActivityUtils
.
getTopActivity
(),
ViewCheckDokitView
.
class
.
getSimpleName
());
if
(
page
!=
null
)
{
page
.
removeViewSelectListener
(
this
);
}
...
...
@@ -56,7 +55,7 @@ public class ViewCheckDrawDokitView extends AbsDokitView implements ViewCheckDok
postDelayed
(
new
Runnable
()
{
@Override
public
void
run
()
{
ViewCheckDokitView
dokitView
=
(
ViewCheckDokitView
)
DokitViewManager
.
getInstance
().
getDokitView
(
ActivityUtils
.
getTopActivity
(),
ViewCheckDokitView
.
class
.
getSimpleName
());
ViewCheckDokitView
dokitView
=
(
ViewCheckDokitView
)
DokitViewManager
Proxy
.
getInstance
().
getDokitView
(
ActivityUtils
.
getTopActivity
(),
ViewCheckDokitView
.
class
.
getSimpleName
());
if
(
dokitView
!=
null
)
{
dokitView
.
setViewSelectListener
(
ViewCheckDrawDokitView
.
this
);
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/viewcheck/ViewCheckInfoDokitView.java
浏览文件 @
af0d82da
...
...
@@ -20,7 +20,7 @@ import com.didichuxing.doraemonkit.R;
import
com.didichuxing.doraemonkit.config.ViewCheckConfig
;
import
com.didichuxing.doraemonkit.ui.base.AbsDokitView
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewLayoutParams
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
Proxy
;
import
com.didichuxing.doraemonkit.util.ColorUtil
;
import
com.didichuxing.doraemonkit.util.UIUtils
;
...
...
@@ -48,7 +48,7 @@ public class ViewCheckInfoDokitView extends AbsDokitView implements ViewCheckDok
@Override
public
void
onDestroy
()
{
super
.
onDestroy
();
ViewCheckDokitView
dokitView
=
(
ViewCheckDokitView
)
DokitViewManager
.
getInstance
().
getDokitView
(
getActivity
(),
ViewCheckDokitView
.
class
.
getSimpleName
());
ViewCheckDokitView
dokitView
=
(
ViewCheckDokitView
)
DokitViewManager
Proxy
.
getInstance
().
getDokitView
(
getActivity
(),
ViewCheckDokitView
.
class
.
getSimpleName
());
if
(
dokitView
!=
null
)
{
dokitView
.
removeViewSelectListener
(
this
);
}
...
...
@@ -72,15 +72,15 @@ public class ViewCheckInfoDokitView extends AbsDokitView implements ViewCheckDok
@Override
public
void
onClick
(
View
v
)
{
ViewCheckConfig
.
setViewCheckOpen
(
getContext
(),
false
);
DokitViewManager
.
getInstance
().
detach
(
ViewCheckDrawDokitView
.
class
.
getSimpleName
());
DokitViewManager
.
getInstance
().
detach
(
ViewCheckInfoDokitView
.
class
.
getSimpleName
());
DokitViewManager
.
getInstance
().
detach
(
ViewCheckDokitView
.
class
.
getSimpleName
());
DokitViewManager
Proxy
.
getInstance
().
detach
(
ViewCheckDrawDokitView
.
class
.
getSimpleName
());
DokitViewManager
Proxy
.
getInstance
().
detach
(
ViewCheckInfoDokitView
.
class
.
getSimpleName
());
DokitViewManager
Proxy
.
getInstance
().
detach
(
ViewCheckDokitView
.
class
.
getSimpleName
());
}
});
postDelayed
(
new
Runnable
()
{
@Override
public
void
run
()
{
ViewCheckDokitView
dokitView
=
(
ViewCheckDokitView
)
DokitViewManager
.
getInstance
().
getDokitView
(
getActivity
(),
ViewCheckDokitView
.
class
.
getSimpleName
());
ViewCheckDokitView
dokitView
=
(
ViewCheckDokitView
)
DokitViewManager
Proxy
.
getInstance
().
getDokitView
(
getActivity
(),
ViewCheckDokitView
.
class
.
getSimpleName
());
if
(
dokitView
!=
null
)
{
dokitView
.
setViewSelectListener
(
ViewCheckInfoDokitView
.
this
);
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/viewcheck/ViewCheckerKit.java
浏览文件 @
af0d82da
...
...
@@ -7,7 +7,7 @@ import com.didichuxing.doraemonkit.config.ViewCheckConfig;
import
com.didichuxing.doraemonkit.kit.AbstractKit
;
import
com.didichuxing.doraemonkit.kit.Category
;
import
com.didichuxing.doraemonkit.ui.base.DokitIntent
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
Proxy
;
/**
* Created by wanglikun on 2018/11/20.
...
...
@@ -31,19 +31,19 @@ public class ViewCheckerKit extends AbstractKit {
@Override
public
void
onClick
(
Context
context
)
{
DokitViewManager
.
getInstance
().
detachToolPanel
();
DokitViewManager
Proxy
.
getInstance
().
detachToolPanel
();
DokitIntent
intent
=
new
DokitIntent
(
ViewCheckDokitView
.
class
);
intent
.
mode
=
DokitIntent
.
MODE_SINGLE_INSTANCE
;
DokitViewManager
.
getInstance
().
attach
(
intent
);
DokitViewManager
Proxy
.
getInstance
().
attach
(
intent
);
intent
=
new
DokitIntent
(
ViewCheckDrawDokitView
.
class
);
intent
.
mode
=
DokitIntent
.
MODE_SINGLE_INSTANCE
;
DokitViewManager
.
getInstance
().
attach
(
intent
);
DokitViewManager
Proxy
.
getInstance
().
attach
(
intent
);
intent
=
new
DokitIntent
(
ViewCheckInfoDokitView
.
class
);
intent
.
mode
=
DokitIntent
.
MODE_SINGLE_INSTANCE
;
DokitViewManager
.
getInstance
().
attach
(
intent
);
DokitViewManager
Proxy
.
getInstance
().
attach
(
intent
);
ViewCheckConfig
.
setViewCheckOpen
(
context
,
true
);
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/model/ActivityLifecycleInfo.java
0 → 100644
浏览文件 @
af0d82da
package
com.didichuxing.doraemonkit.model
;
/**
* ================================================
* 作 者:jint(金台)
* 版 本:1.0
* 创建日期:2019-12-31-11:37
* 描 述:
* 修订历史:
* ================================================
*/
public
class
ActivityLifecycleInfo
{
/**
* activityLifeCycleCount = 1 页面创建调用onResume
* activityLifeCycleCount > 1 页面创建返回onResume
*/
public
static
final
int
ACTIVITY_LIFECYCLE_CREATE2RESUME
=
1
;
/**
* 生命周期是否已经调用过stop 交叉判断是第一次调用resume还是页面返回调用resume
*/
private
boolean
invokeStopMethod
=
false
;
private
String
activityName
;
/**
* activityLifeCycleCount = 1 页面创建调用onResume
* activityLifeCycleCount > 1 页面创建返回onResume
*/
private
int
activityLifeCycleCount
=
0
;
public
String
getActivityName
()
{
return
activityName
;
}
public
void
setActivityName
(
String
activityName
)
{
this
.
activityName
=
activityName
;
}
public
int
getActivityLifeCycleCount
()
{
return
activityLifeCycleCount
;
}
public
void
setActivityLifeCycleCount
(
int
activityLifeCycleCount
)
{
this
.
activityLifeCycleCount
=
activityLifeCycleCount
;
}
public
boolean
isInvokeStopMethod
()
{
return
invokeStopMethod
;
}
public
void
setInvokeStopMethod
(
boolean
invokeStopMethod
)
{
this
.
invokeStopMethod
=
invokeStopMethod
;
}
}
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/
core/
model/LatLng.java
→
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/model/LatLng.java
浏览文件 @
af0d82da
package
com.didichuxing.doraemonkit.
core.
model
;
package
com.didichuxing.doraemonkit.model
;
import
java.io.Serializable
;
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/
core/
model/ViewInfo.java
→
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/model/ViewInfo.java
浏览文件 @
af0d82da
package
com.didichuxing.doraemonkit.
core.
model
;
package
com.didichuxing.doraemonkit.model
;
import
android.graphics.Rect
;
import
android.view.View
;
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/base/AbsDokitView.java
浏览文件 @
af0d82da
...
...
@@ -39,7 +39,7 @@ import java.lang.ref.WeakReference;
* 修订历史:
* ================================================
*/
public
abstract
class
AbsDokitView
implements
DokitView
,
TouchProxy
.
OnTouchEventListener
,
DokitViewManager
.
DokitViewAttachedListener
{
public
abstract
class
AbsDokitView
implements
DokitView
,
TouchProxy
.
OnTouchEventListener
,
DokitViewManager
Proxy
.
DokitViewAttachedListener
{
private
String
TAG
=
this
.
getClass
().
getSimpleName
();
/**
...
...
@@ -47,7 +47,7 @@ public abstract class AbsDokitView implements DokitView, TouchProxy.OnTouchEvent
*/
public
TouchProxy
mTouchProxy
=
new
TouchProxy
(
this
);
protected
WindowManager
mWindowManager
=
DokitViewManager
.
getInstance
().
getWindowManager
();
protected
WindowManager
mWindowManager
=
DokitViewManager
Proxy
.
getInstance
().
getWindowManager
();
/**
* 创建FrameLayout#LayoutParams 内置悬浮窗调用
*/
...
...
@@ -107,18 +107,18 @@ public abstract class AbsDokitView implements DokitView, TouchProxy.OnTouchEvent
TAG
=
this
.
getClass
().
getSimpleName
();
LogHelper
.
i
(
TAG
,
"performCreate===>"
+
TAG
);
try
{
if
(
DokitViewManager
.
getInstance
().
getLastDokitViewPosInfo
(
mTag
)
==
null
)
{
if
(
DokitViewManager
Proxy
.
getInstance
().
getLastDokitViewPosInfo
(
mTag
)
==
null
)
{
mLastDokitViewPosInfo
=
new
LastDokitViewPosInfo
();
DokitViewManager
.
getInstance
().
saveLastDokitViewPosInfo
(
mTag
,
mLastDokitViewPosInfo
);
DokitViewManager
Proxy
.
getInstance
().
saveLastDokitViewPosInfo
(
mTag
,
mLastDokitViewPosInfo
);
}
else
{
mLastDokitViewPosInfo
=
DokitViewManager
.
getInstance
().
getLastDokitViewPosInfo
(
mTag
);
mLastDokitViewPosInfo
=
DokitViewManager
Proxy
.
getInstance
().
getLastDokitViewPosInfo
(
mTag
);
}
//创建主线程handler
mHandler
=
new
Handler
(
Looper
.
myLooper
());
//调用onCreate方法
onCreate
(
context
);
if
(!
isNormalMode
())
{
DokitViewManager
.
getInstance
().
addDokitViewAttachedListener
(
this
);
DokitViewManager
Proxy
.
getInstance
().
addDokitViewAttachedListener
(
this
);
}
if
(
isNormalMode
())
{
mRootView
=
new
DokitFrameLayout
(
context
);
...
...
@@ -227,7 +227,7 @@ public abstract class AbsDokitView implements DokitView, TouchProxy.OnTouchEvent
* 用于普通模式下的横竖屏切换
*/
private
void
portraitOrLandscape
(
FrameLayout
.
LayoutParams
params
)
{
Point
point
=
DokitViewManager
.
getInstance
().
getDokitViewPos
(
mTag
);
Point
point
=
DokitViewManager
Proxy
.
getInstance
().
getDokitViewPos
(
mTag
);
if
(
point
!=
null
)
{
//横竖屏切换兼容
if
(
ScreenUtils
.
isPortrait
())
{
...
...
@@ -286,7 +286,7 @@ public abstract class AbsDokitView implements DokitView, TouchProxy.OnTouchEvent
params
.
gravity
=
mDokitViewLayoutParams
.
gravity
;
params
.
width
=
mDokitViewLayoutParams
.
width
;
params
.
height
=
mDokitViewLayoutParams
.
height
;
Point
point
=
DokitViewManager
.
getInstance
().
getDokitViewPos
(
mTag
);
Point
point
=
DokitViewManager
Proxy
.
getInstance
().
getDokitViewPos
(
mTag
);
if
(
point
!=
null
)
{
params
.
x
=
point
.
x
;
params
.
y
=
point
.
y
;
...
...
@@ -300,9 +300,9 @@ public abstract class AbsDokitView implements DokitView, TouchProxy.OnTouchEvent
@Override
public
void
onDestroy
()
{
if
(!
isNormalMode
())
{
DokitViewManager
.
getInstance
().
removeDokitViewAttachedListener
(
this
);
DokitViewManager
Proxy
.
getInstance
().
removeDokitViewAttachedListener
(
this
);
}
DokitViewManager
.
getInstance
().
removeLastDokitViewPosInfo
(
mTag
);
DokitViewManager
Proxy
.
getInstance
().
removeLastDokitViewPosInfo
(
mTag
);
mAttachActivity
=
null
;
}
...
...
@@ -392,9 +392,9 @@ public abstract class AbsDokitView implements DokitView, TouchProxy.OnTouchEvent
}
else
{
//保存在内存中
if
(
isNormalMode
())
{
DokitViewManager
.
getInstance
().
saveDokitViewPos
(
mTag
,
mFrameLayoutParams
.
leftMargin
,
mFrameLayoutParams
.
topMargin
);
DokitViewManager
Proxy
.
getInstance
().
saveDokitViewPos
(
mTag
,
mFrameLayoutParams
.
leftMargin
,
mFrameLayoutParams
.
topMargin
);
}
else
{
DokitViewManager
.
getInstance
().
saveDokitViewPos
(
mTag
,
mWindowLayoutParams
.
x
,
mWindowLayoutParams
.
y
);
DokitViewManager
Proxy
.
getInstance
().
saveDokitViewPos
(
mTag
,
mWindowLayoutParams
.
x
,
mWindowLayoutParams
.
y
);
}
}
...
...
@@ -538,7 +538,7 @@ public abstract class AbsDokitView implements DokitView, TouchProxy.OnTouchEvent
* 将当前dokitView于activity解绑
*/
public
void
detach
()
{
DokitViewManager
.
getInstance
().
detach
(
this
);
DokitViewManager
Proxy
.
getInstance
().
detach
(
this
);
}
/**
...
...
@@ -567,7 +567,7 @@ public abstract class AbsDokitView implements DokitView, TouchProxy.OnTouchEvent
mFrameLayoutParams
.
leftMargin
=
FloatIconConfig
.
getLastPosX
(
getContext
());
mFrameLayoutParams
.
topMargin
=
FloatIconConfig
.
getLastPosY
(
getContext
());
}
else
{
Point
point
=
DokitViewManager
.
getInstance
().
getDokitViewPos
(
tag
);
Point
point
=
DokitViewManager
Proxy
.
getInstance
().
getDokitViewPos
(
tag
);
if
(
point
!=
null
)
{
mFrameLayoutParams
.
leftMargin
=
point
.
x
;
mFrameLayoutParams
.
topMargin
=
point
.
y
;
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/base/BaseFragment.java
浏览文件 @
af0d82da
...
...
@@ -73,7 +73,7 @@ public class BaseFragment extends Fragment {
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
DokitViewManager
.
getInstance
().
detach
(
FloatIconDokitView
.
class
);
DokitViewManager
Proxy
.
getInstance
().
detach
(
FloatIconDokitView
.
class
);
}
...
...
@@ -138,7 +138,7 @@ public class BaseFragment extends Fragment {
super
.
onDestroyView
();
DokitIntent
intent
=
new
DokitIntent
(
FloatIconDokitView
.
class
);
intent
.
mode
=
DokitIntent
.
MODE_SINGLE_INSTANCE
;
DokitViewManager
.
getInstance
().
attach
(
intent
);
DokitViewManager
Proxy
.
getInstance
().
attach
(
intent
);
}
public
DialogProvider
showDialog
(
DialogInfo
dialogInfo
)
{
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/base/DokitViewManagerInterface.java
浏览文件 @
af0d82da
...
...
@@ -96,7 +96,24 @@ public interface DokitViewManagerInterface {
*/
void
resumeAndAttachDokitViews
(
Activity
activity
);
/**
* main activity 创建时回调
*
* @param activity
*/
void
onMainActivityCreate
(
Activity
activity
);
/**
* 除main activity 以外 其他activty 创建时回调
*
* @param activity
*/
void
onActivityCreate
(
Activity
activity
);
/**
* 页面回退的时候调用
*
* @param activity
*/
void
onActivityResume
(
Activity
activity
);
}
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/base/DokitViewManager.java
→
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/base/DokitViewManager
Proxy
.java
浏览文件 @
af0d82da
...
...
@@ -20,8 +20,8 @@ import java.util.Map;
* 浮标管理类
*/
public
class
DokitViewManager
implements
DokitViewManagerInterface
{
public
static
final
String
TAG
=
"DokitViewManager"
;
public
class
DokitViewManager
Proxy
implements
DokitViewManagerInterface
{
public
static
final
String
TAG
=
"DokitViewManager
Proxy
"
;
/**
* 每个类型在页面中的位置 只保存marginLeft 和marginTop
*/
...
...
@@ -41,11 +41,11 @@ public class DokitViewManager implements DokitViewManagerInterface {
* 静态内部类单例
*/
private
static
class
Holder
{
private
static
DokitViewManager
INSTANCE
=
new
DokitViewManager
();
private
static
DokitViewManager
Proxy
INSTANCE
=
new
DokitViewManagerProxy
();
}
public
static
DokitViewManager
getInstance
()
{
return
DokitViewManager
.
Holder
.
INSTANCE
;
public
static
DokitViewManager
Proxy
getInstance
()
{
return
DokitViewManager
Proxy
.
Holder
.
INSTANCE
;
}
...
...
@@ -145,6 +145,21 @@ public class DokitViewManager implements DokitViewManagerInterface {
mDokitViewManager
.
resumeAndAttachDokitViews
(
activity
);
}
@Override
public
void
onMainActivityCreate
(
Activity
activity
)
{
}
@Override
public
void
onActivityCreate
(
Activity
activity
)
{
}
@Override
public
void
onActivityResume
(
Activity
activity
)
{
}
/**
* 在当前Activity中添加指定悬浮窗
*
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/base/NormalDokitViewManager.java
浏览文件 @
af0d82da
...
...
@@ -11,15 +11,16 @@ import android.widget.FrameLayout;
import
com.blankj.utilcode.util.BarUtils
;
import
com.didichuxing.doraemonkit.R
;
import
com.didichuxing.doraemonkit.constant.DokitConstant
;
import
com.didichuxing.doraemonkit.model.ActivityLifecycleInfo
;
import
com.didichuxing.doraemonkit.ui.UniversalActivity
;
import
com.didichuxing.doraemonkit.ui.health.CountDownDokitView
;
import
com.didichuxing.doraemonkit.ui.main.FloatIconDokitView
;
import
com.didichuxing.doraemonkit.ui.main.ToolPanelDokitView
;
import
com.didichuxing.doraemonkit.ui.realtime.PerformanceDokitView
;
import
com.didichuxing.doraemonkit.util.LogHelper
;
import
com.didichuxing.doraemonkit.util.SystemUtil
;
import
java.util.HashMap
;
import
java.util.Iterator
;
import
java.util.Map
;
/**
...
...
@@ -92,60 +93,94 @@ class NormalDokitViewManager implements DokitViewManagerInterface {
}
//app启动
if
(
mGlobalSingleDokitViews
.
size
()
==
0
)
{
LogHelper
.
i
(
TAG
,
"app 启动==>"
+
activity
.
getClass
().
getSimpleName
());
if
(
activity
instanceof
UniversalActivity
)
{
return
;
}
//倒计时DokitView
attachCountDownDokitView
();
if
(!
DokitConstant
.
AWAYS_SHOW_MAIN_ICON
)
{
DokitConstant
.
MAIN_ICON_HAS_SHOW
=
false
;
return
;
}
DokitIntent
dokitIntent
=
new
DokitIntent
(
FloatIconDokitView
.
class
);
dokitIntent
.
mode
=
DokitIntent
.
MODE_SINGLE_INSTANCE
;
attach
(
dokitIntent
);
DokitConstant
.
MAIN_ICON_HAS_SHOW
=
true
;
if
(
SystemUtil
.
isOnlyFirstLaunchActivity
(
activity
))
{
onMainActivityCreate
(
activity
);
return
;
}
ActivityLifecycleInfo
activityLifecycleInfo
=
DokitConstant
.
ACTIVITY_LIFECYCLE_INFOS
.
get
(
activity
.
getClass
().
getCanonicalName
());
if
(
activityLifecycleInfo
==
null
)
{
return
;
}
//新建Activity
if
(
mActivityDokitViews
.
get
(
activity
)
==
null
)
{
if
(
mGlobalSingleDokitViews
==
null
)
{
LogHelper
.
e
(
TAG
,
"resumeAndAttachDokitViews 方法执行异常"
);
return
;
}
if
(
activityLifecycleInfo
.
getActivityLifeCycleCount
()
==
ActivityLifecycleInfo
.
ACTIVITY_LIFECYCLE_CREATE2RESUME
)
{
onActivityCreate
(
activity
);
return
;
}
//将所有的dokitView添加到新建的Activity中去
for
(
GlobalSingleDokitViewInfo
dokitViewInfo
:
mGlobalSingleDokitViews
.
values
())
{
LogHelper
.
i
(
TAG
,
" 新建activity==>"
+
activity
.
getClass
().
getSimpleName
()
+
" dokitView==>"
+
dokitViewInfo
.
getTag
());
if
(
activity
instanceof
UniversalActivity
&&
dokitViewInfo
.
getAbsDokitViewClass
()
!=
PerformanceDokitView
.
class
)
{
return
;
}
//是否过滤掉 入口icon
if
(!
DokitConstant
.
AWAYS_SHOW_MAIN_ICON
&&
dokitViewInfo
.
getAbsDokitViewClass
()
==
FloatIconDokitView
.
class
)
{
DokitConstant
.
MAIN_ICON_HAS_SHOW
=
false
;
continue
;
}
if
(
dokitViewInfo
.
getAbsDokitViewClass
()
==
FloatIconDokitView
.
class
)
{
DokitConstant
.
MAIN_ICON_HAS_SHOW
=
true
;
}
//activity resume
if
(
activityLifecycleInfo
.
getActivityLifeCycleCount
()
>
ActivityLifecycleInfo
.
ACTIVITY_LIFECYCLE_CREATE2RESUME
)
{
onActivityResume
(
activity
);
}
DokitIntent
dokitIntent
=
new
DokitIntent
(
dokitViewInfo
.
getAbsDokitViewClass
());
dokitIntent
.
mode
=
DokitIntent
.
MODE_SINGLE_INSTANCE
;
dokitIntent
.
bundle
=
dokitViewInfo
.
getBundle
();
attach
(
dokitIntent
);
}
//倒计时DokitView
attachCountDownDokitView
();
}
/**
* 应用启动
*/
@Override
public
void
onMainActivityCreate
(
Activity
activity
)
{
LogHelper
.
i
(
TAG
,
"app 启动==>"
+
activity
.
getClass
().
getSimpleName
());
if
(
activity
instanceof
UniversalActivity
)
{
return
;
}
//倒计时DokitView
attachCountDownDokitView
();
//activity resume
if
(!
DokitConstant
.
AWAYS_SHOW_MAIN_ICON
)
{
DokitConstant
.
MAIN_ICON_HAS_SHOW
=
false
;
return
;
}
DokitIntent
dokitIntent
=
new
DokitIntent
(
FloatIconDokitView
.
class
);
dokitIntent
.
mode
=
DokitIntent
.
MODE_SINGLE_INSTANCE
;
attach
(
dokitIntent
);
DokitConstant
.
MAIN_ICON_HAS_SHOW
=
true
;
}
/**
* 新建activity
*
* @param activity
*/
@Override
public
void
onActivityCreate
(
Activity
activity
)
{
if
(
mGlobalSingleDokitViews
==
null
)
{
LogHelper
.
e
(
TAG
,
"resumeAndAttachDokitViews 方法执行异常"
);
return
;
}
//将所有的dokitView添加到新建的Activity中去
for
(
GlobalSingleDokitViewInfo
dokitViewInfo
:
mGlobalSingleDokitViews
.
values
())
{
LogHelper
.
i
(
TAG
,
" 新建activity==>"
+
activity
.
getClass
().
getSimpleName
()
+
" dokitView==>"
+
dokitViewInfo
.
getTag
());
if
(
activity
instanceof
UniversalActivity
&&
dokitViewInfo
.
getAbsDokitViewClass
()
!=
PerformanceDokitView
.
class
)
{
return
;
}
//是否过滤掉 入口icon
if
(!
DokitConstant
.
AWAYS_SHOW_MAIN_ICON
&&
dokitViewInfo
.
getAbsDokitViewClass
()
==
FloatIconDokitView
.
class
)
{
DokitConstant
.
MAIN_ICON_HAS_SHOW
=
false
;
continue
;
}
if
(
dokitViewInfo
.
getAbsDokitViewClass
()
==
FloatIconDokitView
.
class
)
{
DokitConstant
.
MAIN_ICON_HAS_SHOW
=
true
;
}
DokitIntent
dokitIntent
=
new
DokitIntent
(
dokitViewInfo
.
getAbsDokitViewClass
());
dokitIntent
.
mode
=
DokitIntent
.
MODE_SINGLE_INSTANCE
;
dokitIntent
.
bundle
=
dokitViewInfo
.
getBundle
();
attach
(
dokitIntent
);
}
//倒计时DokitView
attachCountDownDokitView
();
}
/**
* activity onResume
*
* @param activity
*/
@Override
public
void
onActivityResume
(
Activity
activity
)
{
Map
<
String
,
AbsDokitView
>
existDokitViews
=
mActivityDokitViews
.
get
(
activity
);
//先清除楚页面上启动模式为DokitIntent.MODE_ONCE 的dokitView
for
(
AbsDokitView
existDokitView
:
existDokitViews
.
values
())
{
...
...
@@ -187,7 +222,6 @@ class NormalDokitViewManager implements DokitViewManagerInterface {
attach
(
dokitIntent
);
}
}
}
/**
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/base/SystemDokitViewManager.java
浏览文件 @
af0d82da
...
...
@@ -5,8 +5,14 @@ import android.content.Context;
import
android.text.TextUtils
;
import
android.view.WindowManager
;
import
com.blankj.utilcode.util.ActivityUtils
;
import
com.didichuxing.doraemonkit.constant.DokitConstant
;
import
com.didichuxing.doraemonkit.model.ActivityLifecycleInfo
;
import
com.didichuxing.doraemonkit.ui.UniversalActivity
;
import
com.didichuxing.doraemonkit.ui.health.CountDownDokitView
;
import
com.didichuxing.doraemonkit.ui.main.FloatIconDokitView
;
import
com.didichuxing.doraemonkit.util.LogHelper
;
import
com.didichuxing.doraemonkit.util.SystemUtil
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
...
...
@@ -26,16 +32,16 @@ class SystemDokitViewManager implements DokitViewManagerInterface {
* https://blog.csdn.net/awenyini/article/details/78265284
* https://yuqirong.me/2017/09/28/Window%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90(%E4%B8%80)%EF%BC%9A%E4%B8%8EDecorView%E7%9A%84%E9%82%A3%E4%BA%9B%E4%BA%8B/
*/
private
WindowManager
mWindowManager
=
DokitViewManager
.
getInstance
().
getWindowManager
();
private
WindowManager
mWindowManager
=
DokitViewManager
Proxy
.
getInstance
().
getWindowManager
();
private
Context
mContext
;
private
List
<
AbsDokitView
>
mDokitViews
=
new
ArrayList
<>();
private
List
<
DokitViewManager
.
DokitViewAttachedListener
>
mListeners
=
new
ArrayList
<>();
private
List
<
DokitViewManager
Proxy
.
DokitViewAttachedListener
>
mListeners
=
new
ArrayList
<>();
/**
* 获取页面上所有的dokitViews
*
* @return
* @return
map
*/
@Override
public
Map
<
String
,
AbsDokitView
>
getDokitViews
(
Activity
activity
)
{
...
...
@@ -72,6 +78,88 @@ class SystemDokitViewManager implements DokitViewManagerInterface {
//获取WindowService
}
/**
* @param activity
*/
@Override
public
void
resumeAndAttachDokitViews
(
Activity
activity
)
{
if
(
ActivityUtils
.
getTopActivity
()
instanceof
UniversalActivity
)
{
return
;
}
//app启动
if
(
SystemUtil
.
isOnlyFirstLaunchActivity
(
activity
))
{
onMainActivityCreate
(
activity
);
}
ActivityLifecycleInfo
activityLifecycleInfo
=
DokitConstant
.
ACTIVITY_LIFECYCLE_INFOS
.
get
(
activity
.
getClass
().
getCanonicalName
());
//新建Activity
if
(
activityLifecycleInfo
!=
null
&&
activityLifecycleInfo
.
getActivityLifeCycleCount
()
==
ActivityLifecycleInfo
.
ACTIVITY_LIFECYCLE_CREATE2RESUME
)
{
onActivityCreate
(
activity
);
}
//activity resume
if
(
activityLifecycleInfo
!=
null
&&
activityLifecycleInfo
.
getActivityLifeCycleCount
()
>
ActivityLifecycleInfo
.
ACTIVITY_LIFECYCLE_CREATE2RESUME
)
{
onActivityResume
(
activity
);
}
//生命周期回调
Map
<
String
,
AbsDokitView
>
dokitViewMap
=
getDokitViews
(
activity
);
for
(
AbsDokitView
absDokitView
:
dokitViewMap
.
values
())
{
absDokitView
.
onResume
();
}
}
/**
* 添加倒计时DokitView
*/
private
void
attachCountDownDokitView
()
{
DokitIntent
dokitIntent
=
new
DokitIntent
(
CountDownDokitView
.
class
);
dokitIntent
.
mode
=
DokitIntent
.
MODE_ONCE
;
attach
(
dokitIntent
);
}
@Override
public
void
onMainActivityCreate
(
Activity
activity
)
{
//倒计时DokitView
attachCountDownDokitView
();
if
(!
DokitConstant
.
AWAYS_SHOW_MAIN_ICON
)
{
return
;
}
//添加main icon
DokitIntent
intent
=
new
DokitIntent
(
FloatIconDokitView
.
class
);
intent
.
mode
=
DokitIntent
.
MODE_SINGLE_INSTANCE
;
DokitViewManagerProxy
.
getInstance
().
attach
(
intent
);
DokitConstant
.
MAIN_ICON_HAS_SHOW
=
true
;
}
@Override
public
void
onActivityCreate
(
Activity
activity
)
{
//如果倒计时浮标没显示则重新添加
AbsDokitView
countDownDokitView
=
getDokitView
(
activity
,
CountDownDokitView
.
class
.
getSimpleName
());
if
(
countDownDokitView
==
null
)
{
attachCountDownDokitView
();
}
else
{
//重置倒计时
((
CountDownDokitView
)
countDownDokitView
).
resetTime
();
}
}
@Override
public
void
onActivityResume
(
Activity
activity
)
{
//移除倒计时浮标
AbsDokitView
countDownDokitView
=
getDokitView
(
activity
,
CountDownDokitView
.
class
.
getSimpleName
());
if
(
countDownDokitView
!=
null
)
{
//移除倒计时控件
detach
(
countDownDokitView
);
}
}
/**
* 添加悬浮窗
*
...
...
@@ -106,7 +194,7 @@ class SystemDokitViewManager implements DokitViewManagerInterface {
dokitView
.
onResume
();
if
(!
DokitConstant
.
IS_NORMAL_FLOAT_MODE
)
{
for
(
DokitViewManager
.
DokitViewAttachedListener
listener
:
mListeners
)
{
for
(
DokitViewManager
Proxy
.
DokitViewAttachedListener
listener
:
mListeners
)
{
listener
.
onDokitViewAdd
(
dokitView
);
}
}
...
...
@@ -176,28 +264,17 @@ class SystemDokitViewManager implements DokitViewManagerInterface {
}
/**
* 不需要实现
*
* @param activity
*/
@Override
public
void
resumeAndAttachDokitViews
(
Activity
activity
)
{
}
/**
* 在每一个float page创建时 添加监听器
*
* @param listener
*/
void
addListener
(
DokitViewManager
.
DokitViewAttachedListener
listener
)
{
void
addListener
(
DokitViewManager
Proxy
.
DokitViewAttachedListener
listener
)
{
mListeners
.
add
(
listener
);
}
void
removeListener
(
DokitViewManager
.
DokitViewAttachedListener
listener
)
{
void
removeListener
(
DokitViewManager
Proxy
.
DokitViewAttachedListener
listener
)
{
mListeners
.
remove
(
listener
);
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/health/CountDownDokitView.java
浏览文件 @
af0d82da
...
...
@@ -12,7 +12,7 @@ import com.blankj.utilcode.util.ConvertUtils;
import
com.didichuxing.doraemonkit.R
;
import
com.didichuxing.doraemonkit.ui.base.AbsDokitView
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewLayoutParams
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
Proxy
;
/**
* ================================================
...
...
@@ -51,13 +51,22 @@ public class CountDownDokitView extends AbsDokitView {
@Override
public
void
onFinish
()
{
DokitViewManager
.
getInstance
().
detach
(
CountDownDokitView
.
this
);
DokitViewManager
Proxy
.
getInstance
().
detach
(
CountDownDokitView
.
this
);
}
};
//启动倒计时
mCountDownTimer
.
start
();
}
/**
* 重置倒计时
*/
public
void
resetTime
()
{
if
(
mCountDownTimer
!=
null
)
{
mCountDownTimer
.
start
();
}
}
@Override
public
void
initDokitViewLayoutParams
(
DokitViewLayoutParams
params
)
{
params
.
height
=
DokitViewLayoutParams
.
WRAP_CONTENT
;
...
...
@@ -70,6 +79,12 @@ public class CountDownDokitView extends AbsDokitView {
@Override
public
void
onDestroy
()
{
super
.
onDestroy
();
if
(
isNormalMode
())
{
if
(
mCountDownTimer
!=
null
)
{
mCountDownTimer
.
cancel
();
mCountDownTimer
=
null
;
}
}
}
}
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/kit/KitAdapter.java
浏览文件 @
af0d82da
...
...
@@ -8,7 +8,7 @@ import android.widget.ImageView;
import
android.widget.TextView
;
import
com.didichuxing.doraemonkit.R
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
Proxy
;
import
com.didichuxing.doraemonkit.ui.widget.recyclerview.AbsRecyclerAdapter
;
import
com.didichuxing.doraemonkit.ui.widget.recyclerview.AbsViewBinder
;
...
...
@@ -58,7 +58,7 @@ public class KitAdapter extends AbsRecyclerAdapter<AbsViewBinder<KitItem>, KitIt
super
.
onViewClick
(
view
,
data
);
//常规模式下点击常用工具不隐藏工具面板
//if (data.kit.getCategory() != Category.TOOLS && DoraemonKit.IS_NORMAL_FLOAT_MODE) {
DokitViewManager
.
getInstance
().
detachToolPanel
();
DokitViewManager
Proxy
.
getInstance
().
detachToolPanel
();
//}
data
.
kit
.
onClick
(
getContext
());
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/main/FloatIconDokitView.java
浏览文件 @
af0d82da
...
...
@@ -10,7 +10,7 @@ import com.didichuxing.doraemonkit.config.FloatIconConfig;
import
com.didichuxing.doraemonkit.ui.base.AbsDokitView
;
import
com.didichuxing.doraemonkit.ui.base.DokitIntent
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewLayoutParams
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
Proxy
;
/**
* 悬浮按钮
...
...
@@ -35,7 +35,7 @@ public class FloatIconDokitView extends AbsDokitView {
public
void
onClick
(
View
v
)
{
DokitIntent
dokitViewIntent
=
new
DokitIntent
(
ToolPanelDokitView
.
class
);
dokitViewIntent
.
mode
=
DokitIntent
.
MODE_SINGLE_INSTANCE
;
DokitViewManager
.
getInstance
().
attach
(
dokitViewIntent
);
DokitViewManager
Proxy
.
getInstance
().
attach
(
dokitViewIntent
);
}
});
...
...
@@ -61,10 +61,10 @@ public class FloatIconDokitView extends AbsDokitView {
if
(
dokitView
==
this
)
{
return
;
}
DokitViewManager
.
getInstance
().
detach
(
this
);
DokitViewManager
Proxy
.
getInstance
().
detach
(
this
);
DokitIntent
intent
=
new
DokitIntent
(
FloatIconDokitView
.
class
);
intent
.
mode
=
DokitIntent
.
MODE_SINGLE_INSTANCE
;
DokitViewManager
.
getInstance
().
attach
(
intent
);
DokitViewManager
Proxy
.
getInstance
().
attach
(
intent
);
}
@Override
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/realtime/PerformanceDokitView.java
浏览文件 @
af0d82da
...
...
@@ -13,7 +13,7 @@ import com.didichuxing.doraemonkit.config.PerformanceMemoryInfoConfig;
import
com.didichuxing.doraemonkit.ui.base.AbsDokitView
;
import
com.didichuxing.doraemonkit.ui.base.DokitIntent
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewLayoutParams
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
Proxy
;
import
com.didichuxing.doraemonkit.ui.realtime.datasource.DataSourceFactory
;
import
com.didichuxing.doraemonkit.ui.realtime.datasource.IDataSource
;
import
com.didichuxing.doraemonkit.ui.realtime.widget.LineChart
;
...
...
@@ -232,8 +232,8 @@ public class PerformanceDokitView extends AbsDokitView implements PerformanceClo
private
void
showSystemPerfoemanceCloseDokitView
()
{
DokitIntent
dokitIntent
=
new
DokitIntent
(
PerformanceCloseDokitView
.
class
);
DokitViewManager
.
getInstance
().
attach
(
dokitIntent
);
mPerformanceCloseDokitView
=
(
PerformanceCloseDokitView
)
DokitViewManager
.
getInstance
().
getDokitView
(
ActivityUtils
.
getTopActivity
(),
PerformanceCloseDokitView
.
class
.
getSimpleName
());
DokitViewManager
Proxy
.
getInstance
().
attach
(
dokitIntent
);
mPerformanceCloseDokitView
=
(
PerformanceCloseDokitView
)
DokitViewManager
Proxy
.
getInstance
().
getDokitView
(
ActivityUtils
.
getTopActivity
(),
PerformanceCloseDokitView
.
class
.
getSimpleName
());
if
(
mPerformanceCloseDokitView
!=
null
)
{
mPerformanceCloseDokitView
.
setPerformanceCloseListener
(
PerformanceDokitView
.
this
);
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/realtime/PerformanceDokitViewManager.java
浏览文件 @
af0d82da
...
...
@@ -5,7 +5,7 @@ import android.content.Context;
import
com.blankj.utilcode.util.ActivityUtils
;
import
com.didichuxing.doraemonkit.R
;
import
com.didichuxing.doraemonkit.ui.base.DokitIntent
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
;
import
com.didichuxing.doraemonkit.ui.base.DokitViewManager
Proxy
;
import
com.didichuxing.doraemonkit.ui.realtime.datasource.DataSourceFactory
;
import
java.util.TreeMap
;
...
...
@@ -31,11 +31,11 @@ public class PerformanceDokitViewManager {
}
public
static
void
open
(
int
performanceType
,
String
title
,
int
interval
,
PerformanceFragmentCloseListener
listener
)
{
PerformanceDokitView
performanceDokitView
=
(
PerformanceDokitView
)
DokitViewManager
.
getInstance
().
getDokitView
(
ActivityUtils
.
getTopActivity
(),
PerformanceDokitView
.
class
.
getSimpleName
());
PerformanceDokitView
performanceDokitView
=
(
PerformanceDokitView
)
DokitViewManager
Proxy
.
getInstance
().
getDokitView
(
ActivityUtils
.
getTopActivity
(),
PerformanceDokitView
.
class
.
getSimpleName
());
if
(
performanceDokitView
==
null
)
{
DokitIntent
dokitIntent
=
new
DokitIntent
(
PerformanceDokitView
.
class
);
DokitViewManager
.
getInstance
().
attach
(
dokitIntent
);
performanceDokitView
=
(
PerformanceDokitView
)
DokitViewManager
.
getInstance
().
getDokitView
(
ActivityUtils
.
getTopActivity
(),
PerformanceDokitView
.
class
.
getSimpleName
());
DokitViewManager
Proxy
.
getInstance
().
attach
(
dokitIntent
);
performanceDokitView
=
(
PerformanceDokitView
)
DokitViewManager
Proxy
.
getInstance
().
getDokitView
(
ActivityUtils
.
getTopActivity
(),
PerformanceDokitView
.
class
.
getSimpleName
());
performanceDokitView
.
addItem
(
performanceType
,
title
,
interval
);
}
else
{
performanceDokitView
.
addItem
(
performanceType
,
title
,
interval
);
...
...
@@ -50,7 +50,7 @@ public class PerformanceDokitViewManager {
* @param listener
*/
public
static
void
onPerformanceSettingFragmentDestory
(
PerformanceFragmentCloseListener
listener
)
{
PerformanceDokitView
performanceDokitView
=
(
PerformanceDokitView
)
DokitViewManager
.
getInstance
().
getDokitView
(
ActivityUtils
.
getTopActivity
(),
PerformanceDokitView
.
class
.
getSimpleName
());
PerformanceDokitView
performanceDokitView
=
(
PerformanceDokitView
)
DokitViewManager
Proxy
.
getInstance
().
getDokitView
(
ActivityUtils
.
getTopActivity
(),
PerformanceDokitView
.
class
.
getSimpleName
());
if
(
performanceDokitView
!=
null
)
{
performanceDokitView
.
removePerformanceFragmentCloseListener
(
listener
);
}
...
...
@@ -60,7 +60,7 @@ public class PerformanceDokitViewManager {
* @param performanceType 参考 DataSourceFactory
*/
public
static
void
close
(
int
performanceType
,
String
title
)
{
PerformanceDokitView
performanceDokitView
=
(
PerformanceDokitView
)
DokitViewManager
.
getInstance
().
getDokitView
(
ActivityUtils
.
getTopActivity
(),
PerformanceDokitView
.
class
.
getSimpleName
());
PerformanceDokitView
performanceDokitView
=
(
PerformanceDokitView
)
DokitViewManager
Proxy
.
getInstance
().
getDokitView
(
ActivityUtils
.
getTopActivity
(),
PerformanceDokitView
.
class
.
getSimpleName
());
if
(
performanceDokitView
!=
null
)
{
performanceDokitView
.
removeItem
(
performanceType
);
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/ui/viewcheck/LayoutBorderView.java
浏览文件 @
af0d82da
...
...
@@ -11,14 +11,11 @@ import android.util.AttributeSet;
import
android.view.View
;
import
com.didichuxing.doraemonkit.R
;
import
com.didichuxing.doraemonkit.core.model.ViewInfo
;
import
com.didichuxing.doraemonkit.util.LogHelper
;
import
com.didichuxing.doraemonkit.model.ViewInfo
;
import
java.util.ArrayList
;
import
java.util.List
;
import
static
android
.
support
.
constraint
.
Constraints
.
TAG
;
/**
* Created by wanglikun on 2018/11/23.
*/
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/util/SystemUtil.java
浏览文件 @
af0d82da
package
com.didichuxing.doraemonkit.util
;
import
android.app.Activity
;
import
android.app.ActivityManager
;
import
android.content.ComponentName
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.content.pm.ApplicationInfo
;
import
android.content.pm.PackageManager
;
import
android.text.TextUtils
;
import
com.didichuxing.doraemonkit.constant.DokitConstant
;
import
com.didichuxing.doraemonkit.model.ActivityLifecycleInfo
;
import
java.util.List
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
...
...
@@ -104,4 +110,36 @@ public class SystemUtil {
}
return
null
;
}
/**
* 是否是系统main activity
*
* @return boolean
*/
public
static
boolean
isMainLaunchActivity
(
Activity
activity
)
{
PackageManager
packageManager
=
activity
.
getApplication
().
getPackageManager
();
Intent
intent
=
packageManager
.
getLaunchIntentForPackage
(
activity
.
getPackageName
());
if
(
intent
==
null
)
{
return
false
;
}
ComponentName
launchComponentName
=
intent
.
getComponent
();
ComponentName
componentName
=
activity
.
getComponentName
();
if
(
launchComponentName
!=
null
&&
componentName
.
toString
().
equals
(
launchComponentName
.
toString
()))
{
return
true
;
}
return
false
;
}
/**
* 是否是系统启动第一次调用mainActivity 页面回退不算
*
* @return boolean
*/
public
static
boolean
isOnlyFirstLaunchActivity
(
Activity
activity
)
{
boolean
isMainActivity
=
isMainLaunchActivity
(
activity
);
ActivityLifecycleInfo
activityLifecycleInfo
=
DokitConstant
.
ACTIVITY_LIFECYCLE_INFOS
.
get
(
activity
.
getClass
().
getCanonicalName
());
return
activityLifecycleInfo
!=
null
&&
isMainActivity
&&
!
activityLifecycleInfo
.
isInvokeStopMethod
();
}
}
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/util/WebUtil.java
浏览文件 @
af0d82da
...
...
@@ -4,7 +4,7 @@ import android.content.Context;
import
android.webkit.WebView
;
import
com.didichuxing.doraemonkit.config.GpsMockConfig
;
import
com.didichuxing.doraemonkit.
core.
model.LatLng
;
import
com.didichuxing.doraemonkit.model.LatLng
;
import
java.io.BufferedReader
;
import
java.io.IOException
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录