Quellcode durchsuchen

1. 个人中心UI

咸光金 vor 4 Jahren
Ursprung
Commit
93b6924e60

+ 2 - 0
app/src/main/AndroidManifest.xml

@@ -6,6 +6,8 @@
     <uses-permission android:name="android.permission.WAKE_LOCK" />
 
     <uses-permission android:name="android.permission.READ_CONTACTS" />
+    <uses-permission android:name="android.permission.CALL_PHONE" />
+
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.INTERNET" />

+ 0 - 23
app/src/main/java/com/quansu/heifengwuliu/model/bean/TabEntity.kt

@@ -1,23 +0,0 @@
-package com.quansu.heifengwuliu.model.bean
-
-import com.flyco.tablayout.listener.CustomTabEntity
-
-
-
-/**
- * Created by xuhao on 2017/11/8.
- */
-class TabEntity(var title: String, private var selectedIcon: Int, private var unSelectedIcon: Int) : CustomTabEntity {
-
-    override fun getTabTitle(): String {
-        return title
-    }
-
-    override fun getTabSelectedIcon(): Int {
-        return selectedIcon
-    }
-
-    override fun getTabUnselectedIcon(): Int {
-        return unSelectedIcon
-    }
-}

+ 9 - 2
app/src/main/java/com/quansu/heifengwuliu/vmodel/MineVModel.kt

@@ -4,14 +4,15 @@ import com.quansu.heifengwuliu.repository.MineRepository
 import com.ysnows.base.base.BViewModel
 import com.ysnows.base.ccretrofit.CCRetrofit
 import com.ysnows.base.route.IUpdate
+import com.ysnows.base.utils.DialUtils
 
 /**
  *Created by shihuiyun
  *on 2020/9/10
  */
-open class MineVModel: BViewModel<MineRepository>() {
+open class MineVModel : BViewModel<MineRepository>() {
 
-    fun checkUpdates(){
+    fun checkUpdates() {
         //检查更新
         CCRetrofit.instance()
                 .create(IUpdate::class.java)
@@ -19,4 +20,10 @@ open class MineVModel: BViewModel<MineRepository>() {
                 .subscribe()
 
     }
+
+    fun callPhone() {
+        DialUtils.dialPhone(view()?.context(), "19898989898")
+
+    }
+
 }

+ 251 - 248
app/src/main/res/layout/fragment_mine.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 >
 
@@ -9,323 +10,325 @@
             type="com.quansu.heifengwuliu.vmodel.MineVModel" />
     </data >
 
-    <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
-        android:id="@+id/refresh_layout"
+    <LinearLayout
         android:layout_width="match_parent"
-        android:layout_height="match_parent" >
+        android:layout_height="match_parent"
+        android:orientation="vertical" >
 
-        <androidx.constraintlayout.widget.ConstraintLayout xmlns:tools="http://schemas.android.com/tools"
+        <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
+            android:id="@+id/refresh_layout"
             android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:orientation="vertical" >
-
-            <RelativeLayout
-                android:id="@+id/lay_title"
-                android:layout_width="match_parent"
-                android:layout_height="@dimen/title_bar_height"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toTopOf="parent" >
-
-                <TextView
-                    android:id="@+id/tv_title"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_centerInParent="true"
-                    android:layout_marginTop="20dp"
-                    android:text="个人中心"
-                    android:textColor="@color/text_title"
-                    android:textSize="@dimen/sp_16"
-                    android:textStyle="bold" />
-
-                <ImageView
-                    android:layout_width="25dp"
-                    android:layout_height="25dp"
-                    android:layout_alignParentEnd="true"
-                    android:layout_centerVertical="true"
-                    android:layout_marginEnd="@dimen/dp_10"
-                    android:src="@drawable/ic_to_wxchat" />
-
-            </RelativeLayout >
+            android:layout_height="match_parent" >
 
             <androidx.constraintlayout.widget.ConstraintLayout
                 android:layout_width="match_parent"
-                android:layout_height="106dp"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toBottomOf="@id/lay_title" >
-
-                <com.qmuiteam.qmui.widget.QMUIRadiusImageView
-                    android:id="@+id/img_user_avater"
-                    android:layout_width="50dp"
-                    android:layout_height="50dp"
-                    android:layout_marginStart="@dimen/dp_10"
-                    android:layout_marginTop="20dp"
-                    android:src="@drawable/ic_math"
-                    app:layout_constraintBottom_toBottomOf="parent"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toTopOf="parent"
-                    app:qmui_is_circle="true" />
-
-                <TextView
-                    android:id="@+id/tv_user_name"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginStart="@dimen/dp_10"
-                    android:layout_marginTop="10dp"
-                    app:layout_constraintStart_toEndOf="@id/img_user_avater"
-                    app:layout_constraintTop_toTopOf="@id/img_user_avater"
-                    tools:text="郑货主" />
+                android:layout_height="match_parent"
+                android:orientation="vertical" >
 
-                <TextView
-                    android:id="@+id/tv_user_mobile"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginStart="@dimen/dp_10"
-                    android:layout_marginBottom="10dp"
-                    app:layout_constraintBottom_toBottomOf="@id/img_user_avater"
-                    app:layout_constraintStart_toEndOf="@id/img_user_avater"
-                    tools:text="18353965350" />
-
-                <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
-                    android:layout_width="72dp"
-                    android:layout_height="30dp"
-                    android:layout_marginTop="20dp"
-                    android:layout_marginEnd="@dimen/dp_10"
-                    android:text="未认证"
-                    android:textColor="#459AEA"
-                    app:qmui_backgroundColor="#E8F1FB"
-                    app:qmui_borderColor="#459AEA"
-                    app:qmui_radius="@dimen/dp_4" />
+                <RelativeLayout
+                    android:id="@+id/lay_title"
+                    android:layout_width="match_parent"
+                    android:layout_height="@dimen/title_bar_height"
+                    app:layout_constraintStart_toStartOf="parent"
+                    app:layout_constraintTop_toTopOf="parent" >
 
-            </androidx.constraintlayout.widget.ConstraintLayout >
+                    <TextView
+                        android:id="@+id/tv_title"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_centerInParent="true"
+                        android:layout_marginTop="20dp"
+                        android:text="个人中心"
+                        android:textColor="@color/text_title"
+                        android:textSize="@dimen/sp_16"
+                        android:textStyle="bold" />
 
-            <com.qmuiteam.qmui.layout.QMUILinearLayout
-                android:id="@+id/ll_center"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginStart="10dp"
-                android:layout_marginTop="@dimen/dp_20"
-                android:layout_marginEnd="10dp"
-                android:background="@color/white"
-                android:orientation="horizontal"
-                android:paddingTop="15dp"
-                android:paddingBottom="20dp"
-                app:layout_constraintLeft_toLeftOf="parent"
-                app:layout_constraintRight_toRightOf="parent"
-                app:layout_constraintTop_toBottomOf="@id/iv_user_avater"
-                app:qmui_radius="10dp"
-                app:qmui_shadowAlpha="0.56"
-                app:qmui_shadowElevation="7dp" >
+                    <ImageView
+                        android:layout_width="25dp"
+                        android:layout_height="25dp"
+                        android:layout_alignParentEnd="true"
+                        android:layout_centerVertical="true"
+                        android:layout_marginEnd="@dimen/dp_10"
+                        android:src="@drawable/ic_to_wxchat" />
 
-                <LinearLayout
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="1"
-                    android:gravity="center"
-                    android:orientation="vertical" >
+                </RelativeLayout >
 
-                    <ImageView
-                        android:layout_width="60dp"
-                        android:layout_height="60dp"
-                        android:src="@drawable/ic_math" ></ImageView >
+                <androidx.constraintlayout.widget.ConstraintLayout
+                    android:id="@+id/lay_user_info"
+                    android:layout_width="match_parent"
+                    android:layout_height="106dp"
+                    android:paddingStart="@dimen/dp_10"
+                    android:paddingEnd="@dimen/dp_10"
+                    app:layout_constraintStart_toStartOf="parent"
+                    app:layout_constraintTop_toBottomOf="@id/lay_title" >
+
+                    <com.qmuiteam.qmui.widget.QMUIRadiusImageView
+                        android:id="@+id/img_user_avater"
+                        android:layout_width="55dp"
+                        android:layout_height="55dp"
+                        android:src="@drawable/ic_math"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintStart_toStartOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:qmui_is_circle="true" />
 
                     <TextView
+                        android:id="@+id/tv_user_name"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:layout_marginStart="@dimen/dp_10"
                         android:layout_marginTop="10dp"
+                        app:layout_constraintStart_toEndOf="@id/img_user_avater"
+                        app:layout_constraintTop_toTopOf="@id/img_user_avater"
                         tools:text="郑货主" />
 
-                </LinearLayout >
-
-                <LinearLayout
-                    android:layout_width="0dp"
+                    <TextView
+                        android:id="@+id/tv_user_mobile"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginStart="@dimen/dp_10"
+                        android:layout_marginBottom="10dp"
+                        app:layout_constraintBottom_toBottomOf="@id/img_user_avater"
+                        app:layout_constraintStart_toEndOf="@id/img_user_avater"
+                        tools:text="18353965350" />
+
+                    <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+                        android:layout_width="72dp"
+                        android:layout_height="30dp"
+                        android:layout_marginEnd="@dimen/dp_10"
+                        android:text="未认证"
+                        android:textColor="#459AEA"
+                        app:layout_constraintBottom_toBottomOf="parent"
+                        app:layout_constraintEnd_toEndOf="parent"
+                        app:layout_constraintTop_toTopOf="parent"
+                        app:qmui_backgroundColor="#E8F1FB"
+                        app:qmui_borderColor="#459AEA"
+                        app:qmui_radius="@dimen/dp_4" />
+
+                </androidx.constraintlayout.widget.ConstraintLayout >
+
+                <com.qmuiteam.qmui.layout.QMUILinearLayout
+                    android:id="@+id/ll_center"
+                    android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:layout_weight="1"
-                    android:gravity="center"
+                    android:layout_marginStart="10dp"
+                    android:layout_marginTop="@dimen/dp_20"
+                    android:layout_marginEnd="10dp"
+                    android:background="@color/white"
+                    android:orientation="horizontal"
+                    android:paddingTop="15dp"
+                    android:paddingBottom="20dp"
+                    app:layout_constraintLeft_toLeftOf="parent"
+                    app:layout_constraintRight_toRightOf="parent"
+                    app:layout_constraintTop_toBottomOf="@id/lay_user_info" >
+
+                    <LinearLayout
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:gravity="center"
+                        android:orientation="vertical" >
 
-                    android:orientation="vertical" >
+                        <ImageView
+                            android:layout_width="50dp"
+                            android:layout_height="50dp"
+                            android:src="@drawable/ic_math" />
 
-                    <ImageView
-                        android:layout_width="60dp"
-                        android:layout_height="60dp"
-                        android:src="@drawable/ic_math" ></ImageView >
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginTop="6dp"
+                            android:text="@string/my_account" />
 
-                    <TextView
-                        android:layout_width="wrap_content"
+                    </LinearLayout >
+
+                    <LinearLayout
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        android:layout_marginStart="@dimen/dp_10"
-                        android:layout_marginTop="10dp"
-                        tools:text="郑货主" />
+                        android:layout_weight="1"
+                        android:gravity="center"
 
-                </LinearLayout >
+                        android:orientation="vertical" >
 
-                <LinearLayout
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="1"
-                    android:gravity="center"
-                    android:orientation="vertical" >
+                        <ImageView
+                            android:layout_width="50dp"
+                            android:layout_height="50dp"
+                            android:src="@drawable/ic_math" />
 
-                    <ImageView
-                        android:layout_width="60dp"
-                        android:layout_height="60dp"
-                        android:src="@drawable/ic_math" ></ImageView >
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginTop="6dp"
+                            android:text="@string/my_collection" />
 
-                    <TextView
-                        android:layout_width="wrap_content"
+                    </LinearLayout >
+
+                    <LinearLayout
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        android:layout_marginStart="@dimen/dp_10"
-                        android:layout_marginTop="10dp"
-                        tools:text="郑货主" />
+                        android:layout_weight="1"
+                        android:gravity="center"
+                        android:orientation="vertical" >
 
-                </LinearLayout >
+                        <ImageView
+                            android:layout_width="50dp"
+                            android:layout_height="50dp"
+                            android:src="@drawable/ic_math" />
 
-                <LinearLayout
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="1"
-                    android:gravity="center"
-                    android:orientation="vertical" >
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginTop="6dp"
+                            android:text="@string/invoice_manage" />
 
-                    <ImageView
-                        android:layout_width="60dp"
-                        android:layout_height="60dp"
-                        android:src="@drawable/ic_math" ></ImageView >
+                    </LinearLayout >
 
-                    <TextView
-                        android:layout_width="wrap_content"
+                    <LinearLayout
+                        android:layout_width="0dp"
                         android:layout_height="wrap_content"
-                        android:layout_marginStart="@dimen/dp_10"
-                        android:layout_marginTop="10dp"
-                        tools:text="郑货主" />
+                        android:layout_weight="1"
+                        android:gravity="center"
+                        android:orientation="vertical" >
 
-                </LinearLayout >
+                        <ImageView
+                            android:layout_width="50dp"
+                            android:layout_height="50dp"
+                            android:src="@drawable/ic_math" />
 
-            </com.qmuiteam.qmui.layout.QMUILinearLayout >
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginTop="6dp"
+                            android:text="@string/connect_service" />
 
-            <LinearLayout
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="10dp"
-                android:orientation="vertical"
-                app:layout_constraintLeft_toLeftOf="parent"
-                app:layout_constraintRight_toRightOf="parent"
-                app:layout_constraintTop_toBottomOf="@id/ll_center" >
+                    </LinearLayout >
+
+                </com.qmuiteam.qmui.layout.QMUILinearLayout >
 
                 <LinearLayout
-                    style="@style/mine_list"
-                    android:layout_marginTop="4dp" >
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    android:orientation="vertical"
+                    app:layout_constraintLeft_toLeftOf="parent"
+                    app:layout_constraintRight_toRightOf="parent"
+                    app:layout_constraintTop_toBottomOf="@id/ll_center" >
 
-                    <ImageView
-                        style="@style/mine_img"
-                        android:layout_width="wrap_content"
-                        android:src="@drawable/mine_update" />
+                    <LinearLayout
+                        style="@style/mine_list"
+                        android:layout_marginTop="4dp" >
 
-                    <TextView
-                        style="@style/mine_text"
-                        android:text="我的评价" />
+                        <ImageView
+                            style="@style/mine_img"
+                            android:layout_width="wrap_content"
+                            android:src="@drawable/mine_update" />
 
-                    <ImageView
-                        style="@style/mine_arrow_right"
-                        android:src="@drawable/mine_right" />
+                        <TextView
+                            style="@style/mine_text"
+                            android:text="我的评价" />
 
-                </LinearLayout >
+                        <ImageView
+                            style="@style/mine_arrow_right"
+                            android:src="@drawable/mine_right" />
 
-                <View
-                    android:layout_width="match_parent"
-                    android:layout_height="1dp"
-                    android:background="#DDDDDD"
-                    android:visibility="visible" >
+                    </LinearLayout >
 
-                </View >
+                    <View
+                        android:layout_width="match_parent"
+                        android:layout_height="1dp"
+                        android:background="#DDDDDD"
+                        android:visibility="visible" >
 
-                <LinearLayout style="@style/mine_list" >
+                    </View >
 
-                    <ImageView
-                        style="@style/mine_img"
-                        android:layout_width="wrap_content"
-                        android:src="@drawable/mine_update" />
+                    <LinearLayout style="@style/mine_list" >
 
-                    <TextView
-                        style="@style/mine_text"
-                        android:text="地址薄" />
+                        <ImageView
+                            style="@style/mine_img"
+                            android:layout_width="wrap_content"
+                            android:src="@drawable/mine_update" />
 
-                    <ImageView
-                        style="@style/mine_arrow_right"
-                        android:src="@drawable/mine_right" />
+                        <TextView
+                            style="@style/mine_text"
+                            android:text="地址薄" />
 
-                </LinearLayout >
+                        <ImageView
+                            style="@style/mine_arrow_right"
+                            android:src="@drawable/mine_right" />
 
-                <View
-                    android:layout_width="match_parent"
-                    android:layout_height="1dp"
-                    android:background="#DDDDDD"
-                    android:visibility="visible" >
+                    </LinearLayout >
 
-                </View >
+                    <View
+                        android:layout_width="match_parent"
+                        android:layout_height="1dp"
+                        android:background="#DDDDDD"
+                        android:visibility="visible" >
 
-                <LinearLayout style="@style/mine_list" >
+                    </View >
 
-                    <ImageView
-                        style="@style/mine_img"
-                        android:layout_width="wrap_content"
-                        android:src="@drawable/mine_update" />
+                    <LinearLayout style="@style/mine_list" >
 
-                    <TextView
-                        style="@style/mine_text"
-                        android:text="设置" />
+                        <ImageView
+                            style="@style/mine_img"
+                            android:layout_width="wrap_content"
+                            android:src="@drawable/mine_update" />
 
-                    <ImageView
-                        style="@style/mine_arrow_right"
-                        android:src="@drawable/mine_right" />
+                        <TextView
+                            style="@style/mine_text"
+                            android:text="设置" />
 
-                </LinearLayout >
+                        <ImageView
+                            style="@style/mine_arrow_right"
+                            android:src="@drawable/mine_right" />
 
-                <View
-                    android:layout_width="match_parent"
-                    android:layout_height="1dp"
-                    android:background="#DDDDDD"
-                    android:visibility="visible" >
+                    </LinearLayout >
 
-                </View >
+                    <View
+                        android:layout_width="match_parent"
+                        android:layout_height="1dp"
+                        android:background="#DDDDDD"
+                        android:visibility="visible" >
 
-                <LinearLayout
-                    style="@style/mine_list"
-                    android:onClick="@{v->vm.checkUpdates()}"
+                    </View >
 
-                    >
+                    <LinearLayout
+                        style="@style/mine_list"
+                        android:onClick="@{v->vm.checkUpdates()}" >
 
-                    <ImageView
-                        style="@style/mine_img"
-                        android:layout_width="wrap_content"
-                        android:src="@drawable/mine_update" />
+                        <ImageView
+                            style="@style/mine_img"
+                            android:layout_width="wrap_content"
+                            android:src="@drawable/mine_update" />
 
-                    <TextView
-                        style="@style/mine_text"
-                        android:text="检查更新" />
+                        <TextView
+                            style="@style/mine_text"
+                            android:text="检查更新" />
 
-                    <ImageView
-                        style="@style/mine_arrow_right"
-                        android:src="@drawable/mine_right" />
+                        <ImageView
+                            style="@style/mine_arrow_right"
+                            android:src="@drawable/mine_right" />
 
-                </LinearLayout >
+                    </LinearLayout >
 
-                <View
-                    android:layout_width="match_parent"
-                    android:layout_height="1dp"
-                    android:background="#DDDDDD"
-                    android:visibility="visible" >
+                    <View
+                        android:layout_width="match_parent"
+                        android:layout_height="1dp"
+                        android:background="#DDDDDD"
+                        android:visibility="visible" />
 
-                </View >
+                </LinearLayout >
 
                 <TextView
                     style="@style/mine_text"
                     android:layout_gravity="center"
-                    android:layout_marginTop="60dp"
-                    android:text="平台联系方式:1835397689" />
-
-            </LinearLayout >
+                    android:layout_marginBottom="@dimen/dp_40"
+                    android:onClick="@{v->vm.callPhone()}"
+                    android:text="平台联系方式:1835397689"
+                    app:layout_constraintBottom_toBottomOf="parent"
+                    app:layout_constraintEnd_toEndOf="parent"
+                    app:layout_constraintStart_toStartOf="parent" />
 
-        </androidx.constraintlayout.widget.ConstraintLayout >
-    </androidx.swiperefreshlayout.widget.SwipeRefreshLayout >
+            </androidx.constraintlayout.widget.ConstraintLayout >
+        </androidx.swiperefreshlayout.widget.SwipeRefreshLayout >
+    </LinearLayout >
 </layout >

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

@@ -409,5 +409,9 @@ Api 已达到使用限制
     <string name="waybill">我的运单</string>
     <string name="my">个人中心</string>
     <string name="your_status">您的身份</string>
+    <string name="invoice_manage" >发票管理</string >
+    <string name="my_account" >我的账户</string >
+    <string name="my_collection" >我的收藏</string >
+    <string name="connect_service" >联系客服</string >
 
 </resources >

+ 65 - 0
base/src/main/java/com/ysnows/base/utils/DialUtils.kt

@@ -0,0 +1,65 @@
+package com.ysnows.base.utils
+
+import android.content.Context
+import android.content.Intent
+import android.net.Uri
+import android.text.TextUtils
+import android.widget.Toast
+import com.yanzhenjie.permission.AndPermission
+import com.yanzhenjie.permission.runtime.Permission
+import com.ysnows.base.R
+import com.ysnows.base.utils.Toasts.toast
+import java.util.regex.Pattern
+
+object DialUtils {
+    /**
+     * 拨打电话(跳转到拨号界面,用户手动点击拨打)
+     *
+     * @param phoneNum 电话号码
+     */
+    fun dialPhone(context: Context?, phoneNum: String) {
+        if (TextUtils.isEmpty(phoneNum)) {
+            toast(context, context?.getString(R.string.mobile_number_must_not_be_empty), Toast.LENGTH_SHORT)
+            return
+        }
+
+//        if (!isMobileNO(phoneNum)) {
+//            Toasts.toast(context, context.getString(R.string.wrong_format_of_mobile_number));
+//            return;
+//        }
+        AndPermission.with(context)
+                .runtime()
+                .permission(Permission.CALL_PHONE)
+                .onGranted {
+                    val intent = Intent(Intent.ACTION_DIAL)
+                    val uri_data = Uri.parse("tel:$phoneNum")
+                    intent.data = uri_data
+                    context?.startActivity(intent)
+                }.start()
+    }
+
+    /**
+     * 拨打电话(直接拨打电话)
+     *
+     * @param phoneNum 电话号码
+     */
+    fun callPhone(context: Context?, phoneNum: String) {
+        val intent = Intent(Intent.ACTION_CALL)
+        val data = Uri.parse("tel:$phoneNum")
+        intent.data = data
+        context?.startActivity(intent)
+    }
+
+    /**
+     * 验证手机号是否正确
+     *
+     * @param mobiles
+     *
+     * @return
+     */
+    fun isMobileNO(mobiles: String?): Boolean {
+        val p = Pattern.compile("^(13[0-9]|14[57]|15[0-35-9]|17[6-8]|18[0-9])[0-9]{8}$")
+        val m = p.matcher(mobiles)
+        return m.matches()
+    }
+}

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

@@ -25,6 +25,7 @@
     <string name="loading" >正在加载...</string >
     <string name="jingqingqidai" >敬请期待...</string >
     <string name="add" >添加</string >
+    <string name="mobile_number_must_not_be_empty" >电话号码不能为空</string >
     <string-array name="accessibility_view" >
         <item >android.widget.FrameLayout</item >
         <item >android.widget.ViewGroup</item >