├── .gitignore ├── .idea ├── caches │ └── build_file_checksums.ser ├── codeStyles │ └── Project.xml ├── compiler.xml ├── gradle.xml ├── jarRepositories.xml ├── misc.xml ├── modules.xml └── vcs.xml ├── README.md ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── dingmouren │ │ └── androidcamerafilter │ │ ├── App.kt │ │ ├── FilterSplashActivity.kt │ │ └── control │ │ └── AdsController.kt │ └── res │ ├── drawable │ ├── ic_launcher_background.xml │ └── img_test.jpg │ ├── layout │ └── activity_main.xml │ ├── mipmap-hdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-mdpi │ └── ic_launcher.png │ ├── mipmap-xhdpi │ └── ic_launcher.png │ ├── mipmap-xxhdpi │ ├── ic_launcher.png │ └── splash_bg.png │ ├── mipmap-xxxhdpi │ └── ic_launcher.png │ └── values │ ├── colors.xml │ ├── strings.xml │ └── styles.xml ├── build.gradle ├── camerafilter ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── dingmouren │ │ └── camerafilter │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── assets │ │ ├── edgy_amber.png │ │ ├── filmstock.png │ │ ├── foggy_night.png │ │ ├── hehe.jpg │ │ ├── late_sunset.png │ │ ├── logo.png │ │ ├── mapping0.jpg │ │ ├── soft_warming.png │ │ └── wildbird.png │ ├── java │ │ └── com │ │ │ └── filter │ │ │ └── camerafilter │ │ │ ├── CameraFilterActivity.kt │ │ │ ├── ConstantFilters.java │ │ │ ├── ImageFilterActivity.kt │ │ │ ├── ImageSelectedActivity.kt │ │ │ ├── callback │ │ │ └── LoadAssetsImageCallback.java │ │ │ ├── dialog │ │ │ ├── DialogFilterList.java │ │ │ └── DialogFilterListAdapter.java │ │ │ ├── engine │ │ │ └── GlideEngine.java │ │ │ ├── listener │ │ │ ├── EndRecordingFilterCallback.java │ │ │ ├── StartRecordingFilterCallback.java │ │ │ └── TakePhotoFilterCallback.java │ │ │ ├── mgr │ │ │ └── SelectedImageManager.kt │ │ │ ├── util │ │ │ └── QFileUtil.java │ │ │ └── view │ │ │ └── VideoControlView.java │ └── res │ │ ├── anim │ │ ├── translate_dialog_in.xml │ │ └── translate_dialog_out.xml │ │ ├── drawable-nodpi │ │ ├── filter_0.jpg │ │ ├── filter_1.jpg │ │ ├── filter_10.jpg │ │ ├── filter_100.jpg │ │ ├── filter_101.jpg │ │ ├── filter_102.jpg │ │ ├── filter_103.jpg │ │ ├── filter_104.jpg │ │ ├── filter_11.jpg │ │ ├── filter_12.jpg │ │ ├── filter_13.jpg │ │ ├── filter_14.jpg │ │ ├── filter_15.jpg │ │ ├── filter_16.jpg │ │ ├── filter_17.jpg │ │ ├── filter_18.jpg │ │ ├── filter_19.jpg │ │ ├── filter_2.jpg │ │ ├── filter_20.jpg │ │ ├── filter_21.jpg │ │ ├── filter_22.jpg │ │ ├── filter_23.jpg │ │ ├── filter_24.jpg │ │ ├── filter_25.jpg │ │ ├── filter_26.jpg │ │ ├── filter_27.jpg │ │ ├── filter_28.jpg │ │ ├── filter_29.jpg │ │ ├── filter_3.jpg │ │ ├── filter_30.jpg │ │ ├── filter_31.jpg │ │ ├── filter_32.jpg │ │ ├── filter_33.jpg │ │ ├── filter_34.jpg │ │ ├── filter_35.jpg │ │ ├── filter_36.jpg │ │ ├── filter_37.jpg │ │ ├── filter_38.jpg │ │ ├── filter_39.jpg │ │ ├── filter_4.jpg │ │ ├── filter_40.jpg │ │ ├── filter_41.jpg │ │ ├── filter_42.jpg │ │ ├── filter_43.jpg │ │ ├── filter_44.jpg │ │ ├── filter_45.jpg │ │ ├── filter_46.jpg │ │ ├── filter_47.jpg │ │ ├── filter_48.jpg │ │ ├── filter_49.jpg │ │ ├── filter_5.jpg │ │ ├── filter_50.jpg │ │ ├── filter_51.jpg │ │ ├── filter_52.jpg │ │ ├── filter_53.jpg │ │ ├── filter_54.jpg │ │ ├── filter_55.jpg │ │ ├── filter_56.jpg │ │ ├── filter_57.jpg │ │ ├── filter_58.jpg │ │ ├── filter_59.jpg │ │ ├── filter_6.jpg │ │ ├── filter_60.jpg │ │ ├── filter_61.jpg │ │ ├── filter_62.jpg │ │ ├── filter_63.jpg │ │ ├── filter_64.jpg │ │ ├── filter_65.jpg │ │ ├── filter_66.jpg │ │ ├── filter_67.jpg │ │ ├── filter_68.jpg │ │ ├── filter_69.jpg │ │ ├── filter_7.jpg │ │ ├── filter_70.jpg │ │ ├── filter_71.jpg │ │ ├── filter_72.jpg │ │ ├── filter_73.jpg │ │ ├── filter_74.jpg │ │ ├── filter_75.jpg │ │ ├── filter_76.jpg │ │ ├── filter_77.jpg │ │ ├── filter_78.jpg │ │ ├── filter_79.jpg │ │ ├── filter_8.jpg │ │ ├── filter_80.jpg │ │ ├── filter_81.jpg │ │ ├── filter_82.jpg │ │ ├── filter_83.jpg │ │ ├── filter_84.jpg │ │ ├── filter_85.jpg │ │ ├── filter_86.jpg │ │ ├── filter_87.jpg │ │ ├── filter_88.jpg │ │ ├── filter_89.jpg │ │ ├── filter_9.jpg │ │ ├── filter_90.jpg │ │ ├── filter_91.jpg │ │ ├── filter_92.jpg │ │ ├── filter_93.jpg │ │ ├── filter_94.jpg │ │ ├── filter_95.jpg │ │ ├── filter_96.jpg │ │ ├── filter_97.jpg │ │ ├── filter_98.jpg │ │ └── filter_99.jpg │ │ ├── drawable │ │ ├── img_back.png │ │ ├── img_filter.png │ │ ├── img_flash.png │ │ ├── img_girl.jpg │ │ └── img_switch_camera.png │ │ ├── layout │ │ ├── activity_filter_camera.xml │ │ ├── activity_filter_image.xml │ │ ├── activity_filter_video.xml │ │ ├── activity_selected_image.xml │ │ ├── dialog_filter.xml │ │ └── item_dialog_filter.xml │ │ ├── mipmap-xxhdpi │ │ ├── camera_filter_cancel_icon.png │ │ ├── camera_filter_front_back_icon.png │ │ ├── filter_album.png │ │ ├── filter_beauty_icon.png │ │ ├── filter_filter_icon.png │ │ ├── filter_vip_icon.png │ │ ├── img_cancel.png │ │ ├── img_confirm.png │ │ └── selected_image_back_icon.png │ │ └── values │ │ ├── attr.xml │ │ ├── strings.xml │ │ └── style.xml │ └── test │ └── java │ └── com │ └── dingmouren │ └── camerafilter │ └── ExampleUnitTest.java ├── cameramain ├── .gitignore ├── build.gradle ├── consumer-rules.pro ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── bible │ │ └── cameramain │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── camera │ │ │ └── cameramain │ │ │ ├── FilterMainActivity.kt │ │ │ ├── FilterWebViewActivity.kt │ │ │ ├── activity │ │ │ └── FilterSettingActivity.kt │ │ │ ├── composebase │ │ │ ├── ComposeBase.kt │ │ │ ├── NoIndication.kt │ │ │ └── NoRippleTheme.kt │ │ │ ├── const │ │ │ └── PrivacyPolicyConst.kt │ │ │ ├── entity │ │ │ └── FilterSettingItemEntity.kt │ │ │ ├── ext │ │ │ └── AcExt.kt │ │ │ └── util │ │ │ └── FilterLogUtil.kt │ └── res │ │ ├── layout │ │ └── activity_filter_webview.xml │ │ └── mipmap-xxhdpi │ │ ├── camera_filter_cancel_icon.png │ │ ├── camera_filter_front_back_icon.png │ │ ├── filter_main_camera_icon.png │ │ ├── filter_main_center_bg.png │ │ ├── filter_main_center_tip_img.png │ │ ├── filter_main_edit_icon.png │ │ ├── filter_main_setting_enter_icon.png │ │ ├── filter_setting_feed_back_icon.png │ │ ├── filter_setting_icon_privacy.png │ │ ├── filter_setting_rate_icon.png │ │ ├── filter_setting_right_arrow.png │ │ └── filter_setting_share_icon.png │ └── test │ └── java │ └── com │ └── bible │ └── cameramain │ └── ExampleUnitTest.java ├── com.wowbeacamera.photo.jks ├── filterscene ├── .gitignore ├── build.gradle ├── consumer-rules.pro ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── call │ │ └── scene │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── filter │ │ │ └── scene │ │ │ ├── filterreceiver │ │ │ ├── FilterAllReceiver.java │ │ │ ├── FilterBatReceiver.java │ │ │ ├── FilterBroadCastIntent.java │ │ │ ├── FilterBroadCastInterfaceWrapper.java │ │ │ ├── FilterBroadCoastManager.java │ │ │ ├── FilterHomeReceiver.java │ │ │ ├── FilterInstallReceiver.java │ │ │ └── FilterNetworkReceiver.java │ │ │ ├── rxlife │ │ │ ├── FilterLifeObserver.java │ │ │ └── FilterReceiverConstant.java │ │ │ ├── rxproxy │ │ │ └── FilterBroadCastInterface.java │ │ │ └── utils │ │ │ ├── FilterAMUtil.java │ │ │ ├── FilterSharePreferenceUtil.java │ │ │ └── NetworkUtil.java │ └── res │ │ └── values │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── call │ └── scene │ └── ExampleUnitTest.java ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── imgs ├── filter_0.jpg ├── filter_1.jpg ├── filter_10.jpg ├── filter_100.jpg ├── filter_101.jpg ├── filter_102.jpg ├── filter_103.jpg ├── filter_104.jpg ├── filter_11.jpg ├── filter_12.jpg ├── filter_13.jpg ├── filter_14.jpg ├── filter_15.jpg ├── filter_16.jpg ├── filter_17.jpg ├── filter_18.jpg ├── filter_19.jpg ├── filter_2.jpg ├── filter_20.jpg ├── filter_21.jpg ├── filter_22.jpg ├── filter_23.jpg ├── filter_24.jpg ├── filter_25.jpg ├── filter_26.jpg ├── filter_27.jpg ├── filter_28.jpg ├── filter_29.jpg ├── filter_3.jpg ├── filter_30.jpg ├── filter_31.jpg ├── filter_32.jpg ├── filter_33.jpg ├── filter_34.jpg ├── filter_35.jpg ├── filter_36.jpg ├── filter_37.jpg ├── filter_38.jpg ├── filter_39.jpg ├── filter_4.jpg ├── filter_40.jpg ├── filter_41.jpg ├── filter_42.jpg ├── filter_43.jpg ├── filter_44.jpg ├── filter_45.jpg ├── filter_46.jpg ├── filter_47.jpg ├── filter_48.jpg ├── filter_49.jpg ├── filter_5.jpg ├── filter_50.jpg ├── filter_51.jpg ├── filter_52.jpg ├── filter_53.jpg ├── filter_54.jpg ├── filter_55.jpg ├── filter_56.jpg ├── filter_57.jpg ├── filter_58.jpg ├── filter_59.jpg ├── filter_6.jpg ├── filter_60.jpg ├── filter_61.jpg ├── filter_62.jpg ├── filter_63.jpg ├── filter_64.jpg ├── filter_65.jpg ├── filter_66.jpg ├── filter_67.jpg ├── filter_68.jpg ├── filter_69.jpg ├── filter_7.jpg ├── filter_70.jpg ├── filter_71.jpg ├── filter_72.jpg ├── filter_73.jpg ├── filter_74.jpg ├── filter_75.jpg ├── filter_76.jpg ├── filter_77.jpg ├── filter_78.jpg ├── filter_79.jpg ├── filter_8.jpg ├── filter_80.jpg ├── filter_81.jpg ├── filter_82.jpg ├── filter_83.jpg ├── filter_84.jpg ├── filter_85.jpg ├── filter_86.jpg ├── filter_87.jpg ├── filter_88.jpg ├── filter_89.jpg ├── filter_9.jpg ├── filter_90.jpg ├── filter_91.jpg ├── filter_92.jpg ├── filter_93.jpg ├── filter_94.jpg ├── filter_95.jpg ├── filter_96.jpg ├── filter_97.jpg ├── filter_98.jpg ├── filter_99.jpg ├── filter_img.gif └── filter_video.gif └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | .externalNativeBuild 10 | -------------------------------------------------------------------------------- /.idea/caches/build_file_checksums.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/newPersonKing/AndroidCameraFilter/169c63d042226a0a9de36bdd9f512df9c4d2577f/.idea/caches/build_file_checksums.ser -------------------------------------------------------------------------------- /.idea/codeStyles/Project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 15 | 16 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 22 | 23 | -------------------------------------------------------------------------------- /.idea/jarRepositories.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 14 | 15 | 19 | 20 | 24 | 25 | 29 | 30 | 34 | 35 | 39 | 40 | 44 | 45 | 49 | 50 | 54 | 55 | 59 | 60 | 64 | 65 | 69 | 70 | 74 | 75 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 11 | 31 | 48 | 49 | 50 | 51 | 52 | 53 | 55 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | apply plugin: 'org.jetbrains.kotlin.android' 3 | apply plugin: 'kotlin-android-extensions' 4 | 5 | android { 6 | compileSdkVersion 33 7 | defaultConfig { 8 | applicationId "com.dingmouren.androidcamerafilter" 9 | minSdkVersion 21 10 | targetSdkVersion 32 11 | versionCode 1 12 | versionName "1.0.0" 13 | testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' 14 | } 15 | buildTypes { 16 | debug { 17 | minifyEnabled false 18 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 19 | } 20 | release { 21 | minifyEnabled true 22 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 23 | } 24 | } 25 | 26 | buildFeatures { 27 | viewBinding true 28 | compose true 29 | } 30 | 31 | composeOptions { 32 | kotlinCompilerExtensionVersion compose_version 33 | kotlinCompilerVersion kotlin_version 34 | } 35 | } 36 | 37 | dependencies { 38 | implementation fileTree(include: ['*.jar'], dir: 'libs') 39 | implementation 'androidx.core:core-ktx:1.7.0' 40 | implementation 'androidx.appcompat:appcompat:1.6.1' 41 | implementation 'com.google.android.material:material:1.8.0' 42 | implementation 'androidx.constraintlayout:constraintlayout:2.1.4' 43 | implementation project(':camerafilter') 44 | implementation project(':cameramain') 45 | 46 | implementation 'androidx.multidex:multidex:2.0.1' 47 | 48 | implementation 'com.uat.components:alive-boss:0.0.6' 49 | } 50 | -------------------------------------------------------------------------------- /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 | -keep class com.luck.picture.lib.** { *; } 23 | 24 | -keep class com.luck.lib.camerax.** { *; } 25 | 26 | -dontwarn com.yalantis.ucrop** 27 | -keep class com.yalantis.ucrop** { *; } 28 | -keep interface com.yalantis.ucrop** { *; } 29 | 30 | -keepclassmembers class **.R$* { 31 | public static ; 32 | } 33 | -keep class **.R$* 34 | 35 | -keep class org.wysaid.nativePort.** { *; } -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 12 | 14 | 16 | 17 | 26 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /app/src/main/java/com/dingmouren/androidcamerafilter/App.kt: -------------------------------------------------------------------------------- 1 | package com.dingmouren.androidcamerafilter 2 | 3 | import android.app.Application 4 | import androidx.multidex.MultiDex 5 | 6 | class App : Application() { 7 | 8 | override fun onCreate() { 9 | super.onCreate() 10 | MultiDex.install(this) 11 | } 12 | } -------------------------------------------------------------------------------- /app/src/main/java/com/dingmouren/androidcamerafilter/control/AdsController.kt: -------------------------------------------------------------------------------- 1 | package com.dingmouren.androidcamerafilter.control 2 | 3 | import android.app.Application 4 | import android.os.Handler 5 | import android.os.Looper 6 | import com.dingmouren.androidcamerafilter.BuildConfig 7 | import com.tradplus.bn.initTradPlus 8 | 9 | class AdsController { 10 | 11 | companion object { 12 | private var retryHandler = Handler(Looper.getMainLooper()) 13 | private var adsKey = "2B34D817BB00D4EA7394A47232779E9B" 14 | fun initChatAds(application: Application){ 15 | initTradPlus(application, debugLog = BuildConfig.DEBUG,{ 16 | 17 | },adsKey) 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/img_test.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/newPersonKing/AndroidCameraFilter/169c63d042226a0a9de36bdd9f512df9c4d2577f/app/src/main/res/drawable/img_test.jpg -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 15 |