├── demo ├── .gitignore ├── src │ ├── main │ │ ├── res │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── values │ │ │ │ ├── strings.xml │ │ │ │ ├── colors.xml │ │ │ │ ├── dimens.xml │ │ │ │ └── styles.xml │ │ │ ├── drawable │ │ │ │ └── circle.xml │ │ │ ├── values-w820dp │ │ │ │ └── dimens.xml │ │ │ └── layout │ │ │ │ ├── activity_main.xml │ │ │ │ ├── activity_watcher_demo.xml │ │ │ │ └── fragment_blank.xml │ │ ├── java │ │ │ └── dog │ │ │ │ └── abcd │ │ │ │ └── demo │ │ │ │ ├── MyApplication.java │ │ │ │ ├── MainActivity.java │ │ │ │ ├── DemoCircleLayout.java │ │ │ │ ├── WatcherDemoActivity.java │ │ │ │ └── BlankFragment.java │ │ └── AndroidManifest.xml │ └── androidTest │ │ └── java │ │ └── dog │ │ └── abcd │ │ └── demo │ │ └── ExampleInstrumentedTest.java ├── proguard-rules.pro └── build.gradle ├── settings.gradle ├── lib ├── src │ └── main │ │ ├── java │ │ └── dog │ │ │ └── abcd │ │ │ └── lib │ │ │ ├── alert │ │ │ ├── package-info.java │ │ │ ├── AstiAlertCircle.java │ │ │ ├── AstiAlertManager.java │ │ │ ├── AstiAlertBase.java │ │ │ ├── AstiAlert.java │ │ │ └── AstiAlertDialog.java │ │ │ ├── network │ │ │ ├── package-info.java │ │ │ ├── AntiNetworkException.java │ │ │ ├── listener │ │ │ │ ├── AntiNetworkStringListener.java │ │ │ │ ├── AntiNetworkBitmapListener.java │ │ │ │ ├── AntiNetworkJsonListener.java │ │ │ │ └── AntiNetworkJsonArrayListener.java │ │ │ ├── AntiNetworkListener.java │ │ │ ├── AntiResponseRequest.java │ │ │ ├── AntiNetworkConvert.java │ │ │ ├── AntiNetworkStack.java │ │ │ ├── AntiNetwork.java │ │ │ └── AntiNetworkManager.java │ │ │ ├── utils │ │ │ ├── package-info.java │ │ │ ├── AntiSystemUtils.java │ │ │ ├── AntiLog.java │ │ │ ├── AntiToast.java │ │ │ ├── AntiLocationConvertUtils.java │ │ │ ├── AntiDataSave.java │ │ │ ├── AntiDataUtils.java │ │ │ ├── AntiImageUtils.java │ │ │ ├── AntiImageLoader.java │ │ │ ├── AntiDateUtils.java │ │ │ ├── AntiScreenUtils.java │ │ │ └── AntiViewUtils.java │ │ │ ├── views │ │ │ ├── package-info.java │ │ │ ├── AstiClearEditText.java │ │ │ ├── AstiCircleImageView.java │ │ │ ├── AstiFlowLayout.java │ │ │ └── AstiBannerPager.java │ │ │ ├── watcher │ │ │ ├── package-info.java │ │ │ ├── AntiChangedListener.java │ │ │ ├── AntiMessenger.java │ │ │ └── AntiWatcher.java │ │ │ └── permission │ │ │ ├── package-info.java │ │ │ ├── AntiPermissionListener.java │ │ │ ├── AntiPermission.java │ │ │ └── AntiPermissionUtil.java │ │ ├── res │ │ ├── drawable-xxhdpi │ │ │ └── text_clean.png │ │ ├── values │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── color.xml │ │ ├── drawable │ │ │ ├── bg_btn_white.xml │ │ │ ├── bg_btn_app_radius.xml │ │ │ ├── bg_btn_radius_bottom.xml │ │ │ ├── bg_circle_banner.xml │ │ │ ├── bg_btn_radius_left_bottom.xml │ │ │ ├── bg_btn_radius_right_bottom.xml │ │ │ ├── bg_dialog.xml │ │ │ ├── btn_app_radius.xml │ │ │ ├── btn_app_radius_pressed.xml │ │ │ ├── bg_circle_banner_on.xml │ │ │ ├── btn_radius_right_bottom.xml │ │ │ ├── btn_radius_left_bottom.xml │ │ │ ├── btn_radius_bottom.xml │ │ │ ├── btn_radius_right_bottom_pressed.xml │ │ │ ├── btn_radius_left_bottom_pressed.xml │ │ │ └── btn_radius_bottom_pressed.xml │ │ └── layout │ │ │ ├── layout_dialog_circle.xml │ │ │ ├── layout_alert_dialog.xml │ │ │ └── layout_alert.xml │ │ └── AndroidManifest.xml ├── build.gradle └── build │ └── outputs │ └── logs │ └── manifest-merger-debug-report.txt ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── local.properties ├── AntiLib.iml ├── gradlew.bat ├── gradlew └── README.md /demo/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':lib', ':demo' 2 | -------------------------------------------------------------------------------- /lib/src/main/java/dog/abcd/lib/alert/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 常用弹窗包 3 | */ 4 | package dog.abcd.lib.alert; -------------------------------------------------------------------------------- /lib/src/main/java/dog/abcd/lib/network/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 网络请求 3 | */ 4 | package dog.abcd.lib.network; -------------------------------------------------------------------------------- /lib/src/main/java/dog/abcd/lib/utils/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 常用的工具包 3 | */ 4 | package dog.abcd.lib.utils; -------------------------------------------------------------------------------- /lib/src/main/java/dog/abcd/lib/views/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 自定义控件包 3 | */ 4 | package dog.abcd.lib.views; -------------------------------------------------------------------------------- /lib/src/main/java/dog/abcd/lib/watcher/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 数据同步监听 3 | */ 4 | package dog.abcd.lib.watcher; -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaellee123/AntiLib/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /lib/src/main/java/dog/abcd/lib/permission/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 运行时权限请求工具 3 | */ 4 | package dog.abcd.lib.permission; -------------------------------------------------------------------------------- /demo/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaellee123/AntiLib/HEAD/demo/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /demo/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaellee123/AntiLib/HEAD/demo/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /demo/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaellee123/AntiLib/HEAD/demo/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /demo/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaellee123/AntiLib/HEAD/demo/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /demo/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaellee123/AntiLib/HEAD/demo/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /lib/src/main/res/drawable-xxhdpi/text_clean.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaellee123/AntiLib/HEAD/lib/src/main/res/drawable-xxhdpi/text_clean.png -------------------------------------------------------------------------------- /lib/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5dp 4 | 5dp 5 | -------------------------------------------------------------------------------- /demo/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | demo 3 | 4 | 5 | Hello blank fragment 6 | 7 | -------------------------------------------------------------------------------- /demo/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /demo/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Thu Mar 14 14:35:43 CST 2019 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip 7 | -------------------------------------------------------------------------------- /lib/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | AntiLib 4 | 提示信息: 5 | 确认 6 | 取消 7 | 提示 8 | 9 | -------------------------------------------------------------------------------- /demo/src/main/res/drawable/circle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /lib/src/main/res/drawable/bg_btn_white.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /lib/src/main/res/drawable/bg_btn_app_radius.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /lib/src/main/java/dog/abcd/lib/permission/AntiPermissionListener.java: -------------------------------------------------------------------------------- 1 | package dog.abcd.lib.permission; 2 | 3 | /** 4 | * 运行时权限请求回调
5 | * 6 | * @author Michael Lee
7 | * create at 2017/2/23 下午 13:04 8 | */ 9 | public interface AntiPermissionListener { 10 | void onPermissionRequestFinish(String[] success, String[] failed, String[] refuse); 11 | } 12 | -------------------------------------------------------------------------------- /lib/src/main/res/drawable/bg_btn_radius_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /lib/src/main/java/dog/abcd/lib/watcher/AntiChangedListener.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | */ 4 | package dog.abcd.lib.watcher; 5 | 6 | /** 7 | * 检查数据改变的接口
8 | * 需要检查数据改变的类实现该接口以及方法 9 | * 10 | * @author Michael Lee
11 | * create at 2016-4-15 上午9:27:45 12 | */ 13 | public interface AntiChangedListener { 14 | void onWatcherChanged(String changedKey); 15 | } 16 | -------------------------------------------------------------------------------- /lib/src/main/res/drawable/bg_circle_banner.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /lib/src/main/res/drawable/bg_btn_radius_left_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /lib/src/main/res/drawable/bg_btn_radius_right_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /lib/src/main/res/drawable/bg_dialog.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /demo/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /lib/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /lib/src/main/res/drawable/btn_app_radius.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /local.properties: -------------------------------------------------------------------------------- 1 | ## This file must *NOT* be checked into Version Control Systems, 2 | # as it contains information specific to your local configuration. 3 | # 4 | # Location of the SDK. This is only used by Gradle. 5 | # For customization when using a Version Control System, please read the 6 | # header note. 7 | #Thu Mar 14 10:34:50 CST 2019 8 | ndk.dir=/Users/michaellee/Library/Android/sdk/ndk-bundle 9 | sdk.dir=/Users/michaellee/Library/Android/sdk 10 | -------------------------------------------------------------------------------- /demo/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /lib/src/main/res/drawable/btn_app_radius_pressed.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /lib/src/main/res/drawable/bg_circle_banner_on.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /lib/src/main/res/drawable/btn_radius_right_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 14 | -------------------------------------------------------------------------------- /lib/src/main/res/drawable/btn_radius_left_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 14 | -------------------------------------------------------------------------------- /lib/src/main/res/drawable/btn_radius_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 14 | -------------------------------------------------------------------------------- /lib/src/main/res/drawable/btn_radius_right_bottom_pressed.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 14 | -------------------------------------------------------------------------------- /lib/src/main/res/drawable/btn_radius_left_bottom_pressed.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 14 | -------------------------------------------------------------------------------- /lib/src/main/res/drawable/btn_radius_bottom_pressed.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 14 | -------------------------------------------------------------------------------- /demo/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in D:\sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /demo/src/main/java/dog/abcd/demo/MyApplication.java: -------------------------------------------------------------------------------- 1 | package dog.abcd.demo; 2 | 3 | import android.app.Application; 4 | 5 | import dog.abcd.lib.network.AntiNetworkManager; 6 | import dog.abcd.lib.utils.AntiImageLoader; 7 | 8 | /** 9 | * Title
10 | * Description 11 | * 12 | * @author Michael Lee
13 | * create at 2017/2/24 下午 14:42 14 | */ 15 | public class MyApplication extends Application { 16 | @Override 17 | public void onCreate() { 18 | super.onCreate(); 19 | //初始化网络请求 20 | AntiNetworkManager.init(this, 0, null, null); 21 | //初始化图片加载 22 | AntiImageLoader.init(this); 23 | // AntiImageLoader.init(this,加载中的图片,加载图片为空时的图片,加载失败的图片); 24 | // AntiImageLoader.init(this,自定义图片加载配置); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /lib/src/main/java/dog/abcd/lib/network/AntiNetworkException.java: -------------------------------------------------------------------------------- 1 | package dog.abcd.lib.network; 2 | 3 | /** 4 | * 网络错误
5 | * 包括http错误与错误信息 6 | * 7 | * @author Michael Lee
8 | * create at 2017/2/20 下午 14:33 9 | */ 10 | public class AntiNetworkException extends Exception { 11 | 12 | public AntiNetworkException(int code, String message) { 13 | this.code = code; 14 | this.message = message; 15 | } 16 | 17 | private int code; 18 | 19 | private String message; 20 | 21 | @Override 22 | public String getMessage() { 23 | return message; 24 | } 25 | 26 | public void setMessage(String message) { 27 | this.message = message; 28 | } 29 | 30 | public int getCode() { 31 | return code; 32 | } 33 | 34 | public void setCode(int code) { 35 | this.code = code; 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /demo/src/androidTest/java/dog/abcd/demo/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package dog.abcd.demo; 2 | 3 | import android.content.Context; 4 | import android.support.test.InstrumentationRegistry; 5 | import android.support.test.runner.AndroidJUnit4; 6 | 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import static org.junit.Assert.*; 11 | 12 | /** 13 | * Instrumentation test, which will execute on an Android device. 14 | * 15 | * @see Testing documentation 16 | */ 17 | @RunWith(AndroidJUnit4.class) 18 | public class ExampleInstrumentedTest { 19 | @Test 20 | public void useAppContext() throws Exception { 21 | // Context of the app under test. 22 | Context appContext = InstrumentationRegistry.getTargetContext(); 23 | 24 | assertEquals("dog.abcd.demo", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /lib/src/main/java/dog/abcd/lib/network/listener/AntiNetworkStringListener.java: -------------------------------------------------------------------------------- 1 | package dog.abcd.lib.network.listener; 2 | 3 | import com.android.volley.NetworkResponse; 4 | 5 | import dog.abcd.lib.network.AntiNetwork; 6 | import dog.abcd.lib.network.AntiNetworkConvert; 7 | import dog.abcd.lib.network.AntiNetworkListener; 8 | 9 | /** 10 | * 网络请求处理回调(结果为String)
11 | * 从AntiNetworkListener重写 12 | * @see AntiNetworkListener 13 | * 14 | * @author Michael Lee
15 | * create at 2017/6/5 下午 15:55 16 | */ 17 | public abstract class AntiNetworkStringListener implements AntiNetworkListener { 18 | @Override 19 | public final void success(AntiNetwork network, NetworkResponse result) { 20 | success( network, AntiNetworkConvert.convertResponseToString( result ) ); 21 | } 22 | 23 | protected abstract void success(AntiNetwork network, String result); 24 | } 25 | -------------------------------------------------------------------------------- /AntiLib.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /demo/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 14 | 15 | 20 | 21 | -------------------------------------------------------------------------------- /lib/src/main/java/dog/abcd/lib/network/listener/AntiNetworkBitmapListener.java: -------------------------------------------------------------------------------- 1 | package dog.abcd.lib.network.listener; 2 | 3 | import android.graphics.Bitmap; 4 | 5 | import com.android.volley.NetworkResponse; 6 | 7 | import dog.abcd.lib.network.AntiNetwork; 8 | import dog.abcd.lib.network.AntiNetworkConvert; 9 | import dog.abcd.lib.network.AntiNetworkListener; 10 | 11 | /** 12 | * 网络请求处理回调(结果为Bitmap)
13 | * 从AntiNetworkListener重写 14 | * @see AntiNetworkListener 15 | * 16 | * @author Michael Lee
17 | * create at 2017/6/5 下午 16:02 18 | */ 19 | public abstract class AntiNetworkBitmapListener implements AntiNetworkListener { 20 | 21 | @Override 22 | public final void success(AntiNetwork network, NetworkResponse result) { 23 | success( network, AntiNetworkConvert.convertResponseToBitmap( result ) ); 24 | } 25 | 26 | protected abstract void success(AntiNetwork network, Bitmap result); 27 | } 28 | -------------------------------------------------------------------------------- /lib/src/main/java/dog/abcd/lib/network/listener/AntiNetworkJsonListener.java: -------------------------------------------------------------------------------- 1 | package dog.abcd.lib.network.listener; 2 | 3 | import com.android.volley.NetworkResponse; 4 | 5 | import org.json.JSONObject; 6 | 7 | import dog.abcd.lib.network.AntiNetwork; 8 | import dog.abcd.lib.network.AntiNetworkConvert; 9 | import dog.abcd.lib.network.AntiNetworkListener; 10 | 11 | /** 12 | * 网络请求处理回调(结果为JSON [org.json.JSONObject])
13 | * 从AntiNetworkListener重写 14 | * @see AntiNetworkListener 15 | * 16 | * @author Michael Lee
17 | * create at 2017/6/5 下午 16:00 18 | */ 19 | public abstract class AntiNetworkJsonListener implements AntiNetworkListener { 20 | 21 | @Override 22 | public final void success(AntiNetwork network, NetworkResponse result) { 23 | success( network, AntiNetworkConvert.convertResponseToJson( result ) ); 24 | } 25 | 26 | protected abstract void success(AntiNetwork network, JSONObject result); 27 | } 28 | -------------------------------------------------------------------------------- /demo/src/main/res/layout/activity_watcher_demo.xml: -------------------------------------------------------------------------------- 1 | 2 | 14 | 15 |