提交 50b1d2df 编写于 作者: J jackjintai

Merge branch 'master' into feature/health-20191223

# Conflicts:
#	Android/app/src/main/java/com/didichuxing/doraemondemo/App.java
#	Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/viewcheck/ViewCheckDokitView.java
......@@ -13,12 +13,12 @@ ext {
applicationId : "com.didichuxing.doraemondemo",
minSdkVersion : 16,
targetSdkVersion : 27,
versionCode : 221,
versionCode : 222,
//dokit 插件版本号
pluginVersionName : "1.0.0",
//jcenter dokit版本号
jcenterArchivesVersionName: "2.2.1",
versionName : "2.2.1",
jcenterArchivesVersionName: "2.2.2",
versionName : "2.2.2",
glide : "4.8.0",
]
dependencies = [// ###### android library start ######
......
package com.didichuxing.doraemonkit.kit.viewcheck;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.FrameLayout;
......@@ -13,10 +15,11 @@ import com.didichuxing.doraemonkit.ui.base.DokitViewLayoutParams;
import com.didichuxing.doraemonkit.ui.base.DokitViewManager;
import com.didichuxing.doraemonkit.ui.viewcheck.LayoutBorderView;
import java.util.List;
/**
* Created by jintai on 2019/09/26.
*/
public class ViewCheckDrawDokitView extends AbsDokitView implements ViewCheckDokitView.OnViewSelectListener {
private LayoutBorderView mLayoutBorderView;
......@@ -64,13 +67,12 @@ public class ViewCheckDrawDokitView extends AbsDokitView implements ViewCheckDok
}
@Override
public void onViewSelected(View view) {
if (view == null) {
public void onViewSelected(@Nullable View current, @NonNull List<View> checkViewList) {
if (current == null) {
mLayoutBorderView.showViewLayoutBorder((ViewInfo) null);
} else {
mLayoutBorderView.showViewLayoutBorder(new ViewInfo(view));
mLayoutBorderView.showViewLayoutBorder(new ViewInfo(current));
}
}
......
......@@ -4,6 +4,8 @@ import android.app.Activity;
import android.content.Context;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v7.app.AppCompatActivity;
......@@ -29,7 +31,8 @@ import java.util.List;
/**
* Created by jintai on 2019/09/26.
*/
public class ViewCheckInfoDokitView extends AbsDokitView implements ViewCheckDokitView.OnViewSelectListener {
public class ViewCheckInfoDokitView extends AbsDokitView implements
ViewCheckDokitView.OnViewSelectListener, View.OnClickListener {
private TextView mName;
private TextView mId;
private TextView mPosition;
......@@ -37,6 +40,8 @@ public class ViewCheckInfoDokitView extends AbsDokitView implements ViewCheckDok
private TextView mActivityInfo;
private TextView mFragmentInfo;
private ImageView mPre;
private ImageView mNext;
private ImageView mClose;
......@@ -68,15 +73,11 @@ public class ViewCheckInfoDokitView extends AbsDokitView implements ViewCheckDok
mActivityInfo = findViewById(R.id.activity);
mFragmentInfo = findViewById(R.id.fragment);
mClose = findViewById(R.id.close);
mClose.setOnClickListener(new View.OnClickListener() {
@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());
}
});
mClose.setOnClickListener(this);
mPre = findViewById(R.id.pre);
mPre.setOnClickListener(this);
mNext = findViewById(R.id.next);
mNext.setOnClickListener(this);
postDelayed(new Runnable() {
@Override
public void run() {
......@@ -86,10 +87,8 @@ public class ViewCheckInfoDokitView extends AbsDokitView implements ViewCheckDok
}
}
}, 200);
}
@Override
public void initDokitViewLayoutParams(DokitViewLayoutParams params) {
params.flags = DokitViewLayoutParams.FLAG_NOT_FOCUSABLE;
......@@ -109,19 +108,45 @@ public class ViewCheckInfoDokitView extends AbsDokitView implements ViewCheckDok
}
@Override
public void onViewSelected(View view) {
if (view == null) {
public void onClick(View v) {
if (v == mClose) {
ViewCheckConfig.setViewCheckOpen(getContext(), false);
DokitViewManager.getInstance().detach(ViewCheckDrawDokitView.class.getSimpleName());
DokitViewManager.getInstance().detach(ViewCheckInfoDokitView.class.getSimpleName());
DokitViewManager.getInstance().detach(ViewCheckDokitView.class.getSimpleName());
}
if (v == mNext) {
ViewCheckDokitView dokitView = (ViewCheckDokitView) DokitViewManager.getInstance().getDokitView(getActivity(), ViewCheckDokitView.class.getSimpleName());
if (dokitView != null) {
dokitView.preformNextCheckView();
}
}
if (v == mPre) {
ViewCheckDokitView dokitView = (ViewCheckDokitView) DokitViewManager.getInstance().getDokitView(getActivity(), ViewCheckDokitView.class.getSimpleName());
if (dokitView != null) {
dokitView.preformPreCheckView();
}
}
}
@Override
public void onViewSelected(@Nullable View current, @NonNull List<View> checkViewList) {
mNext.setVisibility(checkViewList.size() > 1 ? View.VISIBLE : View.GONE);
mPre.setVisibility(checkViewList.size() > 1 ? View.VISIBLE : View.GONE);
if (current == null) {
mName.setText("");
mId.setText("");
mPosition.setText("");
mDesc.setText("");
} else {
mName.setText(getResources().getString(R.string.dk_view_check_info_class, view.getClass().getSimpleName()));
String idText = getResources().getString(R.string.dk_view_check_info_id, UIUtils.getIdText(view));
mName.setText(getResources().getString(R.string.dk_view_check_info_class, current.getClass().getSimpleName()));
String idText = getResources().getString(R.string.dk_view_check_info_id, UIUtils.getIdText(current));
mId.setText(idText);
String positionText = getResources().getString(R.string.dk_view_check_info_size, view.getWidth(), view.getHeight());
String positionText = getResources().getString(R.string.dk_view_check_info_size, current.getWidth(), current.getHeight());
mPosition.setText(positionText);
String descText = getViewExtraInfo(view);
String descText = getViewExtraInfo(current);
if (TextUtils.isEmpty(descText)) {
mDesc.setVisibility(View.GONE);
} else {
......
......@@ -10,10 +10,43 @@
android:layout_marginRight="15dp"
android:background="@drawable/dk_info_background">
<FrameLayout
android:id="@+id/fl_pre"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="16dp">
<ImageView
android:id="@+id/pre"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/dk_pre_icon"
android:layout_marginRight="12dp"/>
</FrameLayout>
<FrameLayout
android:id="@+id/fl_next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="16dp">
<ImageView
android:id="@+id/next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/dk_next_icon"
android:layout_marginLeft="12dp"/>
</FrameLayout>
<TextView
android:id="@+id/name"
style="@style/DK.Text.Darker"
android:layout_marginLeft="16dp"
android:layout_toRightOf="@id/fl_pre"
android:layout_toLeftOf="@id/fl_next"
android:layout_marginTop="14dp"
android:layout_marginBottom="6dp"
android:gravity="left"/>
......@@ -23,14 +56,16 @@
style="@style/DK.Text.Darker"
android:layout_below="@id/name"
android:layout_alignLeft="@id/name"
android:layout_alignRight="@id/name"
android:layout_marginBottom="6dp"
android:gravity="left"/>
android:gravity="left" />
<TextView
android:id="@+id/position"
style="@style/DK.Text.Darker"
android:layout_below="@id/id"
android:layout_alignLeft="@id/id"
android:layout_alignRight="@id/id"
android:layout_marginBottom="6dp"
android:gravity="left"/>
......@@ -39,6 +74,7 @@
style="@style/DK.Text.Darker"
android:layout_below="@id/position"
android:layout_alignLeft="@id/position"
android:layout_alignRight="@id/position"
android:layout_marginBottom="6dp"
android:lineSpacingExtra="7dp"
android:gravity="left"/>
......@@ -47,7 +83,8 @@
android:id="@+id/activity"
style="@style/DK.Text.Darker"
android:layout_below="@id/desc"
android:layout_alignLeft="@id/position"
android:layout_alignLeft="@id/desc"
android:layout_alignRight="@id/desc"
android:layout_marginBottom="6dp"
android:gravity="left"/>
......@@ -55,7 +92,8 @@
android:id="@+id/fragment"
style="@style/DK.Text.Darker"
android:layout_below="@id/activity"
android:layout_alignLeft="@id/position"
android:layout_alignLeft="@id/activity"
android:layout_alignRight="@id/activity"
android:layout_marginBottom="6dp"
android:visibility="gone"
android:gravity="left"/>
......
DoraemonKit-Android releases
===
## 2.2.2
1. 更新视图检查工具,展示符合当前页面位置条件的所有视图
## 2.2.1
1. 升级 AOP 方案,原先采用Aspectj,现已升级为ASM方案,提升编译性能和兼容性
......
......@@ -5,8 +5,8 @@
```groovy
dependencies {
debugImplementation 'com.didichuxing.doraemonkit:doraemonkit:2.2.1'
releaseImplementation 'com.didichuxing.doraemonkit:doraemonkit-no-op:2.2.1'
debugImplementation 'com.didichuxing.doraemonkit:doraemonkit:2.2.2'
releaseImplementation 'com.didichuxing.doraemonkit:doraemonkit-no-op:2.2.2'
}
```
......@@ -14,7 +14,7 @@ dependencies {
假如你无法通过 jcenter 下载到依赖库并报了以下的错误
```
ERROR: Failed to resolve: com.didichuxing.doraemonkit:doraemonkit:2.2.1
ERROR: Failed to resolve: com.didichuxing.doraemonkit:doraemonkit:2.2.2
```
建议你可以尝试挂载VPN或通过命令行重试(以Mac系统为例 项目根目录下)
......@@ -38,8 +38,8 @@ DoraemonKit目前已支持Weex工具,包括
```groovy
dependencies {
debugImplementation 'com.didichuxing.doraemonkit:doraemonkit-weex:2.2.1'
releaseImplementation 'com.didichuxing.doraemonkit:doraemonkit-weex-no-op:2.2.1'
debugImplementation 'com.didichuxing.doraemonkit:doraemonkit-weex:2.2.2'
releaseImplementation 'com.didichuxing.doraemonkit:doraemonkit-weex-no-op:2.2.2'
}
```
......@@ -49,7 +49,7 @@ dependencies {
```groovy
dependencies {
debugImplementation 'com.didichuxing.doraemonkit:doraemonkit-leakcanary:2.2.1'
debugImplementation 'com.didichuxing.doraemonkit:doraemonkit-leakcanary:2.2.2'
}
```
......@@ -182,7 +182,7 @@ public void onCreate() {
kits.add(new EnvSwitchKit());
DoraemonKit.install(application, kits);
//false:不显示入口icon 默认为true
DoraemonKit.setAwaysShowMianIcon(false);
DoraemonKit.setAwaysShowMainIcon(false);
}
```
......
......@@ -5,8 +5,8 @@
```
dependencies {
debugImplementation 'com.didichuxing.doraemonkit:doraemonkit:2.2.1'
releaseImplementation 'com.didichuxing.doraemonkit:doraemonkit-no-op:2.2.1'
debugImplementation 'com.didichuxing.doraemonkit:doraemonkit:2.2.2'
releaseImplementation 'com.didichuxing.doraemonkit:doraemonkit-no-op:2.2.2'
}
```
......
<div align="center">
<img src="https://javer.oss-cn-shanghai.aliyuncs.com/doraemon/github/DoraemonKit_github.png" width = "150" height = "150" alt="DoraemonKit" align=left />
<img src="https://img.shields.io/github/license/didi/DoraemonKit.svg" align=left />
<img src="https://img.shields.io/badge/Android-2.2.1-blue.svg" align=left />
<img src="https://img.shields.io/badge/Android-2.2.2-blue.svg" align=left />
<img src="https://img.shields.io/badge/iOS-2.0.0-yellow.svg" align=left />
<img src="https://img.shields.io/badge/miniapp-0.0.1-red.svg" align=left />
<img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" align=left />
......
<div align="center">
<img src="https://javer.oss-cn-shanghai.aliyuncs.com/doraemon/github/DoraemonKit_github.png" width = "150" height = "150" alt="DoraemonKit" align=left />
<img src="https://img.shields.io/github/license/didi/DoraemonKit.svg" align=left />
<img src="https://img.shields.io/badge/Android-2.2.1-blue.svg" align=left />
<img src="https://img.shields.io/badge/Android-2.2.2-blue.svg" align=left />
<img src="https://img.shields.io/badge/iOS-2.0.0-yellow.svg" align=left />
<img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" align=left />
</div>
......
......@@ -52,11 +52,11 @@
- (void)show{
self.hidden = NO;
self.frame = CGRectMake(0, 0, DoraemonScreenWidth, IPHONE_STATUSBAR_HEIGHT);
if(IS_IPHONE_X_Series){
_contentLabel.frame = CGRectMake(0, self.doraemon_height-20, DoraemonScreenWidth, 20);
}else{
_contentLabel.frame = CGRectMake(0, 0, DoraemonScreenWidth, IPHONE_STATUSBAR_HEIGHT);
self.frame = CGRectMake(0, 0, DoraemonScreenWidth, IPHONE_STATUSBAR_HEIGHT + 15);
if (IS_IPHONE_X_Series) {
_contentLabel.frame = CGRectMake(0, self.doraemon_height-25, DoraemonScreenWidth, 20);
} else {
_contentLabel.frame = CGRectMake(0, self.doraemon_height-IPHONE_STATUSBAR_HEIGHT, DoraemonScreenWidth, IPHONE_STATUSBAR_HEIGHT);
}
}
......
......@@ -174,7 +174,7 @@
#pragma mark -- DoraemonAllTestWindowDelegate
- (void)doraemonAllTestWindowClosed {
[[DoraemonCacheManager sharedInstance] saveAllTestSwitch:NO];
[_realTimeSwitchView renderUIWithTitle:DoraemonLocalizedString(@"实时数据") switchOn:[[DoraemonCacheManager sharedInstance] allTestSwitch]];
_realTimeSwitchView.switchView.on = NO;
}
#pragma mark -- DoraemonSwitchViewDelegate
......
......@@ -217,7 +217,6 @@
return;
if([upFlow floatValue]>1000){
upFlow = [NSString stringWithFormat:@"%.1fK",[upFlow floatValue]/1000];
NSLog(@"the end === %@",upFlow);
}
if([downFlow floatValue]>1000){
......@@ -225,13 +224,17 @@
}
[DoraemonAllTestWindow shareInstance].flowChanged = false;
if(_upFlowValue.hidden){
_upFlowValue.hidden = NO;
_downFlowValue.hidden = NO;
}
_upFlowValue.text = [NSString stringWithFormat:@"%@ : %@B",DoraemonLocalizedString(@"上行流量"),upFlow];
_downFlowValue.text = [NSString stringWithFormat:@"%@ : %@B",DoraemonLocalizedString(@"下行流量"),downFlow];
}
-(void)hideFlowValue{
_upFlowValue.text = nil;
_downFlowValue.text = nil;
_upFlowValue.hidden = YES;
_downFlowValue.hidden = YES;
}
@end
......@@ -103,7 +103,12 @@ static CGFloat const kColorPickWindowSize = 150;
- (void)updateScreeShotImage {
UIGraphicsBeginImageContext([UIScreen mainScreen].bounds.size);
[[[UIApplication sharedApplication].delegate window].layer renderInContext:UIGraphicsGetCurrentContext()];
// 在部分复杂界面使用此功能调用这个方法的时候,CPU使用率会暴增至90%以上
// https://stackoverflow.com/questions/19066717/how-to-render-view-into-image-faster
// [[[UIApplication sharedApplication].delegate window].layer renderInContext:UIGraphicsGetCurrentContext()];
// 建议使用这个方法
[[[UIApplication sharedApplication].delegate window] drawViewHierarchyInRect:[UIScreen mainScreen].bounds afterScreenUpdates:YES];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
......
......@@ -12,7 +12,7 @@ NS_ASSUME_NONNULL_BEGIN
@interface DoraemonResponseImageModel : NSObject
@property (nonatomic, strong) NSURL *url;
@property (nonatomic, strong) NSData *data;
@property (nonatomic, assign) NSString *size;
@property (nonatomic, copy) NSString *size;
- (instancetype)initWithResponse: (NSURLResponse *)response data:(NSData *) data;
@end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册