Преглед на файлове

修复幂动任务不能正常完成的问题;
添加我的足迹界面;
web优化

zengjiebin преди 7 години
родител
ревизия
36e8180648
променени са 24 файла, в които са добавени 500 реда и са изтрити 175 реда
  1. 5 5
      app/build.gradle
  2. BIN
      app/libs/mdsdk-201810121334.jar
  3. BIN
      app/libs/mdsdk_1123_1.2.1.12.jar
  4. 0 3
      app/src/developSheeptest/res/values/strings.xml
  5. 15 9
      app/src/main/AndroidManifest.xml
  6. 6 1
      app/src/main/java/com/sheep/gamegroup/absBase/AbsFocus.java
  7. 8 0
      app/src/main/java/com/sheep/gamegroup/model/api/ApiService.java
  8. 58 16
      app/src/main/java/com/sheep/gamegroup/model/entity/UserFocusLog.java
  9. 9 0
      app/src/main/java/com/sheep/gamegroup/util/Jump2View.java
  10. 4 1
      app/src/main/java/com/sheep/gamegroup/util/TestUtil.java
  11. 21 0
      app/src/main/java/com/sheep/gamegroup/util/js/BaseActWeb.java
  12. 159 0
      app/src/main/java/com/sheep/gamegroup/util/js/KFZSJs.java
  13. 2 1
      app/src/main/java/com/sheep/gamegroup/view/activity/ActCreditCardWeb.java
  14. 20 0
      app/src/main/java/com/sheep/gamegroup/view/activity/ActFootMark.java
  15. 2 1
      app/src/main/java/com/sheep/gamegroup/view/activity/ActOverrideJsWeb.java
  16. 24 134
      app/src/main/java/com/sheep/gamegroup/view/activity/ActWeb.java
  17. 22 3
      app/src/main/java/com/sheep/gamegroup/view/activity/ActWebX5.java
  18. 12 0
      app/src/main/java/com/sheep/gamegroup/view/adapter/AdpUserFocusLogList.java
  19. 89 0
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtFootMark.java
  20. 3 0
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtSignCardRecord.java
  21. 15 0
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtUserFocusLogList.java
  22. 2 0
      app/src/main/java/org/afinal/simplecache/ApiKey.java
  23. 24 0
      app/src/main/res/layout/header_foot_mark.xml
  24. 0 1
      app/src/main/res/values/strings.xml

+ 5 - 5
app/build.gradle

@@ -80,7 +80,7 @@ android {
             ]
             ]
             buildConfigField "String", "DUANDUAN_DATASHARE", '"sheeptest"'
             buildConfigField "String", "DUANDUAN_DATASHARE", '"sheeptest"'
             buildConfigField "String", "DUANDUAN_GRAPH", '"sheeptest"'
             buildConfigField "String", "DUANDUAN_GRAPH", '"sheeptest"'
-            buildConfigField "String", "app_name", '"小绵羊测试"'
+            resValue "string", "app_name", "小绵羊测试"
             buildConfigField "boolean", "XXTEA_ENCRYPT", 'true'
             buildConfigField "boolean", "XXTEA_ENCRYPT", 'true'
             buildConfigField "String", "API_DOMAIN", '"app.ss.kfzs.com"'
             buildConfigField "String", "API_DOMAIN", '"app.ss.kfzs.com"'
             signingConfig signingConfigs.config
             signingConfig signingConfigs.config
@@ -94,7 +94,7 @@ android {
 //            ]
 //            ]
 //            buildConfigField "String", "DUANDUAN_DATASHARE", '"sheeptestjiguang"'
 //            buildConfigField "String", "DUANDUAN_DATASHARE", '"sheeptestjiguang"'
 //            buildConfigField "String", "DUANDUAN_GRAPH", '"sheeptestjiguang"'
 //            buildConfigField "String", "DUANDUAN_GRAPH", '"sheeptestjiguang"'
-//            buildConfigField "String", "app_name", '"小绵羊测试"'
+//            resValue "string", "app_name", "小绵羊极光测试"
 //            buildConfigField "boolean", "XXTEA_ENCRYPT", 'true'
 //            buildConfigField "boolean", "XXTEA_ENCRYPT", 'true'
 //            buildConfigField "String", "API_DOMAIN", '"app.ss.kfzs.com"'
 //            buildConfigField "String", "API_DOMAIN", '"app.ss.kfzs.com"'
 //            signingConfig signingConfigs.config
 //            signingConfig signingConfigs.config
@@ -108,7 +108,7 @@ android {
             ]
             ]
             buildConfigField "String", "DUANDUAN_DATASHARE", '"sheep"'
             buildConfigField "String", "DUANDUAN_DATASHARE", '"sheep"'
             buildConfigField "String", "DUANDUAN_GRAPH", '"sheep"'
             buildConfigField "String", "DUANDUAN_GRAPH", '"sheep"'
-            buildConfigField "String", "app_name", '"小绵羊"'
+            resValue "string", "app_name", "小绵羊"
             buildConfigField "boolean", "XXTEA_ENCRYPT", 'true'
             buildConfigField "boolean", "XXTEA_ENCRYPT", 'true'
             buildConfigField "String", "API_DOMAIN", '"app.ss.kfzs.com"'
             buildConfigField "String", "API_DOMAIN", '"app.ss.kfzs.com"'
             signingConfig signingConfigs.config
             signingConfig signingConfigs.config
@@ -338,7 +338,7 @@ dependencies {
     implementation files('libs/BaiduLBS_Android.jar')
     implementation files('libs/BaiduLBS_Android.jar')
 
 
     //幂动科技
     //幂动科技
-    implementation files('libs/mdsdk-201810121334.jar')
+    implementation files('libs/mdsdk_1123_1.2.1.12.jar')
     //轮播图
     //轮播图
     implementation 'com.youth.banner:banner:1.4.10'  //最新版本
     implementation 'com.youth.banner:banner:1.4.10'  //最新版本
     //loading
     //loading
@@ -387,7 +387,7 @@ android.applicationVariants.all {
         variant.outputs.all {
         variant.outputs.all {
             output ->
             output ->
                 if (buildType.name == "release") {
                 if (buildType.name == "release") {
-                    outputFileName = productFlavors[0].name + "_" + buildType.name + "_v" + android.defaultConfig.versionName + "_" + android.defaultConfig.versionCode + "-${releaseTime()}.apk"
+                    outputFileName = "${productFlavors[0].name}_${buildType.name}_v${versionName}_${versionCode}-${releaseTime()}.apk"
                 }
                 }
 
 
         }
         }

BIN
app/libs/mdsdk-201810121334.jar


BIN
app/libs/mdsdk_1123_1.2.1.12.jar


+ 0 - 3
app/src/developSheeptest/res/values/strings.xml

@@ -1,3 +0,0 @@
-<resources>
-    <string name="app_name">小绵羊测试</string>
-</resources>

+ 15 - 9
app/src/main/AndroidManifest.xml

@@ -735,15 +735,6 @@
         <activity
         <activity
             android:name="com.sheep.gamegroup.view.activity.ActMiDong"
             android:name="com.sheep.gamegroup.view.activity.ActMiDong"
             android:screenOrientation="portrait" />
             android:screenOrientation="portrait" />
-        <activity
-            android:name="com.sheep.gamegroup.view.activity.GameCertificationActivity"
-            android:exported="true"
-            android:screenOrientation="portrait" />
-        <activity
-            android:name="com.sheep.gamegroup.view.activity.ActPay"
-            android:exported="true"
-            android:screenOrientation="user" />
-
         <service
         <service
             android:name="com.mdad.sdk.mdsdk.monitor.MonitorService"
             android:name="com.mdad.sdk.mdsdk.monitor.MonitorService"
             android:enabled="true"
             android:enabled="true"
@@ -771,6 +762,17 @@
             </intent-filter>
             </intent-filter>
         </receiver>
         </receiver>
         <!-- end幂动科技 -->
         <!-- end幂动科技 -->
+        <!-- start 小绵羊sdk相关 -->
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActPay"
+            android:exported="true"
+            android:screenOrientation="user" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.GameCertificationActivity"
+            android:exported="true"
+            android:screenOrientation="portrait" />
+        <!-- end 小绵羊sdk相关 -->
+
         <!-- 签到 -->
         <!-- 签到 -->
         <activity
         <activity
             android:name=".ui.activity.SignActivity"
             android:name=".ui.activity.SignActivity"
@@ -784,6 +786,10 @@
         <activity
         <activity
             android:name="com.sheep.gamegroup.view.activity.ActMyFocus"
             android:name="com.sheep.gamegroup.view.activity.ActMyFocus"
             android:screenOrientation="portrait" />
             android:screenOrientation="portrait" />
+        <!-- 小绵羊3.4.5 足迹  -->
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActFootMark"
+            android:screenOrientation="portrait" />
     </application>
     </application>
 
 
 </manifest>
 </manifest>

+ 6 - 1
app/src/main/java/com/sheep/gamegroup/absBase/AbsFocus.java

@@ -14,7 +14,7 @@ public abstract class AbsFocus {
     public boolean isFocus(){
     public boolean isFocus(){
         switch (focusState){
         switch (focusState){
             case -1:
             case -1:
-                focusState = getTheFocusId() > 0 ? YES : NO;
+                focusState = initFocusState();
                 break;
                 break;
         }
         }
         return focusState == YES;
         return focusState == YES;
@@ -22,6 +22,11 @@ public abstract class AbsFocus {
 
 
     public abstract int getTheFocusId();
     public abstract int getTheFocusId();
 
 
+    //初始化关注状态
+    protected int initFocusState(){
+        return getTheFocusId() > 0 ? YES : NO;
+    }
+
     public void setFocus(boolean focus) {
     public void setFocus(boolean focus) {
         focusState = focus ? YES : NO;
         focusState = focus ? YES : NO;
     }
     }

+ 8 - 0
app/src/main/java/com/sheep/gamegroup/model/api/ApiService.java

@@ -1437,4 +1437,12 @@ public interface ApiService {
     @GET("youmi/youmi_total_price")
     @GET("youmi/youmi_total_price")
     Observable<BaseMessage> getYmTotalPrice(@Query("uid") String uid);
     Observable<BaseMessage> getYmTotalPrice(@Query("uid") String uid);
 //---------------------------end 有米科技相关接口-------------------------------------
 //---------------------------end 有米科技相关接口-------------------------------------
+//---------------------------start 小绵羊3.4.5 足迹-------------------------------------
+
+    /**
+     * 小绵羊3.4.5 足迹
+     */
+    @GET(ApiKey.getFootMark)
+    Observable<BaseMessage> getFootMark(@Query("page") int page, @Query("per_page") int per_page);
+//---------------------------end 小绵羊3.4.5 足迹-------------------------------------
 }
 }

+ 58 - 16
app/src/main/java/com/sheep/gamegroup/model/entity/UserFocusLog.java

@@ -16,6 +16,21 @@ import java.util.Locale;
  * Created by realicing on 2018/11/22.
  * Created by realicing on 2018/11/22.
  * realicing@sina.com
  * realicing@sina.com
  * 小绵羊3.4.5新增--用户关注的用户
  * 小绵羊3.4.5新增--用户关注的用户
+ * <p>
+ * avatar:	string
+ * 关注人头像
+ * create_time:	integer ($int64)
+ * focus_user_id:	integer ($int64)
+ * 关注的用户id
+ * id:	integer ($int64)
+ * is_follow:	integer ($int64)
+ * 我是否已关注 1:已关注 0:未关注
+ * nickname:	string
+ * 关注人昵称
+ * user_id:	integer ($int64)
+ * 用户id
+ * user_type:	string
+ * 关注人类型,目前全是资深玩家
  */
  */
 public class UserFocusLog extends AbsFocus {
 public class UserFocusLog extends AbsFocus {
     private String avatar;
     private String avatar;
@@ -32,60 +47,87 @@ public class UserFocusLog extends AbsFocus {
 
 
     private String user_type;
     private String user_type;
 
 
-    public void setAvatar(String avatar){
+    private int is_follow;
+
+    public void setAvatar(String avatar) {
         this.avatar = avatar;
         this.avatar = avatar;
     }
     }
-    public String getAvatar(){
+
+    public String getAvatar() {
         return this.avatar;
         return this.avatar;
     }
     }
-    public void setCreate_time(int create_time){
+
+    public void setCreate_time(int create_time) {
         this.create_time = create_time;
         this.create_time = create_time;
     }
     }
-    public int getCreate_time(){
+
+    public int getCreate_time() {
         return this.create_time;
         return this.create_time;
     }
     }
-    public void setFocus_user_id(int focus_user_id){
+
+    public void setFocus_user_id(int focus_user_id) {
         this.focus_user_id = focus_user_id;
         this.focus_user_id = focus_user_id;
     }
     }
-    public int getFocus_user_id(){
+
+    public int getFocus_user_id() {
         return this.focus_user_id;
         return this.focus_user_id;
     }
     }
-    public void setId(int id){
+
+    public void setId(int id) {
         this.id = id;
         this.id = id;
     }
     }
-    public int getId(){
+
+    public int getId() {
         return this.id;
         return this.id;
     }
     }
-    public void setNickname(String nickname){
+
+    public void setNickname(String nickname) {
         this.nickname = nickname;
         this.nickname = nickname;
     }
     }
-    public String getNickname(){
+
+    public String getNickname() {
         return this.nickname;
         return this.nickname;
     }
     }
-    public void setUser_id(int user_id){
+
+    public void setUser_id(int user_id) {
         this.user_id = user_id;
         this.user_id = user_id;
     }
     }
-    public int getUser_id(){
+
+    public int getUser_id() {
         return this.user_id;
         return this.user_id;
     }
     }
-    public void setUser_type(String user_type){
+
+    public void setUser_type(String user_type) {
         this.user_type = user_type;
         this.user_type = user_type;
     }
     }
-    public String getUser_type(){
+
+    public String getUser_type() {
         return this.user_type;
         return this.user_type;
     }
     }
 
 
+    public int getIs_follow() {
+        return is_follow;
+    }
+
+    public void setIs_follow(int is_follow) {
+        this.is_follow = is_follow;
+    }
 
 
     @Override
     @Override
     public int getTheFocusId() {
     public int getTheFocusId() {
         return focus_user_id;
         return focus_user_id;
     }
     }
 
 
+    @Override
+    protected int initFocusState() {
+        return is_follow;
+    }
+
     public CharSequence getInfo() {
     public CharSequence getInfo() {
-        if(nickname == null){
+        if (nickname == null) {
             return user_type;
             return user_type;
         }
         }
-        if(user_type == null){
+        if (user_type == null) {
             return "";
             return "";
         }
         }
         String content = String.format(Locale.CHINA, "%s\n%s", nickname, user_type);
         String content = String.format(Locale.CHINA, "%s\n%s", nickname, user_type);

+ 9 - 0
app/src/main/java/com/sheep/gamegroup/util/Jump2View.java

@@ -50,6 +50,7 @@ import com.sheep.gamegroup.view.activity.ActCreditCardTaskList;
 import com.sheep.gamegroup.view.activity.ActCreditCardWeb;
 import com.sheep.gamegroup.view.activity.ActCreditCardWeb;
 import com.sheep.gamegroup.view.activity.ActDownloadWelfareList;
 import com.sheep.gamegroup.view.activity.ActDownloadWelfareList;
 import com.sheep.gamegroup.view.activity.ActExchangeCMCC;
 import com.sheep.gamegroup.view.activity.ActExchangeCMCC;
+import com.sheep.gamegroup.view.activity.ActFootMark;
 import com.sheep.gamegroup.view.activity.ActGameAccount;
 import com.sheep.gamegroup.view.activity.ActGameAccount;
 import com.sheep.gamegroup.view.activity.ActGameAgencyRecharge;
 import com.sheep.gamegroup.view.activity.ActGameAgencyRecharge;
 import com.sheep.gamegroup.view.activity.ActGameCenter;
 import com.sheep.gamegroup.view.activity.ActGameCenter;
@@ -2241,4 +2242,12 @@ public class Jump2View {
         Intent intent = new Intent(activity, ActMyFocus.class);
         Intent intent = new Intent(activity, ActMyFocus.class);
         activity.startActivity(intent);
         activity.startActivity(intent);
     }
     }
+    /**
+     * 小绵羊3.4.5新增--跳转到足迹界面
+     */
+    public void goActFootMark() {
+        Activity activity = ActivityManager.getInstance().currentActivity();
+        Intent intent = new Intent(activity, ActFootMark.class);
+        activity.startActivity(intent);
+    }
 }
 }

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

@@ -232,7 +232,7 @@ public class TestUtil {
      */
      */
     public static void test(final Activity activity) {
     public static void test(final Activity activity) {
         final String[] items = {"复制token","复制打点数据","从jenkins下载小绵羊安装包","测试表情包",
         final String[] items = {"复制token","复制打点数据","从jenkins下载小绵羊安装包","测试表情包",
-                "我的关注",
+                "我的关注","足迹",
                 "测试联通卡","测试联通卡2","测试签名1","测试签名2","测试孔剑秋faq正式服",
                 "测试联通卡","测试联通卡2","测试签名1","测试签名2","测试孔剑秋faq正式服",
                 "跳转QQ1","跳转QQ2","跳转QQ3","跳转白白QQ","龙猫竞猜","龙猫竞猜-scheme",
                 "跳转QQ1","跳转QQ2","跳转QQ3","跳转白白QQ","龙猫竞猜","龙猫竞猜-scheme",
                 "有米科技","手机型号测试","测试通知栏", "测试自定义通知栏","测试自定义通知栏2",
                 "有米科技","手机型号测试","测试通知栏", "测试自定义通知栏","测试自定义通知栏2",
@@ -251,6 +251,9 @@ public class TestUtil {
                     @Override
                     @Override
                     public void onClick(DialogInterface dialog, int which) {
                     public void onClick(DialogInterface dialog, int which) {
                         switch (items[which]) {
                         switch (items[which]) {
+                            case "足迹":
+                                Jump2View.getInstance().goActFootMark();
+                                break;
                             case "我的关注":
                             case "我的关注":
                                 Jump2View.getInstance().goActMyFocus();
                                 Jump2View.getInstance().goActMyFocus();
                                 break;
                                 break;

+ 21 - 0
app/src/main/java/com/sheep/gamegroup/util/js/BaseActWeb.java

@@ -0,0 +1,21 @@
+package com.sheep.gamegroup.util.js;
+
+import com.sheep.gamegroup.absBase.BaseActivity;
+
+/**
+ * Created by realicing on 2018/11/23.
+ * realicing@sina.com
+ */
+public abstract class BaseActWeb extends BaseActivity {
+    public abstract boolean isResponseBack();
+
+    public abstract void setResponseBack(boolean responseBack);
+
+    public abstract void clearWebView();
+
+    public abstract void showTitleBar(boolean isShow);
+
+    public void superFinish(){
+        super.finish();
+    }
+}

+ 159 - 0
app/src/main/java/com/sheep/gamegroup/util/js/KFZSJs.java

@@ -0,0 +1,159 @@
+package com.sheep.gamegroup.util.js;
+
+import android.app.Activity;
+import android.text.TextUtils;
+import android.view.View;
+import android.webkit.JavascriptInterface;
+
+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.QQUtil;
+import com.sheep.gamegroup.view.activity.ActWeb;
+import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
+import com.sheep.jiuyan.samllsheep.utils.SpUtils;
+import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
+
+import rx.functions.Action1;
+
+/**
+ * Created by realicing on 2018/11/23.
+ * realicing@sina.com
+ * window.kfzsjs.方法名(参数)
+ */
+public class KFZSJs {
+    private BaseActWeb activity;
+
+    public KFZSJs(BaseActWeb activity) {
+        this.activity = activity;
+    }
+
+    @JavascriptInterface
+    public void setTitle(final String title) {
+        activity.runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                TitleBarUtils
+                        .getInstance()
+                        .setTitle(activity, title);
+            }
+        });
+    }
+
+    /**
+     * 是否响应返回键
+     */
+    @JavascriptInterface
+    public boolean isResponseBack() {
+        return activity.isResponseBack();
+    }
+
+    /**
+     * 设置是否响应返回键
+     */
+    @JavascriptInterface
+    public void setResponseBack(boolean responseBack) {
+        activity.setResponseBack(responseBack);
+    }
+
+    @JavascriptInterface
+    public void downloadFile(final String url, final String name) {
+        CommonUtil.getInstance().showDownLoad(activity, url, name);
+    }
+
+    @JavascriptInterface
+    public void startApp(String pkg, String cls) {
+        PackageUtil.startApp(activity, pkg);
+    }
+
+    @JavascriptInterface
+    public void gotoLogin() {
+        activity.clearWebView();
+        Jump2View.getInstance().gotoLoginAgain();
+    }
+
+    @JavascriptInterface
+    public void gotoWeb(String url, String title) {
+        if (!TextUtils.isEmpty(url)) {
+            if (TextUtils.isEmpty(title)) {
+                Jump2View.getInstance().goWeb(activity, url);//启动浏览器h5
+            } else {
+                Jump2View.getInstance().goWeb(activity, url, title);//进入小绵羊h5界面
+            }
+        }
+    }
+
+    @JavascriptInterface
+    public void gotoRecharge() {
+        Jump2View.getInstance().goRechargeAct(activity, "内部H5");//进入充值绵羊币界面
+    }
+
+    @JavascriptInterface
+    public String getInvitationCode() {
+        return DataUtil.getInstance().getInvitationCode();
+    }
+
+    @JavascriptInterface
+    public String popShare(String url, String type) {
+        CommonUtil.getInstance().popShare(activity, url, type);
+        return "";
+    }
+//    @JavascriptInterface
+//    public String shareLink(String link, String iconUrl, String title, String des) {
+//        CommonUtil.getInstance().popShare(activity, url, type);
+//        return "";
+//    }
+
+    @JavascriptInterface
+    public String getHeader() {
+        return SpUtils.getToken(activity);
+    }
+
+    @JavascriptInterface
+    public String getWcUrl(String url) {
+        if (!TextUtils.isEmpty(url)) {
+            Jump2View.getInstance().goWeb(activity, url);
+        }
+        return "";
+    }
+
+    @JavascriptInterface
+    public void showTitleBar(final boolean isShow) {
+        activity.runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                activity.showTitleBar(isShow);
+            }
+        });
+    }
+
+    @JavascriptInterface
+    public void goBack() {
+        activity.runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                activity.finish();
+            }
+        });
+    }
+
+    @JavascriptInterface
+    public void finishAct() {
+        activity.runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                activity.superFinish();
+            }
+        });
+    }
+    @JavascriptInterface
+    public void skip2QQ() {
+        ApiUtil.getNewAboutUsComplainQq(new Action1<String>() {
+            @Override
+            public void call(String qq) {
+                QQUtil.skip3(activity, qq);
+            }
+        });
+    }
+}

+ 2 - 1
app/src/main/java/com/sheep/gamegroup/view/activity/ActCreditCardWeb.java

@@ -6,6 +6,7 @@ import android.widget.TextView;
 
 
 import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.model.entity.CreditCard;
 import com.sheep.gamegroup.model.entity.CreditCard;
+import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.util.WebViewJs;
 import com.sheep.gamegroup.util.WebViewJs;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.G;
@@ -149,7 +150,7 @@ public class ActCreditCardWeb extends BaseActivity {
     }
     }
     // 注入js函数监听
     // 注入js函数监听
     public void loadJs() {
     public void loadJs() {
-        mWebView.loadUrl("javascript:"+getJs());
+        ViewUtil.loadJs(mWebView, getJs());
     }
     }
     private String js;
     private String js;
     private String getJs(){
     private String getJs(){

+ 20 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/ActFootMark.java

@@ -0,0 +1,20 @@
+package com.sheep.gamegroup.view.activity;
+
+import android.support.v4.app.Fragment;
+
+import com.sheep.gamegroup.absBase.BaseContainerActivity;
+import com.sheep.gamegroup.view.fragment.FgtFootMark;
+
+/**
+ * Created by realicing on 2018/9/11.
+ * realicing@sina.com
+ * 小绵羊3.4.5新增--足迹
+ */
+public class ActFootMark extends BaseContainerActivity {
+
+    @Override
+    protected Fragment initFragment() {
+        return new FgtFootMark();
+    }
+
+}

+ 2 - 1
app/src/main/java/com/sheep/gamegroup/view/activity/ActOverrideJsWeb.java

@@ -7,6 +7,7 @@ import android.widget.TextView;
 
 
 import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.LogUtil;
+import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.util.WebViewJs;
 import com.sheep.gamegroup.util.WebViewJs;
 import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.R;
@@ -155,7 +156,7 @@ public class ActOverrideJsWeb extends BaseActivity {
     }
     }
     // 注入js函数监听
     // 注入js函数监听
     public void loadJs() {
     public void loadJs() {
-        mWebView.loadUrl("javascript:"+getJs());
+        ViewUtil.loadJs(mWebView, getJs());
         LogUtil.println("ActOverrideJsWeb", "loadJs", js);
         LogUtil.println("ActOverrideJsWeb", "loadJs", js);
     }
     }
     private String js;
     private String js;

+ 24 - 134
app/src/main/java/com/sheep/gamegroup/view/activity/ActWeb.java

@@ -29,6 +29,8 @@ import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.QQUtil;
 import com.sheep.gamegroup.util.QQUtil;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.util.ViewUtil;
+import com.sheep.gamegroup.util.js.BaseActWeb;
+import com.sheep.gamegroup.util.js.KFZSJs;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
@@ -49,7 +51,7 @@ import rx.functions.Action1;
  * web页面--含有所有js及url后添加authorization
  * web页面--含有所有js及url后添加authorization
  * Created by zengjiebin on 2018/4/27.
  * Created by zengjiebin on 2018/4/27.
  */
  */
-public class ActWeb extends BaseActivity {
+public class ActWeb extends BaseActWeb {
 
 
     @BindView(R.id.webview)
     @BindView(R.id.webview)
     WebView mWebView;
     WebView mWebView;
@@ -293,7 +295,7 @@ public class ActWeb extends BaseActivity {
             }
             }
         });
         });
         webViewSettings.setJavaScriptEnabled(true);
         webViewSettings.setJavaScriptEnabled(true);
-        mWebView.addJavascriptInterface(new KFZSJs(), "kfzsjs");
+        mWebView.addJavascriptInterface(new KFZSJs(this), "kfzsjs");
         String loadUrl = addUrlToken(url);
         String loadUrl = addUrlToken(url);
         LogUtil.println("ActWeb loadUrl = " + loadUrl);
         LogUtil.println("ActWeb loadUrl = " + loadUrl);
         if (CommonUtil.getInstance().judgeUrlPicture(url)) {
         if (CommonUtil.getInstance().judgeUrlPicture(url)) {
@@ -329,136 +331,6 @@ public class ActWeb extends BaseActivity {
     }
     }
 
 
     /**
     /**
-     * window.kfzsjs.方法名(参数)
-     */
-    public class KFZSJs {
-        @JavascriptInterface
-        public void setTitle(final String title) {
-            runOnUiThread(new Runnable() {
-                @Override
-                public void run() {
-                    TitleBarUtils
-                            .getInstance()
-                            .setTitle(ActWeb.this, title);
-                }
-            });
-        }
-
-        /**
-         * 是否响应返回键
-         */
-        @JavascriptInterface
-        public boolean isResponseBack() {
-            return responseBack;
-        }
-
-        /**
-         * 设置是否响应返回键
-         */
-        @JavascriptInterface
-        public void setResponseBack(boolean responseBack) {
-            ActWeb.this.responseBack = responseBack;
-        }
-
-        @JavascriptInterface
-        public void downloadFile(final String url, final String name) {
-            CommonUtil.getInstance().showDownLoad(ActWeb.this, url, name);
-        }
-
-        @JavascriptInterface
-        public void startApp(String pkg, String cls) {
-            PackageUtil.startApp(ActWeb.this, pkg);
-        }
-
-        @JavascriptInterface
-        public void gotoLogin() {
-            mWebView = null;
-            Jump2View.getInstance().gotoLoginAgain();
-        }
-
-        @JavascriptInterface
-        public void gotoWeb(String url, String title) {
-            if (!TextUtils.isEmpty(url)) {
-                if (TextUtils.isEmpty(title)) {
-                    Jump2View.getInstance().goWeb(ActWeb.this, url);//启动浏览器h5
-                } else {
-                    Jump2View.getInstance().goWeb(ActWeb.this, url, title);//进入小绵羊h5界面
-                }
-            }
-        }
-
-        @JavascriptInterface
-        public void gotoRecharge() {
-            Jump2View.getInstance().goRechargeAct(ActWeb.this, "内部H5");//进入充值绵羊币界面
-        }
-
-        @JavascriptInterface
-        public String getInvitationCode() {
-            return DataUtil.getInstance().getInvitationCode();
-        }
-
-        @JavascriptInterface
-        public String popShare(String url, String type) {
-            CommonUtil.getInstance().popShare(ActWeb.this, url, type);
-            return "";
-        }
-
-        @JavascriptInterface
-        public String getHeader() {
-            return SpUtils.getToken(ActWeb.this);
-        }
-
-        @JavascriptInterface
-        public String getWcUrl(String url) {
-            if (!TextUtils.isEmpty(url)) {
-                Jump2View.getInstance().goWeb(ActWeb.this, url);
-            }
-            return "";
-        }
-
-        @JavascriptInterface
-        public void showTitleBar(final boolean isShow) {
-            runOnUiThread(new Runnable() {
-                @Override
-                public void run() {
-                    if(layout_navigationBar != null)
-                        layout_navigationBar.setVisibility(isShow ? View.VISIBLE : View.GONE);
-                }
-            });
-        }
-
-        @JavascriptInterface
-        public void goBack() {
-            runOnUiThread(new Runnable() {
-                @Override
-                public void run() {
-                    finish();
-                }
-            });
-        }
-
-        @JavascriptInterface
-        public void finishAct() {
-            runOnUiThread(new Runnable() {
-                @Override
-                public void run() {
-                    ActWeb.super.finish();
-                }
-            });
-        }
-        @JavascriptInterface
-        public void skip2QQ() {
-            ApiUtil.getNewAboutUsComplainQq(new Action1<String>() {
-                @Override
-                public void call(String qq) {
-                    QQUtil.skip3(ActWeb.this, qq);
-                }
-            });
-        }
-
-    }
-
-    /**
      * 是否响应返回键
      * 是否响应返回键
      */
      */
     private boolean responseBack = true;
     private boolean responseBack = true;
@@ -527,8 +399,7 @@ public class ActWeb extends BaseActivity {
     }
     }
 
 
     private void imgReset() {
     private void imgReset() {
-        if(mWebView != null)
-            mWebView.loadUrl("javascript:(function(){" +
+        ViewUtil.loadJs(mWebView, "(function(){" +
                 "var objs = document.getElementsByTagName('img'); " +
                 "var objs = document.getElementsByTagName('img'); " +
                 "for(var i=0;i<objs.length;i++)  " +
                 "for(var i=0;i<objs.length;i++)  " +
                 "{"
                 "{"
@@ -549,4 +420,23 @@ public class ActWeb extends BaseActivity {
         });
         });
     }
     }
 
 
+    @Override
+    public boolean isResponseBack() {
+        return responseBack;
+    }
+
+    @Override
+    public void setResponseBack(boolean responseBack) {
+        this.responseBack = responseBack;
+    }
+
+    @Override
+    public void clearWebView() {
+        mWebView = null;
+    }
+
+    @Override
+    public void showTitleBar(boolean isShow) {
+        ViewUtil.setVisibility(layout_navigationBar, isShow);
+    }
 }
 }

+ 22 - 3
app/src/main/java/com/sheep/gamegroup/view/activity/ActWebX5.java

@@ -24,6 +24,7 @@ import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.QQUtil;
 import com.sheep.gamegroup.util.QQUtil;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.util.ViewUtil;
+import com.sheep.gamegroup.util.js.BaseActWeb;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
@@ -49,7 +50,7 @@ import rx.functions.Action1;
  * web页面--含有所有js及url后添加authorization
  * web页面--含有所有js及url后添加authorization
  * Created by zengjiebin on 2018/4/27.
  * Created by zengjiebin on 2018/4/27.
  */
  */
-public class ActWebX5 extends BaseActivity {
+public class ActWebX5 extends BaseActWeb {
 
 
     @BindView(R.id.webview)
     @BindView(R.id.webview)
     WebView mWebView;
     WebView mWebView;
@@ -521,8 +522,7 @@ public class ActWebX5 extends BaseActivity {
     }
     }
 
 
     private void imgReset() {
     private void imgReset() {
-        if (mWebView != null)
-            mWebView.loadUrl("javascript:(function(){" +
+        ViewUtil.loadJs(mWebView, "(function(){" +
                     "var objs = document.getElementsByTagName('img'); " +
                     "var objs = document.getElementsByTagName('img'); " +
                     "for(var i=0;i<objs.length;i++)  " +
                     "for(var i=0;i<objs.length;i++)  " +
                     "{"
                     "{"
@@ -543,4 +543,23 @@ public class ActWebX5 extends BaseActivity {
         });
         });
     }
     }
 
 
+    @Override
+    public boolean isResponseBack() {
+        return responseBack;
+    }
+
+    @Override
+    public void setResponseBack(boolean responseBack) {
+        this.responseBack = responseBack;
+    }
+
+    @Override
+    public void clearWebView() {
+        mWebView = null;
+    }
+
+    @Override
+    public void showTitleBar(boolean isShow) {
+        ViewUtil.setVisibility(layout_navigationBar, isShow);
+    }
 }
 }

+ 12 - 0
app/src/main/java/com/sheep/gamegroup/view/adapter/AdpUserFocusLogList.java

@@ -20,15 +20,25 @@ import com.sheep.jiuyan.samllsheep.utils.G;
 
 
 import java.util.List;
 import java.util.List;
 
 
+import rx.functions.Action1;
+
+import static com.sheep.gamegroup.absBase.AbsFocus.YES;
+
 /**
 /**
  * Created by realicing on 2018/11/22.
  * Created by realicing on 2018/11/22.
  * realicing@sina.com
  * realicing@sina.com
+ * 小绵羊3.4.5新界面--我的关注--人员列表子模块
  */
  */
 public class AdpUserFocusLogList extends BaseQuickAdapter<UserFocusLog, BaseViewHolder> {
 public class AdpUserFocusLogList extends BaseQuickAdapter<UserFocusLog, BaseViewHolder> {
     public AdpUserFocusLogList(List<UserFocusLog> list) {
     public AdpUserFocusLogList(List<UserFocusLog> list) {
         super(R.layout.item_my_focus, list);
         super(R.layout.item_my_focus, list);
     }
     }
 
 
+    private Action1<Integer> action1;
+
+    public void setAction1(Action1<Integer> action1) {
+        this.action1 = action1;
+    }
 
 
     @Override
     @Override
     public void convert(BaseViewHolder holder, final UserFocusLog  item) {
     public void convert(BaseViewHolder holder, final UserFocusLog  item) {
@@ -55,6 +65,8 @@ public class AdpUserFocusLogList extends BaseQuickAdapter<UserFocusLog, BaseView
                             G.showToast(item.isFocus() ? R.string.cancel_focus_success : R.string.focus_success);
                             G.showToast(item.isFocus() ? R.string.cancel_focus_success : R.string.focus_success);
                             item.setFocus(!item.isFocus());
                             item.setFocus(!item.isFocus());
                             FgtUserFocusLogList.updateItemFocusTv(item.isFocus(), item_my_focus_tv);
                             FgtUserFocusLogList.updateItemFocusTv(item.isFocus(), item_my_focus_tv);
+                            if(action1 != null)
+                                action1.call(YES);
                             view.setEnabled(true);
                             view.setEnabled(true);
                         }
                         }
 
 

+ 89 - 0
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtFootMark.java

@@ -0,0 +1,89 @@
+package com.sheep.gamegroup.view.fragment;
+
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.haibin.calendarview.CalendarView;
+import com.kfzs.appstore.utils.adapter.recyclerview.RecyclerViewAdapter;
+import com.kfzs.appstore.utils.adapter.recyclerview.ViewHolder;
+import com.sheep.gamegroup.model.api.ApiService;
+import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.PunchLog;
+import com.sheep.gamegroup.util.ViewUtil;
+import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
+
+import org.afinal.simplecache.ApiKey;
+
+import java.util.Locale;
+
+import io.reactivex.Observable;
+
+/**
+ * Created by realicing on 2018/9/17.
+ * realicing@sina.com
+ * 小绵羊3.4.5新增--足迹
+ */
+public class FgtFootMark extends BaseListFragment2<PunchLog> {
+    CalendarView calendarView;
+
+    @Override
+    public void initView() {
+        TitleBarUtils
+                .getInstance()
+                .setTitleFinish(getView(), activity)
+                .setTitle(getView(), "足迹");
+        per_page = 100;
+        view_list.setNestedScrollingEnabled(false);
+        View view = LayoutInflater.from(activity).inflate(R.layout.header_foot_mark, null);
+        view_list.addHeaderView(view);
+        calendarView = view.findViewById(R.id.calendarView);
+    }
+
+    @Override
+    public void initListener() {
+        super.initListener();
+        calendarView.setOnMonthChangeListener(new CalendarView.OnMonthChangeListener() {
+            @Override
+            public void onMonthChange(int year, int month) {
+                if (isNoMore()) {
+                    return;
+                }
+                loadMoreData();
+            }
+        });
+    }
+
+    @Override
+    protected RecyclerView.Adapter getAdapter() {
+        return new RecyclerViewAdapter<PunchLog>(SheepApp.getInstance(), R.layout.item_my_focus, list) {
+            @Override
+            public void convert(ViewHolder holder, PunchLog item, int position) {
+                ImageView item_my_focus_iv = holder.itemView.findViewById(R.id.item_my_focus_iv);
+                TextView item_my_focus_info_tv = holder.itemView.findViewById(R.id.item_my_focus_info_tv);
+                TextView item_my_focus_tv = holder.itemView.findViewById(R.id.item_my_focus_tv);
+                ViewUtil.setVisibility(item_my_focus_tv, false);
+            }
+        };
+    }
+
+    @Override
+    protected String getKey(int page, int per_page) {
+        return String.format(Locale.CHINA, "%s?page=%d&per_page=%d", ApiKey.getFootMark, page, per_page);
+    }
+
+    @Override
+    protected Observable<BaseMessage> getApi(ApiService apiService) {
+        return apiService.getFootMark(page, per_page);
+    }
+
+    @Override
+    protected Class<PunchLog> getTClass() {
+        return PunchLog.class;
+    }
+
+}

+ 3 - 0
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtSignCardRecord.java

@@ -17,6 +17,7 @@ import com.sheep.gamegroup.model.entity.StatisticsEntity;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.util.ViewUtil;
+import com.sheep.gamegroup.view.customview.CalendarMonthView;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.G;
@@ -42,6 +43,8 @@ public class FgtSignCardRecord extends BaseListFragment2<PunchLog> {
     TextView continue_punch_count;
     TextView continue_punch_count;
     @Override
     @Override
     public void initView() {
     public void initView() {
+        //添加 CalendarMonthView 的引用,防止无引用,导致误删该类
+        CalendarMonthView.class.getSimpleName();
         per_page = 100;
         per_page = 100;
         super.initView();
         super.initView();
         view_list.setNestedScrollingEnabled(false);
         view_list.setNestedScrollingEnabled(false);

+ 15 - 0
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtUserFocusLogList.java

@@ -24,6 +24,9 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 
 
 import io.reactivex.Observable;
 import io.reactivex.Observable;
+import rx.functions.Action1;
+
+import static com.sheep.gamegroup.absBase.AbsFocus.YES;
 
 
 /**
 /**
  * Created by realicing on 2018/11/22.
  * Created by realicing on 2018/11/22.
@@ -35,12 +38,24 @@ public class FgtUserFocusLogList extends BaseListFragment2x<UserFocusLog, UserFo
     private AdpUserFocusLogList adpUserFocusLogList;
     private AdpUserFocusLogList adpUserFocusLogList;
     private AdpUserFocusLogList adpUserFocusLogList2;
     private AdpUserFocusLogList adpUserFocusLogList2;
 
 
+    private Action1<Integer> action1 = new Action1<Integer>() {
+        @Override
+        public void call(Integer integer) {
+            switch (integer){
+                case YES:
+                    refreshData();
+                    break;
+            }
+        }
+    };
     @Override
     @Override
     public void initView() {
     public void initView() {
         tagList.add("1");
         tagList.add("1");
         tagList.add("2");
         tagList.add("2");
         adpUserFocusLogList = new AdpUserFocusLogList(list);
         adpUserFocusLogList = new AdpUserFocusLogList(list);
         adpUserFocusLogList2 = new AdpUserFocusLogList(list2);
         adpUserFocusLogList2 = new AdpUserFocusLogList(list2);
+        adpUserFocusLogList.setAction1(action1);
+        adpUserFocusLogList2.setAction1(action1);
         super.initView();
         super.initView();
     }
     }
 
 

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

@@ -56,6 +56,8 @@ public class ApiKey {
     public static final String getGameUserUserFocusList = "app/game_user/user_focus/list";
     public static final String getGameUserUserFocusList = "app/game_user/user_focus/list";
     //关注的游戏列表
     //关注的游戏列表
     public static final String getGameUserGameFocusList = "app/game_user/game_focus/list";
     public static final String getGameUserGameFocusList = "app/game_user/game_focus/list";
+    //TODO 足迹 服务器还没有接口
+    public static final String getFootMark = "app/punch/all_punch_log";
     public static final String pageKeyUrl(String baseUrl, int page, int per_page){
     public static final String pageKeyUrl(String baseUrl, int page, int per_page){
         return String.format(Locale.CHINA, "%s?page=%d&per_page=%d", baseUrl, page, per_page);
         return String.format(Locale.CHINA, "%s?page=%d&per_page=%d", baseUrl, page, per_page);
     }
     }

+ 24 - 0
app/src/main/res/layout/header_foot_mark.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<com.haibin.calendarview.CalendarView xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:id="@+id/calendarView"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:background="#F5F5F5"
+    app:calendar_height="46dp"
+    app:current_day_lunar_text_color="#ffffff"
+    app:current_day_text_color="#ffffff"
+    app:current_month_lunar_text_color="#999999"
+    app:current_month_text_color="#333333"
+    app:day_text_size="12sp"
+    app:lunar_text_size="12sp"
+    app:min_year="2018"
+    app:month_view="com.sheep.gamegroup.view.customview.CalendarMonthView"
+    app:month_view_scrollable="true"
+    app:month_view_show_mode="mode_all"
+    app:scheme_lunar_text_color="#ffffff"
+    app:scheme_month_text_color="#ffffff"
+    app:week_background="#F5F5F5"
+    app:week_bar_view="com.haibin.calendarview.WeekBar"
+    app:week_start_with="mon"
+    app:week_text_color="#111" />

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

@@ -1,5 +1,4 @@
 <resources>
 <resources>
-    <string name="app_name">小绵羊</string>
     <string name="get_captcha">获取验证码</string>
     <string name="get_captcha">获取验证码</string>
     <string name="input_your_phone">请输入你的手机号</string>
     <string name="input_your_phone">请输入你的手机号</string>
     <string name="input_your_captcha">请输验证码</string>
     <string name="input_your_captcha">请输验证码</string>