Browse Source

完成设置界面点击功能

zk 1 year ago
parent
commit
3a56a57641

+ 1 - 0
app/src/main/java/com/atmob/voiceai/data/consts/Constants.java

@@ -12,6 +12,7 @@ public class Constants {
     public static final String PRIVACY_POLICY = "http://cdn.myaskai.cn/manyue/static/wjsjhfds-manyue-a-privacy.html";
 
     public static final String USER_AGREEMENT = "http://cdn.myaskai.cn/manyue/static/wjsjhfds-manyue-clause.html";
+    public static final String SEND_EMAIL_ADDRESS = "zhoukun@atmob.com";
 
 
 }

+ 27 - 2
app/src/main/java/com/atmob/voiceai/module/setting/SettingViewModel.java

@@ -1,11 +1,21 @@
 package com.atmob.voiceai.module.setting;
 
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+
+import androidx.lifecycle.LiveData;
+import androidx.lifecycle.MutableLiveData;
+
 import com.atmob.app.lib.base.BaseViewModel;
 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.module.subscription.SubscriptionPageActivity;
 import com.atmob.voiceai.utils.AppUtil;
+import com.atmob.voiceai.utils.CommonUtils;
+import com.atmob.voiceai.utils.SystemUtil;
 import com.atmob.voiceai.utils.ToastUtil;
 
 import javax.inject.Inject;
@@ -16,8 +26,16 @@ import dagger.hilt.android.lifecycle.HiltViewModel;
 public class SettingViewModel extends BaseViewModel {
 
 
+    private final MutableLiveData<String> versionName = new MutableLiveData<>();
+
     @Inject
     public SettingViewModel() {
+        Context context = ContextUtil.getContext();
+        versionName.setValue(context.getString(R.string.version_name, SystemUtil.getVersionName(context)));
+    }
+
+    public LiveData<String> getVersionName() {
+        return versionName;
     }
 
     public void onSettingProClick() {
@@ -32,15 +50,22 @@ public class SettingViewModel extends BaseViewModel {
         }
     }
 
-    public void onSendEmailClick() {
 
+    public void onSendEmailClick() {
+        CommonUtils.sendEmail(ActivityUtil.getTopActivity(), "Voice AI", "", Constants.SEND_EMAIL_ADDRESS);
     }
 
     public void onPrivacyPolicyClick() {
-
+        startWeb(Constants.PRIVACY_POLICY);
     }
 
     public void onTermsOfServiceClick() {
+        startWeb(Constants.USER_AGREEMENT);
+    }
 
+    private void startWeb(String url) {
+        Uri uri = Uri.parse(url);
+        Intent intent = new Intent(Intent.ACTION_VIEW, uri);
+        ActivityUtil.getTopActivity().startActivity(intent);
     }
 }

+ 29 - 0
app/src/main/java/com/atmob/voiceai/utils/CommonUtils.java

@@ -0,0 +1,29 @@
+package com.atmob.voiceai.utils;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+
+public class CommonUtils {
+
+    /**
+     * 邮件分享
+     *
+     * @param context 上下文
+     * @param title   邮件主题
+     * @param content 邮件内容
+     * @param address 邮件地址
+     */
+    public static void sendEmail(Context context, String title, String content, String address) {
+        Uri uri = Uri.parse("mailto:" + address);
+        Intent emailIntent = new Intent(Intent.ACTION_SENDTO, uri);
+        // 设置对方邮件地址
+        emailIntent.putExtra(Intent.EXTRA_EMAIL, address);
+        // 设置标题内容
+        emailIntent.putExtra(Intent.EXTRA_SUBJECT, title);
+        // 设置邮件文本内容
+        emailIntent.putExtra(Intent.EXTRA_TEXT, content);
+        context.startActivity(Intent.createChooser(emailIntent, "Choose Email Client"));
+    }
+}

+ 53 - 0
app/src/main/java/com/atmob/voiceai/utils/SystemUtil.java

@@ -0,0 +1,53 @@
+package com.atmob.voiceai.utils;
+
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.EditText;
+
+public class SystemUtil {
+
+
+    /**
+     * 获取当前apk的版本号
+     *
+     * @param context
+     * @return
+     */
+    public static int getVersionCode(Context context) {
+        int versionCode = 0;
+        try {
+            versionCode = context.getPackageManager().
+                    getPackageInfo(context.getPackageName(), 0).versionCode;
+        } catch (PackageManager.NameNotFoundException e) {
+            e.printStackTrace();
+        }
+        return versionCode;
+    }
+
+    /**
+     * 获取当前apk的版本名
+     *
+     * @param context
+     * @return
+     */
+    public static String getVersionName(Context context) {
+        String versionName = "";
+        try {
+            versionName = context.getPackageManager().
+                    getPackageInfo(context.getPackageName(), 0).versionName;
+        } catch (PackageManager.NameNotFoundException e) {
+            e.printStackTrace();
+        }
+        return versionName;
+    }
+
+
+    public static void hideSoftKeyboard(Context context, EditText view) {
+        InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
+        if (view != null) {
+            imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
+        }
+    }
+
+}

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


+ 21 - 1
app/src/main/res/layout/setting_activity.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto">
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools">
 
     <data>
 
@@ -13,6 +14,13 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent">
 
+        <ImageView
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:src="@drawable/bg_setting_activity_background"
+            app:layout_constraintDimensionRatio="1080:2400"
+            app:layout_constraintTop_toTopOf="parent" />
+
         <androidx.appcompat.widget.Toolbar
             android:id="@+id/toolbar"
             android:layout_width="match_parent"
@@ -134,6 +142,18 @@
                 android:onClick="@{()->settingViewModel.onTermsOfServiceClick()}" />
         </LinearLayout>
 
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="24dp"
+            android:text="@{settingViewModel.versionName}"
+            android:textColor="@color/white80"
+            android:textSize="17sp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            tools:text="version1.0" />
+
 
     </androidx.constraintlayout.widget.ConstraintLayout>
 </layout>

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

@@ -35,4 +35,5 @@
     <string name="setting_privacy_policy">Privacy Policy</string>
     <string name="setting_terms_of_service">Terms Of Service</string>
     <string name="google_play_not_found">Google Play not found</string>
+    <string name="version_name">version%s</string>
 </resources>