{
- ProtoAdapter_Transform() {
- super(FieldEncoding.LENGTH_DELIMITED, Transform.class);
- }
-
- @Override
- public int encodedSize(Transform value) {
- return (value.a != null ? ProtoAdapter.FLOAT.encodedSizeWithTag(1, value.a) : 0)
- + (value.b != null ? ProtoAdapter.FLOAT.encodedSizeWithTag(2, value.b) : 0)
- + (value.c != null ? ProtoAdapter.FLOAT.encodedSizeWithTag(3, value.c) : 0)
- + (value.d != null ? ProtoAdapter.FLOAT.encodedSizeWithTag(4, value.d) : 0)
- + (value.tx != null ? ProtoAdapter.FLOAT.encodedSizeWithTag(5, value.tx) : 0)
- + (value.ty != null ? ProtoAdapter.FLOAT.encodedSizeWithTag(6, value.ty) : 0)
- + value.unknownFields().size();
- }
-
- @Override
- public void encode(ProtoWriter writer, Transform value) throws IOException {
- if (value.a != null) ProtoAdapter.FLOAT.encodeWithTag(writer, 1, value.a);
- if (value.b != null) ProtoAdapter.FLOAT.encodeWithTag(writer, 2, value.b);
- if (value.c != null) ProtoAdapter.FLOAT.encodeWithTag(writer, 3, value.c);
- if (value.d != null) ProtoAdapter.FLOAT.encodeWithTag(writer, 4, value.d);
- if (value.tx != null) ProtoAdapter.FLOAT.encodeWithTag(writer, 5, value.tx);
- if (value.ty != null) ProtoAdapter.FLOAT.encodeWithTag(writer, 6, value.ty);
- writer.writeBytes(value.unknownFields());
- }
-
- @Override
- public Transform decode(ProtoReader reader) throws IOException {
- Builder builder = new Builder();
- long token = reader.beginMessage();
- for (int tag; (tag = reader.nextTag()) != -1;) {
- switch (tag) {
- case 1: builder.a(ProtoAdapter.FLOAT.decode(reader)); break;
- case 2: builder.b(ProtoAdapter.FLOAT.decode(reader)); break;
- case 3: builder.c(ProtoAdapter.FLOAT.decode(reader)); break;
- case 4: builder.d(ProtoAdapter.FLOAT.decode(reader)); break;
- case 5: builder.tx(ProtoAdapter.FLOAT.decode(reader)); break;
- case 6: builder.ty(ProtoAdapter.FLOAT.decode(reader)); break;
- default: {
- FieldEncoding fieldEncoding = reader.peekFieldEncoding();
- Object value = fieldEncoding.rawProtoAdapter().decode(reader);
- builder.addUnknownField(tag, fieldEncoding, value);
- }
- }
- }
- reader.endMessage(token);
- return builder.build();
- }
-
- @Override
- public Transform redact(Transform value) {
- Builder builder = value.newBuilder();
- builder.clearUnknownFields();
- return builder.build();
- }
- }
-}
diff --git a/SVGAlibrary/src/main/java/com/opensource/svgaplayer/utils/Pools.kt b/SVGAlibrary/src/main/java/com/opensource/svgaplayer/utils/Pools.kt
deleted file mode 100644
index 7382ab84b..000000000
--- a/SVGAlibrary/src/main/java/com/opensource/svgaplayer/utils/Pools.kt
+++ /dev/null
@@ -1,102 +0,0 @@
-package com.opensource.svgaplayer.utils
-
-/**
- * Helper class for creating pools of objects. An example use looks like this:
- *
- * public class MyPooledClass {
- *
- * private static final SynchronizedPool sPool =
- * new SynchronizedPool(10);
- *
- * public static MyPooledClass obtain() {
- * MyPooledClass instance = sPool.acquire();
- * return (instance != null) ? instance : new MyPooledClass();
- * }
- *
- * public void recycle() {
- * // Clear state if needed.
- * sPool.release(this);
- * }
- *
- * . . .
- * }
- *
- *
- */
-class Pools private constructor() {
-
- /**
- * Interface for managing a pool of objects.
- *
- * @param The pooled type.
- */
- interface Pool {
- /**
- * @return An instance from the pool if such, null otherwise.
- */
- fun acquire(): T?
-
- /**
- * Release an instance to the pool.
- *
- * @param instance The instance to release.
- * @return Whether the instance was put in the pool.
- *
- * @throws IllegalStateException If the instance is already in the pool.
- */
- fun release(instance: T): Boolean
- }
-
- /**
- * Simple (non-synchronized) pool of objects.
- *
- * @param maxPoolSize The max pool size.
- *
- * @throws IllegalArgumentException If the max pool size is less than zero.
- *
- * @param The pooled type.
- */
- open class SimplePool(maxPoolSize: Int) : Pool {
- private val mPool: Array
- private var mPoolSize = 0
-
- init {
- require(maxPoolSize > 0) { "The max pool size must be > 0" }
- mPool = arrayOfNulls(maxPoolSize)
- }
-
- @Suppress("UNCHECKED_CAST")
- override fun acquire(): T? {
- if (mPoolSize > 0) {
- val lastPooledIndex = mPoolSize - 1
- val instance = mPool[lastPooledIndex] as T?
- mPool[lastPooledIndex] = null
- mPoolSize--
- return instance
- }
- return null
- }
-
- override fun release(instance: T): Boolean {
- check(!isInPool(instance)) { "Already in the pool!" }
- if (mPoolSize < mPool.size) {
- mPool[mPoolSize] = instance
- mPoolSize++
- return true
- }
- return false
- }
-
- private fun isInPool(instance: T): Boolean {
- for (i in 0 until mPoolSize) {
- if (mPool[i] === instance) {
- return true
- }
- }
- return false
- }
-
- }
-
-
-}
\ No newline at end of file
diff --git a/SVGAlibrary/src/main/java/com/opensource/svgaplayer/utils/SVGAScaleInfo.kt b/SVGAlibrary/src/main/java/com/opensource/svgaplayer/utils/SVGAScaleInfo.kt
deleted file mode 100644
index 792abc266..000000000
--- a/SVGAlibrary/src/main/java/com/opensource/svgaplayer/utils/SVGAScaleInfo.kt
+++ /dev/null
@@ -1,146 +0,0 @@
-package com.opensource.svgaplayer.utils
-
-import android.widget.ImageView
-
-/**
- * Created by ubt on 2018/1/19.
- */
-class SVGAScaleInfo {
-
- var tranFx : Float = 0.0f
- var tranFy : Float = 0.0f
- var scaleFx : Float = 1.0f
- var scaleFy : Float = 1.0f
- var ratio = 1.0f
- var ratioX = false
-
- private fun resetVar(){
- tranFx = 0.0f
- tranFy = 0.0f
- scaleFx = 1.0f
- scaleFy = 1.0f
- ratio = 1.0f
- ratioX = false
- }
-
- fun performScaleType(canvasWidth : Float, canvasHeight: Float, videoWidth : Float, videoHeight : Float, scaleType: ImageView.ScaleType) {
- if (canvasWidth == 0.0f || canvasHeight == 0.0f || videoWidth == 0.0f || videoHeight == 0.0f) {
- return
- }
-
- resetVar()
- val canW_vidW_f = (canvasWidth - videoWidth) / 2.0f
- val canH_vidH_f = (canvasHeight - videoHeight) / 2.0f
-
- val videoRatio = videoWidth / videoHeight
- val canvasRatio = canvasWidth / canvasHeight
-
- val canH_d_vidH = canvasHeight / videoHeight
- val canW_d_vidW = canvasWidth / videoWidth
-
- when (scaleType) {
- ImageView.ScaleType.CENTER -> {
- tranFx = canW_vidW_f
- tranFy = canH_vidH_f
- }
- ImageView.ScaleType.CENTER_CROP -> {
- if (videoRatio > canvasRatio) {
- ratio = canH_d_vidH
- ratioX = false
- scaleFx = canH_d_vidH
- scaleFy = canH_d_vidH
- tranFx = (canvasWidth - videoWidth * (canH_d_vidH)) / 2.0f
- }
- else {
- ratio = canW_d_vidW
- ratioX = true
- scaleFx = canW_d_vidW
- scaleFy = canW_d_vidW
- tranFy = (canvasHeight - videoHeight * (canW_d_vidW)) / 2.0f
- }
- }
- ImageView.ScaleType.CENTER_INSIDE -> {
- if (videoWidth < canvasWidth && videoHeight < canvasHeight) {
- tranFx = canW_vidW_f
- tranFy = canH_vidH_f
- }
- else {
- if (videoRatio > canvasRatio) {
- ratio = canW_d_vidW
- ratioX = true
- scaleFx = canW_d_vidW
- scaleFy = canW_d_vidW
- tranFy = (canvasHeight - videoHeight * (canW_d_vidW)) / 2.0f
-
- }
- else {
- ratio = canH_d_vidH
- ratioX = false
- scaleFx = canH_d_vidH
- scaleFy = canH_d_vidH
- tranFx = (canvasWidth - videoWidth * (canH_d_vidH)) / 2.0f
- }
- }
- }
- ImageView.ScaleType.FIT_CENTER -> {
- if (videoRatio > canvasRatio) {
- ratio = canW_d_vidW
- ratioX = true
- scaleFx = canW_d_vidW
- scaleFy = canW_d_vidW
- tranFy = (canvasHeight - videoHeight * (canW_d_vidW)) / 2.0f
- }
- else {
- ratio = canH_d_vidH
- ratioX = false
- scaleFx = canH_d_vidH
- scaleFy = canH_d_vidH
- tranFx = (canvasWidth - videoWidth * (canH_d_vidH)) / 2.0f
- }
- }
- ImageView.ScaleType.FIT_START -> {
- if (videoRatio > canvasRatio) {
- ratio = canW_d_vidW
- ratioX = true
- scaleFx = canW_d_vidW
- scaleFy = canW_d_vidW
- }
- else {
- ratio = canH_d_vidH
- ratioX = false
- scaleFx = canH_d_vidH
- scaleFy = canH_d_vidH
- }
- }
- ImageView.ScaleType.FIT_END -> {
- if (videoRatio > canvasRatio) {
- ratio = canW_d_vidW
- ratioX = true
- scaleFx = canW_d_vidW
- scaleFy = canW_d_vidW
- tranFy= canvasHeight - videoHeight * (canW_d_vidW)
- }
- else {
- ratio = canH_d_vidH
- ratioX = false
- scaleFx = canH_d_vidH
- scaleFy = canH_d_vidH
- tranFx = canvasWidth - videoWidth * (canH_d_vidH)
- }
- }
- ImageView.ScaleType.FIT_XY -> {
- ratio = Math.max(canW_d_vidW, canH_d_vidH)
- ratioX = canW_d_vidW > canH_d_vidH
- scaleFx = canW_d_vidW
- scaleFy = canH_d_vidH
- }
- else -> {
- ratio = canW_d_vidW
- ratioX = true
- scaleFx = canW_d_vidW
- scaleFy = canW_d_vidW
- }
- }
- }
-
-}
diff --git a/SVGAlibrary/src/main/java/com/opensource/svgaplayer/utils/SVGAStructs.kt b/SVGAlibrary/src/main/java/com/opensource/svgaplayer/utils/SVGAStructs.kt
deleted file mode 100644
index f87b30db0..000000000
--- a/SVGAlibrary/src/main/java/com/opensource/svgaplayer/utils/SVGAStructs.kt
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.opensource.svgaplayer.utils
-
-/**
- * Created by cuiminghui on 2017/3/29.
- */
-
-class SVGAPoint(val x: Float, val y: Float, val value: Float)
-
-class SVGARect(val x: Double, val y: Double, val width: Double, val height: Double)
-
-class SVGARange(val location: Int, val length: Int)
\ No newline at end of file
diff --git a/SVGAlibrary/src/main/java/com/opensource/svgaplayer/utils/log/DefaultLogCat.kt b/SVGAlibrary/src/main/java/com/opensource/svgaplayer/utils/log/DefaultLogCat.kt
deleted file mode 100644
index 33200b0e1..000000000
--- a/SVGAlibrary/src/main/java/com/opensource/svgaplayer/utils/log/DefaultLogCat.kt
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.opensource.svgaplayer.utils.log
-
-import android.util.Log
-
-/**
- * 内部默认 ILogger 接口实现
- */
-class DefaultLogCat : ILogger {
- override fun verbose(tag: String, msg: String) {
- Log.v(tag, msg)
- }
-
- override fun info(tag: String, msg: String) {
- Log.i(tag, msg)
- }
-
- override fun debug(tag: String, msg: String) {
- Log.d(tag, msg)
- }
-
- override fun warn(tag: String, msg: String) {
- Log.w(tag, msg)
- }
-
- override fun error(tag: String, msg: String?, error: Throwable?) {
- Log.e(tag, msg, error)
- }
-}
\ No newline at end of file
diff --git a/SVGAlibrary/src/main/java/com/opensource/svgaplayer/utils/log/ILogger.kt b/SVGAlibrary/src/main/java/com/opensource/svgaplayer/utils/log/ILogger.kt
deleted file mode 100644
index ad935104c..000000000
--- a/SVGAlibrary/src/main/java/com/opensource/svgaplayer/utils/log/ILogger.kt
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.opensource.svgaplayer.utils.log
-
-/**
- * log 外部接管接口
- **/
-interface ILogger {
- fun verbose(tag: String, msg: String)
- fun info(tag: String, msg: String)
- fun debug(tag: String, msg: String)
- fun warn(tag: String, msg: String)
- fun error(tag: String, msg: String?, error: Throwable?)
-}
\ No newline at end of file
diff --git a/SVGAlibrary/src/main/java/com/opensource/svgaplayer/utils/log/LogUtils.kt b/SVGAlibrary/src/main/java/com/opensource/svgaplayer/utils/log/LogUtils.kt
deleted file mode 100644
index 60c67f9c2..000000000
--- a/SVGAlibrary/src/main/java/com/opensource/svgaplayer/utils/log/LogUtils.kt
+++ /dev/null
@@ -1,57 +0,0 @@
-package com.opensource.svgaplayer.utils.log
-
-/**
- * 日志输出
- */
-internal object LogUtils {
- private const val TAG = "SVGALog"
-
- fun verbose(tag: String = TAG, msg: String) {
- if (!SVGALogger.isLogEnabled()) {
- return
- }
- SVGALogger.getSVGALogger()?.verbose(tag, msg)
- }
-
- fun info(tag: String = TAG, msg: String) {
- if (!SVGALogger.isLogEnabled()) {
- return
- }
- SVGALogger.getSVGALogger()?.info(tag, msg)
- }
-
- fun debug(tag: String = TAG, msg: String) {
- if (!SVGALogger.isLogEnabled()) {
- return
- }
- SVGALogger.getSVGALogger()?.debug(tag, msg)
- }
-
- fun warn(tag: String = TAG, msg: String) {
- if (!SVGALogger.isLogEnabled()) {
- return
- }
- SVGALogger.getSVGALogger()?.warn(tag, msg)
- }
-
- fun error(tag: String = TAG, msg: String) {
- if (!SVGALogger.isLogEnabled()) {
- return
- }
- SVGALogger.getSVGALogger()?.error(tag, msg, null)
- }
-
- fun error(tag: String, error: Throwable) {
- if (!SVGALogger.isLogEnabled()) {
- return
- }
- SVGALogger.getSVGALogger()?.error(tag, error.message, error)
- }
-
- fun error(tag: String = TAG, msg: String, error: Throwable) {
- if (!SVGALogger.isLogEnabled()) {
- return
- }
- SVGALogger.getSVGALogger()?.error(tag, msg, error)
- }
-}
\ No newline at end of file
diff --git a/SVGAlibrary/src/main/java/com/opensource/svgaplayer/utils/log/SVGALogger.kt b/SVGAlibrary/src/main/java/com/opensource/svgaplayer/utils/log/SVGALogger.kt
deleted file mode 100644
index 5767c6385..000000000
--- a/SVGAlibrary/src/main/java/com/opensource/svgaplayer/utils/log/SVGALogger.kt
+++ /dev/null
@@ -1,40 +0,0 @@
-package com.opensource.svgaplayer.utils.log
-
-/**
- * SVGA logger 配置管理
- **/
-object SVGALogger {
-
- private var mLogger: ILogger? = DefaultLogCat()
- private var isLogEnabled = false
-
- /**
- * log 接管注入
- */
- fun injectSVGALoggerImp(logImp: ILogger): SVGALogger {
- mLogger = logImp
- return this
- }
-
- /**
- * 设置是否开启 log
- */
- fun setLogEnabled(isEnabled: Boolean): SVGALogger {
- isLogEnabled = isEnabled
- return this
- }
-
- /**
- * 获取当前 ILogger 实现类
- */
- fun getSVGALogger(): ILogger? {
- return mLogger
- }
-
- /**
- * 是否开启 log
- */
- fun isLogEnabled(): Boolean {
- return isLogEnabled
- }
-}
\ No newline at end of file
diff --git a/SVGAlibrary/src/main/res/values/attrs.xml b/SVGAlibrary/src/main/res/values/attrs.xml
deleted file mode 100644
index 471c34453..000000000
--- a/SVGAlibrary/src/main/res/values/attrs.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/SVGAlibrary/src/main/res/values/strings.xml b/SVGAlibrary/src/main/res/values/strings.xml
deleted file mode 100644
index 475f55349..000000000
--- a/SVGAlibrary/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
- SVGAPlayer
-
diff --git a/app/build.gradle b/app/build.gradle
index 19521bbe2..17f70fe06 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -74,10 +74,10 @@ android {
exclude 'lib/armeabi-v7a/libfuai.so'
exclude 'lib/arm64-v8a/libfuai.so'
}
- exclude 'lib/armeabi-v7a/libagora-*.so'
+ /* exclude 'lib/armeabi-v7a/libagora-*.so'
exclude 'lib/arm64-v8a/libagora-*.so'
exclude 'lib/x86/libagora-*.so'
- exclude 'lib/x86_64/libagora-*.so'
+ exclude 'lib/x86_64/libagora-*.so'*/
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
@@ -86,22 +86,6 @@ android {
buildFeatures {
buildConfig = true
}
-// Google APP Bundle打包配置
- bundle {
- density {
- // Different APKs are generated for devices with different screen densities; true by default.
- enableSplit rootProject.ext.manifestPlaceholders.isAppBundle
- }
- abi {
- // Different APKs are generated for devices with different CPU architectures; true by default.
- enableSplit rootProject.ext.manifestPlaceholders.isAppBundle
- }
- language {
- // This is disabled so that the App Bundle does NOT split the APK for each language.
- // We're gonna use the same APK for all languages.
- enableSplit rootProject.ext.manifestPlaceholders.isAppBundle
- }
- }
applicationVariants.all { variant ->
println "清空build文件夹";
diff --git a/baidu/build.gradle b/baidu/build.gradle
deleted file mode 100644
index 336b61624..000000000
--- a/baidu/build.gradle
+++ /dev/null
@@ -1,59 +0,0 @@
-apply plugin: 'com.android.library'
-apply plugin: 'img-optimizer'
-
-
-android {
- compileSdkVersion rootProject.ext.android.compileSdkVersion
- buildToolsVersion rootProject.ext.android.buildToolsVersion
- packagingOptions {
- pickFirst "lib/armeabi/libyuvutils.so"
- pickFirst "lib/arm64-v8a/libyuvutils.so"
- pickFirst "lib/armeabi-v7a/libyuvutils.so"
- pickFirst "lib/armeabi/libyuvtools.so"
- pickFirst "lib/arm64-v8a/libyuvtools.so"
- pickFirst "lib/armeabi-v7a/libyuvtools.so"
- exclude "lib/arm64-v8a/libmmcv_api_handgesture.so"
- exclude "lib/arm64-v8a/libmmcv_api_express.so"
- exclude "lib/arm64-v8a/libMediaEncoder.so"
- exclude "lib/arm64-v8a/libarcore_sdk_c.so"
- exclude "lib/arm64-v8a/libmediadecoder.so"
- exclude "lib/arm64-v8a/libMediaMuxer.so"
- exclude "lib/arm64-v8a/libarcore_sdk_jni.so"
- exclude "lib/arm64-v8a/libMediaUtils.so"
- exclude "lib/arm64-v8a/libcosmosffmpeg.so"
-
- }
-
- defaultConfig {
- minSdkVersion rootProject.ext.android.minSdkVersion
- targetSdkVersion rootProject.ext.android.targetSdkVersion
- versionCode rootProject.ext.android.versionCode
- versionName rootProject.ext.android.versionName
- manifestPlaceholders = rootProject.ext.manifestPlaceholders
- ndk {
- abiFilters "armeabi-v7a","arm64-v8a","x86","x86_64"
- }
- }
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
- }
- }
-
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
- }
-}
-repositories {
-
-}
-dependencies {
- implementation fileTree(include: ['*.jar'], dir: 'libs')
- api rootProject.ext.dependencies["appcompat-androidx"]
- //fastJson解析json
- implementation rootProject.ext.dependencies["fastjson"]
- //百度语音识别
-// compile files('libs/bdasr_3.0.8.2.jar')
-}
diff --git a/baidu/libs/bdasr_3.0.8.2.jar b/baidu/libs/bdasr_3.0.8.2.jar
deleted file mode 100644
index cc0dc5014a96a34d54e62b91f41a3264d5a2a86d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 149674
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