Преглед изворни кода

会长推广游戏弹出框中添加应用下载的进度与安装状态;
修复有些手机二维码加载不全的问题;
修复抢任务抢完后不能重新抢的bug;
隐藏游戏预约与游戏账号

zengjiebin пре 7 година
родитељ
комит
0429aa959b

+ 5 - 1
app/src/main/java/com/sheep/gamegroup/util/GlideImageLoader.java

@@ -243,7 +243,7 @@ public class GlideImageLoader {
      * @param width
      * @param radius
      */
-    public static void downloadAndRoundedImage(String name, String link, final ImageView imageView, final int width, final int radius) {
+    public static void downloadAndRoundedImage(String name, final String link, final ImageView imageView, final int width, final int radius) {
         GlideImageLoader.downLoadImage(name, link, new Action1<File>() {
             @Override
             public void call(File file) {
@@ -255,6 +255,10 @@ public class GlideImageLoader {
                 int h = options.outHeight;
 //                int w = width;
 //                int h = width * options.outHeight / options.outWidth;
+                if(Math.abs(w-h) < Math.min(w, h)){
+                    setImage(imageView, link);
+                    return;
+                }
                 Glide.with(SheepApp.getInstance())
                         .load(file)
                         .apply(new RequestOptions().override(w, h).fitCenter().transform(new RoundedCorners(radius)))

+ 1 - 0
app/src/main/java/com/sheep/gamegroup/util/ViewUtil.java

@@ -322,6 +322,7 @@ public class ViewUtil {
         mAlertDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
             @Override
             public void onDismiss(DialogInterface dialogInterface) {
+                SheepApp.getInstance().setOrder(1);
                 if (mActivity instanceof ActMain && DataUtil.getAsBoolean("tryShowHalfScreenAd", false)) {
                     DataUtil.putAsBoolean("tryShowHalfScreenAd", false);
                     Jump2View.getInstance().tryShowHalfScreenAd(mActivity, ((ActMain) mActivity).getContainer());

+ 89 - 2
app/src/main/java/com/sheep/gamegroup/view/activity/ActMain.java

@@ -1,5 +1,6 @@
 package com.sheep.gamegroup.view.activity;
 
+import android.content.Intent;
 import android.os.Build;
 import android.os.Bundle;
 import android.support.annotation.Nullable;
@@ -14,15 +15,19 @@ import android.widget.LinearLayout;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
 
+import com.arialyy.aria.core.download.DownloadTask;
 import com.kfzs.duanduan.utils.StatusBarUtils;
 import com.kfzs.duanduan.view.DialogStorageLow;
 import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.event.BigEvent;
+import com.sheep.gamegroup.helper.DownloadHelper;
 import com.sheep.gamegroup.model.entity.Container;
+import com.sheep.gamegroup.model.entity.FindApp;
 import com.sheep.gamegroup.util.ActionUtil;
 import com.sheep.gamegroup.util.ChannelContent;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.DataUtil;
+import com.sheep.gamegroup.util.DownloadUtil;
 import com.sheep.gamegroup.util.DrawablesHelper;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.ListUtil;
@@ -37,13 +42,17 @@ import com.sheep.gamegroup.view.fragment.FgtSmallSheep;
 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 com.sheep.jiuyan.samllsheep.utils.SpUtils;
 
 import org.greenrobot.eventbus.EventBus;
 import org.greenrobot.eventbus.Subscribe;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Locale;
+import java.util.Map;
 import java.util.concurrent.TimeUnit;
 
 import butterknife.BindView;
@@ -52,6 +61,10 @@ import rx.android.schedulers.AndroidSchedulers;
 import rx.functions.Action1;
 import rx.schedulers.Schedulers;
 
+import static android.content.Intent.ACTION_PACKAGE_ADDED;
+import static android.content.Intent.ACTION_PACKAGE_REMOVED;
+import static com.sheep.gamegroup.view.adapter.TryMakeMoneyAdp.PUBLIC_TAG_PREFIX_TEXTVIEW_LIST;
+
 
 /**
  * Created by realicing on 2018/9/6.
@@ -357,11 +370,26 @@ public class ActMain extends BaseActivity {
 
     //包含更新进度的view的view(会长推广弹出框中有下载进度用到)
     private View progressView;
+    private DownloadHelper downloadHelper;
+    private String packageName;
+    private String url;
+
+    public void setPackageName(String packageName) {
+        this.packageName = packageName;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
 
     public void setProgressView(View progressView) {
         this.progressView = progressView;
     }
 
+    public void setDownloadHelper(DownloadHelper downloadHelper) {
+        this.downloadHelper = downloadHelper;
+    }
+
     /**
      * 主要的事件广播接收更新处理
      *
@@ -374,12 +402,71 @@ public class ActMain extends BaseActivity {
                 DialogStorageLow.showDialog(this);
                 break;
             default:
-                if(progressView != null)
-                    CommonUtil.getInstance().setEventResultViewStatus(event, progressView, false);
+                if(progressView != null) {
+                    if (event.getData() instanceof DownloadTask) {
+                        DownloadTask task = (DownloadTask) event.getData();
+                        String url = task.getKey();
+                        TextView tvProgress = progressView.findViewWithTag(PUBLIC_TAG_PREFIX_TEXTVIEW_LIST + url);
+                        if(tvProgress != null) {
+                            switch (event.getEventTypes()) {
+                                case GENERATION_ACCOUNT_REFRESH_ADAPTER:
+                                    try {
+                                        int p = task.getPercent();    //任务进度百分比
+                                        tvProgress.setText(String.format(Locale.CHINA, "%d%%", Math.abs(p)));
+
+                                    } catch (Exception e) {
+                                        e.printStackTrace();
+                                    }
+                                    break;
+                                case DOWNLOAD_STOP:
+                                    tvProgress.setText("继续下载");
+                                    break;
+                                case DOWNLOAD_COMPLETE:
+                                    tvProgress.setText("安装游戏");
+                                    if(downloadHelper != null)
+                                        downloadHelper.updateState(DownloadUtil.STATUS_FINISH);
+                                    break;
+                                case DOWNLOAD_CANCEL:
+                                    tvProgress.setText("下载取消");
+                                    break;
+                                case DOWNLOAD_FAIL:
+                                    tvProgress.setText("下载失败");
+                                    break;
+                            }
+                        }
+                    }
+                }
                 break;
         }
     }
 
+    @Subscribe
+    public void onEventMainThread(Intent intent) {
+        if(intent != null && intent.getAction() != null && intent.getDataString() != null && intent.getDataString().contains("package:")){
+            String packageName = intent.getDataString().replace("package:","");
+
+            TextView tvProgress = progressView.findViewWithTag(PUBLIC_TAG_PREFIX_TEXTVIEW_LIST + url);
+            if(tvProgress != null && downloadHelper != null && TextUtils.equals(packageName, this.packageName)) {
+                switch (intent.getAction()){
+                    case ACTION_PACKAGE_ADDED:
+                        tvProgress.setText(CommonUtil.GAME_OPEN);
+                        downloadHelper.updateState(DownloadUtil.STATUS_INSTALLED);
+                        break;
+                    case ACTION_PACKAGE_REMOVED:
+                        String path = PackageUtil.isExistsFile(packageName, url);
+                        if(TextUtils.isEmpty(path)) {
+                            downloadHelper.updateState(DownloadUtil.STATUS_INIT);
+                            tvProgress.setText(CommonUtil.START_DOWNLOAD);
+                        } else {
+                            downloadHelper.updateState(DownloadUtil.STATUS_FINISH);
+                            tvProgress.setText(CommonUtil.START_INSTALL);
+                        }
+                        break;
+                }
+            }
+        }
+    }
+
     @Override
     protected void onDestroy() {
         super.onDestroy();

+ 10 - 2
app/src/main/java/com/sheep/gamegroup/view/adapter/GiftCenterAdapter.java

@@ -132,7 +132,13 @@ public class GiftCenterAdapter extends AdbCommonRecycler<GiftBagApp> {
             DownloadService.setDownLoadLongClick(holder.itemView, item.getApp());
         }
     }
-    //领取礼包
+
+    /**
+     * 领取礼包
+     * @param activity 为空时,不显示领取成功对话框
+     * @param item
+     * @param action1
+     */
     public static void receiveGiftBag(final Activity activity, final GiftBagApp item, final Action1<Integer> action1) {
         int gift_bag_id = item.getGift_bag().getId();
         GIFT_BAG_RECEIVE.onEvent("gift_bag_id", gift_bag_id);
@@ -143,10 +149,12 @@ public class GiftCenterAdapter extends AdbCommonRecycler<GiftBagApp> {
                             @Override
                             public void onNext(BaseMessage baseMessage) {
                                 String code = baseMessage.getData(String.class);
+                                item.setReceived(true);
                                 item.setCode(code);
                                 if(action1 != null)
                                     action1.call(TO_REFRESH);
-                                ViewUtil.showGetWelfareDialog(activity, item);
+                                if(activity != null)
+                                    ViewUtil.showGetWelfareDialog(activity, item);
                             }
 
                             @Override

+ 18 - 7
app/src/main/java/com/sheep/gamegroup/view/dialog/DialogGameOrTaskOrGift.java

@@ -9,7 +9,6 @@ import android.widget.ImageView;
 import android.widget.TextView;
 
 import com.kfzs.duanduan.utils.NumberFormatUtils;
-import com.sheep.gamegroup.helper.DownloadHelper;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.CashAwarsEntity;
 import com.sheep.gamegroup.model.entity.CommendApp;
@@ -29,7 +28,6 @@ import com.sheep.gamegroup.view.adapter.WelfareAdapter;
 import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
-import com.sheep.jiuyan.samllsheep.service.DownloadService;
 import com.sheep.jiuyan.samllsheep.utils.G;
 
 import org.afinal.simplecache.ApiKey;
@@ -82,10 +80,15 @@ public class DialogGameOrTaskOrGift {
     }
 
     private void loadData() {
+        loadData(true);
+    }
+
+    private void loadData(boolean isChangeNextShow) {
         if (commendApp == null) {
             resetView();
         } else {
-            commendApp.changNextShow();
+            if(isChangeNextShow)
+                commendApp.changNextShow();
             dialog_btn_left.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View view) {
@@ -102,7 +105,7 @@ public class DialogGameOrTaskOrGift {
                 GlideImageLoader.setGameImage(dialog_iv, commendApp.getApp().getIcon());
                 ViewUtil.setText(dialog_name_tv, commendApp.getApp().getName());
                 ViewUtil.setText(dialog_gift_tv, giftBag.getGiftName());
-                ViewUtil.setText(dialog_gift_code_tv, giftBagApp.getCode());
+                ViewUtil.setText(dialog_gift_code_tv, activity.getString(R.string.gift_bag_code, giftBagApp.getCode()));
                 ViewUtil.setText(dialog_gift_info_tv, giftBag.getUseMethod());
                 dialog_btn_right.setTag("null");
                 if (giftBagApp.isReceived()) {//已经领取礼包
@@ -125,12 +128,12 @@ public class DialogGameOrTaskOrGift {
                         @Override
                         public void onClick(View view) {
                             ViewUtil.setText(dialog_btn_right, "正在领取");
-                            GiftCenterAdapter.receiveGiftBag(activity, giftBagApp, new Action1<Integer>() {
+                            GiftCenterAdapter.receiveGiftBag(null, giftBagApp, new Action1<Integer>() {
                                 @Override
                                 public void call(Integer integer) {
                                     switch (integer) {
                                         case WelfareAdapter.TO_REFRESH://刷新界面(注:giftBagApp中已经添加了code)
-                                            loadData();
+                                            loadData(false);//重新加载
                                             break;
                                         case WelfareAdapter.RECEIVE_FAILED://领取失败
                                             ViewUtil.setText(dialog_btn_right, "领取礼包");
@@ -167,6 +170,11 @@ public class DialogGameOrTaskOrGift {
                 ViewUtil.setText(dialog_gift_tv, commendApp.getApp().getManufacturer());//这里显示的是开发商名字
                 commendApp.getApp().getFindAppHelper().getDownloadHelper().updateDownloadTaskView(activity, commendApp.getApp(), dialog_btn_right);
                 dialog_btn_right.setTag(PUBLIC_TAG_PREFIX_TEXTVIEW_LIST + commendApp.getApp().getDownload_url());
+                if(activity instanceof ActMain){
+                    ((ActMain) activity).setDownloadHelper(commendApp.getApp().getFindAppHelper().getDownloadHelper());
+                    ((ActMain) activity).setUrl(commendApp.getApp().getDownload_url());
+                    ((ActMain) activity).setPackageName(commendApp.getApp().getPackage_name());
+                }
             } else {
                 if (BuildConfig.DEBUG)
                     G.showToast("不是礼包,不是现金任务,不是游戏,还可能是什么");
@@ -214,6 +222,9 @@ public class DialogGameOrTaskOrGift {
             public void onDismiss(DialogInterface dialogInterface) {
                 if(activity instanceof ActMain){
                     ((ActMain) activity).setProgressView(null);
+                    ((ActMain) activity).setDownloadHelper(null);
+                    ((ActMain) activity).setUrl(null);
+                    ((ActMain) activity).setPackageName(null);
                 }
             }
         });
@@ -260,7 +271,7 @@ public class DialogGameOrTaskOrGift {
                         @Override
                         public void onNext(BaseMessage baseMessage) {
                             CommendApp newCommendApp = baseMessage.getData(CommendApp.class);
-                            if(newCommendApp == null){
+                            if(newCommendApp == null || (newCommendApp.getApp() != null && newCommendApp.getApp().getId() == 0)){//为空或者为无效数据
                                 onError(baseMessage);
                             } else {
                                 commendApp = newCommendApp;

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

@@ -79,7 +79,7 @@
             android:layout_marginStart="50dp"
             android:layout_marginTop="42dp"
             android:layout_marginEnd="50dp"
-            android:text="礼包码:1200lhxxx"
+            android:text="@string/gift_bag_code"
             android:textColor="#fffd2d54"
             android:textSize="11sp"
             android:visibility="invisible" />
@@ -92,7 +92,7 @@
             android:layout_marginTop="5dp"
             android:layout_marginEnd="50dp"
             android:text="*领取礼包并复制礼包码后可进入游戏中粘贴礼包码兑换礼包"
-            android:maxLength="2"
+            android:maxLines="2"
             android:ellipsize="end"
             android:textColor="#ffffffff"
             android:textSize="11sp"

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

@@ -85,11 +85,13 @@
 
     </LinearLayout>
 
-    <View style="@style/style_item_line_new" />
+    <View style="@style/style_item_line_new"
+        android:visibility="gone"/>
 
     <LinearLayout
         android:id="@+id/proxy_game_account_layout"
-        style="@style/style_item_container">
+        style="@style/style_item_container"
+        android:visibility="gone">
 
         <ImageView
             style="@style/style_item_img"

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

@@ -9,7 +9,8 @@
 
     <LinearLayout
         android:id="@+id/reservation_layout"
-        style="@style/style_item_container">
+        style="@style/style_item_container"
+        android:visibility="gone">
 
         <ImageView
             style="@style/style_item_img"
@@ -23,7 +24,8 @@
 
     </LinearLayout>
 
-    <View style="@style/style_item_line_new" />
+    <View style="@style/style_item_line_new"
+        android:visibility="gone"/>
 
     <LinearLayout
         android:id="@+id/feedbook_layout"

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

@@ -132,6 +132,7 @@
                 android:id="@+id/qr_code_iv"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
+                android:minHeight="100dp"
                 android:layout_marginTop="12dp"
                 android:src="@mipmap/qr_code_taskdetail_zhanwei"
                 app:layout_constraintStart_toStartOf="parent"

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

@@ -105,4 +105,5 @@
     <string name="success_copy_code">复制礼包码成功</string>
     <string name="plus_x_yuan">+%s元</string>
     <string name="sheep_order_no">小绵羊-%s-订单编号(%s)</string>
+    <string name="gift_bag_code">礼包码:%s</string>
 </resources>