├── app ├── .gitignore ├── libs │ └── tabbar-1.5.7-release.aar ├── src │ └── main │ │ ├── res │ │ ├── mipmap-xhdpi │ │ │ ├── img_back.png │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ │ ├── img_bkg.png │ │ │ ├── ic_launcher.png │ │ │ ├── img_maintab_me.png │ │ │ ├── ic_launcher_round.png │ │ │ ├── img_maintab_function.png │ │ │ └── img_tab_introduction.png │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── values │ │ │ ├── colors.xml │ │ │ └── styles.xml │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ ├── layout │ │ │ ├── fragment_about.xml │ │ │ ├── item_list_layout1.xml │ │ │ ├── item_list_layout2.xml │ │ │ ├── item_list_layout3.xml │ │ │ ├── activity_transition.xml │ │ │ ├── fragment_demo.xml │ │ │ ├── activity_demo.xml │ │ │ ├── fragment_introduction.xml │ │ │ ├── fragment_function.xml │ │ │ ├── activity_response.xml │ │ │ ├── activity_adapter_test.xml │ │ │ └── activity_jump.xml │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ ├── values-en │ │ │ └── strings.xml │ │ └── drawable │ │ │ └── ic_launcher_background.xml │ │ ├── java │ │ └── com │ │ │ └── kongzue │ │ │ └── baseframeworkdemo │ │ │ ├── util │ │ │ ├── AutoHeightListView.java │ │ │ └── User.java │ │ │ ├── activity │ │ │ ├── TransitionActivity.java │ │ │ ├── JumpActivity.java │ │ │ ├── ResponseActivity.java │ │ │ └── DemoActivity.java │ │ │ ├── fragment │ │ │ ├── AboutFragment.java │ │ │ └── IntroductionFragment.java │ │ │ └── App.java │ │ └── AndroidManifest.xml ├── build.gradle └── proguard-rules.pro ├── baseframework ├── .gitignore ├── src │ └── main │ │ ├── res │ │ ├── values │ │ │ ├── strings.xml │ │ │ ├── styles.xml │ │ │ ├── attrs.xml │ │ │ └── colors.xml │ │ ├── drawable │ │ │ ├── shadow_bottom.png │ │ │ ├── shadow_left.png │ │ │ ├── shadow_right.png │ │ │ └── bkg_system_toast.xml │ │ ├── layout │ │ │ ├── swipeback_layout.xml │ │ │ ├── layout_baseframework_holder.xml │ │ │ └── layout_system_toast.xml │ │ └── anim │ │ │ ├── slide_in_left.xml │ │ │ ├── slide_in_right.xml │ │ │ ├── slide_out_left.xml │ │ │ ├── slide_out_right.xml │ │ │ ├── back.xml │ │ │ ├── fade.xml │ │ │ └── hold.xml │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── kongzue │ │ └── baseframework │ │ ├── util │ │ ├── OnJumpResponseListener.java │ │ ├── OnPermissionResponseListener.java │ │ ├── toast │ │ │ ├── BaseToast.java │ │ │ ├── Toaster.java │ │ │ └── CompatToast.java │ │ ├── swipeback │ │ │ ├── util │ │ │ │ ├── SwipeBackActivityBase.java │ │ │ │ ├── SwipeBackListenerActivityAdapter.java │ │ │ │ ├── SwipeBackActivityHelper.java │ │ │ │ ├── SwipeBackPreferenceActivity.java │ │ │ │ └── SwipeBackUtil.java │ │ │ └── SwipeBackActivity.java │ │ ├── OnActivityPermissionCallBack.java │ │ ├── DefaultViewPagerAdapter.java │ │ ├── JsonFormat.java │ │ ├── LanguageUtil.java │ │ ├── DataCarrier.java │ │ ├── CycleRunner.java │ │ ├── BuildProperties.java │ │ ├── ParameterCache.java │ │ ├── QueueWorks.java │ │ ├── BaseFragmentManager.java │ │ ├── AsyncActivityLayoutLoader.java │ │ ├── JumpParameter.java │ │ ├── Permission.java │ │ └── AsyncLayoutInflater.java │ │ ├── interfaces │ │ ├── OnSDKInitializedCallBack.java │ │ ├── SimpleAdapterSettings.java │ │ ├── MultipleAdapterSettings.java │ │ ├── LayoutName.java │ │ ├── LifeCircleListener.java │ │ ├── SimpleMapAdapterSettings.java │ │ ├── Layout.java │ │ ├── OnFragmentChangeListener.java │ │ ├── OnPictureSavedCallBack.java │ │ ├── MultipleMapAdapterSettings.java │ │ ├── DarkStatusBarTheme.java │ │ ├── DarkNavigationBarTheme.java │ │ ├── EnterAnim.java │ │ ├── ExitAnim.java │ │ ├── OnBugReportListener.java │ │ ├── OnClick.java │ │ ├── BindView.java │ │ ├── BindViews.java │ │ ├── OnClicks.java │ │ ├── NavigationBarBackgroundColor.java │ │ ├── FragmentLayout.java │ │ ├── FullScreen.java │ │ ├── SwipeBack.java │ │ ├── NavigationBarBackgroundColorHex.java │ │ ├── NavigationBarBackgroundColorRes.java │ │ ├── NavigationBarBackgroundColorInt.java │ │ ├── GlobalLifeCircleListener.java │ │ └── ActivityResultCallback.java │ │ ├── BaseBindingActivity.java │ │ ├── BaseBindingFragment.java │ │ ├── experimental │ │ └── BaseAdapter.java │ │ ├── view │ │ └── TableLayout.java │ │ └── BaseFrameworkSettings.java ├── proguard-rules.pro └── build.gradle ├── settings.gradle ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── gradle.properties ├── BUGREPORT.md ├── gradlew.bat ├── publish-mavencentral.gradle └── gradlew /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /baseframework/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app', ':baseframework' 2 | -------------------------------------------------------------------------------- /app/libs/tabbar-1.5.7-release.aar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kongzue/BaseFramework/HEAD/app/libs/tabbar-1.5.7-release.aar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kongzue/BaseFramework/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /baseframework/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | BaseFramework 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/img_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kongzue/BaseFramework/HEAD/app/src/main/res/mipmap-xhdpi/img_back.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/img_bkg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kongzue/BaseFramework/HEAD/app/src/main/res/mipmap-xxhdpi/img_bkg.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kongzue/BaseFramework/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kongzue/BaseFramework/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kongzue/BaseFramework/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kongzue/BaseFramework/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kongzue/BaseFramework/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kongzue/BaseFramework/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kongzue/BaseFramework/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/img_maintab_me.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kongzue/BaseFramework/HEAD/app/src/main/res/mipmap-xxhdpi/img_maintab_me.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kongzue/BaseFramework/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kongzue/BaseFramework/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kongzue/BaseFramework/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /baseframework/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /baseframework/src/main/res/drawable/shadow_bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kongzue/BaseFramework/HEAD/baseframework/src/main/res/drawable/shadow_bottom.png -------------------------------------------------------------------------------- /baseframework/src/main/res/drawable/shadow_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kongzue/BaseFramework/HEAD/baseframework/src/main/res/drawable/shadow_left.png -------------------------------------------------------------------------------- /baseframework/src/main/res/drawable/shadow_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kongzue/BaseFramework/HEAD/baseframework/src/main/res/drawable/shadow_right.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/img_maintab_function.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kongzue/BaseFramework/HEAD/app/src/main/res/mipmap-xxhdpi/img_maintab_function.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/img_tab_introduction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kongzue/BaseFramework/HEAD/app/src/main/res/mipmap-xxhdpi/img_tab_introduction.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/libraries 5 | /.idea/modules.xml 6 | /.idea/workspace.xml 7 | .DS_Store 8 | /build 9 | /captures 10 | .externalNativeBuild 11 | -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/util/OnJumpResponseListener.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.util; 2 | 3 | public interface OnJumpResponseListener { 4 | void OnResponse(JumpParameter jumpParameter); 5 | } 6 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/util/OnPermissionResponseListener.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.util; 2 | 3 | public interface OnPermissionResponseListener { 4 | void onSuccess(String[] permissions); 5 | void onFail(); 6 | } 7 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Tue Jan 17 00:58:43 CST 2023 2 | distributionBase=GRADLE_USER_HOME 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /baseframework/src/main/res/layout/swipeback_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /baseframework/src/main/res/drawable/bkg_system_toast.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/interfaces/OnSDKInitializedCallBack.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.interfaces; 2 | 3 | /** 4 | * @author: Kongzue 5 | * @github: https://github.com/kongzue/ 6 | * @homepage: http://kongzue.com/ 7 | * @mail: myzcxhh@live.cn 8 | * @createTime: 2019/9/23 12:50 9 | */ 10 | public interface OnSDKInitializedCallBack { 11 | 12 | void onInitialized(); 13 | 14 | } -------------------------------------------------------------------------------- /baseframework/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | -------------------------------------------------------------------------------- /baseframework/src/main/res/layout/layout_baseframework_holder.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 10 | -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/interfaces/SimpleAdapterSettings.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.interfaces; 2 | 3 | import android.view.View; 4 | 5 | import com.kongzue.baseframework.BaseAdapter; 6 | 7 | import java.util.List; 8 | 9 | public interface SimpleAdapterSettings { 10 | V setViewHolder(View convertView); 11 | 12 | void setData(V viewHolder, D data, List dataList, int index); 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_about.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 10 | 11 | -------------------------------------------------------------------------------- /baseframework/src/main/res/anim/slide_in_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 11 | -------------------------------------------------------------------------------- /baseframework/src/main/res/anim/slide_in_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 11 | -------------------------------------------------------------------------------- /baseframework/src/main/res/anim/slide_out_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 11 | -------------------------------------------------------------------------------- /baseframework/src/main/res/anim/slide_out_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 11 | -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/interfaces/MultipleAdapterSettings.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.interfaces; 2 | 3 | import android.view.View; 4 | 5 | import com.kongzue.baseframework.BaseAdapter; 6 | 7 | import java.util.List; 8 | import java.util.Map; 9 | 10 | public interface MultipleAdapterSettings { 11 | Object setViewHolder(int type, View convertView); 12 | 13 | void setData(int type, Object vh, D data, List dataList,int index); 14 | } -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/interfaces/LayoutName.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.interfaces; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | @Target(ElementType.TYPE) 10 | @Retention(RetentionPolicy.RUNTIME) 11 | @Documented 12 | public @interface LayoutName { 13 | String value(); 14 | } 15 | -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/interfaces/LifeCircleListener.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.interfaces; 2 | 3 | /** 4 | * Author: @Kongzue 5 | * Github: https://github.com/kongzue/ 6 | * Homepage: http://kongzue.com/ 7 | * Mail: myzcxhh@live.cn 8 | * CreateTime: 2018/8/1 01:36 9 | */ 10 | public abstract class LifeCircleListener { 11 | public void onCreate(){} 12 | public void onResume(){} 13 | public void onPause(){} 14 | public void onDestroy(){} 15 | } 16 | -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/interfaces/SimpleMapAdapterSettings.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.interfaces; 2 | 3 | import android.view.View; 4 | 5 | import com.kongzue.baseframework.BaseAdapter; 6 | 7 | import java.util.List; 8 | import java.util.Map; 9 | 10 | public interface SimpleMapAdapterSettings { 11 | V setViewHolder(View convertView); 12 | 13 | void setData(V viewHolder, Map data, List> dataList, int index); 14 | } -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/interfaces/Layout.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.interfaces; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | @Target(ElementType.TYPE) 10 | @Retention(RetentionPolicy.RUNTIME) 11 | @Documented 12 | public @interface Layout { 13 | 14 | int value() default -1; 15 | } 16 | -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/interfaces/OnFragmentChangeListener.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.interfaces; 2 | 3 | import com.kongzue.baseframework.BaseFragment; 4 | 5 | /** 6 | * @author: Kongzue 7 | * @github: https://github.com/kongzue/ 8 | * @homepage: http://kongzue.com/ 9 | * @mail: myzcxhh@live.cn 10 | * @createTime: 2019/8/21 12:28 11 | */ 12 | public interface OnFragmentChangeListener { 13 | 14 | void onChange(int index, BaseFragment fragment); 15 | 16 | } -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/interfaces/OnPictureSavedCallBack.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.interfaces; 2 | 3 | import com.kongzue.baseframework.util.PictureCache; 4 | 5 | /** 6 | * @author: Kongzue 7 | * @github: https://github.com/kongzue/ 8 | * @homepage: http://kongzue.com/ 9 | * @mail: myzcxhh@live.cn 10 | * @createTime: 2020/8/18 10:49 11 | */ 12 | public interface OnPictureSavedCallBack { 13 | 14 | void onSaved(PictureCache pictureCache); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/interfaces/MultipleMapAdapterSettings.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.interfaces; 2 | 3 | import android.view.View; 4 | 5 | import com.kongzue.baseframework.BaseAdapter; 6 | 7 | import java.util.List; 8 | import java.util.Map; 9 | 10 | public interface MultipleMapAdapterSettings { 11 | Object setViewHolder(int type, View convertView); 12 | 13 | void setData(int type, Object vh, Map data, List> dataList, int index); 14 | } -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/interfaces/DarkStatusBarTheme.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.interfaces; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | @Target(ElementType.TYPE) 10 | @Retention(RetentionPolicy.RUNTIME) 11 | @Documented 12 | public @interface DarkStatusBarTheme { 13 | boolean value() default false; 14 | } 15 | -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/interfaces/DarkNavigationBarTheme.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.interfaces; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | @Target(ElementType.TYPE) 10 | @Retention(RetentionPolicy.RUNTIME) 11 | @Documented 12 | public @interface DarkNavigationBarTheme { 13 | boolean value() default false; 14 | } 15 | -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/util/toast/BaseToast.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.util.toast; 2 | 3 | /** 4 | * Author: @Kongzue 5 | * Github: https://github.com/kongzue/ 6 | * Homepage: http://kongzue.com/ 7 | * Mail: myzcxhh@live.cn 8 | * CreateTime: 2019/3/10 12:30 9 | */ 10 | public abstract class BaseToast { 11 | 12 | public abstract BaseToast show(String msg); 13 | 14 | public abstract BaseToast show(int layoutResId); 15 | 16 | public abstract BaseToast cancel(); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/interfaces/EnterAnim.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.interfaces; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | @Target(ElementType.TYPE) 10 | @Retention(RetentionPolicy.RUNTIME) 11 | @Documented 12 | public @interface EnterAnim { 13 | int enterAnimResId() default -1; 14 | int holdAnimResId() default -1; 15 | } 16 | -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/interfaces/ExitAnim.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.interfaces; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | @Target(ElementType.TYPE) 10 | @Retention(RetentionPolicy.RUNTIME) 11 | @Documented 12 | public @interface ExitAnim { 13 | int holdAnimResId() default -1; 14 | int exitAnimResId() default -1; 15 | } 16 | -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/interfaces/OnBugReportListener.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.interfaces; 2 | 3 | import java.io.File; 4 | 5 | /** 6 | * Author: @Kongzue 7 | * Github: https://github.com/kongzue/ 8 | * Homepage: http://kongzue.com/ 9 | * Mail: myzcxhh@live.cn 10 | * CreateTime: 2018/9/30 15:47 11 | */ 12 | public abstract class OnBugReportListener { 13 | 14 | @Deprecated 15 | public void onReporter(File file) { 16 | 17 | } 18 | 19 | public abstract boolean onCrash(Exception e,File crashLogFile); 20 | } -------------------------------------------------------------------------------- /app/src/main/res/layout/item_list_layout1.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_list_layout2.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_list_layout3.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 14 | 15 | -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/interfaces/OnClick.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.interfaces; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * @author: Kongzue 10 | * @github: https://github.com/kongzue/ 11 | * @homepage: http://kongzue.com/ 12 | * @mail: myzcxhh@live.cn 13 | * @createTime: 2019/11/21 15:19 14 | */ 15 | @Target(ElementType.METHOD) 16 | @Retention(RetentionPolicy.RUNTIME) 17 | public @interface OnClick { 18 | int value() default 0; 19 | } -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/util/swipeback/util/SwipeBackActivityBase.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.util.swipeback.util; 2 | 3 | /** 4 | * @author Yrom 5 | */ 6 | public interface SwipeBackActivityBase { 7 | /** 8 | * @return the SwipeBackLayout associated with this activity. 9 | */ 10 | public abstract SwipeBackLayout getSwipeBackLayout(); 11 | 12 | public abstract void setSwipeBackEnable(boolean enable); 13 | 14 | /** 15 | * Scroll out contentView and finish the activity 16 | */ 17 | public abstract void scrollToFinishActivity(); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/interfaces/BindView.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.interfaces; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * @author: Kongzue 10 | * @github: https://github.com/kongzue/ 11 | * @homepage: http://kongzue.com/ 12 | * @mail: myzcxhh@live.cn 13 | * @createTime: 2019/11/21 15:17 14 | */ 15 | @Target(ElementType.FIELD) 16 | @Retention(RetentionPolicy.RUNTIME) 17 | public @interface BindView { 18 | int value() default 0; 19 | } -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/interfaces/BindViews.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.interfaces; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * @author: Kongzue 10 | * @github: https://github.com/kongzue/ 11 | * @homepage: http://kongzue.com/ 12 | * @mail: myzcxhh@live.cn 13 | * @createTime: 2019/11/21 22:08 14 | */ 15 | @Target(ElementType.FIELD) 16 | @Retention(RetentionPolicy.RUNTIME) 17 | public @interface BindViews { 18 | int[] value() default 0; 19 | } -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/interfaces/OnClicks.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.interfaces; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * @author: Kongzue 10 | * @github: https://github.com/kongzue/ 11 | * @homepage: http://kongzue.com/ 12 | * @mail: myzcxhh@live.cn 13 | * @createTime: 2020/11/27 16:03 14 | */ 15 | @Target(ElementType.METHOD) 16 | @Retention(RetentionPolicy.RUNTIME) 17 | public @interface OnClicks { 18 | int[] value() default 0; 19 | } -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/interfaces/NavigationBarBackgroundColor.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.interfaces; 2 | 3 | import android.graphics.Color; 4 | 5 | import java.lang.annotation.Documented; 6 | import java.lang.annotation.ElementType; 7 | import java.lang.annotation.Retention; 8 | import java.lang.annotation.RetentionPolicy; 9 | import java.lang.annotation.Target; 10 | 11 | @Target(ElementType.TYPE) 12 | @Retention(RetentionPolicy.RUNTIME) 13 | @Documented 14 | public @interface NavigationBarBackgroundColor { 15 | int a() default 255; 16 | int r() default 0; 17 | int g() default 0; 18 | int b() default 0; 19 | } -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/interfaces/FragmentLayout.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.interfaces; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | /** 10 | * @author: Kongzue 11 | * @github: https://github.com/kongzue/ 12 | * @homepage: http://kongzue.com/ 13 | * @mail: myzcxhh@live.cn 14 | * @createTime: 2019/8/22 20:58 15 | */ 16 | @Target(ElementType.TYPE) 17 | @Retention(RetentionPolicy.RUNTIME) 18 | @Documented 19 | public @interface FragmentLayout { 20 | int value() default -1; 21 | } -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/interfaces/FullScreen.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.interfaces; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | /** 10 | * Author: @Kongzue 11 | * Github: https://github.com/kongzue/ 12 | * Homepage: http://kongzue.com/ 13 | * Mail: myzcxhh@live.cn 14 | * CreateTime: 2018/8/22 18:16 15 | */ 16 | @Target(ElementType.TYPE) 17 | @Retention(RetentionPolicy.RUNTIME) 18 | @Documented 19 | public @interface FullScreen { 20 | boolean value() default false; 21 | } 22 | -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/interfaces/SwipeBack.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.interfaces; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | /** 10 | * Author: @Kongzue 11 | * Github: https://github.com/kongzue/ 12 | * Homepage: http://kongzue.com/ 13 | * Mail: myzcxhh@live.cn 14 | * CreateTime: 2018/11/10 17:37 15 | */ 16 | @Target(ElementType.TYPE) 17 | @Retention(RetentionPolicy.RUNTIME) 18 | @Documented 19 | public @interface SwipeBack { 20 | boolean value() default false; 21 | } 22 | -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/interfaces/NavigationBarBackgroundColorHex.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.interfaces; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | /** 10 | * @author: Kongzue 11 | * @github: https://github.com/kongzue/ 12 | * @homepage: http://kongzue.com/ 13 | * @mail: myzcxhh@live.cn 14 | * @createTime: 2019/9/27 15:30 15 | */ 16 | @Target(ElementType.TYPE) 17 | @Retention(RetentionPolicy.RUNTIME) 18 | @Documented 19 | public @interface NavigationBarBackgroundColorHex { 20 | String value() default ""; 21 | } -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/interfaces/NavigationBarBackgroundColorRes.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.interfaces; 2 | 3 | import com.kongzue.baseframework.R; 4 | 5 | import java.lang.annotation.Documented; 6 | import java.lang.annotation.ElementType; 7 | import java.lang.annotation.Retention; 8 | import java.lang.annotation.RetentionPolicy; 9 | import java.lang.annotation.Target; 10 | 11 | /** 12 | * @author: Kongzue 13 | * @github: https://github.com/kongzue/ 14 | * @homepage: http://kongzue.com/ 15 | * @mail: myzcxhh@live.cn 16 | * @createTime: 2019/9/23 13:45 17 | */ 18 | @Target(ElementType.TYPE) 19 | @Retention(RetentionPolicy.RUNTIME) 20 | @Documented 21 | public @interface NavigationBarBackgroundColorRes { 22 | int value() default -1; 23 | } -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/interfaces/NavigationBarBackgroundColorInt.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.interfaces; 2 | 3 | import android.graphics.Color; 4 | 5 | import java.lang.annotation.Documented; 6 | import java.lang.annotation.ElementType; 7 | import java.lang.annotation.Retention; 8 | import java.lang.annotation.RetentionPolicy; 9 | import java.lang.annotation.Target; 10 | 11 | /** 12 | * @author: Kongzue 13 | * @github: https://github.com/kongzue/ 14 | * @homepage: http://kongzue.com/ 15 | * @mail: myzcxhh@live.cn 16 | * @createTime: 2019/9/23 13:44 17 | */ 18 | @Target(ElementType.TYPE) 19 | @Retention(RetentionPolicy.RUNTIME) 20 | @Documented 21 | public @interface NavigationBarBackgroundColorInt { 22 | int value() default -16777216; 23 | } -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 30 5 | defaultConfig { 6 | applicationId "com.kongzue.baseframeworkdemo" 7 | minSdkVersion 15 8 | targetSdkVersion 34 9 | versionCode 142 10 | versionName "7.0.7" 11 | } 12 | buildTypes { 13 | release { 14 | minifyEnabled false 15 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 16 | } 17 | } 18 | } 19 | 20 | dependencies { 21 | implementation fileTree(include: ['*.jar','*.aar'], dir: 'libs') 22 | implementation 'androidx.appcompat:appcompat:1.0.0' 23 | implementation 'com.google.android.material:material:1.0.0' 24 | implementation project(':baseframework') 25 | } 26 | -------------------------------------------------------------------------------- /baseframework/src/main/res/layout/layout_system_toast.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 19 | 20 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /baseframework/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx1536m 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. More details, visit 12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 13 | # org.gradle.parallel=true 14 | android.useAndroidX=true 15 | # Automatically convert third-party libraries to use AndroidX 16 | android.enableJetifier=true -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/interfaces/GlobalLifeCircleListener.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.interfaces; 2 | 3 | import com.kongzue.baseframework.BaseActivity; 4 | 5 | /** 6 | * Author: @Kongzue 7 | * Github: https://github.com/kongzue/ 8 | * Homepage: http://kongzue.com/ 9 | * Mail: myzcxhh@live.cn 10 | * CreateTime: 2018/9/1 15:44 11 | */ 12 | public abstract class GlobalLifeCircleListener { 13 | public void onCreate(BaseActivity me, String className){} 14 | public void onResume(BaseActivity me, String className){} 15 | public void onPause(BaseActivity me, String className){} 16 | public void onDestroy(BaseActivity me, String className){} 17 | public void windowFocus(BaseActivity me, String className, boolean hasFocus) { } 18 | public void onStart(BaseActivity activity, String className){} 19 | public void onStop(BaseActivity activity, String className){} 20 | } 21 | -------------------------------------------------------------------------------- /baseframework/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /baseframework/src/main/res/anim/back.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 21 | -------------------------------------------------------------------------------- /baseframework/src/main/res/anim/fade.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 21 | -------------------------------------------------------------------------------- /baseframework/src/main/res/anim/hold.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 21 | -------------------------------------------------------------------------------- /baseframework/src/main/java/com/kongzue/baseframework/interfaces/ActivityResultCallback.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframework.interfaces; 2 | 3 | import android.content.Intent; 4 | 5 | import androidx.annotation.Nullable; 6 | 7 | /** 8 | * @author: Kongzue 9 | * @github: https://github.com/kongzue/ 10 | * @homepage: http://kongzue.com/ 11 | * @mail: myzcxhh@live.cn 12 | * @createTime: 2021/1/19 15:06 13 | */ 14 | public abstract class ActivityResultCallback { 15 | 16 | public ActivityResultCallback(int resultId) { 17 | this.resultId = resultId; 18 | } 19 | 20 | public ActivityResultCallback() { 21 | } 22 | 23 | public int resultId; 24 | 25 | public int getResultId() { 26 | return resultId; 27 | } 28 | 29 | public ActivityResultCallback setResultId(int resultId) { 30 | this.resultId = resultId; 31 | return this; 32 | } 33 | 34 | public abstract void onActivityResult(int requestCode, int resultCode, @Nullable Intent data); 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/java/com/kongzue/baseframeworkdemo/util/AutoHeightListView.java: -------------------------------------------------------------------------------- 1 | package com.kongzue.baseframeworkdemo.util; 2 | 3 | import android.content.Context; 4 | import android.util.AttributeSet; 5 | import android.widget.ListView; 6 | 7 | /** 8 | * @author: Kongzue 9 | * @github: https://github.com/kongzue/ 10 | * @homepage: http://kongzue.com/ 11 | * @mail: myzcxhh@live.cn 12 | * @createTime: 2019/9/30 14:01 13 | */ 14 | public class AutoHeightListView extends ListView { 15 | public AutoHeightListView(Context context) { 16 | super(context); 17 | } 18 | 19 | public AutoHeightListView(Context context, AttributeSet attrs) { 20 | super(context, attrs); 21 | } 22 | 23 | public AutoHeightListView(Context context, AttributeSet attrs, int defStyleAttr) { 24 | super(context, attrs, defStyleAttr); 25 | } 26 | 27 | @Override 28 | protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 29 | int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); 30 | super.onMeasure(widthMeasureSpec, expandSpec); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_transition.xml: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | 18 | 19 | 20 | 21 |