zengjiebin лет назад: 7
Родитель
Сommit
f899e6091a

+ 48 - 0
app/src/main/java/com/sheep/gamegroup/util/ApiUtil.java

@@ -1,10 +1,17 @@
 package com.sheep.gamegroup.util;
 
+import android.text.TextUtils;
+
 import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.NewAboutUs;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 
+import org.afinal.simplecache.ApiKey;
+
+import rx.Observable;
 import rx.android.schedulers.AndroidSchedulers;
+import rx.functions.Action1;
 import rx.schedulers.Schedulers;
 
 /**
@@ -56,4 +63,45 @@ public class ApiUtil {
                 .observeOn(AndroidSchedulers.mainThread())
                 .subscribe(sheepSubscriber);
     }
+
+    //关于我们,直接返回联系电话
+    public static void getNewAboutUsComplainQq(final Action1<String> action1) {
+        final NewAboutUs newAboutUs = DataUtil.getInstance().getCacheResult(ApiKey.new_about_us, NewAboutUs.class);
+        if(newAboutUs != null && !TextUtils.isEmpty(newAboutUs.getComplaintQq())){
+            Observable.just(newAboutUs.getComplaintQq())
+                    .observeOn(AndroidSchedulers.mainThread())
+                    .subscribe(new Action1<String>() {
+                        @Override
+                        public void call(String qq) {
+                            action1.call(qq);
+                        }
+                    });
+            newAboutUs.setComplaintQq(null);//设置为空任务标记已经读取,下面的接口不用调用call
+        }
+        SheepApp.getInstance().getNetComponent().getApiService().getNewAboutUs()
+                        .subscribeOn(Schedulers.io())
+                        .observeOn(AndroidSchedulers.mainThread())
+                        .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                            @Override
+                            public void onNext(BaseMessage baseMessage) {
+                                if(newAboutUs != null && TextUtils.equals(newAboutUs.getComplaintQq(), "hasRead")){
+                                    return;
+                                }
+                                NewAboutUs item = baseMessage.getData(NewAboutUs.class);
+                                if(item != null && !TextUtils.isEmpty(item.getComplaintQq())){
+                                    action1.call(item.getComplaintQq());
+                                } else {
+                                    action1.call("2441310002");
+                                }
+                            }
+
+                            @Override
+                            public void onError(BaseMessage baseMessage) {
+                                if(newAboutUs != null && TextUtils.equals(newAboutUs.getComplaintQq(), "hasRead")){
+                                    return;
+                                }
+                                action1.call("2441310002");
+                            }
+                        });
+    }
 }

+ 64 - 0
app/src/main/java/com/sheep/gamegroup/util/QQUtil.java

@@ -0,0 +1,64 @@
+package com.sheep.gamegroup.util;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.net.Uri;
+
+import java.util.List;
+import java.util.Locale;
+
+/**
+ * Created by realicing on 2018/11/8.
+ * realicing@sina.com
+ */
+public class QQUtil {
+
+    public static void skip1(Activity activity, String qq) {
+        String url = String.format(Locale.CHINA, "mqqwpa://im/chat?chat_type=wpa&;uin=%s&;site=qq&;menu=yes", qq);
+        activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
+    }
+
+    public static void skip2(Activity activity, String qq) {
+        String url = String.format(Locale.CHINA, "http://wpa.qq.com/msgrd?v=3&;uin=%s&;site=qq&;menu=yes", qq);
+        activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
+    }
+
+    public static void skip3(Activity activity, String qq) {
+        if (isQQClientAvailable(activity)) {
+            // 跳转到客服的QQ
+            String url = String.format(Locale.CHINA, "mqqwpa://im/chat?chat_type=wpa&uin=%s", qq);
+            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
+            // 跳转前先判断Uri是否存在,如果打开一个不存在的Uri,App可能会崩溃
+            if (isValidIntent(activity, intent)) {
+                activity.startActivity(intent);
+            }
+        }
+    }/**
+     * 判断 用户是否安装QQ客户端
+     */
+    public static boolean isQQClientAvailable(Context context) {
+        final PackageManager packageManager = context.getPackageManager();
+        List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);
+        if (pinfo != null) {
+            for (int i = 0; i < pinfo.size(); i++) {
+                String pn = pinfo.get(i).packageName;
+                if (pn.equalsIgnoreCase("com.tencent.qqlite") || pn.equalsIgnoreCase("com.tencent.mobileqq")) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+    /**
+     * 判断 Uri是否有效
+     */
+    public static boolean isValidIntent(Context context, Intent intent) {
+        PackageManager packageManager = context.getPackageManager();
+        List<ResolveInfo> activities = packageManager.queryIntentActivities(intent, 0);
+        return !activities.isEmpty();
+    }
+}

+ 15 - 1
app/src/main/java/com/sheep/gamegroup/util/TestUtil.java

@@ -6,6 +6,7 @@ import android.app.NotificationChannel;
 import android.app.NotificationManager;
 import android.content.DialogInterface;
 import android.content.Intent;
+import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
 import android.support.v4.app.NotificationCompat;
@@ -223,7 +224,8 @@ public class TestUtil {
      * @param activity
      */
     public static void test(final Activity activity) {
-        final String[] items = {"复制token","复制打点数据","从jenkins下载小绵羊安装包","测试表情包","龙猫竞猜","龙猫竞猜-scheme",
+        final String[] items = {"复制token","复制打点数据","从jenkins下载小绵羊安装包","测试表情包",
+                "跳转QQ1","跳转QQ2","跳转QQ3","跳转白白QQ","龙猫竞猜","龙猫竞猜-scheme",
                 "有米科技测试","有米科技","手机型号测试","测试通知栏", "测试自定义通知栏","测试自定义通知栏2",
                 "开启通知栏权限0","开启通知栏权限1","开启通知栏权限2","开启通知栏权限3",
                 "开启通知栏权限","通知栏权限1","通知栏权限2","通知栏权限8.0","测试支付","测试内部h5", "测试外部h5",
@@ -240,6 +242,18 @@ public class TestUtil {
                     @Override
                     public void onClick(DialogInterface dialog, int which) {
                         switch (items[which]) {
+                            case "跳转QQ1":
+                                QQUtil.skip1(activity, "532588232");
+                                break;
+                            case "跳转QQ2":
+                                QQUtil.skip2(activity, "532588232");
+                                break;
+                            case "跳转QQ3":
+                                QQUtil.skip3(activity, "532588232");
+                                break;
+                            case "跳转白白QQ":
+                                QQUtil.skip3(activity, "2441310002");
+                                break;
                             case "测试表情包":
                                 testExpression(activity);
                                 break;

+ 15 - 1
app/src/main/java/com/sheep/gamegroup/view/activity/ActWeb.java

@@ -15,17 +15,18 @@ import android.view.View;
 import android.webkit.JavascriptInterface;
 
 import com.sheep.gamegroup.absBase.BaseActivity;
+import com.sheep.gamegroup.util.ApiUtil;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.LogUtil;
+import com.sheep.gamegroup.util.QQUtil;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
-import com.tencent.smtt.sdk.DownloadListener;
 import com.tencent.smtt.sdk.ValueCallback;
 import com.tencent.smtt.sdk.WebChromeClient;
 import com.tencent.smtt.sdk.WebSettings;
@@ -39,6 +40,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 import butterknife.BindView;
+import rx.functions.Action1;
 
 
 /**
@@ -304,6 +306,9 @@ public class ActWeb extends BaseActivity {
         return url + ((url.contains("?") || url.contains("#") && url.contains("=")) ? "&" : "?") + key + "=" + value;
     }
 
+    /**
+     * window.kfzsjs.方法名(参数)
+     */
     public class KFZSJs {
         @JavascriptInterface
         public void setTitle(final String title) {
@@ -419,6 +424,15 @@ public class ActWeb extends BaseActivity {
                 }
             });
         }
+        @JavascriptInterface
+        public void skip2QQ() {
+            ApiUtil.getNewAboutUsComplainQq(new Action1<String>() {
+                @Override
+                public void call(String qq) {
+                    QQUtil.skip3(ActWeb.this, qq);
+                }
+            });
+        }
 
     }
 

+ 14 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/FeedbackAct.java

@@ -1,11 +1,14 @@
 package com.sheep.gamegroup.view.activity;
 
 import android.support.design.widget.TextInputEditText;
+import android.view.View;
 
 import com.alibaba.fastjson.JSONObject;
 import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
+import com.sheep.gamegroup.util.ApiUtil;
+import com.sheep.gamegroup.util.QQUtil;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.G;
@@ -14,6 +17,7 @@ import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 import butterknife.BindView;
 import butterknife.OnClick;
 import rx.android.schedulers.AndroidSchedulers;
+import rx.functions.Action1;
 import rx.schedulers.Schedulers;
 
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_FEEDBACK_COMMIT;
@@ -90,4 +94,14 @@ public class FeedbackAct extends BaseActivity {
                     }
                 });
     }
+
+    //点击联系qq
+    public void onClickContactQQ(View view) {
+        ApiUtil.getNewAboutUsComplainQq(new Action1<String>() {
+            @Override
+            public void call(String qq) {
+                QQUtil.skip3(FeedbackAct.this, qq);
+            }
+        });
+    }
 }

+ 2 - 0
app/src/main/java/org/afinal/simplecache/ApiKey.java

@@ -24,6 +24,8 @@ import java.util.Locale;
  * 07-23 11:59:24.634 7444-7651/com.sheep.jiuyan.samllsheep I/System.out: sheepLog aCache key = app/find/articles/list?page=1&per_page=100&tag_id=0
  */
 public class ApiKey {
+    //关于我们
+    public static final String new_about_us = "app/about_us/new_about_us";
     //公告
     public static final String bulletin = "app/bulletin?page=1&per_page=10";
     //轮播

+ 28 - 3
app/src/main/res/layout/act_feedback_layout.xml

@@ -1,14 +1,18 @@
 <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
+    xmlns:tools="http://schemas.android.com/tools"
     android:orientation="vertical"
-    android:background="@color/bg_gray">
+    android:background="@color/bg_gray"
+    tools:context="com.sheep.gamegroup.view.activity.FeedbackAct">
 
     <include
+        android:id="@+id/title"
         layout="@layout/title"/>
 
     <ScrollView
+        android:layout_below="@id/title"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:scrollbars="none">
@@ -131,4 +135,25 @@
         </LinearLayout>
     </ScrollView>
 
-</LinearLayout>
+    <com.kfzs.duanduan.view.DragRelativeLayout
+        android:id="@+id/contact_qq_drl"
+        android:layout_width="40dp"
+        android:layout_height="wrap_content"
+        android:layout_alignParentEnd="true"
+        android:layout_alignParentBottom="true"
+        android:onClick="onClickContactQQ"
+        android:layout_marginEnd="20dp"
+        android:layout_marginBottom="60dp"
+        android:gravity="center"
+        android:paddingTop="@dimen/content_padding_10"
+        android:paddingBottom="@dimen/content_padding_10">
+
+        <ImageView
+            android:id="@+id/contact_qq_iv"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:src="@drawable/icon"
+            android:adjustViewBounds="true"
+            android:scaleType="fitXY" />
+    </com.kfzs.duanduan.view.DragRelativeLayout>
+</RelativeLayout>