From 5bea6dad8a508b8916cabe4cfc68324a8f933760 Mon Sep 17 00:00:00 2001 From: wushaocheng <15876365887@163.com> Date: Fri, 6 Jan 2023 02:00:31 +0800 Subject: [PATCH] =?UTF-8?q?[Modify]=E5=A3=B0=E9=9F=B3=E7=AD=BE=E5=90=8D?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erban/audio/SoundSignatureActivity.kt | 2 +- .../res/drawable-xhdpi/ic_delete_sound.webp | Bin 0 -> 616 bytes .../drawable/bg_gradient_dbe3fc_f2f1ff.xml | 4 +- .../res/layout/activity_sound_signature.xml | 58 +++++- app/src/main/res/values/strings.xml | 8 +- .../common/base/BaseLinearLayout.java | 165 ++++++++++++++++++ 6 files changed, 231 insertions(+), 6 deletions(-) create mode 100644 app/src/main/res/drawable-xhdpi/ic_delete_sound.webp create mode 100644 library/src/module_common/java/com/yizhuan/xchat_android_library/common/base/BaseLinearLayout.java diff --git a/app/src/main/java/com/yizhuan/erban/audio/SoundSignatureActivity.kt b/app/src/main/java/com/yizhuan/erban/audio/SoundSignatureActivity.kt index ef7d809d1..3a7db53c9 100644 --- a/app/src/main/java/com/yizhuan/erban/audio/SoundSignatureActivity.kt +++ b/app/src/main/java/com/yizhuan/erban/audio/SoundSignatureActivity.kt @@ -12,7 +12,7 @@ import com.yizhuan.erban.databinding.ActivitySoundSignatureBinding class SoundSignatureActivity : BaseViewBindingActivity() { override fun init() { - initWhiteTitleBar(getString(R.string.label_user_sound_signature)) + initWhiteTitleBar(getString(R.string.sound_signature)) } override fun needSteepStateBar(): Boolean { diff --git a/app/src/main/res/drawable-xhdpi/ic_delete_sound.webp b/app/src/main/res/drawable-xhdpi/ic_delete_sound.webp new file mode 100644 index 0000000000000000000000000000000000000000..54bc276fc454ceff4e6129fdf7dd24f64e391ac1 GIT binary patch literal 616 zcmV-u0+;<#Nk&Fs0ssJ4MM6+kP&iCf0ssInBftm{=i;c1BuR2#(lA*5EcaDG!$I3f zlH{6u861D0H*p+ElGIcUyg-s!^4}fKV%WBg<5=jc-#?(h@Ap6Fp6ciO9-}t@UHj`% zOXj`C?c_Dr_MVgJj#87F+~=!nE3;2slcZBWjk)hwa}owDLY$@iGpD{YL}~s@OvPGD z+#3>2Z|}`m6{|-pdSi)zg=!38jahWdA~{=GXlY;puu$S5Mqv^J)V0V!02Tlh1lEEe zL6Rgzj!MkT%*<-Bv{+(hjQ>C6x@)HFUJ%iL2W}%NQg-(k()b7w5fKrQk?I!!0DM(P zL_|bHB=h318@zh}_OmSZ0Vg5LBKT+ojk3i<}Ts;a80s;b(bc>zAOFd!oH zz_hqZJ_XFD3WLC;j|pHXRp&2PqF;`rx5s}rH!UU7tO;6iy#Zn{|rbxS%ocaGw zEljabJ)FT)mc=>z9E1=;2qD;gbnpY$S?oDSI&V9*y?C#eb`x?kU4?hgqxV8j@?8PA CXCY+( literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/bg_gradient_dbe3fc_f2f1ff.xml b/app/src/main/res/drawable/bg_gradient_dbe3fc_f2f1ff.xml index c52e36781..08c12cd67 100644 --- a/app/src/main/res/drawable/bg_gradient_dbe3fc_f2f1ff.xml +++ b/app/src/main/res/drawable/bg_gradient_dbe3fc_f2f1ff.xml @@ -4,8 +4,8 @@ diff --git a/app/src/main/res/layout/activity_sound_signature.xml b/app/src/main/res/layout/activity_sound_signature.xml index 5388d7ad4..9b155d512 100644 --- a/app/src/main/res/layout/activity_sound_signature.xml +++ b/app/src/main/res/layout/activity_sound_signature.xml @@ -86,6 +86,7 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 989794d1c..9a7c342fe 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -5031,9 +5031,15 @@ 解除屏蔽成功 %ds/60s 好的聲音能帶來更多關注哦~ - 點擊開始錄制 重新錄制 保存聲音 聲音簽名 + 點擊開始錄制 + 點擊停止 + 點擊試聽 + 點擊停止播放 + 刪除聲音 + 確定要刪除這段聲音嗎? + 聲音審核中,審核通過即可展示~ \ No newline at end of file diff --git a/library/src/module_common/java/com/yizhuan/xchat_android_library/common/base/BaseLinearLayout.java b/library/src/module_common/java/com/yizhuan/xchat_android_library/common/base/BaseLinearLayout.java new file mode 100644 index 000000000..4825224e2 --- /dev/null +++ b/library/src/module_common/java/com/yizhuan/xchat_android_library/common/base/BaseLinearLayout.java @@ -0,0 +1,165 @@ +package com.yizhuan.xchat_android_library.common.base; + +import android.app.Activity; +import android.content.Context; +import android.util.AttributeSet; +import android.view.LayoutInflater; +import android.widget.LinearLayout; + +import androidx.annotation.CallSuper; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.lifecycle.DefaultLifecycleObserver; +import androidx.lifecycle.LifecycleOwner; +import androidx.viewbinding.ViewBinding; + +import com.yizhuan.xchat_android_library.common.util.ActivityHelper; +import com.yizhuan.xchat_android_library.common.util.ViewBindingUtil; + +public abstract class BaseLinearLayout extends LinearLayout implements DefaultLifecycleObserver { + private boolean mViewCreatedCalled = false; + @Nullable + private VB mViewBinding; + + public BaseLinearLayout(Context context) { + this(context, null); + } + + public BaseLinearLayout(Context context, AttributeSet attrs) { + this(context, attrs, 0); + } + + public BaseLinearLayout(Context context, AttributeSet attrs, int defStyle) { + this(context, attrs, defStyle, 0); + } + + public BaseLinearLayout(Context context, AttributeSet attrs, int defStyle, int defStyleRes) { + super(context, attrs, defStyle, defStyleRes); + init(); + } + + private void init() { + mViewBinding = ViewBindingUtil.inflateWithView(this, LayoutInflater.from(getContext()), this); + BaseViewTag.registerLifecycle(this); + findView(); + } + + @CallSuper + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + if (!mViewCreatedCalled) { + onLazyLoad(); + mViewCreatedCalled = true; + } + } + + /** + * 重写该方法可实现懒加载数据,即当前控件第一次可见时才会执行一次,不同于在构造函数里面使用预加载机制直接加载数据的方式 + */ + @CallSuper + protected void onLazyLoad() { + setView(); + setListener(); + } + + public final Activity getActivity() { + return ActivityHelper.getActivityFromView(this); + } + + @Nullable + protected final VB getBinding() { + return mViewBinding; + } + + /** + * 来自于Activity或Fragment的onCreate()方法被回调 + * + * @param owner 生命周期提供者,一般是Activity或Fragment + */ + @CallSuper + @Override + public void onCreate(@NonNull LifecycleOwner owner) { + + } + + /** + * 来自于Activity或Fragment的onStart()方法被回调 + * + * @param owner 生命周期提供者,一般是Activity或Fragment + */ + @CallSuper + @Override + public void onStart(@NonNull LifecycleOwner owner) { + + } + + /** + * 来自于Activity或Fragment的onResume()方法被回调 + * + * @param owner 生命周期提供者,一般是Activity或Fragment + */ + @CallSuper + @Override + public void onResume(@NonNull LifecycleOwner owner) { + + } + + /** + * 来自于Activity或Fragment的onPause()方法被回调 + * + * @param owner 生命周期提供者,一般是Activity或Fragment + */ + @CallSuper + @Override + public void onPause(@NonNull LifecycleOwner owner) { + + } + + /** + * 来自于Activity或Fragment的onStop()方法被回调 + * + * @param owner 生命周期提供者,一般是Activity或Fragment + */ + @CallSuper + @Override + public void onStop(@NonNull LifecycleOwner owner) { + + } + + /** + * 来自于Activity或Fragment的onDestroy()方法被回调 + * + * @param owner 生命周期提供者,一般是Activity或Fragment + */ + @CallSuper + @Override + public void onDestroy(@NonNull LifecycleOwner owner) { + BaseViewTag.unRegisterLifecycle(this, owner); + } + + + ////////////////////////////////////////以下是提供给子类复写的方法//////////////////////////////////////// + + /** + * 该方法是在构造函数里执行,可用于处理控件的初始化 + */ + protected void findView() { + + } + + /** + * 该方法是在onLazyLoad()方法里执行,可用于处理控件的加载数据 + */ + protected void setView() { + + } + + /** + * 该方法是在onLazyLoad()方法里执行,可用于处理控件的设置监听器 + */ + protected void setListener() { + + } + +}