소스 검색

优化克隆上传流程

zk 1 년 전
부모
커밋
0dde614e4c

+ 2 - 0
app/src/main/java/com/atmob/voiceai/module/clonevoice/CloneVoiceFragment.java

@@ -165,10 +165,12 @@ public class CloneVoiceFragment extends BaseFragment<FragmentCloneVoiceBinding>
             if (scrollY > maxScrollY) {
                 binding.vStatusBar.setAlpha(1f);
                 binding.vMenu.setAlpha(1f);
+                binding.vMenuBottom.setAlpha(1f);
             } else {
                 float alpha = scrollY * 1f / maxScrollY;
                 binding.vStatusBar.setAlpha(alpha);
                 binding.vMenu.setAlpha(alpha);
+                binding.vMenuBottom.setAlpha(alpha);
             }
         });
     }

+ 8 - 6
app/src/main/java/com/atmob/voiceai/module/clonevoice/CloneVoiceViewModel.java

@@ -361,12 +361,14 @@ public class CloneVoiceViewModel extends BaseViewModel {
         if (value == null) {
             return;
         }
-        File file = FileUtils.uriToFileApiQ(value, ContextUtil.getContext());
-        if (state == CloneState.UPLOAD_CHOICE_RECORDING) {
-            requestCloneVoice(RECORD_UPLOAD, file);
-        } else {
-            requestCloneVoice(FILE_UPLOAD, file);
-        }
+        memberRepository.consumptionIntegral(300, () -> {
+            File file = FileUtils.uriToFileApiQ(value, ContextUtil.getContext());
+            if (state == CloneState.UPLOAD_CHOICE_RECORDING) {
+                requestCloneVoice(RECORD_UPLOAD, file);
+            } else {
+                requestCloneVoice(FILE_UPLOAD, file);
+            }
+        });
     }
 
 

+ 79 - 33
app/src/main/res/layout/fragment_clone_voice.xml

@@ -253,7 +253,7 @@
                     android:layout_height="wrap_content"
                     android:paddingBottom="@dimen/clone_voice_padding"
                     app:layout_constraintTop_toBottomOf="@+id/space4"
-                    tools:visibility="gone">
+                    tools:visibility="visible">
 
                     <View
                         android:id="@+id/v_clone_upload_preview"
@@ -381,17 +381,12 @@
                         app:layout_constraintStart_toStartOf="@+id/v_clone_upload_preview"
                         app:layout_constraintTop_toTopOf="@+id/iv_play" />
 
-                    <TextView
-                        android:id="@+id/tv_voice_speed"
+                    <View
+                        android:id="@+id/v_voice_speed"
                         android:layout_width="0dp"
                         android:layout_height="0dp"
                         android:background="@drawable/bg_voice_ai_btn"
-                        android:gravity="center"
                         android:onClick="@{()-> cloneVoiceViewModel.onCloneVoiceClick(cloneVoiceViewModel.cloneState)}"
-                        android:text="@string/clone_voice_btn_txt"
-                        android:textColor="@color/colorPrimary"
-                        android:textSize="17sp"
-                        android:textStyle="bold"
                         app:layout_constraintBottom_toBottomOf="@+id/v_clone_upload_preview"
                         app:layout_constraintDimensionRatio="256:48"
                         app:layout_constraintEnd_toEndOf="@+id/v_clone_upload_preview"
@@ -401,6 +396,49 @@
                         app:layout_constraintWidth_percent="0.7111111111111111" />
 
                     <TextView
+                        android:id="@+id/tv_voice_speed"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@string/clone_voice_btn_txt"
+                        android:textColor="@color/colorPrimary"
+                        android:textSize="17sp"
+                        android:textStyle="bold"
+                        app:layout_constraintBottom_toBottomOf="@+id/v_voice_speed"
+                        app:layout_constraintHorizontal_chainStyle="packed"
+                        app:layout_constraintLeft_toLeftOf="@+id/v_voice_speed"
+                        app:layout_constraintRight_toLeftOf="@+id/iv_integral"
+                        app:layout_constraintTop_toTopOf="@+id/v_voice_speed" />
+
+
+                    <ImageView
+                        android:id="@+id/iv_integral"
+                        android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:layout_marginStart="8.5dp"
+                        android:src="@drawable/icon_voice_consumption_integration"
+                        app:layout_constraintBottom_toBottomOf="@+id/tv_voice_speed"
+                        app:layout_constraintDimensionRatio="59:71"
+                        app:layout_constraintLeft_toRightOf="@+id/tv_voice_speed"
+                        app:layout_constraintRight_toLeftOf="@+id/tv_clone_integral"
+                        app:layout_constraintTop_toTopOf="@+id/tv_voice_speed"
+                        app:layout_constraintWidth_percent="0.0488888888888889" />
+
+                    <TextView
+                        android:id="@+id/tv_clone_integral"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginStart="3dp"
+                        android:text="300"
+                        android:textColor="@color/colorPrimary"
+                        android:textSize="17sp"
+                        android:textStyle="bold"
+                        app:layout_constraintBottom_toBottomOf="@+id/iv_integral"
+                        app:layout_constraintLeft_toRightOf="@+id/iv_integral"
+                        app:layout_constraintRight_toRightOf="@+id/v_voice_speed"
+                        app:layout_constraintTop_toTopOf="@+id/iv_integral" />
+
+
+                    <TextView
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:onClick="@{()-> cloneVoiceViewModel.cloneState == CloneState.UPLOAD_CHOICE_LOCAL ? cloneVoiceViewModel.onLocalReSelectClick() : cloneVoiceViewModel.onReRecordClick()}"
@@ -423,7 +461,7 @@
                     android:layout_height="wrap_content"
                     android:paddingBottom="@dimen/clone_voice_padding"
                     app:layout_constraintTop_toBottomOf="@+id/space4"
-                    tools:visibility="visible">
+                    tools:visibility="gone">
 
                     <View
                         android:id="@+id/v_clone_success_preview"
@@ -605,9 +643,9 @@
                         android:layout_width="0dp"
                         android:layout_height="wrap_content"
                         android:gravity="center"
+                        android:text="@{cloneVoiceViewModel.recordTimeTxt}"
                         android:textColor="@color/white"
                         android:textSize="25sp"
-                        android:text="@{cloneVoiceViewModel.recordTimeTxt}"
                         android:textStyle="bold"
                         app:layout_constraintBottom_toBottomOf="@+id/v_record_audio_preview"
                         app:layout_constraintEnd_toEndOf="@+id/v_record_audio_preview"
@@ -617,11 +655,11 @@
                         tools:text="00:05.62" />
 
                     <TextView
-                        android:text="@{cloneVoiceViewModel.recordStateDesc}"
                         android:id="@+id/tv_record_state_desc"
                         android:layout_width="0dp"
                         android:layout_height="wrap_content"
                         android:gravity="center"
+                        android:text="@{cloneVoiceViewModel.recordStateDesc}"
                         android:textSize="12sp"
                         app:layout_constraintEnd_toEndOf="@+id/v_record_audio_preview"
                         app:layout_constraintStart_toStartOf="@+id/v_record_audio_preview"
@@ -637,63 +675,63 @@
                         app:layout_constraintTop_toBottomOf="@+id/tv_record_state_desc" />
 
                     <View
-                        app:layout_constraintHorizontal_bias="0.5714285714285714"
                         android:id="@+id/v_record_audio_20sec"
                         android:layout_width="3dp"
                         android:layout_height="14dp"
                         android:background="#7C7D88"
                         app:layout_constraintBottom_toBottomOf="@+id/progress_record_bar"
                         app:layout_constraintEnd_toEndOf="@+id/progress_record_bar"
+                        app:layout_constraintHorizontal_bias="0.5714285714285714"
                         app:layout_constraintStart_toStartOf="@+id/progress_record_bar"
                         app:layout_constraintTop_toTopOf="@+id/progress_record_bar" />
 
                     <TextView
-                        android:text="@string/record_20_sec"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
                         android:layout_marginTop="4dp"
+                        android:text="@string/record_20_sec"
                         android:textColor="@color/white50"
                         android:textSize="12sp"
-                        app:layout_constraintStart_toStartOf="@+id/v_record_audio_20sec"
                         app:layout_constraintEnd_toEndOf="@+id/v_record_audio_20sec"
-                        app:layout_constraintTop_toBottomOf="@+id/v_record_audio_20sec"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content" />
+                        app:layout_constraintStart_toStartOf="@+id/v_record_audio_20sec"
+                        app:layout_constraintTop_toBottomOf="@+id/v_record_audio_20sec" />
 
                     <View
-                        app:layout_constraintHorizontal_bias="0.8571428571428571"
                         android:id="@+id/v_record_audio_30sec"
                         android:layout_width="3dp"
                         android:layout_height="14dp"
                         android:background="#7C7D88"
                         app:layout_constraintBottom_toBottomOf="@+id/progress_record_bar"
                         app:layout_constraintEnd_toEndOf="@+id/progress_record_bar"
+                        app:layout_constraintHorizontal_bias="0.8571428571428571"
                         app:layout_constraintStart_toStartOf="@+id/progress_record_bar"
                         app:layout_constraintTop_toTopOf="@+id/progress_record_bar" />
 
 
                     <TextView
-                        android:text="@string/record_30_sec"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
                         android:layout_marginTop="4dp"
+                        android:text="@string/record_30_sec"
                         android:textColor="@color/white50"
                         android:textSize="12sp"
-                        app:layout_constraintStart_toStartOf="@+id/v_record_audio_30sec"
                         app:layout_constraintEnd_toEndOf="@+id/v_record_audio_30sec"
-                        app:layout_constraintTop_toBottomOf="@+id/v_record_audio_30sec"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content" />
+                        app:layout_constraintStart_toStartOf="@+id/v_record_audio_30sec"
+                        app:layout_constraintTop_toBottomOf="@+id/v_record_audio_30sec" />
 
                     <com.atmob.voiceai.widget.AudioProgressBar
                         android:id="@+id/progress_record_bar"
+                        max="@{(int)cloneVoiceViewModel.recordMaxTime}"
+                        progress="@{cloneVoiceViewModel.recordProgress}"
+                        progressColor="@{cloneVoiceViewModel.recordProgressColor}"
                         android:layout_width="0dp"
-                        app:startColor="@color/voice_record_0_20"
                         android:layout_height="4dp"
-                        progressColor="@{cloneVoiceViewModel.recordProgressColor}"
-                        progress="@{cloneVoiceViewModel.recordProgress}"
                         android:layout_marginHorizontal="16dp"
                         android:background="#7C7D88"
-                        max="@{(int)cloneVoiceViewModel.recordMaxTime}"
                         app:layout_constraintEnd_toEndOf="@+id/v_record_audio_preview"
                         app:layout_constraintStart_toStartOf="@+id/v_record_audio_preview"
-                        app:layout_constraintTop_toBottomOf="@+id/space7" />
+                        app:layout_constraintTop_toBottomOf="@+id/space7"
+                        app:startColor="@color/voice_record_0_20" />
 
                     <Space
                         android:id="@+id/space5"
@@ -760,9 +798,18 @@
             android:layout_height="0dp"
             android:alpha="0"
             android:background="@color/colorPrimary"
-            app:layout_constraintDimensionRatio="360:65"
+            app:layout_constraintDimensionRatio="360:44"
             app:layout_constraintTop_toBottomOf="@+id/v_status_bar" />
 
+        <View
+            android:alpha="0"
+            android:background="@color/colorPrimary"
+            android:id="@+id/v_menu_bottom"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            app:layout_constraintDimensionRatio="360:21"
+            app:layout_constraintTop_toBottomOf="@+id/v_menu" />
+
 
         <View
             android:id="@+id/v_vip_bg"
@@ -810,15 +857,14 @@
             android:id="@+id/iv_setting"
             android:layout_width="0dp"
             android:layout_height="0dp"
-            android:layout_marginEnd="16dp"
+            android:layout_marginEnd="12dp"
             android:onClick="@{()->cloneVoiceViewModel.onSettingClick()}"
-            android:src="@drawable/icon_clone_setting"
+            android:src="@drawable/icon_voice_ai_menu"
             app:layout_constraintBottom_toBottomOf="@+id/v_menu"
             app:layout_constraintDimensionRatio="1:1"
             app:layout_constraintEnd_toEndOf="@+id/v_menu"
             app:layout_constraintTop_toTopOf="@+id/v_menu"
-            app:layout_constraintWidth_percent="0.0888888888888889" />
-
+            app:layout_constraintWidth_percent="0.0666666666666667" />
 
 
     </androidx.constraintlayout.widget.ConstraintLayout>