Browse Source

增加loading

zk 1 year ago
parent
commit
10d2c3f556

+ 3 - 0
app/src/main/java/com/atmob/voiceai/data/consts/EventId.java

@@ -43,4 +43,7 @@ public interface EventId {
     String retainstay_001 = "retainstay_001"; //   挽留弹窗-stay按钮	按钮点击
     String retainmiss_001 = "retainmiss_001"; //   挽留弹窗-miss	按钮点击
 
+    String settingrateapp_001 = "settingrateapp_001"; //设置页-rate app按钮	按钮点击
+    String settingcontact_001 = "settingcontact_001"; //设置页-contact按钮	按钮点击
+    String settingpro_001 = "settingpro_001"; //设置页-PRO按钮	按钮点击
 }

+ 29 - 0
app/src/main/java/com/atmob/voiceai/dialog/CommonLoadingDialog.java

@@ -0,0 +1,29 @@
+package com.atmob.voiceai.dialog;
+
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.StringRes;
+
+import com.atmob.app.lib.base.BaseDialog;
+import com.atmob.voiceai.R;
+import com.atmob.voiceai.databinding.DialogCommonLoadingBinding;
+
+@BaseDialog.FullScreen(height = false)
+public class CommonLoadingDialog extends BaseDialog<DialogCommonLoadingBinding> {
+
+    public CommonLoadingDialog(@NonNull Context context) {
+        super(context, R.style.Theme_Common_Dialog);
+        setCancelable(false);
+    }
+
+    public CommonLoadingDialog setMessage(@StringRes int message) {
+        binding.commonLoadingText.setText(message);
+        return this;
+    }
+
+    @Override
+    protected boolean useQueue() {
+        return false;
+    }
+}

+ 5 - 0
app/src/main/java/com/atmob/voiceai/module/setting/SettingViewModel.java

@@ -12,7 +12,9 @@ import com.atmob.common.runtime.ActivityUtil;
 import com.atmob.common.runtime.ContextUtil;
 import com.atmob.voiceai.R;
 import com.atmob.voiceai.data.consts.Constants;
+import com.atmob.voiceai.data.consts.EventId;
 import com.atmob.voiceai.data.repositories.MemberRepository;
+import com.atmob.voiceai.handlers.EventHandler;
 import com.atmob.voiceai.module.subscription.SubscriptionPageActivity;
 import com.atmob.voiceai.utils.AppUtil;
 import com.atmob.voiceai.utils.CommonUtils;
@@ -52,10 +54,12 @@ public class SettingViewModel extends BaseViewModel {
     }
 
     public void onSettingProClick() {
+        EventHandler.report(EventId.settingpro_001);
         SubscriptionPageActivity.start(ActivityUtil.getTopActivity());
     }
 
     public void onRateClick() {
+        EventHandler.report(EventId.settingrateapp_001);
         if (AppUtil.isAppExist(AppUtil.GooglePlay)) {
             AppUtil.launchGooglePlayDetail(ContextUtil.getContext().getPackageName());
         } else {
@@ -65,6 +69,7 @@ public class SettingViewModel extends BaseViewModel {
 
 
     public void onSendEmailClick() {
+        EventHandler.report(EventId.settingcontact_001);
         CommonUtils.sendEmail(ActivityUtil.getTopActivity(), "Voice AI", "", Constants.SEND_EMAIL_ADDRESS);
     }
 

BIN
app/src/main/res/drawable-xxhdpi/common_loading.webp


+ 5 - 0
app/src/main/res/drawable/dialog_loading_bg.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <corners android:radius="20dp" />
+    <solid android:color="#32333C" />
+</shape>

+ 12 - 0
app/src/main/res/drawable/progress_common_loading.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item>
+        <rotate
+            android:drawable="@drawable/common_loading"
+            android:fromDegrees="0"
+            android:pivotX="50.0%"
+            android:pivotY="50.0%"
+            android:toDegrees="720" />
+        <span style="white-space:pre" />
+    </item>
+</layer-list>

+ 46 - 0
app/src/main/res/layout/dialog_common_loading.xml

@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content">
+
+
+    <View
+        android:id="@+id/common_loading_bg"
+        android:layout_width="0dp"
+        android:layout_height="0dp"
+        android:background="@drawable/dialog_loading_bg"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintDimensionRatio="1:1"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintWidth_percent="0.3333333333333333" />
+
+    <ProgressBar
+        android:layout_width="0dp"
+        android:layout_height="0dp"
+        android:indeterminate="true"
+        android:indeterminateDrawable="@drawable/progress_common_loading"
+        app:layout_constraintBottom_toBottomOf="@+id/common_loading_bg"
+        app:layout_constraintDimensionRatio="1:1"
+        app:layout_constraintEnd_toEndOf="@+id/common_loading_bg"
+        app:layout_constraintStart_toStartOf="@+id/common_loading_bg"
+        app:layout_constraintTop_toTopOf="@+id/common_loading_bg"
+        app:layout_constraintVertical_bias="0.3448275862068966"
+        app:layout_constraintWidth_percent="0.0916666666666667" />
+
+    <TextView
+        android:id="@+id/common_loading_text"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textColor="@color/white"
+        android:textSize="14sp"
+        app:layout_constraintBottom_toBottomOf="@+id/common_loading_bg"
+        app:layout_constraintEnd_toEndOf="@+id/common_loading_bg"
+        app:layout_constraintStart_toStartOf="@+id/common_loading_bg"
+        app:layout_constraintTop_toTopOf="@+id/common_loading_bg"
+        app:layout_constraintVertical_bias="0.696969696969697"
+        android:text="@string/loading_txt" />
+</androidx.constraintlayout.widget.ConstraintLayout>

+ 1 - 0
app/src/main/res/values/strings.xml

@@ -113,4 +113,5 @@
     <string name="member_restore_fail">Unsuccessful: Failed to restore subscription</string>
     <string name="member_restore_success">Success: You have restored your subscription</string>
     <string name="sub_most_popular">Most Popular</string>
+    <string name="loading_txt">loading…</string>
 </resources>