From f9aa143b05653889a80e8e8b640a5ca365c2406c Mon Sep 17 00:00:00 2001 From: droidlover Date: Sat, 25 Aug 2018 23:31:26 +0800 Subject: [PATCH] upgrade gradle & add rxbus --- app/build.gradle | 8 ++- build.gradle | 10 +++- conf.gradle | 3 +- gradle/wrapper/gradle-wrapper.properties | 4 +- mvp/build.gradle | 49 ++++++++++--------- .../droidlover/xdroidmvp/event/RxBusImpl.java | 30 ++++++------ .../droidlover/xdroidmvp/mvp/XActivity.java | 2 + .../droidlover/xdroidmvp/mvp/XFragment.java | 2 + .../xdroidmvp/mvp/XLazyFragment.java | 3 ++ test/build.gradle | 8 ++- .../xdroidmvp/test/rxbus/RxBusActivity.java | 10 ++-- 11 files changed, 72 insertions(+), 57 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 546f223..8882733 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,9 +1,7 @@ apply plugin: 'com.android.application' -apply plugin: 'com.neenbedankt.android-apt' android { compileSdkVersion rootProject.ext.android.compileSdkVersion - buildToolsVersion rootProject.ext.android.buildToolsVersion defaultConfig { applicationId 'cn.droidlover.xdroidmvp.demo' @@ -24,7 +22,7 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) - apt rootProject.ext.dependencies["butterknife-apt"] - compile rootProject.ext.dependencies["avi-loading"] - compile project(":mvp") + annotationProcessor rootProject.ext.dependencies["butterknife-apt"] + implementation rootProject.ext.dependencies["avi-loading"] + implementation project(":mvp") } diff --git a/build.gradle b/build.gradle index aa61517..b5098c3 100644 --- a/build.gradle +++ b/build.gradle @@ -4,9 +4,13 @@ apply from: "conf.gradle" buildscript { repositories { jcenter() + maven { + url 'https://maven.google.com/' + name 'Google' + } } dependencies { - classpath 'com.android.tools.build:gradle:2.2.2' + classpath 'com.android.tools.build:gradle:3.1.3' classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' @@ -20,6 +24,10 @@ allprojects { jcenter() maven { url "https://jitpack.io" } mavenCentral() + maven { + url 'https://maven.google.com/' + name 'Google' + } } } diff --git a/conf.gradle b/conf.gradle index 3725224..06b3143 100644 --- a/conf.gradle +++ b/conf.gradle @@ -2,7 +2,7 @@ ext { android = [ compileSdkVersion: 23, - buildToolsVersion: "23.0.2", + buildToolsVersion: "23.0.3", minSdkVersion : 15, targetSdkVersion : 23, @@ -29,6 +29,7 @@ ext { "picasso" : "com.squareup.picasso:picasso:2.5.2", "xrecyclerview" : "com.github.limedroid:ARecyclerView:v1.2.3", "avi-loading" : "com.wang.avi:library:1.0.2", + "rxbus" : "com.blankj:rxbus:1.2", "gson" : "com.google.code.gson:gson:2.6.2", "rxandroid" : "io.reactivex.rxjava2:rxandroid:2.0.1", diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 04e285f..9f26c29 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Mon Dec 28 10:00:20 PST 2015 +#Fri Apr 13 19:19:31 CST 2018 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip diff --git a/mvp/build.gradle b/mvp/build.gradle index 6bcb03b..c4bbb7f 100644 --- a/mvp/build.gradle +++ b/mvp/build.gradle @@ -5,7 +5,6 @@ group = 'com.github.limedroid' android { compileSdkVersion rootProject.ext.android.compileSdkVersion - buildToolsVersion rootProject.ext.android.buildToolsVersion defaultConfig { minSdkVersion rootProject.ext.android.minSdkVersion @@ -19,32 +18,34 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } + buildToolsVersion '27.0.3' } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) - compile rootProject.ext.dependencies["appcompat-v7"] - compile rootProject.ext.dependencies["support-v4"] - compile rootProject.ext.dependencies["design"] - compile rootProject.ext.dependencies["annotations"] - compile rootProject.ext.dependencies["recyclerview-v7"] - - compile rootProject.ext.dependencies["xrecyclerview"] - compile rootProject.ext.dependencies["butterknife"] - compile rootProject.ext.dependencies["glide"] - - compile rootProject.ext.dependencies["gson"] - compile rootProject.ext.dependencies["rxandroid"] - compile rootProject.ext.dependencies["rxjava"] - compile rootProject.ext.dependencies["retrofit"] - compile rootProject.ext.dependencies["retrofit-converter-gson"] - compile rootProject.ext.dependencies["retrofit-adapter-rxjava"] - compile rootProject.ext.dependencies["okhttp3"] - - compile rootProject.ext.dependencies["rxlifecycle"] - compile rootProject.ext.dependencies["rxlifecycle-android"] - compile rootProject.ext.dependencies["rxlifecycle-components"] - compile rootProject.ext.dependencies["rxpermissions"] + api fileTree(dir: 'libs', include: ['*.jar']) + api rootProject.ext.dependencies["appcompat-v7"] + api rootProject.ext.dependencies["support-v4"] + api rootProject.ext.dependencies["design"] + api rootProject.ext.dependencies["annotations"] + api rootProject.ext.dependencies["recyclerview-v7"] + + api rootProject.ext.dependencies["xrecyclerview"] + api rootProject.ext.dependencies["butterknife"] + api rootProject.ext.dependencies["glide"] + + api rootProject.ext.dependencies["gson"] + api rootProject.ext.dependencies["rxandroid"] + api rootProject.ext.dependencies["rxjava"] + api rootProject.ext.dependencies["retrofit"] + api rootProject.ext.dependencies["retrofit-converter-gson"] + api rootProject.ext.dependencies["retrofit-adapter-rxjava"] + api rootProject.ext.dependencies["okhttp3"] + api rootProject.ext.dependencies["rxbus"] + + api rootProject.ext.dependencies["rxlifecycle"] + api rootProject.ext.dependencies["rxlifecycle-android"] + api rootProject.ext.dependencies["rxlifecycle-components"] + api rootProject.ext.dependencies["rxpermissions"] } tasks.withType(JavaCompile) { diff --git a/mvp/src/main/java/cn/droidlover/xdroidmvp/event/RxBusImpl.java b/mvp/src/main/java/cn/droidlover/xdroidmvp/event/RxBusImpl.java index 8db8316..95b86d5 100644 --- a/mvp/src/main/java/cn/droidlover/xdroidmvp/event/RxBusImpl.java +++ b/mvp/src/main/java/cn/droidlover/xdroidmvp/event/RxBusImpl.java @@ -1,9 +1,7 @@ package cn.droidlover.xdroidmvp.event; -import io.reactivex.Flowable; -import io.reactivex.processors.FlowableProcessor; -import io.reactivex.processors.PublishProcessor; +import com.blankj.rxbus.RxBus; /** * Created by wanglei on 2016/12/22. @@ -11,41 +9,45 @@ public class RxBusImpl implements IBus { - private FlowableProcessor bus = null; - private RxBusImpl() { - bus = PublishProcessor.create().toSerialized(); } - public static RxBusImpl get() { - return Holder.instance; - } @Override public void register(Object object) { - } @Override public void unregister(Object object) { - + RxBus.getDefault().unregister(object); } @Override public void post(IEvent event) { - bus.onNext(event); + RxBus.getDefault().post(event); } @Override public void postSticky(IEvent event) { + RxBus.getDefault().postSticky(event); + } + + public void subscribe(Object subscriber, + RxBus.Callback callback) { + RxBus.getDefault().subscribe(subscriber, callback); + } + public void subscribeSticky(Object subscriber, + RxBus.Callback callback) { + RxBus.getDefault().subscribeSticky(subscriber, callback); } - public Flowable toFlowable(Class eventType) { - return bus.ofType(eventType).onBackpressureBuffer(); + public static RxBusImpl get() { + return Holder.instance; } private static class Holder { private static final RxBusImpl instance = new RxBusImpl(); } } + diff --git a/mvp/src/main/java/cn/droidlover/xdroidmvp/mvp/XActivity.java b/mvp/src/main/java/cn/droidlover/xdroidmvp/mvp/XActivity.java index dbfbd3c..faccc4d 100644 --- a/mvp/src/main/java/cn/droidlover/xdroidmvp/mvp/XActivity.java +++ b/mvp/src/main/java/cn/droidlover/xdroidmvp/mvp/XActivity.java @@ -34,6 +34,8 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); context = this; + getP(); + if (getLayoutId() > 0) { setContentView(getLayoutId()); bindUI(null); diff --git a/mvp/src/main/java/cn/droidlover/xdroidmvp/mvp/XFragment.java b/mvp/src/main/java/cn/droidlover/xdroidmvp/mvp/XFragment.java index 80c2761..d3db641 100644 --- a/mvp/src/main/java/cn/droidlover/xdroidmvp/mvp/XFragment.java +++ b/mvp/src/main/java/cn/droidlover/xdroidmvp/mvp/XFragment.java @@ -54,6 +54,8 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); + getP(); + if (useEventBus()) { BusProvider.getBus().register(this); } diff --git a/mvp/src/main/java/cn/droidlover/xdroidmvp/mvp/XLazyFragment.java b/mvp/src/main/java/cn/droidlover/xdroidmvp/mvp/XLazyFragment.java index 08f6244..1482a54 100644 --- a/mvp/src/main/java/cn/droidlover/xdroidmvp/mvp/XLazyFragment.java +++ b/mvp/src/main/java/cn/droidlover/xdroidmvp/mvp/XLazyFragment.java @@ -26,6 +26,9 @@ public abstract class XLazyFragment

@Override protected void onCreateViewLazy(Bundle savedInstanceState) { super.onCreateViewLazy(savedInstanceState); + + getP(); + if (getLayoutId() > 0) { setContentView(getLayoutId()); bindUI(getRealRootView()); diff --git a/test/build.gradle b/test/build.gradle index f2bc310..f10b251 100644 --- a/test/build.gradle +++ b/test/build.gradle @@ -1,9 +1,7 @@ apply plugin: 'com.android.library' -apply plugin: 'com.neenbedankt.android-apt' android { compileSdkVersion rootProject.ext.android.compileSdkVersion - buildToolsVersion rootProject.ext.android.buildToolsVersion defaultConfig { minSdkVersion rootProject.ext.android.minSdkVersion @@ -21,8 +19,8 @@ android { } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) - apt rootProject.ext.dependencies["butterknife-apt"] - compile project(":mvp") + implementation fileTree(dir: 'libs', include: ['*.jar']) + annotationProcessor rootProject.ext.dependencies["butterknife-apt"] + implementation project(":mvp") } diff --git a/test/src/main/java/cn/droidlover/xdroidmvp/test/rxbus/RxBusActivity.java b/test/src/main/java/cn/droidlover/xdroidmvp/test/rxbus/RxBusActivity.java index d5509ee..3c9d2a3 100644 --- a/test/src/main/java/cn/droidlover/xdroidmvp/test/rxbus/RxBusActivity.java +++ b/test/src/main/java/cn/droidlover/xdroidmvp/test/rxbus/RxBusActivity.java @@ -2,9 +2,10 @@ import android.os.Bundle; +import com.blankj.rxbus.RxBus; + import cn.droidlover.xdroidmvp.event.BusProvider; import cn.droidlover.xdroidmvp.mvp.XActivity; -import io.reactivex.functions.Consumer; /** * Created by wanglei on 2017/1/30. @@ -17,15 +18,14 @@ public void initData(Bundle savedInstanceState) { BusProvider.getBus().post(new LoginEvent()); - BusProvider.getBus().toFlowable(LoginEvent.class) - .subscribe(new Consumer() { + BusProvider.getBus() + .subscribe(this, new RxBus.Callback() { @Override - public void accept(LoginEvent loginEvent) throws Exception { + public void onEvent(LoginEvent loginEvent) { //TODO 事件处理 } }); - } @Override