Просмотр исходного кода

Merge remote-tracking branch 'origin/sheep_develop' into sheep_tinker

zengjiebin лет назад: 7
Родитель
Сommit
5ec2236da5
57 измененных файлов с 903 добавлено и 932 удалено
  1. 0 3
      app/src/main/AndroidManifest.xml
  2. 8 4
      app/src/main/java/com/kfzs/duanduan/fragment/FgtFriendExtractPage.java
  3. 8 3
      app/src/main/java/com/kfzs/duanduan/fragment/FgtSmallSheep.java
  4. 1 1
      app/src/main/java/com/kfzs/duanduan/react/ConfigUtil.java
  5. 19 3
      app/src/main/java/com/kfzs/duanduan/react/FileUtil.java
  6. 0 16
      app/src/main/java/com/sheep/gamegroup/di/components/TaskDialogComponent.java
  7. 1 1
      app/src/main/java/com/sheep/gamegroup/heler/DownloadHelper.java
  8. 1 3
      app/src/main/java/com/sheep/gamegroup/heler/FindAppHelper.java
  9. 1 1
      app/src/main/java/com/sheep/gamegroup/heler/ImageListHelper.java
  10. 1 3
      app/src/main/java/com/sheep/gamegroup/heler/TaskHelper.java
  11. 24 1
      app/src/main/java/com/sheep/gamegroup/model/entity/DialogConfig.java
  12. 1 1
      app/src/main/java/com/sheep/gamegroup/model/entity/FindApp.java
  13. 1 1
      app/src/main/java/com/sheep/gamegroup/model/entity/TaskReleaseEty.java
  14. 1 1
      app/src/main/java/com/sheep/gamegroup/model/entity/UserEntity.java
  15. 1 1
      app/src/main/java/com/sheep/gamegroup/model/entity/XiaomiGameEntity.java
  16. 6 1
      app/src/main/java/com/sheep/gamegroup/util/AppUtil.java
  17. 42 13
      app/src/main/java/com/sheep/gamegroup/util/CommonUtil.java
  18. 103 0
      app/src/main/java/com/sheep/gamegroup/util/ForeverCacheUtil.java
  19. 34 3
      app/src/main/java/com/sheep/gamegroup/util/GlideImageLoader.java
  20. 28 56
      app/src/main/java/com/sheep/gamegroup/util/Jump2View.java
  21. 5 4
      app/src/main/java/com/sheep/gamegroup/util/SysAppUtil.java
  22. 60 49
      app/src/main/java/com/sheep/gamegroup/util/ViewUtil.java
  23. 3 20
      app/src/main/java/com/sheep/gamegroup/util/WebviewJs.java
  24. 255 0
      app/src/main/java/com/sheep/gamegroup/util/glide/RoundedCornersTransformation.java
  25. 1 2
      app/src/main/java/com/sheep/gamegroup/view/activity/ActFindGame.java
  26. 9 3
      app/src/main/java/com/sheep/gamegroup/view/activity/ActFindInformation.java
  27. 9 1
      app/src/main/java/com/sheep/gamegroup/view/activity/ActGuide.java
  28. 13 21
      app/src/main/java/com/sheep/gamegroup/view/activity/ActWeb.java
  29. 48 20
      app/src/main/java/com/sheep/gamegroup/view/activity/AskGetMoneyAct.java
  30. 0 477
      app/src/main/java/com/sheep/gamegroup/view/activity/DialogActivity.java
  31. 1 3
      app/src/main/java/com/sheep/gamegroup/view/activity/PersonalInfoAct.java
  32. 2 4
      app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailAct.java
  33. 1 1
      app/src/main/java/com/sheep/gamegroup/view/adapter/TryMakeMoneyAdp.java
  34. 24 14
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtTryMakeMoney.java
  35. 1 1
      app/src/main/java/com/sheep/jiuyan/samllsheep/SheepApp.java
  36. 6 0
      app/src/main/res/drawable/shape_purple_solid_rectangle_top.xml
  37. 18 1
      app/src/main/res/layout/act_guide.xml
  38. 2 2
      app/src/main/res/layout/dialog_half_screen_ad.xml
  39. 0 141
      app/src/main/res/layout/download_item_dialog.xml
  40. 71 11
      app/src/main/res/layout/friend_list.xml
  41. 2 4
      app/src/main/res/layout/friend_list_empty.xml
  42. 6 2
      app/src/main/res/layout/title.xml
  43. 67 14
      app/src/main/res/layout/x_ask_getmoney_act_layout.xml
  44. 5 7
      app/src/main/res/layout/x_ask_getmoney_act_layout_include.xml
  45. 5 5
      app/src/main/res/layout/x_ask_getmoney_act_layout_item.xml
  46. 4 5
      app/src/main/res/layout/x_ask_top5_item.xml
  47. 0 1
      app/src/main/res/layout/x_ask_top5_title.xml
  48. BIN
      app/src/main/res/mipmap-xxhdpi/ask_top5_tip.png
  49. BIN
      app/src/main/res/mipmap-xxhdpi/ask_top_1.png
  50. BIN
      app/src/main/res/mipmap-xxhdpi/ask_top_1.webp
  51. BIN
      app/src/main/res/mipmap-xxhdpi/ask_top_2.png
  52. BIN
      app/src/main/res/mipmap-xxhdpi/ask_top_2.webp
  53. BIN
      app/src/main/res/mipmap-xxhdpi/ask_top_3.png
  54. BIN
      app/src/main/res/mipmap-xxhdpi/ask_top_3.webp
  55. 1 0
      app/src/main/res/values/common.xml
  56. 2 0
      app/src/main/res/values/dimens.xml
  57. 1 3
      app/src/main/res/values/strings.xml

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

@@ -189,9 +189,6 @@
             android:screenOrientation="portrait"/>
         <activity android:name="com.sheep.gamegroup.view.activity.LieMakeMoneyAct"
             android:launchMode="singleTask"/>
-        <activity android:name="com.sheep.gamegroup.view.activity.DialogActivity"
-            android:theme="@style/MyDialogActivityTheme"
-            />
         <activity android:name="com.sheep.gamegroup.view.activity.TaskListAct"
             android:screenOrientation="portrait"/>
         <activity android:name="com.sheep.gamegroup.view.activity.GameTaskOrderListAct"

+ 8 - 4
app/src/main/java/com/kfzs/duanduan/fragment/FgtFriendExtractPage.java

@@ -55,14 +55,16 @@ public class FgtFriendExtractPage extends BaseFragment {
     private int page = 1;
     private void notifyDataSetChanged(){
         int size = list.size();
-        for (int i = 0; i < friend_list_ll.getChildCount(); i++) {
-            ViewGroup view = (ViewGroup) friend_list_ll.getChildAt(i);
-            if(i < size){
+        for (int i = 0; i < friend_list_ll.getChildCount(); ) {
+            View line = friend_list_ll.getChildAt(i);
+            ViewGroup view = (ViewGroup) friend_list_ll.getChildAt(i+1);
+            if(i/2 < size){
+                line.setVisibility(View.VISIBLE);
                 view.setVisibility(View.VISIBLE);
 //                if(i % 2 == 0)
 //                    view.setBackgroundColor(0xffF8F8F8);
                 int j = 0;
-                Friend friend = list.get(i);
+                Friend friend = list.get(i/2);
                 TextView friend_item_id = (TextView) view.getChildAt(j++);
                 friend_item_id.setText(friend.getInvitation_code());
                 TextView friend_item_name = (TextView) view.getChildAt(j++);
@@ -72,8 +74,10 @@ public class FgtFriendExtractPage extends BaseFragment {
                 TextView friend_item_time = (TextView) view.getChildAt(j);
                 friend_item_time.setText(TimeUtil.TimeStamp2Date(friend.getCreate_time(), "yyyy/MM/dd HH:mm"));
             } else {
+                line.setVisibility(View.INVISIBLE);
                 view.setVisibility(View.INVISIBLE);
             }
+            i += 2;
         }
         CommonUtil.getInstance().updateEmptyView(empty_view, list.isEmpty(), true);
     }

+ 8 - 3
app/src/main/java/com/kfzs/duanduan/fragment/FgtSmallSheep.java

@@ -169,6 +169,8 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
     private AdpHomeListGrideview adpHomeListGrideview;
     private AdpHomeListListview adpHomeListListview;
 
+    private static final int LIST_COUNT = 2;//tryMakeMoneyAdp 总共有2条数据
+    private static final RecyleObj NULL = RecyleObj.make(RecyleType.NONE, null);//空数据
     Handler mHanderl = new Handler(Looper.getMainLooper()) {
         @Override
         public void handleMessage(Message msg) {
@@ -183,7 +185,10 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                         tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RUN_TASK, allTaskAcceptedTaskList), position++);
                     }
                     if(!ListUtil.isEmpty(releaseEtyLists)) {
-                        tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RELEASE_TASK, releaseEtyLists), position);
+                        tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RELEASE_TASK, releaseEtyLists), position++);
+                    }
+                    while(position < LIST_COUNT){
+                        tryMakeMoneyAdp.add(NULL, position++);
                     }
                     tryMakeMoneyAdp.notifyDataSetChanged();
                     checkAndInitView();
@@ -422,8 +427,8 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         recyclerview.setHasFixedSize(true);
         recyclerview.setNestedScrollingEnabled(false);
         tryMakeMoneyAdp = new TryMakeMoneyAdp(activity, 1);//1代表来自主页
-        for (int i = 0; i < 2; i++) {
-            tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.NONE, null));
+        for (int i = 0; i < LIST_COUNT; i++) {
+            tryMakeMoneyAdp.add(NULL);
         }
         tryMakeMoneyAdp.addType(1);
         tryMakeMoneyAdp.setIs_succession(3);

+ 1 - 1
app/src/main/java/com/kfzs/duanduan/react/ConfigUtil.java

@@ -60,7 +60,7 @@ public class ConfigUtil {
      */
     public boolean isUpgrade() {
         String item = getItem(1);
-        return TextUtils.equals(item, "1");
+        return item == null || TextUtils.equals(item, "1");
     }
     /**
      * 是否进入rn调试模式

+ 19 - 3
app/src/main/java/com/kfzs/duanduan/react/FileUtil.java

@@ -119,13 +119,13 @@ public class FileUtil {
     /**
      * 追加文件:使用FileWriter
      *
-     * @param fileName
+     * @param filePath
      * @param content
      */
-    public static void addToFile(String fileName, String content) {
+    public static void addToFile(String filePath, String content) {
         try {
             // 打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件
-            FileWriter writer = new FileWriter(fileName, true);
+            FileWriter writer = new FileWriter(filePath, true);
             writer.write(content);
             writer.close();
         } catch (IOException e) {
@@ -133,4 +133,20 @@ public class FileUtil {
         }
     }
 
+    /**
+     * 保存文件:使用FileWriter
+     *
+     * @param filePath
+     * @param content
+     */
+    public static void saveFile(String filePath, String content) {
+        try {
+            // 打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件
+            FileWriter writer = new FileWriter(filePath, false);
+            writer.write(content);
+            writer.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
 }

+ 0 - 16
app/src/main/java/com/sheep/gamegroup/di/components/TaskDialogComponent.java

@@ -1,16 +0,0 @@
-package com.sheep.gamegroup.di.components;
-
-import com.sheep.gamegroup.di.modules.TaskDialogModule;
-import com.sheep.gamegroup.di.scopes.UserScope;
-import com.sheep.gamegroup.view.activity.DialogActivity;
-
-import dagger.Component;
-
-/**
- * Created by ljy on 2018/3/22.
- */
-@UserScope
-@Component(modules = TaskDialogModule.class, dependencies = NetComponent.class)
-public interface TaskDialogComponent {
-    void inject(DialogActivity dialogActivity);
-}

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/heler/DownloadHelper.java

@@ -1,4 +1,4 @@
-package com.sheep.gamegroup.heler;
+package com.sheep.gamegroup.helper;
 
 import android.app.Activity;
 import android.text.TextUtils;

+ 1 - 3
app/src/main/java/com/sheep/gamegroup/heler/FindAppHelper.java

@@ -1,18 +1,16 @@
-package com.sheep.gamegroup.heler;
+package com.sheep.gamegroup.helper;
 
 import android.app.Activity;
 import android.view.Gravity;
 import android.view.View;
 import android.widget.TextView;
 
-import com.alibaba.fastjson.JSON;
 import com.kfzs.duanduan.services.DownloadTaskService;
 import com.sheep.gamegroup.model.api.IDownload;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.entity.FindApp;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
-import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.TimeUtil;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.jiuyan.samllsheep.SheepApp;

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/heler/ImageListHelper.java

@@ -1,4 +1,4 @@
-package com.sheep.gamegroup.heler;
+package com.sheep.gamegroup.helper;
 
 import android.app.Activity;
 import android.support.v7.widget.LinearLayoutManager;

+ 1 - 3
app/src/main/java/com/sheep/gamegroup/heler/TaskHelper.java

@@ -1,4 +1,4 @@
-package com.sheep.gamegroup.heler;
+package com.sheep.gamegroup.helper;
 
 import android.app.Activity;
 import android.text.TextUtils;
@@ -29,8 +29,6 @@ import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.G;
 
-import org.afinal.simplecache.ApiKey;
-
 import java.util.List;
 import java.util.Locale;
 

+ 24 - 1
app/src/main/java/com/sheep/gamegroup/model/entity/DialogConfig.java

@@ -1,9 +1,13 @@
 package com.sheep.gamegroup.model.entity;
 
+import android.support.annotation.IntDef;
+import android.view.Gravity;
 import android.view.View;
 
 import com.sheep.jiuyan.samllsheep.R;
 
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -162,10 +166,29 @@ public class DialogConfig {
         return msgGravity;
     }
 
-    public DialogConfig setMsgGravity(int msgGravity) {
+    @IntDef({Gravity.START, Gravity.END, Gravity.CENTER, Gravity.TOP, Gravity.BOTTOM, Gravity.NO_GRAVITY})
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface GRAVITY {
+    }
+    public DialogConfig setMsgGravity(@GRAVITY int msgGravity) {
         this.msgGravity = msgGravity;
         return this;
     }
+    public static final int THEME_DEFAULT = 0;
+    public static final int THEME_PURPLE = 1;
+    private int theme = THEME_DEFAULT;
+    @IntDef({THEME_DEFAULT, THEME_PURPLE})
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface THEME {
+    }
+    public DialogConfig setTheme(@THEME int theme) {
+        this.theme = theme;
+        return this;
+    }
+
+    public int getTheme() {
+        return theme;
+    }
 
     public boolean isBtnLeftNotDissDialog() {
         return btnLeftNotDissDialog;

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/model/entity/FindApp.java

@@ -1,7 +1,7 @@
 package com.sheep.gamegroup.model.entity;
 
 import com.sheep.gamegroup.model.api.IDownload;
-import com.sheep.gamegroup.heler.FindAppHelper;
+import com.sheep.gamegroup.helper.FindAppHelper;
 
 /**
  * Created by realicing on 2018/6/28.

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/model/entity/TaskReleaseEty.java

@@ -2,7 +2,7 @@ package com.sheep.gamegroup.model.entity;
 
 import android.text.TextUtils;
 
-import com.sheep.gamegroup.heler.DownloadHelper;
+import com.sheep.gamegroup.helper.DownloadHelper;
 
 import java.io.Serializable;
 

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/model/entity/UserEntity.java

@@ -309,7 +309,7 @@ public class UserEntity implements Serializable {
     }
     //没有实名认证
     public boolean notCertification() {
-        return TextUtils.isEmpty(getReal_name()) || TextUtils.isEmpty(getId_number()) || TextUtils.isEmpty(getBank_card_mobile()) || TextUtils.isEmpty(getBank_card());
+        return TextUtils.isEmpty(getReal_name()) || TextUtils.isEmpty(getId_number());
     }
 
     /**

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/model/entity/XiaomiGameEntity.java

@@ -2,7 +2,7 @@ package com.sheep.gamegroup.model.entity;
 
 import android.text.TextUtils;
 
-import com.sheep.gamegroup.heler.DownloadHelper;
+import com.sheep.gamegroup.helper.DownloadHelper;
 import com.sheep.gamegroup.model.api.IDownload;
 
 import java.io.Serializable;

+ 6 - 1
app/src/main/java/com/sheep/gamegroup/util/AppUtil.java

@@ -10,6 +10,7 @@ import android.telephony.TelephonyManager;
 import android.text.TextUtils;
 import android.view.WindowManager;
 
+import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
 import java.util.Locale;
 
@@ -24,7 +25,11 @@ public class AppUtil {
     }
 
     public static String getQRLink(String share_link,int w) {
-        share_link = URLEncoder.encode(share_link);
+        try {
+            share_link = URLEncoder.encode(share_link,"GBK");
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }
 //        String link = BASE_QR + share_link +"&w="+w;
 //        LogUtil.println("link", link);
         return getQRLink(share_link, w, w);

+ 42 - 13
app/src/main/java/com/sheep/gamegroup/util/CommonUtil.java

@@ -63,6 +63,8 @@ import com.umeng.socialize.UMShareAPI;
 import com.umeng.socialize.bean.SHARE_MEDIA;
 import com.umeng.socialize.media.UMImage;
 import com.umeng.socialize.media.UMWeb;
+import com.zhy.http.okhttp.OkHttpUtils;
+import com.zhy.http.okhttp.callback.FileCallBack;
 
 import org.afinal.simplecache.ApiKey;
 import org.greenrobot.eventbus.EventBus;
@@ -79,6 +81,7 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 
+import okhttp3.Call;
 import rx.android.schedulers.AndroidSchedulers;
 import rx.functions.Action1;
 import rx.schedulers.Schedulers;
@@ -764,15 +767,15 @@ public class CommonUtil {
             case DialogShare.COPY_SHARE_LINK:
                 LINK_SHARE.onEvent();
                 ViewUtil.showMsgDialog(activity, new DialogConfig().setTitle("分享链接").setMsg(realUrl)
-                    .setMsgMore("通过连接加入小绵羊即可成为你的好友").setMsgMoreColor(R.color.txt_black_9e9c9c)
-                    .setBtnLeftText("复制链接").setBtnLeftOnClickListener(new View.OnClickListener() {
-                                @Override
-                                public void onClick(View view) {
-                                    QR_COPY.onEvent();
-                                    StringUtils.CopyText(realUrl);
-                                    G.showToast("复制链接成功");
-                                }
-                            }));
+                        .setMsgMore("通过连接加入小绵羊即可成为你的好友").setMsgMoreColor(R.color.txt_black_9e9c9c)
+                        .setBtnLeftText("复制链接").setBtnLeftOnClickListener(new View.OnClickListener() {
+                            @Override
+                            public void onClick(View view) {
+                                QR_COPY.onEvent();
+                                StringUtils.CopyText(realUrl);
+                                G.showToast("复制链接成功");
+                            }
+                        }));
                 return;
             case DialogShare.QQ:
                 share_media = SHARE_MEDIA.QQ;
@@ -811,25 +814,25 @@ public class CommonUtil {
 
         @Override
         public void onStart(SHARE_MEDIA share_media) {
-           LogUtil.println("UMShareListener", "start", share_media.getName());
+            LogUtil.println("UMShareListener", "start", share_media.getName());
         }
 
         @Override
         public void onResult(SHARE_MEDIA share_media) {
-           LogUtil.println("UMShareListener", "result", share_media.getName());
+            LogUtil.println("UMShareListener", "result", share_media.getName());
         }
 
         @Override
         public void onError(SHARE_MEDIA share_media, Throwable throwable) {
             String msg = throwable.getMessage();
             G.showToast(msg != null && msg.contains("没有安装应用") ? "没有安装应用": msg);
-           LogUtil.println("UMShareListener", "error", share_media.getName() +
+            LogUtil.println("UMShareListener", "error", share_media.getName() +
                     ",msg:" + throwable.getMessage());
         }
 
         @Override
         public void onCancel(SHARE_MEDIA share_media) {
-           LogUtil.println("UMShareListener", "cancel", share_media.getName());
+            LogUtil.println("UMShareListener", "cancel", share_media.getName());
         }
     }
 
@@ -1721,4 +1724,30 @@ public class CommonUtil {
                 return url + "&type=4";
         }
     }
+
+    /**
+     * js 下载
+     */
+    public void showDownLoad(final Activity activity, String url, final String name){
+        OkHttpUtils.get()
+                .url(url)
+                .build()
+                .execute(new FileCallBack(ClassFileHelper.DIR, name) {
+                    @Override
+                    public void onError(Call call, Exception e, int id) {
+                        G.showToast("下载文件失败");
+                    }
+
+                    @Override
+                    public void onResponse(File response, int id) {
+                        if (name.endsWith(".png") || name.endsWith(".jpg")) {//图片
+                            Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
+                            Uri uri = Uri.fromFile(response);
+                            intent.setData(uri);
+                            activity.sendBroadcast(intent); // 发送广播通知相册
+                        }
+                        G.showToast("下载文件成功");
+                    }
+                });
+    }
 }

+ 103 - 0
app/src/main/java/com/sheep/gamegroup/util/ForeverCacheUtil.java

@@ -0,0 +1,103 @@
+package com.sheep.gamegroup.util;
+
+import android.os.Environment;
+import android.util.Log;
+
+import com.kfzs.duanduan.react.FileUtil;
+import com.kfzs.duanduan.utils.NumberFormatUtils;
+import com.sheep.gamegroup.model.api.BaseMessageConverter;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.Reader;
+import java.util.List;
+import java.util.Locale;
+
+/**
+ * Created by realicing on 2018/5/24.
+ * realicing@sina.com
+ */
+public class ForeverCacheUtil {
+    private static ForeverCacheUtil instance;
+    //.开头隐藏文件和隐藏文件夹
+    private static final String FILE_PATH = "data/cache/a54df5a4s5d";
+    private ForeverCacheUtil(){
+        File file = new File(getCacheFilePath());
+        if(!file.exists()){
+            try {
+                if(file.getParentFile().mkdirs())
+                    if(file.createNewFile()){
+                        LogUtil.println("ForeverCacheUtil", "yes");
+                    } else {
+                        LogUtil.println("ForeverCacheUtil", "no");
+                    }
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    public static ForeverCacheUtil getInstance() {
+        if (instance == null)
+            instance = new ForeverCacheUtil();
+        return instance;
+    }
+
+
+    private static String getFileName() {
+        return "a5sdf41a6sdf1asd1fd52145s";
+    }
+
+    private static String getCacheFilePath() {
+        boolean hasSDCard = Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
+        if (hasSDCard) { // SD卡根目录
+            return Environment.getExternalStorageDirectory().toString() + File.separator + FILE_PATH + File.separator + getFileName();
+        } else {  // 系统下载缓存根目录
+            return Environment.getDownloadCacheDirectory().toString() + File.separator + FILE_PATH + File.separator + getFileName();
+        }
+    }
+
+
+    private String readLineByPosition(int position) {
+        List<String> list = FileUtil.readLines(getCacheFilePath());
+        return ListUtil.getItem(list, position);
+    }
+
+    /**
+     * 文件第一行保存版本号
+     */
+    public int getVersionCode() {
+        String msg = readLineByPosition(0);
+        return NumberFormatUtils.parseInteger(msg, 0);
+    }
+
+    /**
+     * 保存版本号
+     *
+     * @param cur_version_code
+     */
+    public void saveVersionCode(int cur_version_code) {
+        String line = String.format(Locale.CHINA, "%d", cur_version_code);
+        saveFile(line, 0);
+    }
+
+    private void saveFile(String line, int position) {
+        List<String> list = FileUtil.readLines(getCacheFilePath());
+        if (list == null)
+            list = ListUtil.emptyList();
+        while (list.size() <= position) {
+            list.add("");
+        }
+        list.set(position, line);
+        StringBuilder content = new StringBuilder();
+        for (String item : list) {
+            content.append(item);
+            content.append("\n");
+        }
+        FileUtil.saveFile(getCacheFilePath(), content.toString());
+    }
+}

+ 34 - 3
app/src/main/java/com/sheep/gamegroup/util/GlideImageLoader.java

@@ -1,12 +1,15 @@
 package com.sheep.gamegroup.util;
 
+import android.content.Intent;
 import android.graphics.Color;
+import android.net.Uri;
 import android.text.TextUtils;
 import android.widget.ImageView;
 
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
 import com.bumptech.glide.request.RequestOptions;
+import com.sheep.gamegroup.model.api.BaseMessageConverter;
 import com.sheep.gamegroup.util.glide.GlideCircleTransformWithBorder;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
@@ -16,6 +19,7 @@ import com.zhy.http.okhttp.callback.FileCallBack;
 
 import java.io.File;
 import java.util.HashMap;
+import java.util.Locale;
 import java.util.Map;
 
 import okhttp3.Call;
@@ -88,9 +92,31 @@ public class GlideImageLoader {
                 .into(imageView);
     }
 
+
+    public static void downloadAndSetImage(final ImageView imageView, final String link, final int w) {
+        downLoadImage(String.format(Locale.CHINA, "%d", link.hashCode()), link, new Action1<File>() {
+            @Override
+            public void call(File file) {
+                if(imageView != null) {
+                    if (file == null)
+                        Glide.with(SheepApp.getInstance())
+                                .load(link)
+                                .apply(new RequestOptions().override(w, w))
+                                .into(imageView);
+                    else
+                        Glide.with(SheepApp.getInstance())
+                                .load(file)
+                                .apply(new RequestOptions().override(w, w))
+                                .into(imageView);
+                }
+
+            }
+        });
+
+    }
     public static void downLoadImage(String name, String link, final Action1<File> action1) {
         String fileName = name + ".png";
-        final File file = new File(ClassFileHelper.DIR, fileName);
+        File file = new File(ClassFileHelper.DIR, fileName);
         if(file.exists()){
             if(action1 != null){
                 action1.call(file);
@@ -107,10 +133,15 @@ public class GlideImageLoader {
 
             @Override
             public void onResponse(File response, int id) {
-                if(response.exists())
-                    if(action1 != null){
+                if(response.exists()) {
+                    Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
+                    Uri uri = Uri.fromFile(response);
+                    intent.setData(uri);
+                    SheepApp.getInstance().sendBroadcast(intent); // 发送广播通知相册
+                    if (action1 != null) {
                         action1.call(response);
                     }
+                }
             }
         });
     }

+ 28 - 56
app/src/main/java/com/sheep/gamegroup/util/Jump2View.java

@@ -66,7 +66,6 @@ import com.sheep.gamegroup.view.activity.ChangeTelAct;
 import com.sheep.gamegroup.view.activity.ChangeWxOrTelAct;
 import com.sheep.gamegroup.view.activity.CommitWxAct;
 import com.sheep.gamegroup.view.activity.CommitWxCodeAct;
-import com.sheep.gamegroup.view.activity.DialogActivity;
 import com.sheep.gamegroup.view.activity.DialogToastAct;
 import com.sheep.gamegroup.view.activity.FeedbackAct;
 import com.sheep.gamegroup.view.activity.GameTaskOrderListAct;
@@ -248,20 +247,17 @@ public class Jump2View {
     }
 
     /**
-     * 进入主页前需要检查协议或者用户标签
+     * 正常进入
+     * 进入主页前需要检查是否需要绑定手机号
      * @param activity
      */
     public void checkPhoneOrGoHomePage(final Activity activity) {
         CommonUtil.getInstance().updateUserInfo(new Action1<UserEntity>() {
             @Override
             public void call(UserEntity userEntity) {
-                if(userEntity != null && !TextUtils.isEmpty(userEntity.getShareLink("other"))) {
-//                                GlideImageLoader.downLoadImage(userEntity.getShare_link().hashCode(), AppUtil.getQRLink(userEntity.getShare_link(), 800), null);
-//                                //PersionInfoAct.java与AskGetMoneyAct.java中分享二维码时的图片预下载
-                    Glide.with(activity)
-                            .load(AppUtil.getQRLink(userEntity.getShareLink("other"), 800))
-                            .apply(new RequestOptions().diskCacheStrategy(DiskCacheStrategy.RESOURCE))
-                            .preload(800, 800);
+                if(userEntity != null && !TextUtils.isEmpty(userEntity.getShare_link())) {
+                    //PersionInfoAct.java与AskGetMoneyAct.java中分享二维码时的图片预下载
+                    GlideImageLoader.downloadAndSetImage(null, AppUtil.getQRLink(userEntity.getShareLink(DialogShare.FACE_TO_FACE), 800), 800);
                 }
 
                 if(userEntity != null && userEntity.canBindMobile()
@@ -277,48 +273,34 @@ public class Jump2View {
         });
     }
     /**
+     * 通过引导页面或者登录成功后进入
      * 进入主页前需要检查是否需要绑定手机号、用户标签是否设置
      * @param activity
      */
     private void checkOrGoHomePage(final Activity activity) {
-        //是否展示协议
-//        tryShowAgreement(activity, new Action1<String>() {
-//            @Override
-//            public void call(String msg) {
-//                if(msg == null || TextUtils.equals(msg, "404")) {
-                    CommonUtil.getInstance().updateUserInfo(new Action1<UserEntity>() {
-                        @Override
-                        public void call(UserEntity userEntity) {
-                            if(userEntity != null && !TextUtils.isEmpty(userEntity.getShareLink("other"))) {
-//                                GlideImageLoader.downLoadImage(userEntity.getShare_link().hashCode(), AppUtil.getQRLink(userEntity.getShare_link(), 800), null);
-//                                //PersionInfoAct.java与AskGetMoneyAct.java中分享二维码时的图片预下载
-                                Glide.with(activity)
-                                        .load(AppUtil.getQRLink(userEntity.getShareLink("other"), 800))
-                                        .apply(new RequestOptions().diskCacheStrategy(DiskCacheStrategy.RESOURCE))
-                                        .preload(800, 800);
-                            }
+        CommonUtil.getInstance().updateUserInfo(new Action1<UserEntity>() {
+            @Override
+            public void call(UserEntity userEntity) {
+                if(userEntity != null && !TextUtils.isEmpty(userEntity.getShare_link())) {
+                    //PersionInfoAct.java与AskGetMoneyAct.java中分享二维码时的图片预下载
+                    GlideImageLoader.downloadAndSetImage(null, AppUtil.getQRLink(userEntity.getShareLink(DialogShare.FACE_TO_FACE), 800), 800);
+                }
 
-                            if(userEntity != null && userEntity.canBindMobile()
-                                    && !BuildConfig.DEBUG
-                                    ){//老用户没有绑定手机号
-                                Jump2View.getInstance().goBindPhone(activity, 1);
-                                return;
-                            }
-                            checkLabel(activity, new Action1<BaseMessage>() {
-                                @Override
-                                public void call(BaseMessage baseMessage) {
-                                    goHomePageView(activity, null);
-                                    activity.finish();
-                                }
-                            });
-                        }
-                    });
-//                }else {
-//                    G.showToast(msg);
-//                    SheepApp.getInstance().quit();
-//                }
-//            }
-//        });
+                if(userEntity != null && userEntity.canBindMobile()
+//                        && !BuildConfig.DEBUG
+                        ){//老用户没有绑定手机号
+                    Jump2View.getInstance().goBindPhone(activity, 1);
+                    return;
+                }
+                checkLabel(activity, new Action1<BaseMessage>() {
+                    @Override
+                    public void call(BaseMessage baseMessage) {
+                        goHomePageView(activity, null);
+                        activity.finish();
+                    }
+                });
+            }
+        });
     }
 
 
@@ -529,16 +511,6 @@ public class Jump2View {
         context.startActivity(intent);
     }
 
-    /**
-     * 跳出弹框页面
-     * @param context
-     * @param curTask
-     */
-    public synchronized void goDialogActivityView(Context context, TaskEty curTask){
-        Intent intent = new Intent(context, DialogActivity.class);
-        intent.putExtra("task_entity", curTask);
-        context.startActivity(intent);
-    }
 
     /**
      * 跳转到信用卡任务详情界面

+ 5 - 4
app/src/main/java/com/sheep/gamegroup/util/SysAppUtil.java

@@ -23,6 +23,7 @@ import android.view.View;
 import android.widget.TextView;
 
 import com.alibaba.fastjson.JSON;
+import com.arialyy.aria.util.CommonUtil;
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.load.engine.cache.InternalCacheDiskCacheFactory;
 import com.kfzs.duanduan.react.ConfigUtil;
@@ -116,11 +117,11 @@ public class SysAppUtil {
      * @return
      */
     public static boolean isNewSmallSheep(boolean isSetNew) {
-        int version_code = PreferenceUtils.getPrefInt(SheepApp.getInstance(), "version_code", 0);
+        int version_code = ForeverCacheUtil.getInstance().getVersionCode();
         int cur_version_code = ApkUtils.getCurrentPkgVersionCode(SheepApp.getInstance());
         if(isSetNew)
-            PreferenceUtils.setPrefInt(SheepApp.getInstance(), "version_code", cur_version_code);
-        return version_code != cur_version_code
+            ForeverCacheUtil.getInstance().saveVersionCode(cur_version_code);
+        return version_code < cur_version_code
 //                || BuildConfig.DEBUG
                 ;
     }
@@ -512,7 +513,7 @@ public class SysAppUtil {
                 public void onClick(final View view) {
                     if(view instanceof TextView)
                         UPGRADE_DIALOG_BT.onEvent("action", ((TextView) view).getText());
-                    if(file.exists()){//直接安装
+                    if(file.exists() && CommonUtil.checkMD5(version.getMd5_address(), file)){//文件存在并且md5值相同则直接安装
                         installApk(file);
                     } else if(TextUtils.isEmpty(version.getAddress())){//地址错误
                         G.showToast(R.string.error_download_link);

+ 60 - 49
app/src/main/java/com/sheep/gamegroup/util/ViewUtil.java

@@ -6,13 +6,14 @@ import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.graphics.Bitmap;
+import android.graphics.Color;
+import android.graphics.drawable.Drawable;
 import android.media.MediaPlayer;
 import android.net.Uri;
 import android.os.Build;
 import android.provider.MediaStore;
 import android.support.v7.app.AlertDialog;
 import android.support.v7.widget.GridLayoutManager;
-import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 import android.text.Html;
 import android.text.TextUtils;
@@ -29,12 +30,14 @@ import android.widget.TextView;
 import android.widget.VideoView;
 
 import com.bumptech.glide.Glide;
+import com.bumptech.glide.RequestBuilder;
 import com.bumptech.glide.request.RequestOptions;
 import com.sheep.gamegroup.model.entity.Advertising;
 import com.sheep.gamegroup.model.entity.Container;
 import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.entity.GameAccountEntity;
 import com.sheep.gamegroup.model.entity.PayEntity;
+import com.sheep.gamegroup.util.glide.RoundedCornersTransformation;
 import com.sheep.gamegroup.view.activity.SplashAct;
 import com.sheep.gamegroup.view.adapter.AdbCommonRecycler;
 import com.sheep.gamegroup.view.dialog.DialogAddAccount;
@@ -43,7 +46,6 @@ import com.sheep.gamegroup.view.dialog.DialogOrienteeringDetails;
 import com.sheep.gamegroup.view.dialog.DialogPayAccount;
 import com.sheep.gamegroup.view.dialog.DialogPayGame;
 import com.sheep.gamegroup.view.dialog.DialogShare;
-import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
 import com.sheep.jiuyan.samllsheep.utils.G;
@@ -93,17 +95,7 @@ public class ViewUtil {
         final ImageView iv_qr = view.findViewById(R.id.iv_qr);
         View save_pic = view.findViewById(R.id.save_pic);
         ImageView iv_qr_small = view.findViewById(R.id.iv_qr_small);
-        Glide.with(activity)
-                .load(AppUtil.getQRLink(link, 800))
-                .apply(new RequestOptions().override(800, 800))
-                .into(iv_qr);
-//        GlideImageLoader.downLoadImage(link.hashCode() + "", AppUtil.getQRLink(link, 800), new Action1<File>() {
-//            @Override
-//            public void call(File file) {
-//                if(file != null)
-//                    Glide.with(SheepApp.getInstance()).load(file).into(iv_qr);
-//            }
-//        });
+        GlideImageLoader.downloadAndSetImage(iv_qr, AppUtil.getQRLink(link, 800), 800);
         Glide.with(activity)
                 .load(R.drawable.icon)
                 .apply(new RequestOptions().override(G.WIDTH / 8))
@@ -164,10 +156,7 @@ public class ViewUtil {
         if (!TextUtils.isEmpty(link))
             tv_link.setText(link);
 
-        Glide.with(activity)
-                .load(AppUtil.getQRLink(link, 800))
-                .apply(new RequestOptions().override(800, 800))
-                .into(iv_qr);
+        GlideImageLoader.downloadAndSetImage(iv_qr, AppUtil.getQRLink(link, 800), 800);
         dialog_close.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -336,6 +325,11 @@ public class ViewUtil {
         View dialog_parent = View.inflate(mContext, R.layout.dialog_parent, null);
         final AlertDialog dialog = new AlertDialog.Builder(mContext, mContext instanceof Activity ? R.style.MyDialogActivityTheme : R.style.AppTheme_Dialog_Alert).setView(dialog_parent).create();
         TextView dialog_title = dialog_parent.findViewById(R.id.dialog_title);
+        switch (dialogConfig.getTheme()){//设置按钮风格
+            case DialogConfig.THEME_PURPLE:
+                dialog_title.setBackgroundResource(R.drawable.shape_purple_solid_rectangle_top);
+                break;
+        }
         View dialog_close = dialog_parent.findViewById(R.id.dialog_close);
         LinearLayout dialog_center_ll = dialog_parent.findViewById(R.id.dialog_center_ll);
         View view = LayoutInflater.from(mContext).inflate(dialogConfig.getLayoutId(), dialog_center_ll, true);
@@ -388,6 +382,12 @@ public class ViewUtil {
         TextView dialog_btn_left = view.findViewById(R.id.dialog_btn_left);
         boolean isLeftBtnShow = btnLeftText != null || btnLeftOnClickListener != null;
         if(dialog_btn_left != null) {
+            switch (dialogConfig.getTheme()){//设置按钮风格
+                case DialogConfig.THEME_PURPLE:
+                    dialog_btn_left.setBackgroundResource(R.drawable.selector_button_full_purple);
+                    dialog_btn_left.setTextColor(Color.WHITE);
+                    break;
+            }
             dialog_btn_left.setVisibility(isLeftBtnShow ? View.VISIBLE : View.GONE);
             if (!TextUtils.isEmpty(btnLeftText))
                 dialog_btn_left.setText(btnLeftText);
@@ -406,6 +406,12 @@ public class ViewUtil {
         TextView dialog_btn_right = view.findViewById(R.id.dialog_btn_right);
         boolean isRigthBtnShow = btnRightText != null || btnRightOnClickListener != null;
         if(dialog_btn_right != null) {
+            switch (dialogConfig.getTheme()){//设置按钮风格
+                case DialogConfig.THEME_PURPLE:
+                    dialog_btn_right.setBackgroundResource(R.drawable.selector_button_full_purple);
+                    dialog_btn_right.setTextColor(Color.WHITE);
+                    break;
+            }
             dialog_btn_right.setVisibility(isRigthBtnShow ? View.VISIBLE : View.GONE);
             if (!TextUtils.isEmpty(btnRightText))
                 dialog_btn_right.setText(btnRightText);
@@ -567,14 +573,19 @@ public class ViewUtil {
             ImageView ad_iv = view.findViewById(R.id.ad_iv);
             VideoView ad_video_view = view.findViewById(R.id.ad_video_view);
             TextView ad_msg = view.findViewById(R.id.ad_msg);
-            final TextView ad_skip = view.findViewById(R.id.ad_skip);
+//            final TextView ad_skip = view.findViewById(R.id.ad_skip);
             View dialog_rl = view.findViewById(R.id.dialog_rl);
 
 //            SurfaceHolder holder = ad_video_view.getHolder();
 //            holder.setFixedSize(ad_video_view.getWidth(), ad_video_view.getWidth()*3/4);
 //            ad_video_view.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,G.WIDTH*4/7));
             if (advertising.isImage()) {
-                Glide.with(activity).load(advertising.getDisplay_src()).into(ad_iv);
+                RequestBuilder<Drawable> builder = Glide.with(activity).load(advertising.getDisplay_src());
+                if(TextUtils.isEmpty(advertising.getDesc())) {//没有标题时 去掉下面的边距 并给图片左下理右下添加图角
+                    builder.apply(new RequestOptions().transform(new RoundedCornersTransformation(activity.getResources().getDimensionPixelSize(R.dimen.content_padding_36), 0, RoundedCornersTransformation.CornerType.BOTTOM)));
+                    dialog_center_ll.setPadding(0,activity.getResources().getDimensionPixelSize(R.dimen.content_padding_54),0, 0);
+                }
+                builder.into(ad_iv);
                 ad_video_view.setVisibility(View.GONE);
             } else {
                 Uri uri = Uri.parse(advertising.getDisplay_src());
@@ -605,33 +616,33 @@ public class ViewUtil {
                     });
                 }
             }
-            RxjavaCountDownTimer timer = null;
-            if (advertising.getShow_time() > 0) {
-                ad_skip.setVisibility(View.VISIBLE);
-                dialog.setCancelable(false);
-                timer = RxjavaCountDownTimer.getInstance(BuildConfig.DEBUG ? 1 : advertising.getShow_time())
-                        .setOnTickListener(new RxjavaCountDownTimer.OnTickListener() {
-                            @Override
-                            public void onFinish() {
-                                dialog.setCancelable(true);
-                                dialog_close.setVisibility(View.VISIBLE);
-                                ad_skip.setEnabled(true);
-                                ad_skip.setVisibility(View.GONE);
-                            }
-
-                            @Override
-                            public void onTicker(long time) {
-                                dialog.setCancelable(false);
-                                dialog_close.setVisibility(View.GONE);
-                                ad_skip.setEnabled(false);
-                                ad_skip.setText(activity.getString(R.string.tip_skip, time));
-                            }
-                        }).start();
-            } else {
-                ad_skip.setVisibility(View.GONE);
-            }
-
-            final RxjavaCountDownTimer finalTimer = timer;
+//            RxjavaCountDownTimer timer = null;
+//            if (advertising.getShow_time() > 0) {
+//                ad_skip.setVisibility(View.VISIBLE);
+//                dialog.setCancelable(false);
+//                timer = RxjavaCountDownTimer.getInstance(BuildConfig.DEBUG ? 1 : advertising.getShow_time())
+//                        .setOnTickListener(new RxjavaCountDownTimer.OnTickListener() {
+//                            @Override
+//                            public void onFinish() {
+//                                dialog.setCancelable(true);
+//                                dialog_close.setVisibility(View.VISIBLE);
+//                                ad_skip.setEnabled(true);
+//                                ad_skip.setVisibility(View.GONE);
+//                            }
+//
+//                            @Override
+//                            public void onTicker(long time) {
+//                                dialog.setCancelable(false);
+//                                dialog_close.setVisibility(View.GONE);
+//                                ad_skip.setEnabled(false);
+//                                ad_skip.setText(activity.getString(R.string.tip_skip, time));
+//                            }
+//                        }).start();
+//            } else {
+//                ad_skip.setVisibility(View.GONE);
+//            }
+//
+//            final RxjavaCountDownTimer finalTimer = timer;
 
             dialog_close.setOnClickListener(new View.OnClickListener() {
                 @Override
@@ -651,9 +662,9 @@ public class ViewUtil {
             dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
                 @Override
                 public void onDismiss(DialogInterface dialogInterface) {
-                    if (finalTimer != null) {
-                        finalTimer.clear();
-                    }
+//                    if (finalTimer != null) {
+//                        finalTimer.clear();
+//                    }
                     Jump2View.getInstance().tryShowReservation(activity);
                 }
             });

+ 3 - 20
app/src/main/java/com/sheep/gamegroup/util/WebviewJs.java

@@ -16,6 +16,7 @@ import com.kfzs.duanduan.datashare.provider.download.DownLoadInfo;
 import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.event.EventTypes;
 import com.kfzs.duanduan.services.DownloadTaskService;
+import com.sheep.gamegroup.view.activity.ActWeb;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
 import com.sheep.jiuyan.samllsheep.utils.G;
@@ -62,26 +63,8 @@ public class WebviewJs {
 
     @JavascriptInterface
     public void downloadFile(final String url, final String name) {
-        OkHttpUtils.get()
-                .url(url)
-                .build()
-                .execute(new FileCallBack(ClassFileHelper.DIR, name) {
-                    @Override
-                    public void onError(Call call, Exception e, int id) {
-                        G.showToast("下载文件失败");
-                    }
-
-                    @Override
-                    public void onResponse(File response, int id) {
-                        if (name.endsWith(".png") || name.endsWith(".jpg")) {//图片
-                            Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
-                            Uri uri = Uri.fromFile(response);
-                            intent.setData(uri);
-                            activity.sendBroadcast(intent); // 发送广播通知相册
-                        }
-                        G.showToast("下载文件成功");
-                    }
-                });
+        //去下载
+        CommonUtil.getInstance().showDownLoad(activity, url, url);
     }
 
     @JavascriptInterface

+ 255 - 0
app/src/main/java/com/sheep/gamegroup/util/glide/RoundedCornersTransformation.java

@@ -0,0 +1,255 @@
+package com.sheep.gamegroup.util.glide;
+
+/**
+ * Copyright (C) 2018 Wasabeef
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import android.graphics.Bitmap;
+import android.graphics.BitmapShader;
+import android.graphics.Canvas;
+import android.graphics.Paint;
+import android.graphics.RectF;
+import android.graphics.Shader;
+import android.support.annotation.NonNull;
+import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
+import com.bumptech.glide.load.resource.bitmap.BitmapTransformation;
+
+import java.security.MessageDigest;
+
+public class RoundedCornersTransformation extends BitmapTransformation {
+
+    private static final int VERSION = 1;
+    private static final String ID = "jp.wasabeef.glide.transformations.RoundedCornersTransformation." + VERSION;
+
+
+    public enum CornerType {
+        ALL,
+        TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT,
+        TOP, BOTTOM, LEFT, RIGHT,
+        OTHER_TOP_LEFT, OTHER_TOP_RIGHT, OTHER_BOTTOM_LEFT, OTHER_BOTTOM_RIGHT,
+        DIAGONAL_FROM_TOP_LEFT, DIAGONAL_FROM_TOP_RIGHT
+    }
+
+    private int radius;
+    private int diameter;
+    private int margin;
+    private CornerType cornerType;
+
+    public RoundedCornersTransformation(int radius, int margin) {
+        this(radius, margin, CornerType.ALL);
+    }
+
+    public RoundedCornersTransformation(int radius, int margin, CornerType cornerType) {
+        this.radius = radius;
+        this.diameter = this.radius * 2;
+        this.margin = margin;
+        this.cornerType = cornerType;
+    }
+
+    @Override protected Bitmap transform( @NonNull BitmapPool pool,
+                                         @NonNull Bitmap toTransform, int outWidth, int outHeight) {
+        int width = toTransform.getWidth();
+        int height = toTransform.getHeight();
+
+        Bitmap bitmap = pool.get(width, height, Bitmap.Config.ARGB_8888);
+        bitmap.setHasAlpha(true);
+
+        Canvas canvas = new Canvas(bitmap);
+        Paint paint = new Paint();
+        paint.setAntiAlias(true);
+        paint.setShader(new BitmapShader(toTransform, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP));
+        drawRoundRect(canvas, paint, width, height);
+        return bitmap;
+    }
+
+    private void drawRoundRect(Canvas canvas, Paint paint, float width, float height) {
+        float right = width - margin;
+        float bottom = height - margin;
+
+        switch (cornerType) {
+            case ALL:
+                canvas.drawRoundRect(new RectF(margin, margin, right, bottom), radius, radius, paint);
+                break;
+            case TOP_LEFT:
+                drawTopLeftRoundRect(canvas, paint, right, bottom);
+                break;
+            case TOP_RIGHT:
+                drawTopRightRoundRect(canvas, paint, right, bottom);
+                break;
+            case BOTTOM_LEFT:
+                drawBottomLeftRoundRect(canvas, paint, right, bottom);
+                break;
+            case BOTTOM_RIGHT:
+                drawBottomRightRoundRect(canvas, paint, right, bottom);
+                break;
+            case TOP:
+                drawTopRoundRect(canvas, paint, right, bottom);
+                break;
+            case BOTTOM:
+                drawBottomRoundRect(canvas, paint, right, bottom);
+                break;
+            case LEFT:
+                drawLeftRoundRect(canvas, paint, right, bottom);
+                break;
+            case RIGHT:
+                drawRightRoundRect(canvas, paint, right, bottom);
+                break;
+            case OTHER_TOP_LEFT:
+                drawOtherTopLeftRoundRect(canvas, paint, right, bottom);
+                break;
+            case OTHER_TOP_RIGHT:
+                drawOtherTopRightRoundRect(canvas, paint, right, bottom);
+                break;
+            case OTHER_BOTTOM_LEFT:
+                drawOtherBottomLeftRoundRect(canvas, paint, right, bottom);
+                break;
+            case OTHER_BOTTOM_RIGHT:
+                drawOtherBottomRightRoundRect(canvas, paint, right, bottom);
+                break;
+            case DIAGONAL_FROM_TOP_LEFT:
+                drawDiagonalFromTopLeftRoundRect(canvas, paint, right, bottom);
+                break;
+            case DIAGONAL_FROM_TOP_RIGHT:
+                drawDiagonalFromTopRightRoundRect(canvas, paint, right, bottom);
+                break;
+            default:
+                canvas.drawRoundRect(new RectF(margin, margin, right, bottom), radius, radius, paint);
+                break;
+        }
+    }
+
+    private void drawTopLeftRoundRect(Canvas canvas, Paint paint, float right, float bottom) {
+        canvas.drawRoundRect(new RectF(margin, margin, margin + diameter, margin + diameter), radius,
+                radius, paint);
+        canvas.drawRect(new RectF(margin, margin + radius, margin + radius, bottom), paint);
+        canvas.drawRect(new RectF(margin + radius, margin, right, bottom), paint);
+    }
+
+    private void drawTopRightRoundRect(Canvas canvas, Paint paint, float right, float bottom) {
+        canvas.drawRoundRect(new RectF(right - diameter, margin, right, margin + diameter), radius,
+                radius, paint);
+        canvas.drawRect(new RectF(margin, margin, right - radius, bottom), paint);
+        canvas.drawRect(new RectF(right - radius, margin + radius, right, bottom), paint);
+    }
+
+    private void drawBottomLeftRoundRect(Canvas canvas, Paint paint, float right, float bottom) {
+        canvas.drawRoundRect(new RectF(margin, bottom - diameter, margin + diameter, bottom), radius,
+                radius, paint);
+        canvas.drawRect(new RectF(margin, margin, margin + diameter, bottom - radius), paint);
+        canvas.drawRect(new RectF(margin + radius, margin, right, bottom), paint);
+    }
+
+    private void drawBottomRightRoundRect(Canvas canvas, Paint paint, float right, float bottom) {
+        canvas.drawRoundRect(new RectF(right - diameter, bottom - diameter, right, bottom), radius,
+                radius, paint);
+        canvas.drawRect(new RectF(margin, margin, right - radius, bottom), paint);
+        canvas.drawRect(new RectF(right - radius, margin, right, bottom - radius), paint);
+    }
+
+    private void drawTopRoundRect(Canvas canvas, Paint paint, float right, float bottom) {
+        canvas.drawRoundRect(new RectF(margin, margin, right, margin + diameter), radius, radius,
+                paint);
+        canvas.drawRect(new RectF(margin, margin + radius, right, bottom), paint);
+    }
+
+    private void drawBottomRoundRect(Canvas canvas, Paint paint, float right, float bottom) {
+        canvas.drawRoundRect(new RectF(margin, bottom - diameter, right, bottom), radius, radius,
+                paint);
+        canvas.drawRect(new RectF(margin, margin, right, bottom - radius), paint);
+    }
+
+    private void drawLeftRoundRect(Canvas canvas, Paint paint, float right, float bottom) {
+        canvas.drawRoundRect(new RectF(margin, margin, margin + diameter, bottom), radius, radius,
+                paint);
+        canvas.drawRect(new RectF(margin + radius, margin, right, bottom), paint);
+    }
+
+    private void drawRightRoundRect(Canvas canvas, Paint paint, float right, float bottom) {
+        canvas.drawRoundRect(new RectF(right - diameter, margin, right, bottom), radius, radius, paint);
+        canvas.drawRect(new RectF(margin, margin, right - radius, bottom), paint);
+    }
+
+    private void drawOtherTopLeftRoundRect(Canvas canvas, Paint paint, float right, float bottom) {
+        canvas.drawRoundRect(new RectF(margin, bottom - diameter, right, bottom), radius, radius,
+                paint);
+        canvas.drawRoundRect(new RectF(right - diameter, margin, right, bottom), radius, radius, paint);
+        canvas.drawRect(new RectF(margin, margin, right - radius, bottom - radius), paint);
+    }
+
+    private void drawOtherTopRightRoundRect(Canvas canvas, Paint paint, float right, float bottom) {
+        canvas.drawRoundRect(new RectF(margin, margin, margin + diameter, bottom), radius, radius,
+                paint);
+        canvas.drawRoundRect(new RectF(margin, bottom - diameter, right, bottom), radius, radius,
+                paint);
+        canvas.drawRect(new RectF(margin + radius, margin, right, bottom - radius), paint);
+    }
+
+    private void drawOtherBottomLeftRoundRect(Canvas canvas, Paint paint, float right, float bottom) {
+        canvas.drawRoundRect(new RectF(margin, margin, right, margin + diameter), radius, radius,
+                paint);
+        canvas.drawRoundRect(new RectF(right - diameter, margin, right, bottom), radius, radius, paint);
+        canvas.drawRect(new RectF(margin, margin + radius, right - radius, bottom), paint);
+    }
+
+    private void drawOtherBottomRightRoundRect(Canvas canvas, Paint paint, float right,
+                                               float bottom) {
+        canvas.drawRoundRect(new RectF(margin, margin, right, margin + diameter), radius, radius,
+                paint);
+        canvas.drawRoundRect(new RectF(margin, margin, margin + diameter, bottom), radius, radius,
+                paint);
+        canvas.drawRect(new RectF(margin + radius, margin + radius, right, bottom), paint);
+    }
+
+    private void drawDiagonalFromTopLeftRoundRect(Canvas canvas, Paint paint, float right,
+                                                  float bottom) {
+        canvas.drawRoundRect(new RectF(margin, margin, margin + diameter, margin + diameter), radius,
+                radius, paint);
+        canvas.drawRoundRect(new RectF(right - diameter, bottom - diameter, right, bottom), radius,
+                radius, paint);
+        canvas.drawRect(new RectF(margin, margin + radius, right - diameter, bottom), paint);
+        canvas.drawRect(new RectF(margin + diameter, margin, right, bottom - radius), paint);
+    }
+
+    private void drawDiagonalFromTopRightRoundRect(Canvas canvas, Paint paint, float right,
+                                                   float bottom) {
+        canvas.drawRoundRect(new RectF(right - diameter, margin, right, margin + diameter), radius,
+                radius, paint);
+        canvas.drawRoundRect(new RectF(margin, bottom - diameter, margin + diameter, bottom), radius,
+                radius, paint);
+        canvas.drawRect(new RectF(margin, margin, right - radius, bottom - radius), paint);
+        canvas.drawRect(new RectF(margin + radius, margin + radius, right, bottom), paint);
+    }
+
+    @Override public String toString() {
+        return "RoundedTransformation(radius=" + radius + ", margin=" + margin + ", diameter="
+                + diameter + ", cornerType=" + cornerType.name() + ")";
+    }
+
+    @Override public boolean equals(Object o) {
+        return o instanceof RoundedCornersTransformation &&
+                ((RoundedCornersTransformation) o).radius == radius &&
+                ((RoundedCornersTransformation) o).diameter == diameter &&
+                ((RoundedCornersTransformation) o).margin == margin &&
+                ((RoundedCornersTransformation) o).cornerType == cornerType;
+    }
+
+    @Override public int hashCode() {
+        return ID.hashCode() + radius * 10000 + diameter * 1000 + margin * 100 + cornerType.ordinal() * 10;
+    }
+
+    @Override public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) {
+        messageDigest.update((ID + radius + diameter + margin + cornerType).getBytes(CHARSET));
+    }
+}

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

@@ -26,7 +26,7 @@ import com.kfzs.duanduan.services.DownloadTaskService;
 import com.kfzs.duanduan.utils.StatusBarUtils;
 import com.kfzs.duanduan.utils.dlg.HelperUtils;
 import com.sheep.gamegroup.absBase.BaseActivity;
-import com.sheep.gamegroup.heler.ImageListHelper;
+import com.sheep.gamegroup.helper.ImageListHelper;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.FindApp;
 import com.sheep.gamegroup.model.entity.FindAppScore;
@@ -65,7 +65,6 @@ import static android.content.Intent.ACTION_PACKAGE_ADDED;
 import static android.content.Intent.ACTION_PACKAGE_REMOVED;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.FIND_SCORE;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.FIND_SHARE;
-import static com.sheep.gamegroup.view.adapter.TryMakeMoneyAdp.PUBLIC_TAG_PREFIX_TEXTVIEW_LIST;
 
 /**
  * Created by realicing on 2018/5/10.

+ 9 - 3
app/src/main/java/com/sheep/gamegroup/view/activity/ActFindInformation.java

@@ -9,10 +9,10 @@ import android.text.TextUtils;
 import android.view.View;
 import android.view.ViewGroup;
 import android.webkit.WebView;
+import android.webkit.WebViewClient;
 import android.widget.ImageView;
 import android.widget.TextView;
 
-import com.alibaba.fastjson.JSON;
 import com.arialyy.annotations.Download;
 import com.arialyy.aria.core.Aria;
 import com.arialyy.aria.core.download.DownloadTask;
@@ -28,9 +28,8 @@ import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.ListUtil;
-import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.SysAppUtil;
-import com.sheep.gamegroup.heler.TaskHelper;
+import com.sheep.gamegroup.helper.TaskHelper;
 import com.sheep.gamegroup.util.TimeUtil;
 import com.sheep.gamegroup.util.ViewHolder;
 import com.sheep.gamegroup.util.ViewUtil;
@@ -147,6 +146,13 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
 
         WebView find_information_content_wb = itemView.findViewById(R.id.find_information_content_wb);
         ViewUtil.loadDataWithBaseURL(find_information_content_wb, findItem.getContent());
+        find_information_content_wb.setWebViewClient(new WebViewClient() {
+            @Override
+            public boolean shouldOverrideUrlLoading(WebView view, String url) {
+                Jump2View.getInstance().goWeb(ActFindInformation.this, url);
+                return true;
+            }
+        });
 
     }
     private TaskHelper taskHelper = new TaskHelper(this);

+ 9 - 1
app/src/main/java/com/sheep/gamegroup/view/activity/ActGuide.java

@@ -91,7 +91,7 @@ public class ActGuide extends BaseActivity {
         if (event.getEventTypes() == EventTypes.GUIDE_NEXT) {
             int index = guide_vp.getCurrentItem() + 1;
             if(index == ids.length)
-                Jump2View.getInstance().gotoMain(this);
+                toSkipNext(null);
             else
                 guide_vp.setCurrentItem(index);
         }
@@ -101,4 +101,12 @@ public class ActGuide extends BaseActivity {
         EventBus.getDefault().unregister(this);
         super.onDestroy();
     }
+
+    /**
+     * 点击跳过
+     * @param view
+     */
+    public void toSkipNext(View view) {
+        Jump2View.getInstance().gotoMain(this);
+    }
 }

+ 13 - 21
app/src/main/java/com/sheep/gamegroup/view/activity/ActWeb.java

@@ -11,6 +11,7 @@ import android.provider.MediaStore;
 import android.support.annotation.RequiresApi;
 import android.text.TextUtils;
 import android.view.View;
+import android.webkit.DownloadListener;
 import android.webkit.JavascriptInterface;
 import android.webkit.ValueCallback;
 import android.webkit.WebChromeClient;
@@ -67,7 +68,9 @@ public class ActWeb extends BaseCompatActivity {
 
         url = getIntent().getStringExtra("url");
         title = getIntent().getStringExtra("title");//title为空时,不显示整个标题栏
-
+        if(!TextUtils.isEmpty(url)){
+            url = url.trim();
+        }
         ButterKnife.bind(this);
         TitleBarUtils
                 .getInstance()
@@ -90,6 +93,14 @@ public class ActWeb extends BaseCompatActivity {
         }
 
         loadUrl();
+
+        mWebView.setDownloadListener(new DownloadListener() {
+            @Override
+            public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {
+                //去下载
+                CommonUtil.getInstance().showDownLoad(ActWeb.this, url, url);
+            }
+        });
     }
 
     public static void initWebViewSettings(WebView webView) {
@@ -303,26 +314,7 @@ public class ActWeb extends BaseCompatActivity {
 
         @JavascriptInterface
         public void downloadFile(final String url, final String name) {
-            OkHttpUtils.get()
-                    .url(url)
-                    .build()
-                    .execute(new FileCallBack(ClassFileHelper.DIR, name) {
-                        @Override
-                        public void onError(Call call, Exception e, int id) {
-                            G.showToast("下载文件失败");
-                        }
-
-                        @Override
-                        public void onResponse(File response, int id) {
-                            if (name.endsWith(".png") || name.endsWith(".jpg")) {//图片
-                                Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
-                                Uri uri = Uri.fromFile(response);
-                                intent.setData(uri);
-                                sendBroadcast(intent); // 发送广播通知相册
-                            }
-                            G.showToast("下载文件成功");
-                        }
-                    });
+            CommonUtil.getInstance().showDownLoad(ActWeb.this, url, name);
         }
 
         @JavascriptInterface

+ 48 - 20
app/src/main/java/com/sheep/gamegroup/view/activity/AskGetMoneyAct.java

@@ -7,6 +7,7 @@ import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 import android.text.TextUtils;
 import android.util.SparseArray;
+import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.MotionEvent;
 import android.view.View;
@@ -24,6 +25,7 @@ import com.sheep.gamegroup.di.modules.AskGetMoneyModule;
 import com.sheep.gamegroup.model.entity.AskAward;
 import com.sheep.gamegroup.model.entity.AskTop;
 import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.entity.FriendAndAwardEntity;
 import com.sheep.gamegroup.model.entity.UserEntity;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
@@ -91,6 +93,8 @@ public class AskGetMoneyAct extends BaseUMActivity implements AskGetMoneyContrac
     MarqueeView ask_award_info;
     @BindView(R.id.ask_scroll_view)
     NestedScrollView scrollView;
+    @BindView(R.id.empty_view)
+    View empty_view;
 
     private FriendAndAwardEntity mEntity;
 
@@ -118,7 +122,7 @@ public class AskGetMoneyAct extends BaseUMActivity implements AskGetMoneyContrac
                 "  <head>\n" +
                 "    <title>HTML字符串</title>\n" +
                 "    <metahttp-equivmetahttp-equiv=\"content-type\" content=\"text/html;charset=utf-8\">\n" +
-                "    <meta name=\"viewport\" content=\"width="+G.WIDTH+", user-scalable=no\">\n" +
+                "    <meta name=\"viewport\" content=\"width=" + G.WIDTH + ", user-scalable=no\">\n" +
                 "    <style type=\"text/css\">\n" +
                 "      body {\n" +
                 "        margin: 0;\n" +
@@ -131,17 +135,17 @@ public class AskGetMoneyAct extends BaseUMActivity implements AskGetMoneyContrac
                 "    </style>\n" +
                 "  </head>\n" +
                 "  <body>\n" +
-                "    <img src=\"http://cdngame.kuaifazs.com/ask_bg.png\" width=\"100%\">\n" +
+                "    <img src=\"http://cdngame.kuaifazs.com/ask_bg2.png\" width=\"100%\">\n" +
                 "  </body>\n" +
                 "</html>";
-        ask_bg.getSettings().setDefaultTextEncodingName("UTF-8") ;
-        ask_bg.loadData(content, "text/html", "UTF-8") ;
+        ask_bg.getSettings().setDefaultTextEncodingName("UTF-8");
+        ask_bg.loadData(content, "text/html", "UTF-8");
 //                16,18,19
         LinearLayout.LayoutParams layoutParams1 = (LinearLayout.LayoutParams) ask_top_1.getLayoutParams();
-        layoutParams1.height = G.WIDTH * 16 / 18;
+        layoutParams1.height = G.WIDTH * 690 / 625;
         ask_top_1.setLayoutParams(layoutParams1);
         LinearLayout.LayoutParams layoutParams2 = (LinearLayout.LayoutParams) ask_top_2.getLayoutParams();
-        layoutParams2.height = G.WIDTH * 3 / 18;
+        layoutParams2.height = G.WIDTH * 112 / 625;
         ask_top_2.setLayoutParams(layoutParams2);
         ask_top5_not_you.setVisibility(View.INVISIBLE);
     }
@@ -175,16 +179,23 @@ public class AskGetMoneyAct extends BaseUMActivity implements AskGetMoneyContrac
             @Override
             public void convert(ViewHolder holder, final AskTop item) {
                 View itemView = holder.itemView;
-                if (item == null)
+                int position = holder.getAdapterPosition();
+                if (position == 0) {
                     return;
+                }
                 TextView x_ask_top5_item_user = itemView.findViewById(R.id.x_ask_top5_item_user);
                 TextView x_ask_top5_item_money = itemView.findViewById(R.id.x_ask_top5_item_money);
                 TextView x_ask_top5_item_award = itemView.findViewById(R.id.x_ask_top5_item_award);
+                ImageView ask_top5_item_iv = itemView.findViewById(R.id.ask_top5_item_iv);
+
+                if (item == null) {//空数据占位置
+                    itemView.setVisibility(View.INVISIBLE);
+                    return;
+                }
                 ViewUtil.setText(x_ask_top5_item_user, String.format(Locale.CHINA, "昵称\n%s\n邀请人数:%d", item.getNickname(), item.getSum_friend()));
                 ViewUtil.setText(x_ask_top5_item_money, String.format(Locale.CHINA, "%.0f", item.getSum_amount()));
                 ViewUtil.setText(x_ask_top5_item_award, item.getPrize());
-                ImageView ask_top5_item_iv = itemView.findViewById(R.id.ask_top5_item_iv);
-                switch (holder.getAdapterPosition()){
+                switch (position) {
                     case 1:
                         ask_top5_item_iv.setImageResource(R.mipmap.ask_top_1);
                         break;
@@ -251,20 +262,15 @@ public class AskGetMoneyAct extends BaseUMActivity implements AskGetMoneyContrac
                     @Override
                     public void onNext(BaseMessage baseMessage) {
                         List<AskTop> newList = baseMessage.getDataList(AskTop.class);
-                        if(ListUtil.isEmpty(newList)){
+                        if (ListUtil.isEmpty(newList)) {
                             return;
                         }
-                        if(BuildConfig.DEBUG) {
-                            while (newList.size() < 5){
-                                newList.add(newList.get(0));
-                            }
-                        }
                         list.addAll(newList);
-                        adapter.notifyDataSetChanged();
+                        notifyDataSetChanged();
                         String userId = DataUtil.getInstance().getUserId();
                         boolean hasMe = false;
                         for (AskTop item : newList) {
-                            if(TextUtils.equals(userId, item.getUser_id())){
+                            if (TextUtils.equals(userId, item.getUser_id())) {
                                 hasMe = true;
                                 break;
                             }
@@ -274,7 +280,8 @@ public class AskGetMoneyAct extends BaseUMActivity implements AskGetMoneyContrac
 
                     @Override
                     public void onError(BaseMessage baseMessage) {
-
+                        notifyDataSetChanged();
+                        ask_top5_not_you.setVisibility(View.VISIBLE);
                     }
                 });
         SheepApp.getInstance().getNetComponent().getApiService().getInvitationTopRecord()
@@ -298,6 +305,14 @@ public class AskGetMoneyAct extends BaseUMActivity implements AskGetMoneyContrac
                 });
     }
 
+    private void notifyDataSetChanged() {
+        CommonUtil.getInstance().updateEmptyView(empty_view, list.size() == 1, true);
+        while (list.size() < 5) {
+            list.add(null);
+        }
+        adapter.notifyDataSetChanged();
+    }
+
 
     @Override
     public void NetSuccess(int code, String msg, String s) {
@@ -326,7 +341,6 @@ public class AskGetMoneyAct extends BaseUMActivity implements AskGetMoneyContrac
     }
 
 
-
     private SparseArray<FgtFriendExtractPage> mTestFragments;
 
     public void setFriendExtractCount(int count, int page, int size) {
@@ -367,7 +381,7 @@ public class AskGetMoneyAct extends BaseUMActivity implements AskGetMoneyContrac
             @Override
             public void onPageSelected(int i) {
                 curPage = i + 1;
-                friend_extract_page_tv.setText(String.format(Locale.CHINA,"%d", curPage));
+                friend_extract_page_tv.setText(String.format(Locale.CHINA, "%d", curPage));
                 checkAddPage(curPage, mTestFragments.get(curPage).getList().size());
             }
 
@@ -399,10 +413,24 @@ public class AskGetMoneyAct extends BaseUMActivity implements AskGetMoneyContrac
             ask_award_info.stopFlipping();
         }
     }
+
     //显示分享对话框
     public void showShareView(View view) {
         String url = userEntity.getShareLink();
         String description = mEntity.getShare_desc();
         ViewUtil.showShareDialog(activity, url, description);
     }
+
+    //显示邀请好友排行榜top5的规则的对话框
+    public void showAstTop5Tip(View view) {
+        ViewUtil.showMsgDialog(activity, new DialogConfig().setTitle("活动说明")
+                .setMsg(".每天实时更新排行数据。\n" +
+                        ".根据当月已赚赏金(定向货币除外)和邀请人数进行排行\n" +
+                        ".每个月前5名可获取排行奖励。\n" +
+                        ".每个月月底最后一天24:00可公布结果,获奖的用户需通过“小绵羊领头羊”公众号发送获奖截图证明及收货信息,核对信息真实后,会第一时间发放!\n" +
+                        ".本活动最终解释权归成都橙风有量科技有限公司所有!")
+                .setMsgGravity(Gravity.START)
+                .setTheme(DialogConfig.THEME_PURPLE)
+                .setBtnLeftText("我知道了"));
+    }
 }

+ 0 - 477
app/src/main/java/com/sheep/gamegroup/view/activity/DialogActivity.java

@@ -1,477 +0,0 @@
-package com.sheep.gamegroup.view.activity;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Build;
-import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.annotation.RequiresApi;
-import android.text.TextUtils;
-import android.view.View;
-import android.webkit.WebChromeClient;
-import android.webkit.WebResourceRequest;
-import android.webkit.WebView;
-import android.webkit.WebViewClient;
-import android.widget.ImageView;
-import android.widget.TextView;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.arialyy.annotations.Download;
-import com.arialyy.aria.core.Aria;
-import com.arialyy.aria.core.download.DownloadTarget;
-import com.arialyy.aria.core.download.DownloadTask;
-import com.arialyy.aria.core.inf.IEntity;
-import com.bumptech.glide.Glide;
-import com.bumptech.glide.request.RequestOptions;
-import com.kfzs.duanduan.datashare.provider.download.DownLoadInfo;
-import com.kfzs.duanduan.event.BigEvent;
-import com.kfzs.duanduan.event.EventTypes;
-import com.kfzs.duanduan.services.DownloadTaskService;
-import com.kfzs.duanduan.utils.ApkUtils;
-import com.sheep.gamegroup.di.components.DaggerTaskDialogComponent;
-import com.sheep.gamegroup.di.modules.TaskDialogModule;
-import com.sheep.gamegroup.model.entity.BaseMessage;
-import com.sheep.gamegroup.model.entity.DialogEntity;
-import com.sheep.gamegroup.model.entity.Ext;
-import com.sheep.gamegroup.model.entity.TaskEty;
-import com.sheep.gamegroup.model.entity.TaskState;
-import com.sheep.gamegroup.model.util.EntityUtils;
-import com.sheep.gamegroup.model.util.SheepSubscriber;
-import com.sheep.gamegroup.presenter.TaskDialogContract;
-import com.sheep.gamegroup.presenter.TaskDialogPresenter;
-import com.sheep.gamegroup.util.CommonUtil;
-import com.sheep.gamegroup.util.DeviceUtil;
-import com.sheep.gamegroup.util.Jump2View;
-import com.sheep.gamegroup.util.MyListview;
-import com.sheep.gamegroup.util.UMConfigUtils;
-import com.sheep.gamegroup.view.adapter.TaskStateAdapter;
-import com.sheep.jiuyan.samllsheep.BuildConfig;
-import com.sheep.jiuyan.samllsheep.R;
-import com.sheep.jiuyan.samllsheep.SheepApp;
-import com.sheep.jiuyan.samllsheep.utils.G;
-import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
-
-
-import org.greenrobot.eventbus.EventBus;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.inject.Inject;
-
-import butterknife.BindView;
-import butterknife.ButterKnife;
-import butterknife.OnClick;
-import rx.android.schedulers.AndroidSchedulers;
-import rx.functions.Action1;
-import rx.schedulers.Schedulers;
-
-/**
- * 弹框activity
- * Created by ljy on 2018/3/20.
- */
-
-public class DialogActivity extends Activity implements TaskDialogContract.View {
-
-    @BindView(R.id.dialog_item_icon_iv)
-    ImageView dialogItemIconIv;
-    @BindView(R.id.dialog_item_name_tv)
-    TextView dialogItemNameTv;
-    @BindView(R.id.dialog_item_size_tv)
-    TextView dialogItemSizeTv;
-    @BindView(R.id.doalog_item_get_rewards_tv)
-    TextView doalogItemGetRewardsTv;
-    @BindView(R.id.webview)
-    WebView webview;
-    @BindView(R.id.start_task_tv)
-    TextView start_task_tv;
-    @BindView(R.id.dialog_title)
-    TextView dialog_title;
-    @BindView(R.id.listview)
-    MyListview listview;
-    private TaskEty taskEty;
-    private List<TaskState> stateList = new ArrayList<>();//状态列表
-    private TaskStateAdapter stateAdapter;
-
-    private int type = -1;//0,领取任务 1,开始试玩 2,开始下载 3,开始安装;4,信用卡跳转
-    private String buttonStr = CommonUtil.GET_TASK;
-    private Activity activity;
-
-    /**
-     * 下载模块修改
-     */
-    private DownloadTaskService mDownloadTaskService;
-
-    @Inject
-    TaskDialogPresenter preference;
-
-    @Override
-    protected void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.download_item_dialog);
-        ButterKnife.bind(this);
-        activity = this;
-
-        taskEty = (TaskEty) getIntent().getSerializableExtra("task_entity");
-        if (taskEty == null) {
-            finish();
-            return;
-        }
-        initViews();
-        initDatas();
-        Aria.download(this).register();
-        mDownloadTaskService = new DownloadTaskService(this);
-    }
-
-    private void initDatas() {
-        webview.loadUrl(taskEty.getBoot_address());
-        Glide.with(this)
-                .load(taskEty.getIcon())
-                .apply(new RequestOptions().dontAnimate())
-                .into(dialogItemIconIv);
-        dialogItemNameTv.setText(taskEty.getName());
-        dialogItemSizeTv.setText( taskEty.getPackage_size() + "M");
-        dialog_title.setText(taskEty.getTask_name());
-
-        preference.getTaskState(taskEty.getRelease_task_id());
-
-    }
-
-    @Override
-    protected void onResume() {
-        super.onResume();
-        setBtnState();
-    }
-
-    private void initViews() {
-        DaggerTaskDialogComponent.builder()
-                .netComponent(SheepApp.get(DialogActivity.this).getNetComponent())
-                .taskDialogModule(new TaskDialogModule(this))
-                .build()
-                .inject(DialogActivity.this);
-        webview.setWebChromeClient(new WebChromeClient() {
-
-        });
-        webview.getSettings().setJavaScriptEnabled(true);
-        webview.setWebViewClient(new WebViewClient() {
-            @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
-            @Override
-            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
-                view.loadUrl(request.getUrl().toString());
-                return true;
-            }
-        });
-        stateAdapter = new TaskStateAdapter(activity, stateList);
-        listview.setAdapter(stateAdapter);
-        stateAdapter.notifyDataSetChanged();
-
-
-    }
-
-    @OnClick({R.id.doalog_item_get_rewards_tv, R.id.dialog_close, R.id.start_task_tv})
-    public void onViewClicked(View view) {
-        switch (view.getId()) {
-            case R.id.doalog_item_get_rewards_tv:
-                Jump2View.getInstance().tryGoWithdrawal(activity, null);
-                finish();
-                break;
-            case R.id.dialog_close:
-                finish();
-                break;
-            case R.id.start_task_tv:
-                startStask();
-                break;
-        }
-    }
-
-    /**
-     * 开始任务或者下载游戏、试玩
-     */
-    private void startStask() {
-        DownloadTarget task = null;
-        try{
-            switch (type){
-                case -1://领取任务
-                    if(taskEty.getAcceptedTaskId() < 1){//没有正在进行的任务
-                        acceptedTask();
-                    } else {//先取消正在进行的任务
-
-                        Jump2View.getInstance()
-                                .goNoticeAct(activity, new DialogEntity(null,
-                                        "是否放弃正在运行中的任务?",
-                                        "是",
-                                        "否",
-                                        null));
-
-                    }
-                    break;
-                case DownloadTaskService.STATUS_INSTALLED://开始试玩
-                    toTestPlay();
-                    break;
-                case DownloadTaskService.STATUS_INIT://开始下载
-                    if(taskEty.needDownloadApp()){
-                        if(TextUtils.isEmpty(taskEty.getDownload_link()) || !taskEty.getDownload_link().contains("http")){
-                            G.showToast(R.string.error_download_link);
-                            return;
-                        }
-                        task = Aria.download(this).load(taskEty.getDownload_link());
-                    }
-                    final DownLoadInfo downLoadInfo = mDownloadTaskService.getDownloadTaskByUrl(taskEty);
-                    if(task != null) {
-                        if (task.getTaskState() == IEntity.STATE_RUNNING) {
-                            task.stop();
-                        } else if (task.getTaskState() == IEntity.STATE_FAIL) {
-                            task.cancel(true);
-                            task.removeRecord();
-                        } else {
-                            mDownloadTaskService.start(downLoadInfo);
-                        }
-                        new Thread(new Runnable() {
-                            @Override
-                            public void run() {
-                                if(mDownloadTaskService.addDownloadTask(downLoadInfo)){
-                                    //发送红点信息
-                                    EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.TIPS_DOWN_ICON));
-                                }
-                            }
-                        }).start();
-                    }
-                    UMConfigUtils.onEvent(UMConfigUtils.Event.TASK_DOWNLOAD);
-                    break;
-                case DownloadTaskService.STATUS_FINISH://开始安装
-                    final DownLoadInfo downLoadInfo1 = mDownloadTaskService.getDownloadTaskByUrl(taskEty);
-                    boolean isInstalled = PackageUtil.isAppInstalled(SheepApp.mContext, taskEty.getPackage_names());
-                    if(isInstalled){
-                        if(taskEty.getTask_type() != 3){
-                            start_task_tv.setText(CommonUtil.OPEN_APPLY);
-                        }else {
-                            start_task_tv.setText(CommonUtil.START_PLAY);
-                        }
-                        type = DownloadTaskService.STATUS_INSTALLED;
-                        toTestPlay();
-                        return;
-                    }else if(!TextUtils.isEmpty(PackageUtil.isExistsFile(taskEty.getPackage_names()))){
-                        ApkUtils.installApk(activity, PackageUtil.isExistsFile(taskEty.getPackage_names()));
-                    }else{
-                        if(taskEty.needDownloadApp()){
-                            if(TextUtils.isEmpty(taskEty.getDownload_link()) || !taskEty.getDownload_link().contains("http")){
-                                G.showToast(R.string.error_download_link);
-                                return;
-                            }
-                            task = Aria.download(this).load(taskEty.getDownload_link());
-                        }
-                        if(task != null) {
-                            task.cancel(true);
-                            task.removeRecord();
-                            mDownloadTaskService.start(downLoadInfo1);
-                            type = DownloadTaskService.STATUS_INIT;
-                        }
-                    }
-                    break;
-                case 4://信用卡----------应该不会用到了------因为信用卡不会在这里显示
-                    Jump2View.getInstance().goCreditCardTaskList(activity, null);
-                    break;
-                case 10://H5
-                    Ext ext;
-                    if(taskEty == null) {
-                        G.showToast(R.string.service_data_error);
-                    } else if((ext = EntityUtils.getExtInfo(taskEty.getExt())) == null || TextUtils.isEmpty(ext.getUrl())){
-                        Jump2View.getInstance().goTaskDetailView(activity,  taskEty.getId());
-                    } else {
-                        Jump2View.getInstance().goWeb(activity, ext.getUrl());
-                    }
-                    break;
-            }
-        }catch (Exception e){
-            e.printStackTrace();
-        }
-    }
-
-    private void acceptedTask() {
-        JSONObject object = new JSONObject();
-        object.put("device_id",DeviceUtil.getDeviceId(activity));
-        object.put("release_task_id", Integer.valueOf(taskEty.getRelease_task_id()+""));
-        preference.acceptedTask(object);
-        UMConfigUtils.onEvent(UMConfigUtils.Event.TASK_ACCEPT);
-    }
-
-    /**
-     * 去试玩
-     */
-    private void toTestPlay(){
-        PackageUtil.startApp(activity, taskEty.getPackage_names());
-    }
-
-    /**
-     * 按钮状态
-     */
-    private void setBtnState(){
-        type = -1;
-        if(taskEty.getRunTask() == 0){//领取任务
-            buttonStr = CommonUtil.GET_TASK;
-            type = -1;
-        }else if(taskEty.getTask_type() == 2){//信用卡业务----------应该不会用到了------因为信用卡不会在这里显示
-            type = 4;
-            buttonStr = CommonUtil.START_TASK;
-            dialogItemSizeTv.setVisibility(View.INVISIBLE);
-        }else if(taskEty.getTask_type() == 4){//h5
-            type = 10;
-            buttonStr = CommonUtil.START_TASK;
-            dialogItemSizeTv.setVisibility(View.INVISIBLE);
-        }else{
-            TaskDetailAct.setBtnStr(taskEty, mDownloadTaskService, new Action1<Object>() {
-                @Override
-                public void call(Object o) {
-                    if(o instanceof Integer){
-                        type = (int) o;
-                    } else if( o instanceof String){
-                        start_task_tv.setText((String) o);
-                    } else if( o instanceof Boolean){
-                        start_task_tv.setEnabled((Boolean) o);
-                    }
-                }
-            });
-            return;
-        }
-        start_task_tv.setText(buttonStr);
-    }
-
-    /**
-     * 接收任务 成功
-     * @param o
-     */
-    @Override
-    public void startTaskUpdataView(Object o) {
-        try{
-            BaseMessage baseMessage = (BaseMessage) o;
-            if(baseMessage.getCode() == 200){
-                taskEty.setRunTask(1);
-                setBtnState();
-                G.showToast("接收任务成功");
-                CommonUtil.getInstance().setTAskEnty(taskEty);
-            }
-            EventBus.getDefault().post(new BigEvent().setEventTypes(EventTypes.ONFRESH_TRYMAKEMANY_PAGE));
-        }catch (Exception e){
-            e.printStackTrace();
-        }
-
-    }
-
-    @Override
-    public void startTaskFailView(Object o) {
-
-        G.showToast(((BaseMessage)o).getMsg()+ "");
-
-    }
-
-    @Override
-    public void getStateSuccess(Object o) {
-
-        if(o == null){
-            return;
-        }
-        BaseMessage baseMessage = (BaseMessage) o;
-
-        List<TaskState> stateList = JSONArray.parseArray(JSON.toJSONString(baseMessage.getData()), TaskState.class);
-
-        if(stateList != null && stateList.size()>0){
-            this.stateList.clear();
-            this.stateList.addAll(stateList);
-
-            stateAdapter.notifyDataSetChanged();
-
-        }
-
-
-    }
-
-    @Override
-    public void getStatefail(Object o) {
-
-
-    }
-
-    @Download.onPre void onPre(DownloadTask task) {
-        if(task.getKey().equals(taskEty.getDownload_link())) {
-            start_task_tv.setText("准备下载中");
-        }
-    }
-    @Download.onTaskStart void taskStart(DownloadTask task) {
-        if(task.getKey().equals(taskEty.getDownload_link())) {
-            start_task_tv.setText("开始下载中");
-        }
-    }
-    @Download.onTaskResume void taskResume(DownloadTask task) {
-        if(task.getKey().equals(taskEty.getDownload_link())) {
-            start_task_tv.setText("恢复下载中");
-        }
-    }
-    //在这里处理任务执行中的状态,如进度进度条的刷新
-    @Download.onTaskRunning protected void running(DownloadTask task) {
-        if(task.getKey().equals(taskEty.getDownload_link())) {
-            int p = task.getPercent();    //任务进度百分比
-//            mDownloadTaskService.setDownloadTaskPercent(p, task.getCurrentProgress()/1024d/1024d,task.getFileSize()/1024d/1024d,0,task.getKey());
-            String speed = task.getConvertSpeed();    //转换单位后的下载速度,单位转换需要在配置文件中打开
-            long speed1 = task.getSpeed(); //原始byte长度速度
-            start_task_tv.setText(p + "%");
-            System.out.println("Aria p " + p + ", speed = " + speed);
-        }
-    }
-
-    @Download.onTaskStop void taskStop(DownloadTask task) {
-        if(task.getKey().equals(taskEty.getDownload_link())) {
-//            mDownloadTaskService.setDownloadTaskStatus(task.getKey(), DownloadTaskService.STATUS_PAUSE);
-            start_task_tv.setText(CommonUtil.CONTINUE_DOWNLOAD);
-        }
-    }
-
-    @Download.onNoSupportBreakPoint void onNoSupportBreakPoint(DownloadTask task) {
-    }
-
-    @Download.onTaskCancel void taskCancel(DownloadTask task) {
-        if(task.getKey().equals(taskEty.getDownload_link())) {
-//            mDownloadTaskService.deleteDownloadTaskByDownloadUrl(task.getKey());
-            start_task_tv.setText("已经取消");
-        }
-    }
-
-    @Download.onTaskFail void taskFail(DownloadTask task) {
-        if(task.getKey().equals(taskEty.getDownload_link())) {
-//            mDownloadTaskService.setDownloadTaskStatus(task.getKey(), DownloadTaskService.STATUS_FAIL);
-            start_task_tv.setText(CommonUtil.FAIL_DOWNLOAD);
-        }
-    }
-
-    @Download.onTaskComplete void taskComplete(DownloadTask task) {
-        if(task.getKey().equals(taskEty.getDownload_link())) {
-//            mDownloadTaskService.setDownloadTaskFinish(task.getKey(), task.getDownloadPath());
-            //在这里处理任务完成的状态
-            start_task_tv.setText(CommonUtil.START_INSTALL);
-            type = 3;
-//            PackageUtil.installApk(activity, task.getDownloadPath());
-        }
-    }
-
-    @Override
-    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
-        super.onActivityResult(requestCode, resultCode, data);
-        if(requestCode == 0 && resultCode == RESULT_OK && taskEty != null){
-            SheepApp.getInstance().getNetComponent().getApiService().giveUpTask(taskEty.getAcceptedTaskId())
-                    .subscribeOn(Schedulers.io())
-                    .observeOn(AndroidSchedulers.mainThread())
-                    .subscribe(new SheepSubscriber<BaseMessage>(activity) {
-                        @Override
-                        public void onNext(BaseMessage baseMessage) {
-                            acceptedTask();
-                            CommonUtil.getInstance().setTAskEnty(null);
-                        }
-
-                        @Override
-                        public void onError(BaseMessage baseMessage) {
-                            G.showToast(baseMessage);
-                        }
-                    });
-        }
-    }
-}

+ 1 - 3
app/src/main/java/com/sheep/gamegroup/view/activity/PersonalInfoAct.java

@@ -200,9 +200,7 @@ public class PersonalInfoAct extends AbsChooseImageActivity {
         personal_info_name.setText(userEntity.getNickname());
         personal_info_code.setText(userEntity.getInvitation_code());
 
-        Glide.with(PersonalInfoAct.this)
-                .load(AppUtil.getQRLink(userEntity.getShareLink("other"), 90))
-                .into(personal_info_qr);
+        GlideImageLoader.downloadAndSetImage(personal_info_qr, AppUtil.getQRLink(userEntity.getShareLink(DialogShare.FACE_TO_FACE), 90), 90);
         GlideImageLoader.setAvatar(personal_info_avatar, userEntity.getAvatar());
         //账号与安全
 

+ 2 - 4
app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailAct.java

@@ -32,7 +32,7 @@ import com.kfzs.duanduan.utils.ApkUtils;
 import com.sheep.gamegroup.absBase.AbsChooseImageActivity;
 import com.sheep.gamegroup.di.components.DaggerTaskDetailComponent;
 import com.sheep.gamegroup.di.modules.TaskDetailModule;
-import com.sheep.gamegroup.heler.TaskHelper;
+import com.sheep.gamegroup.helper.TaskHelper;
 import com.sheep.gamegroup.model.api.IDownload;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.DialogEntity;
@@ -56,7 +56,6 @@ import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.util.LocationUtils;
-import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.MyDbManager;
 import com.sheep.gamegroup.util.MyListview;
 import com.sheep.gamegroup.util.SelfCountDownTimer;
@@ -90,7 +89,6 @@ import rx.functions.Action1;
 import rx.schedulers.Schedulers;
 
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.GAME_INSTEAD_OF_RECHARGE_GET;
-import static com.sheep.gamegroup.util.DataUtil.REQUEST_CAPTURE_PERMISSION;
 
 /**
  * 任务详情页面
@@ -281,7 +279,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
         btnTaskItem.setVisibility(View.VISIBLE);
         btnUpImag.setVisibility(View.VISIBLE);
         if (gettaskAcceptedEty != null && (gettaskAcceptedEty.isIs_running() || gettaskAcceptedEty.getStatus() == 3)) {//已经领取任务
-            switch (taskEty.getTask_type()) {// 1时间试玩任务 2 信用卡任务 3应用下载 4h5业务 1001畅思 1000连续任务, 1002 1003游戏任务
+            switch (taskEty.getTask_type()) {// 1时间试玩任务 2 信用卡任务 3应用下载 4h5业务 1001畅思 1000连续任务, 1002 1003游戏任务 1004 小米游戏任务
                 case 4://h5业务
                     type = 10;
                     btnTaskItem.setText(CommonUtil.START_TASK);

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/view/adapter/TryMakeMoneyAdp.java

@@ -22,7 +22,7 @@ import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.event.EventTypes;
 import com.kfzs.duanduan.services.DownloadTaskService;
 import com.kfzs.duanduan.utils.ApkUtils;
-import com.sheep.gamegroup.heler.TaskHelper;
+import com.sheep.gamegroup.helper.TaskHelper;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.GameAgencyRechargePlatformEntity;
 import com.sheep.gamegroup.model.entity.OrienteeringDetail;

+ 24 - 14
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtTryMakeMoney.java

@@ -75,6 +75,8 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
         if(empty_view == null)
             empty_view = findViewById(R.id.empty_view);
     }
+    private static final int LIST_COUNT = 3;//tryMakeMoneyAdp 总共有3条数据
+    private static final RecyleObj NULL = RecyleObj.make(RecyleType.NONE, null);//空数据
     private void notifyDataSetChanged(){
         checkAndInitView();
         int position = 0;
@@ -83,7 +85,10 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
         if(!ListUtil.isEmpty(releaseEtyLists))
             tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RELEASE_TASK, releaseEtyLists), position++);
         if(!ListUtil.isEmpty(releaseEtyListsBegin))
-            tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.BEGIN_TASK, releaseEtyListsBegin), position);
+            tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.BEGIN_TASK, releaseEtyListsBegin), position++);
+        while(position < LIST_COUNT){
+            tryMakeMoneyAdp.add(NULL, position++);
+        }
         tryMakeMoneyAdp.refreshAdapter();
         CommonUtil.getInstance().updateEmptyView(empty_view, tryMakeMoneyAdp.isEmpty() && releaseEtyLists.isEmpty() && releaseEtyListsBegin.isEmpty());
         refresh.setRefreshing(false);
@@ -150,8 +155,8 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
         tryMakeMoneyAdp.addType(type);
         tryMakeMoneyAdp.setIs_succession(is_succession);
         tryMakeMoneyAdp.addPresenter(presenter);
-        for (int i = 0; i < 3; i++) {
-            tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.NONE, null));
+        for (int i = 0; i < LIST_COUNT; i++) {
+            tryMakeMoneyAdp.add(NULL);
         }
         recyclerview.setAdapter(tryMakeMoneyAdp);
 
@@ -205,17 +210,22 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
         type = 0;
         if(isFirstCache){
             //注释掉获取缓存的正在进行的任务
-//            List<TaskAcceptedEty> cacheTaskAcceptedEtyList;
-//            if(isGameTask) {
-//                cacheTaskAcceptedEtyList = DataUtil.getInstance().getCacheList(ApiKey.run_game_task, TaskAcceptedEty.class);
-//            } else {
-//                cacheTaskAcceptedEtyList = DataUtil.getInstance().getCacheList(ApiKey.new_run_task(is_succession, 0), TaskAcceptedEty.class);
-//            }
-//            if (ListUtil.isEmpty(cacheTaskAcceptedEtyList)) {
-//                acceptedEtyList.clear();
-//            } else {
-//                acceptedEtyList = cacheTaskAcceptedEtyList;
-//            }
+            List<TaskAcceptedEty> cacheTaskAcceptedEtyList;
+            if(isGameTask) {
+                cacheTaskAcceptedEtyList = DataUtil.getInstance().getCacheList(ApiKey.run_game_task, TaskAcceptedEty.class);
+            } else {
+                cacheTaskAcceptedEtyList = DataUtil.getInstance().getCacheList(ApiKey.new_run_task(is_succession, 0), TaskAcceptedEty.class);
+            }
+            if (ListUtil.isEmpty(cacheTaskAcceptedEtyList)) {
+                acceptedEtyList.clear();
+            } else {
+                acceptedEtyList = cacheTaskAcceptedEtyList;
+                if(!ListUtil.isEmpty(acceptedEtyList)){//清除时间数据,缓存数据不显示时间
+                    for (TaskAcceptedEty taskAcceptedEty : acceptedEtyList) {
+                        taskAcceptedEty.setEnd_time(0);
+                    }
+                }
+            }
             getFromACache(type);
         }
         //加载网络数据

+ 1 - 1
app/src/main/java/com/sheep/jiuyan/samllsheep/SheepApp.java

@@ -132,7 +132,7 @@ public class SheepApp extends BaseApplication {
         @Override
         public void onActivityCreated(final Activity activity, Bundle savedInstanceState) {
             ActivityManager.getInstance().pushActivity(activity);
-            if(activity instanceof SplashAct || activity instanceof LoginAct || activity instanceof PhoneAct){
+            if(/*activity instanceof SplashAct || */activity instanceof LoginAct || activity instanceof PhoneAct){
                 SysAppUtil.showVersionInfo(activity, SpUtils.getIgnoreMd5());
             } else if(activity instanceof ActMain){
                 SysAppUtil.showVersionInfo(activity, SpUtils.getIgnoreMd5(), new Action1<Integer>() {

+ 6 - 0
app/src/main/res/drawable/shape_purple_solid_rectangle_top.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <corners android:topLeftRadius="18dp" android:topRightRadius="18dp" />
+    <solid android:color="@color/button_color_purple" />
+</shape>

+ 18 - 1
app/src/main/res/layout/act_guide.xml

@@ -1,7 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
+    android:layout_height="match_parent"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:context="com.sheep.gamegroup.view.activity.ActGuide">
 
     <android.support.v4.view.ViewPager
         android:id="@+id/guide_vp"
@@ -16,5 +18,20 @@
         android:layout_centerHorizontal="true"
         android:layout_marginBottom="20dp"
         android:orientation="horizontal"/>
+    <TextView
+        android:id="@+id/guide_skip"
+        android:layout_width="wrap_content"
+        android:layout_height="24dp"
+        android:layout_alignParentTop="true"
+        android:layout_alignParentEnd="true"
+        android:gravity="center"
+        android:onClick="toSkipNext"
+        android:text="  跳过  "
+        android:paddingStart="10dp"
+        android:paddingEnd="10dp"
+        android:layout_margin="@dimen/content_padding_20"
+        android:textColor="#ffffff"
+        android:textSize="13sp"
+        android:background="@drawable/shape_ash_solid_rectangle_small_tra30"/>
 
 </RelativeLayout>

+ 2 - 2
app/src/main/res/layout/dialog_half_screen_ad.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<merge xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:orientation="vertical">
@@ -53,4 +53,4 @@
         android:textColor="#939393"
         android:textSize="13sp" />
 
-</LinearLayout>
+</merge>

+ 0 - 141
app/src/main/res/layout/download_item_dialog.xml

@@ -1,141 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<merge xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <RelativeLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center"
-        android:layout_margin="@dimen/dp_10">
-
-        <ScrollView
-            android:id="@+id/dialog_center_ll"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:paddingTop="64dp"
-            android:background="@drawable/shape_white_solid_rectangle"
-            android:gravity="center"
-            android:paddingBottom="@dimen/dp_10"
-            android:paddingStart="@dimen/dp_10"
-            android:paddingEnd="@dimen/dp_10"
-            android:scrollbars="none">
-
-            <RelativeLayout
-                android:layout_width="match_parent"
-                android:layout_height="match_parent">
-
-                <ImageView
-                    android:id="@+id/dialog_item_icon_iv"
-                    android:layout_width="@dimen/view_size_60"
-                    android:layout_height="@dimen/view_size_60"
-                    android:src="@drawable/icon_lj" />
-
-                <TextView
-                    android:id="@+id/dialog_item_name_tv"
-                    style="@style/txt_big_noheight_style"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_margin="@dimen/content_padding_10"
-                    android:layout_toRightOf="@id/dialog_item_icon_iv"
-                    android:textSize="13sp"
-                    android:text=""
-                    android:textStyle="bold"/>
-
-                <TextView
-                    android:id="@+id/dialog_item_size_tv"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_below="@+id/dialog_item_name_tv"
-                    android:layout_marginLeft="@dimen/content_padding"
-                    android:layout_marginTop="@dimen/content_padding_small"
-                    android:layout_toRightOf="@id/dialog_item_icon_iv"
-                    android:text="10M"
-                    android:textSize="@dimen/text_size_12" />
-
-
-                <WebView
-                    android:id="@+id/webview"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:layout_below="@+id/dialog_item_icon_iv"
-                    android:layout_centerHorizontal="true"
-                    android:layout_marginLeft="@dimen/content_padding_40"
-                    android:layout_marginRight="@dimen/content_padding_40"
-                    android:layout_marginTop="@dimen/content_padding_15"
-                    android:visibility="gone">`
-
-                </WebView>
-                <com.sheep.gamegroup.util.MyListview
-                    android:id="@+id/listview"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:scrollbars="none"
-                    android:divider="@null"
-                    android:listSelector="@color/transparent"
-                    android:layout_below="@+id/dialog_item_icon_iv"
-                    android:layout_centerHorizontal="true"
-                    android:layout_marginLeft="@dimen/content_padding_40"
-                    android:layout_marginRight="@dimen/content_padding_40"
-                    android:layout_marginTop="@dimen/content_padding_15"/>
-
-                <LinearLayout
-                    android:id="@+id/start_layout"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:layout_below="@+id/listview"
-                    android:layout_centerHorizontal="true"
-                    android:orientation="vertical"
-                    android:visibility="gone">
-                </LinearLayout>
-
-                <TextView
-                    android:layout_below="@+id/listview"
-                    android:id="@+id/start_task_tv"
-                    style="@style/style_button"
-                    android:layout_width="wrap_content"
-                    android:layout_centerHorizontal="true"
-                    android:minWidth="151dp"
-                    android:text="开始任务"
-                    android:visibility="visible"/>
-
-                <TextView
-                    android:id="@+id/doalog_item_get_rewards_tv"
-                    android:layout_width="wrap_content"
-                    android:layout_height="40dp"
-                    android:layout_below="@+id/start_layout"
-                    android:layout_centerHorizontal="true"
-                    android:layout_marginLeft="@dimen/content_padding_40"
-                    android:layout_marginRight="@dimen/content_padding_40"
-                    android:layout_marginTop="@dimen/content_padding_small"
-                    android:background="@drawable/sp_bg_gradient_rectangle_yellow"
-                    android:gravity="center"
-                    android:minWidth="151dp"
-                    android:text="领取奖励"
-                    android:textSize="18sp"
-                    android:textColor="#ffffff"
-                    android:visibility="gone"/>
-
-            </RelativeLayout>
-        </ScrollView>
-        <TextView
-            android:id="@+id/dialog_title"
-            android:layout_width="match_parent"
-            android:layout_height="54dp"
-            android:text="提示"
-            android:textSize="20sp"
-            android:gravity="center"
-            android:textColor="@android:color/white"
-            android:padding="@dimen/dp_10"
-            android:background="@drawable/shape_main_solid_rectangle_top" />
-
-        <ImageView
-            android:id="@+id/dialog_close"
-            android:layout_width="40dp"
-            android:layout_height="40dp"
-            android:layout_below="@+id/dialog_center_ll"
-            android:layout_centerHorizontal="true"
-            android:layout_marginTop="@dimen/content_padding_30"
-            android:src="@mipmap/close" />
-    </RelativeLayout>
-</merge>

+ 71 - 11
app/src/main/res/layout/friend_list.xml

@@ -2,17 +2,77 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/friend_list_ll"
     android:layout_width="match_parent"
-    android:layout_height="130dp"
+    android:layout_height="@dimen/ask_friend_list_h"
     android:layout_centerInParent="true"
     android:orientation="vertical">
-    <include layout="@layout/x_ask_getmoney_act_layout_item"
-        android:visibility="invisible"/>
-    <include layout="@layout/x_ask_getmoney_act_layout_item"
-        android:visibility="invisible"/>
-    <include layout="@layout/x_ask_getmoney_act_layout_item"
-        android:visibility="invisible"/>
-    <include layout="@layout/x_ask_getmoney_act_layout_item"
-        android:visibility="invisible"/>
-    <include layout="@layout/x_ask_getmoney_act_layout_item"
-        android:visibility="invisible"/>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="1dp"
+        android:layout_marginTop="@dimen/dp_10"
+        android:layout_marginBottom="@dimen/dp_10"
+        android:layout_marginStart="@dimen/content_padding_10"
+        android:layout_marginEnd="@dimen/content_padding_10"
+        android:background="#4cF5F5F5"
+        android:visibility="invisible" />
+
+    <include
+        layout="@layout/x_ask_getmoney_act_layout_item"
+        android:visibility="invisible" />
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="1dp"
+        android:layout_marginTop="@dimen/dp_10"
+        android:layout_marginBottom="@dimen/dp_10"
+        android:layout_marginStart="@dimen/content_padding_10"
+        android:layout_marginEnd="@dimen/content_padding_10"
+        android:background="#4cF5F5F5"
+        android:visibility="invisible" />
+
+    <include
+        layout="@layout/x_ask_getmoney_act_layout_item"
+        android:visibility="invisible" />
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="1dp"
+        android:layout_marginTop="@dimen/dp_10"
+        android:layout_marginBottom="@dimen/dp_10"
+        android:layout_marginStart="@dimen/content_padding_10"
+        android:layout_marginEnd="@dimen/content_padding_10"
+        android:background="#4cF5F5F5"
+        android:visibility="invisible" />
+
+    <include
+        layout="@layout/x_ask_getmoney_act_layout_item"
+        android:visibility="invisible" />
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="1dp"
+        android:layout_marginTop="@dimen/dp_10"
+        android:layout_marginBottom="@dimen/dp_10"
+        android:layout_marginStart="@dimen/content_padding_10"
+        android:layout_marginEnd="@dimen/content_padding_10"
+        android:background="#4cF5F5F5"
+        android:visibility="invisible" />
+
+    <include
+        layout="@layout/x_ask_getmoney_act_layout_item"
+        android:visibility="invisible" />
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="1dp"
+        android:layout_marginTop="@dimen/dp_10"
+        android:layout_marginBottom="@dimen/dp_10"
+        android:layout_marginStart="@dimen/content_padding_10"
+        android:layout_marginEnd="@dimen/content_padding_10"
+        android:background="#4cF5F5F5"
+        android:visibility="invisible" />
+
+    <include
+        layout="@layout/x_ask_getmoney_act_layout_item"
+        android:visibility="invisible" />
 </LinearLayout>

+ 2 - 4
app/src/main/res/layout/friend_list_empty.xml

@@ -1,10 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="130dp"
+    android:layout_height="@dimen/ask_friend_list_h"
     android:layout_centerInParent="true"
-    android:paddingStart="@dimen/content_padding_10"
-    android:paddingEnd="@dimen/content_padding_10"
     android:orientation="vertical">
 
     <RelativeLayout
@@ -18,7 +16,7 @@
             android:layout_width="wrap_content"
             android:layout_height="80dp"
             android:layout_centerHorizontal="true"
-            android:layout_marginTop="@dimen/dp_10"
+            android:layout_marginTop="80dp"
             android:gravity="center"
             android:scaleType="centerInside"
             android:src="@mipmap/wushuju"

+ 6 - 2
app/src/main/res/layout/title.xml

@@ -18,9 +18,13 @@
     <TextView
         android:id="@+id/txt_baseactivity_title"
         android:layout_width="wrap_content"
-        android:layout_height="match_parent"
+        android:layout_height="wrap_content"
         android:layout_centerInParent="true"
-        android:gravity="center"
+        android:layout_marginStart="?attr/actionBarSize"
+        android:layout_marginEnd="?attr/actionBarSize"
+        android:singleLine="true"
+        android:gravity="start"
+        android:ellipsize="end"
         android:text="@string/app_name"
         android:textColor="@color/black_text_deep"
         android:textSize="18sp"/>

+ 67 - 14
app/src/main/res/layout/x_ask_getmoney_act_layout.xml

@@ -1,35 +1,41 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    xmlns:tools="http://schemas.android.com/tools"
     tools:context="com.sheep.gamegroup.view.activity.AskGetMoneyAct">
 
-
-    <include layout="@layout/title" />
-
     <android.support.v4.widget.NestedScrollView
         android:id="@+id/ask_scroll_view"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:layout_marginBottom="@dimen/content_padding_10"
-        android:layout_marginTop="?attr/actionBarSize"
+        android:layout_marginBottom="60dp"
+        android:layout_marginTop="-13dp"
         android:orientation="vertical"
         android:scrollbars="none">
 
         <RelativeLayout
             android:layout_width="match_parent"
-            android:layout_height="match_parent">
+            android:layout_height="match_parent"
+            android:background="#FFD269">
 
             <WebView
                 android:id="@+id/ask_bg"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent" />
 
+            <!--底部有白条,用这一层覆盖-->
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="100dp"
+                android:layout_alignParentBottom="true"
+                android:background="#FFD269"/>
+            <!--内容   注:layout_marginBottom 为底部添加一点空间-->
             <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
+                android:layout_marginBottom="@dimen/content_padding_10"
                 android:baselineAligned="false"
                 android:descendantFocusability="beforeDescendants"
                 android:focusable="true"
@@ -122,16 +128,20 @@
                 <android.support.constraint.ConstraintLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/content_padding_10"
                     android:layout_marginEnd="@dimen/content_padding_10"
                     android:layout_marginStart="@dimen/content_padding_10"
-                    android:layout_marginTop="@dimen/content_padding_10"
                     android:background="@drawable/x_shap_shadow_bg_rectgangle_purple_red"
-                    android:padding="@dimen/content_padding_10">
+                    android:paddingStart="@dimen/content_padding_10"
+                    android:paddingEnd="@dimen/content_padding_10"
+                    android:paddingBottom="@dimen/content_padding_10">
 
                     <TextView
                         android:id="@+id/ask_top5_title"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
+                        android:paddingBottom="@dimen/content_padding_10"
+                        android:paddingTop="@dimen/content_padding_10"
                         android:text="本月排行榜top5"
                         android:textColor="#ffffff"
                         android:textSize="14sp"
@@ -146,14 +156,56 @@
                         android:textColor="#ffffff"
                         android:textSize="10sp"
                         app:layout_constraintBottom_toBottomOf="@+id/ask_top5_title"
+                        app:layout_constraintEnd_toStartOf="@+id/ask_top3_tip"
+                        app:layout_constraintTop_toTopOf="@+id/ask_top5_title" />
+
+                    <ImageView
+                        android:id="@+id/ask_top3_tip"
+                        android:layout_width="18dp"
+                        android:layout_height="38dp"
+                        android:paddingBottom="@dimen/content_padding_10"
+                        android:paddingEnd="3dp"
+                        android:paddingStart="3dp"
+                        android:paddingTop="@dimen/content_padding_10"
+                        android:src="@mipmap/ask_top5_tip"
+                        android:onClick="showAstTop5Tip"
+                        app:layout_constraintBottom_toBottomOf="@+id/ask_top5_title"
                         app:layout_constraintEnd_toEndOf="parent"
-                        app:layout_constraintTop_toTopOf="parent" />
+                        app:layout_constraintTop_toTopOf="@+id/ask_top5_title" />
+                    <RelativeLayout
+                        android:id="@+id/empty_view"
+                        android:layout_width="match_parent"
+                        android:layout_height="0dp"
+                        app:layout_constraintTop_toTopOf="@+id/ask_top5_list"
+                        app:layout_constraintBottom_toBottomOf="@+id/ask_top5_list"
+                        android:visibility="invisible">
+
+                        <ImageView
+                            android:id="@+id/empty_view_img"
+                            android:layout_width="wrap_content"
+                            android:layout_height="80dp"
+                            android:layout_marginTop="140dp"
+                            android:layout_centerHorizontal="true"
+                            android:gravity="center"
+                            android:scaleType="centerInside"
+                            android:src="@mipmap/wushuju"/>
 
+                        <TextView
+                            android:id="@+id/empty_view_msg"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:gravity="center"
+                            android:layout_below="@id/empty_view_img"
+                            android:layout_centerHorizontal="true"
+                            android:layout_marginTop="@dimen/content_padding_10"
+                            android:text="@string/wushuju"
+                            android:textColor="#ffffff"
+                            android:textSize="15sp" />
+                    </RelativeLayout>
                     <android.support.v7.widget.RecyclerView
                         android:id="@+id/ask_top5_list"
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
-                        android:layout_marginTop="10dp"
                         app:layout_constraintTop_toBottomOf="@+id/ask_top5_title" />
 
                 </android.support.constraint.ConstraintLayout>
@@ -214,8 +266,8 @@
                     <com.kfzs.duanduan.view.ViewPagerPlus
                         android:id="@+id/friend_extract_vp"
                         android:layout_width="match_parent"
-                        android:layout_height="130dp"
-                        android:layout_marginTop="@dimen/content_padding_10" />
+                        android:layout_height="@dimen/ask_friend_list_h"
+                        android:layout_marginTop="3dp" />
 
                     <LinearLayout
                         android:layout_width="match_parent"
@@ -275,11 +327,12 @@
                             android:textSize="12sp" />
                     </LinearLayout>
                 </LinearLayout>
-
             </LinearLayout>
         </RelativeLayout>
     </android.support.v4.widget.NestedScrollView>
 
+
+    <include layout="@layout/title" />
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"

+ 5 - 7
app/src/main/res/layout/x_ask_getmoney_act_layout_include.xml

@@ -3,15 +3,13 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:gravity="center_vertical"
-    android:paddingStart="@dimen/content_padding_10"
-    android:paddingEnd="@dimen/content_padding_10"
     android:orientation="horizontal">
     <TextView
         android:layout_width="0dp"
         android:layout_height="wrap_content"
-        android:layout_marginStart="22dp"
+        android:layout_marginStart="@dimen/content_padding_10"
         android:layout_weight="3"
-        android:gravity="start"
+        android:gravity="center"
         android:singleLine="true"
         android:textSize="12sp"
         android:textColor="#ffffff"
@@ -20,7 +18,7 @@
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_weight="4"
-        android:gravity="start"
+        android:gravity="center"
         android:singleLine="true"
         android:textSize="12sp"
         android:textColor="#ffffff"
@@ -29,7 +27,7 @@
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_weight="2"
-        android:gravity="start"
+        android:gravity="center"
         android:singleLine="true"
         android:textSize="12sp"
         android:textColor="#ffffff"
@@ -39,7 +37,7 @@
         android:layout_height="wrap_content"
         android:layout_weight="5"
         android:singleLine="true"
-        android:gravity="start"
+        android:gravity="center"
         android:textSize="12sp"
         android:textColor="#ffffff"
         android:text="注册时间"/>

+ 5 - 5
app/src/main/res/layout/x_ask_getmoney_act_layout_item.xml

@@ -7,9 +7,9 @@
     <TextView
         android:layout_width="0dp"
         android:layout_height="26dp"
-        android:layout_marginStart="22dp"
+        android:layout_marginStart="@dimen/content_padding_10"
         android:layout_weight="3"
-        android:gravity="start"
+        android:gravity="center"
         android:singleLine="true"
         android:textSize="10sp"
         android:textColor="#ffffff"
@@ -18,7 +18,7 @@
         android:layout_width="0dp"
         android:layout_height="26dp"
         android:layout_weight="4"
-        android:gravity="start"
+        android:gravity="center"
         android:singleLine="true"
         android:textSize="10sp"
         android:textColor="#ffffff"
@@ -27,7 +27,7 @@
         android:layout_width="0dp"
         android:layout_height="26dp"
         android:layout_weight="2"
-        android:gravity="start"
+        android:gravity="center"
         android:singleLine="true"
         android:textSize="10sp"
         android:textColor="#ffffff"
@@ -37,7 +37,7 @@
         android:layout_height="26dp"
         android:layout_weight="5"
         android:singleLine="true"
-        android:gravity="start"
+        android:gravity="center"
         android:textSize="10sp"
         android:textColor="#ffffff"
         android:text="注册时间"/>

+ 4 - 5
app/src/main/res/layout/x_ask_top5_item.xml

@@ -7,17 +7,16 @@
     <View
         android:layout_width="match_parent"
         android:layout_height="1dp"
-        android:background="#E6E6E6" />
+        android:background="#4cE6E6E6" />
 
     <LinearLayout
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="horizontal"
-        android:paddingBottom="@dimen/content_padding_10"
-        android:paddingTop="@dimen/content_padding_10">
+        android:layout_height="70dp"
+        android:orientation="horizontal">
 
         <RelativeLayout
             android:layout_width="22dp"
+            android:paddingTop="@dimen/content_padding_10"
             android:layout_height="wrap_content">
 
             <ImageView

+ 0 - 1
app/src/main/res/layout/x_ask_top5_title.xml

@@ -3,7 +3,6 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:gravity="center_vertical"
-    android:paddingTop="@dimen/content_padding_10"
     android:paddingBottom="@dimen/content_padding_10"
     android:orientation="horizontal">
     <View

BIN
app/src/main/res/mipmap-xxhdpi/ask_top5_tip.png


BIN
app/src/main/res/mipmap-xxhdpi/ask_top_1.png


BIN
app/src/main/res/mipmap-xxhdpi/ask_top_1.webp


BIN
app/src/main/res/mipmap-xxhdpi/ask_top_2.png


BIN
app/src/main/res/mipmap-xxhdpi/ask_top_2.webp


BIN
app/src/main/res/mipmap-xxhdpi/ask_top_3.png


BIN
app/src/main/res/mipmap-xxhdpi/ask_top_3.webp


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

@@ -58,6 +58,7 @@
     <dimen name="content_padding_22">22dp</dimen>
     <dimen name="content_padding_30">30dp</dimen>
     <dimen name="content_padding_35">35dp</dimen>
+    <dimen name="content_padding_36">36dp</dimen>
     <dimen name="content_padding_40">40dp</dimen>
     <dimen name="content_padding_54">54dp</dimen>
     <dimen name="content_padding_65">65dp</dimen>

+ 2 - 0
app/src/main/res/values/dimens.xml

@@ -18,4 +18,6 @@
     <dimen name="textSize2">15sp</dimen>
     <dimen name="textSize3">18sp</dimen>
     <dimen name="textSize4">21sp</dimen>
+
+    <dimen name="ask_friend_list_h">245dp</dimen>
 </resources>

Разница между файлами не показана из-за своего большого размера
+ 1 - 3
app/src/main/res/values/strings.xml