zhaoyi vor 8 Jahren
Ursprung
Commit
c6e5fe9b40

+ 128 - 16
app/src/main/java/com/sheep/jiuyan/samllsheep/page/GameDetailActivity.java

@@ -1,17 +1,33 @@
 package com.sheep.jiuyan.samllsheep.page;
 
+import android.content.Intent;
+import android.text.Html;
+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.Button;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
 
+import com.bumptech.glide.Glide;
 import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.base.BaseActivity;
+import com.sheep.jiuyan.samllsheep.net.NetManager;
+import com.sheep.jiuyan.samllsheep.net.SheepCallback;
+import com.sheep.jiuyan.samllsheep.net.Url;
+import com.sheep.jiuyan.samllsheep.page.entry.TaskPublish;
+import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
+import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
+import java.util.HashMap;
+
 /**
  * Created by kemllor on 2018/1/16.
  * 游戏详情
@@ -19,22 +35,12 @@ import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
 public class GameDetailActivity extends BaseActivity {
 
-    private TextView mTvTitle;
-    private View mBack;
-
-    @Override
-    protected int getLayoutId() {
-        return R.layout.game_detail_activity;
-    }
-
-    @Override
-    public void initView() {
-        findViews();
-    }
 
+    private final static String HTML_FORMAT = "任务数量:<font color=\"#ef712c\">当前数量</font>/总数";
+    private TaskPublish mTask;
     private RelativeLayout mDingwei1;
     private ImageView mImgIcon;
-    private TextView mTxtBaseactivityTitle;
+    private TextView mTxtTitle;
     private TextView mTvCount;
     private TextView mTvTime;
     private TextView mTvBouns;
@@ -44,10 +50,21 @@ public class GameDetailActivity extends BaseActivity {
     private WebView mWebText;
     private LinearLayout mLlInfos;
 
+    @Override
+    protected int getLayoutId() {
+        return R.layout.game_detail_activity;
+    }
+
+    @Override
+    public void initView() {
+        findViews();
+    }
+
+
     private void findViews() {
         mDingwei1 = (RelativeLayout) findViewById(R.id.dingwei1);
         mImgIcon = (ImageView) findViewById(R.id.img_icon);
-        mTxtBaseactivityTitle = (TextView) findViewById(R.id.txt_baseactivity_title);
+        mTxtTitle = (TextView) findViewById(R.id.tv_game_name);
         mTvCount = (TextView) findViewById(R.id.tv_count);
         mTvTime = (TextView) findViewById(R.id.tv_time);
         mTvBouns = (TextView) findViewById(R.id.tv_bouns);
@@ -58,16 +75,111 @@ public class GameDetailActivity extends BaseActivity {
         mLlInfos = (LinearLayout) findViewById(R.id.ll_infos);
         TitleBarUtils.getInstance().setTitle(this, "任务详情")
                 .setTitleFinish(this);
-    }
+        mWebText.setWebChromeClient(new WebChromeClient() {
 
+        });
+        mWebText.getSettings().setJavaScriptEnabled(true);
+        mWebText.setWebViewClient(new WebViewClient() {
+            @Override
+            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
+                view.loadUrl(request.getUrl().toString());
+                return true;
+            }
+        });
+    }
 
     @Override
     public void initListener() {
-
+        mBtnTaskItem.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (PackageUtil.isAppInstalled(SheepApp.mContext, mTask.getTask().getPkg())) {
+                    PackageUtil.startApp(SheepApp.mContext, mTask.getTask().getPkg());
+                } else {
+                    Intent intent = new Intent(GameDetailActivity.this, DownloadActivity.class);
+                    intent.putExtra("task", mTask.getTask());
+                    startActivity(intent);
+                }
+            }
+        });
     }
 
     @Override
     public void initData() {
+        Intent intent = getIntent();
+        mTask = (TaskPublish) intent.getSerializableExtra("data");
+        if (mTask != null) {
+            mTvTime.setText(String.format("截止日期:%s", mTask.getOverTime()));
+            mTvBouns.setText(mTask.getTask().getBonus());
+            mTvMoney.setText(mTask.getTask().getPrice());
+            Glide.with(SheepApp.mContext)
+                    .load(mTask.getTask().getIcon())
+                    .placeholder(R.drawable.icon)
+                    .dontAnimate()
+                    .into(mImgIcon);
+            mTxtTitle.setText(mTask.getTask().getTitle());
+            mWebText.loadUrl(mTask.getTask().getGuide());
+            mTvCount.setText(Html.fromHtml(HTML_FORMAT.replace("当前数量", mTask.getSurplusCount() + "")
+                    .replace("总数", mTask.getTotalCouont() + "")));
+            if (PackageUtil.isAppInstalled(SheepApp.mContext, mTask.getTask().getPkg())) {
+                mBtnTaskItem.setText("开始游戏");
+            } else {
+                mBtnTaskItem.setText("下载游戏");
+            }
+        }
+        HashMap<String, String> map = new HashMap<>();
+        map.put("wx_open_id", SpUtils.getOpenId(SheepApp.mContext));
+        NetManager.get(Url.USER_PULL_TASK, map, SheepApp.mContext, new SheepCallback<TaskPublish>(GameDetailActivity.this) {
+            @Override
+            public void success(final TaskPublish taskPublish) {
+                if (taskPublish != null) {
+                    int thisId = mTask.getTask().getId();
+                    int pullId = taskPublish.getTask().getId();
+                    if (thisId == pullId) {
+                        mLlInfos.addView(getStep("领取任务", "已完成", 0));
+                        if (PackageUtil.isAppInstalled(SheepApp.mContext, mTask.getTask().getPkg())) {
+                            mLlInfos.addView(getStep("下载游戏", "已完成", 0));
+                            mLlInfos.addView(getStep("完成任务", "进行中", 1));
+                        } else {
+                            mLlInfos.addView(getStep("下载游戏", "待完成", 2));
+                        }
+                    } else {
+                        mLlInfos.addView(getStep("领取任务", "待完成", 2));
+                    }
+                } else {
+                    mLlInfos.addView(getStep("领取任务", "待完成", 2));
+                }
+            }
+
+            @Override
+            public void otherCode(int code, String string) {
+                mLlInfos.addView(getStep("领取任务", "待完成", 2));
+            }
+        });
+    }
+
+
+    private View getStep(String step, String state, int color) {
+        View view = View.inflate(this, R.layout.task_step_info, null);
+        ImageView img = view.findViewById(R.id.img_tab);
+        TextView tvStep = view.findViewById(R.id.tv_step);
+        TextView tvStatus = view.findViewById(R.id.tv_status);
+        if (color == 0) {
+            img.setImageResource(R.drawable.garden_green);
+            tvStep.setTextColor(getResources().getColor(R.color.green));
+            tvStatus.setTextColor(getResources().getColor(R.color.green));
+        } else if (color == 1) {
+            img.setImageResource(R.drawable.garden_yellow);
+            tvStep.setTextColor(getResources().getColor(R.color.yellow_text_light));
+            tvStatus.setTextColor(getResources().getColor(R.color.yellow_text_light));
+        } else {
+            img.setImageResource(R.drawable.garden_gray);
+            tvStep.setTextColor(getResources().getColor(R.color.black_text_gray));
+            tvStatus.setTextColor(getResources().getColor(R.color.black_text_gray));
+        }
 
+        tvStep.setText(step);
+        tvStatus.setText(state);
+        return view;
     }
 }

+ 17 - 14
app/src/main/java/com/sheep/jiuyan/samllsheep/page/adapter/AdpMainActivity.java

@@ -2,6 +2,7 @@ package com.sheep.jiuyan.samllsheep.page.adapter;
 
 import android.content.Context;
 import android.content.Intent;
+import android.content.pm.PackageInfo;
 import android.text.Html;
 import android.view.View;
 import android.widget.ImageView;
@@ -9,10 +10,12 @@ import android.widget.TextView;
 
 import com.bumptech.glide.Glide;
 import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.page.GameDetailActivity;
 import com.sheep.jiuyan.samllsheep.page.WebActivity;
 import com.sheep.jiuyan.samllsheep.page.entry.TaskPublish;
 import com.sheep.jiuyan.samllsheep.utils.G;
+import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 
 /**
  * @ Created by Dlg
@@ -47,7 +50,7 @@ public class AdpMainActivity extends AdpCommonRecy<TaskPublish> {
     }
 
     @Override
-    public void convert(ViewHolder holder, TaskPublish taskPublish) {
+    public void convert(ViewHolder holder, final TaskPublish taskPublish) {
 
         holder.itemView.setTag(TAG_TASK, taskPublish);
         holder.getView(R.id.tv_guide, TextView.class)
@@ -70,27 +73,27 @@ public class AdpMainActivity extends AdpCommonRecy<TaskPublish> {
                 .dontAnimate()
                 .into(holder.getView(R.id.img_icon, ImageView.class));
 
-    }
-
-    @Override
-    public void onCreated(ViewHolder holder, int viewType) {
-        if (onClickListener != null) {
-            holder.itemView.setOnClickListener(onClickListener);
+        if (PackageUtil.isAppInstalled(SheepApp.mContext, taskPublish.getTask().getPkg())) {
+            holder.getView(R.id.btn_task_item, TextView.class).setText("开始游戏");
+        } else {
+            holder.getView(R.id.btn_task_item, TextView.class).setText("下载游戏");
         }
+
         holder.getView(R.id.tv_guide).setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 Intent intent = new Intent(mContext, GameDetailActivity.class);
-                intent.putExtra(WebActivity.INTENT_URL, (String) v.getTag(TAG_URL));
+                intent.putExtra("data", taskPublish);
                 mContext.startActivity(intent);
             }
         });
-        holder.getView(R.id.btn_task_item).setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                G.showToast("点下载游戏");
-            }
-        });
+    }
+
+    @Override
+    public void onCreated(ViewHolder holder, int viewType) {
+        if (onClickListener != null) {
+            holder.itemView.setOnClickListener(onClickListener);
+        }
     }
 
 }

+ 3 - 2
app/src/main/java/com/sheep/jiuyan/samllsheep/page/fragment/FgtMainPageTask.java

@@ -20,6 +20,7 @@ import com.sheep.jiuyan.samllsheep.net.NetManager;
 import com.sheep.jiuyan.samllsheep.net.SheepCallback;
 import com.sheep.jiuyan.samllsheep.net.Url;
 import com.sheep.jiuyan.samllsheep.page.DownloadActivity;
+import com.sheep.jiuyan.samllsheep.page.GameDetailActivity;
 import com.sheep.jiuyan.samllsheep.page.MoneyHistroyActivity;
 import com.sheep.jiuyan.samllsheep.page.TaskRecordActivity;
 import com.sheep.jiuyan.samllsheep.page.WebActivity;
@@ -294,8 +295,8 @@ public class FgtMainPageTask extends BaseFragment {
                     mTvGuide.setOnClickListener(new View.OnClickListener() {
                         @Override
                         public void onClick(View v) {
-                            Intent intent = new Intent(getActivity(), WebActivity.class);
-                            intent.putExtra("url", taskPublish.getTask().getGuide());
+                            Intent intent = new Intent(getActivity(), GameDetailActivity.class);
+                            intent.putExtra("data", taskPublish);
                             startActivity(intent);
                         }
                     });

+ 4 - 6
app/src/main/res/layout/game_detail_activity.xml

@@ -25,8 +25,8 @@
 
                 <ImageView
                     android:id="@+id/img_icon"
-                    android:layout_width="50dp"
-                    android:layout_height="50dp"
+                    android:layout_width="60dp"
+                    android:layout_height="60dp"
                     android:layout_alignParentStart="true"
                     android:layout_centerVertical="true"
                     android:layout_marginLeft="@dimen/content_padding"
@@ -42,13 +42,13 @@
                     android:orientation="vertical">
 
                     <TextView
-                        android:id="@+id/txt_baseactivity_title"
+                        android:id="@+id/tv_game_name"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:gravity="center_vertical"
                         android:text="title"
                         android:textColor="@color/black_text_deep"
-                        android:textSize="@dimen/text_size_4"/>
+                        android:textSize="@dimen/text_size_3"/>
 
 
                     <TextView
@@ -81,7 +81,6 @@
                     android:layout_alignParentRight="true"
                     android:layout_marginBottom="@dimen/content_padding"
                     android:layout_marginRight="10dp"
-                    android:text="5.00"
                     android:textColor="@color/orange_text_light"
                     android:textSize="@dimen/text_size_5"
                     android:textStyle="bold"
@@ -110,7 +109,6 @@
                     android:layout_centerVertical="true"
                     android:layout_marginBottom="@dimen/content_padding"
                     android:layout_toStartOf="@+id/tv_text1"
-                    android:text="5.00"
                     android:textColor="@color/orange_text_light"
                     android:textSize="@dimen/text_size_5"
                     android:textStyle="bold"/>

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

@@ -114,6 +114,7 @@
         android:visibility="gone"/>
 
     <TextView
+        android:padding="@dimen/content_padding_small"
         android:id="@+id/tv_guide"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"

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

@@ -10,6 +10,7 @@
     <color name="black_text_gray">#898989</color>
     <color name="black_text_light">#bbbbbb</color>
     <color name="orange_text_light">#ef712c</color>
+    <color name="yellow_text_light">#edea04</color>
     <!--APP中的主要非白色背景的底色-->
     <color name="background_light_gray">#efefef</color>
     <!--分割线的统一颜色-->