From cfa70feac5205f37559b331ae1458c692eb9208e Mon Sep 17 00:00:00 2001
From: huangzhuanghua <401742778@qq.com>
Date: Wed, 26 Apr 2017 15:56:19 +0800
Subject: [PATCH] =?UTF-8?q?=E5=BA=94=E7=94=A8=E4=B8=8A=E6=8A=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/src/main/AndroidManifest.xml | 2 +-
.../main/java/com/gh/base/BaseActivity.java | 42 +++++++++-
.../com/gh/base/BaseFragmentActivity.java | 44 +++++++++-
.../main/java/com/gh/base/HomeFragment.java | 10 +--
.../gh/common/util/DataCollectionUtils.java | 9 ++
.../java/com/gh/common/util/InstallUtils.java | 2 +-
.../java/com/gh/common/util/PackageUtils.java | 24 ++++++
.../java/com/gh/download/DownloadService.java | 5 +-
.../java/com/gh/gamecenter/MainActivity.java | 61 ++++++++++++++
.../com/gh/gamecenter/SearchActivity.java | 46 +++++++++-
.../viewholder/GameNormalViewHolder.java | 4 +-
.../viewholder/GameTestViewHolder.java | 4 +-
.../manager/DataCollectionManager.java | 13 ++-
.../newsdetail/NewsDetailAdapter.java | 83 +++++++++++++++++--
app/src/main/res/layout/activity_suggest.xml | 5 +-
15 files changed, 325 insertions(+), 29 deletions(-)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 23339ae398..0f76e8d532 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -168,7 +168,7 @@
android:name = "com.gh.gamecenter.SuggestSelectActivity"
android:screenOrientation = "portrait" />
clazz = window.getClass();
+ Class layoutParams = Class.forName("android.view.MiuiWindowManager$LayoutParams");
+ Field field = layoutParams.getField("EXTRA_FLAG_STATUS_BAR_DARK_MODE");
+ int darkModeFlag = field.getInt(layoutParams);
+ Method extraFlagField = clazz.getMethod("setExtraFlags", int.class, int.class);
+ extraFlagField.invoke(window, darkModeFlag, darkModeFlag);
+ }
+ } catch (Exception e){
+ e.printStackTrace();
+ }
+ }
}
setContentView(contentView);
diff --git a/app/src/main/java/com/gh/base/BaseFragmentActivity.java b/app/src/main/java/com/gh/base/BaseFragmentActivity.java
index 67f9bb75fd..561c03c5b2 100644
--- a/app/src/main/java/com/gh/base/BaseFragmentActivity.java
+++ b/app/src/main/java/com/gh/base/BaseFragmentActivity.java
@@ -20,8 +20,12 @@ import com.readystatesoftware.systembartint.SystemBarTintManager;
import com.readystatesoftware.systembartint.SystemBarTintManager.SystemBarConfig;
import de.greenrobot.event.EventBus;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
import java.util.ArrayList;
+import static com.tencent.open.utils.Global.getSharedPreferences;
+
public class BaseFragmentActivity extends FragmentActivity {
protected String entrance;
@@ -52,10 +56,48 @@ public class BaseFragmentActivity extends FragmentActivity {
setTranslucentStatus(true);
SystemBarTintManager tintManager = new SystemBarTintManager(this);
tintManager.setStatusBarTintEnabled(true);
- tintManager.setStatusBarTintColor(Color.BLACK);
+ if (Build.MANUFACTURER.equals("Meizu") || Build.MANUFACTURER.equals("Xiaomi")) {
+ tintManager.setStatusBarTintColor(Color.WHITE);
+ } else {
+ tintManager.setStatusBarTintColor(Color.BLACK);
+ }
SystemBarConfig config = tintManager.getConfig();
contentView.setPadding(0, config.getPixelInsetTop(false), 0,
config.getPixelInsetBottom());
+
+ if (Build.MANUFACTURER.equals("Meizu")) {
+ try {
+ Window window = getWindow();
+ if (window != null) {
+ WindowManager.LayoutParams lp = window.getAttributes();
+ Field darkFlag = WindowManager.LayoutParams.class.getDeclaredField("MEIZU_FLAG_DARK_STATUS_BAR_ICON");
+ Field meizuFlags = WindowManager.LayoutParams.class.getDeclaredField("meizuFlags");
+ darkFlag.setAccessible(true);
+ meizuFlags.setAccessible(true);
+ int bit = darkFlag.getInt(null);
+ int value = meizuFlags.getInt(lp);
+ value |= bit;
+ meizuFlags.setInt(lp, value);
+ window.setAttributes(lp);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ } else if (Build.MANUFACTURER.equals("Xiaomi")) {
+ try {
+ Window window = getWindow();
+ if (window != null) {
+ Class> clazz = window.getClass();
+ Class layoutParams = Class.forName("android.view.MiuiWindowManager$LayoutParams");
+ Field field = layoutParams.getField("EXTRA_FLAG_STATUS_BAR_DARK_MODE");
+ int darkModeFlag = field.getInt(layoutParams);
+ Method extraFlagField = clazz.getMethod("setExtraFlags", int.class, int.class);
+ extraFlagField.invoke(window, darkModeFlag, darkModeFlag);
+ }
+ } catch (Exception e){
+ e.printStackTrace();
+ }
+ }
}
setContentView(contentView);
diff --git a/app/src/main/java/com/gh/base/HomeFragment.java b/app/src/main/java/com/gh/base/HomeFragment.java
index f30571b47b..3f8fdf056c 100644
--- a/app/src/main/java/com/gh/base/HomeFragment.java
+++ b/app/src/main/java/com/gh/base/HomeFragment.java
@@ -75,11 +75,11 @@ public class HomeFragment extends Fragment implements View.OnClickListener {
LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,DisplayUtils.dip2px(getActivity(), 55));
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
- int top = DisplayUtils.getStatusBarHeight(getResources());
- home_actionbar.setPadding(0, top, 0, 0);
- lparams.height += top;
- }
+// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
+// int top = DisplayUtils.getStatusBarHeight(getResources());
+// home_actionbar.setPadding(0, top, 0, 0);
+// lparams.height += top;
+// }
home_actionbar.setLayoutParams(lparams);
initActionBar();
diff --git a/app/src/main/java/com/gh/common/util/DataCollectionUtils.java b/app/src/main/java/com/gh/common/util/DataCollectionUtils.java
index ade8f2ac26..36e5d07684 100644
--- a/app/src/main/java/com/gh/common/util/DataCollectionUtils.java
+++ b/app/src/main/java/com/gh/common/util/DataCollectionUtils.java
@@ -11,6 +11,8 @@ import com.gh.gamecenter.manager.ConcernManager;
import com.gh.gamecenter.manager.DataCollectionManager;
import com.gh.gamecenter.manager.PackageManager;
+import org.json.JSONArray;
+
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
@@ -191,4 +193,11 @@ public class DataCollectionUtils {
DataCollectionManager.onEvent(context, "position", map);
}
+ //上传应用列表
+ public static void uploadAppList(Context context, JSONArray applist) {
+ Map map = new HashMap<>();
+ map.put("applist", applist);
+ DataCollectionManager.onEvent(context, "applist", map);
+ }
+
}
diff --git a/app/src/main/java/com/gh/common/util/InstallUtils.java b/app/src/main/java/com/gh/common/util/InstallUtils.java
index 1dec024ae2..d7a0745b59 100644
--- a/app/src/main/java/com/gh/common/util/InstallUtils.java
+++ b/app/src/main/java/com/gh/common/util/InstallUtils.java
@@ -34,7 +34,7 @@ public class InstallUtils {
public static InstallUtils getInstance(Context context) {
if (mInstance == null) {
- synchronized (CommentManager.class) {
+ synchronized (InstallUtils.class) {
if (mInstance == null) {
mInstance = new InstallUtils(context);
}
diff --git a/app/src/main/java/com/gh/common/util/PackageUtils.java b/app/src/main/java/com/gh/common/util/PackageUtils.java
index 4a693c3abf..c4774b6bde 100644
--- a/app/src/main/java/com/gh/common/util/PackageUtils.java
+++ b/app/src/main/java/com/gh/common/util/PackageUtils.java
@@ -14,6 +14,10 @@ import android.widget.Toast;
import com.gh.gamecenter.entity.GameUpdateEntity;
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
import java.io.ByteArrayInputStream;
import java.io.File;
import java.security.cert.CertificateException;
@@ -223,6 +227,26 @@ public class PackageUtils {
return list;
}
+ public static JSONArray getAppList(Context context) {
+ JSONArray jsonArray = new JSONArray();
+ try {
+ PackageManager pm = context.getPackageManager();
+ List packageInfos = pm.getInstalledPackages(0);
+ for (PackageInfo packageInfo : packageInfos) {
+ if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.put("name", pm.getApplicationLabel(packageInfo.applicationInfo).toString());
+ jsonObject.put("package", packageInfo.packageName);
+ jsonObject.put("version", packageInfo.versionName);
+ jsonArray.put(jsonObject);
+ }
+ }
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ return jsonArray;
+ }
+
/*
* 启动应用
*/
diff --git a/app/src/main/java/com/gh/download/DownloadService.java b/app/src/main/java/com/gh/download/DownloadService.java
index df0e5e7801..77622f1bc5 100644
--- a/app/src/main/java/com/gh/download/DownloadService.java
+++ b/app/src/main/java/com/gh/download/DownloadService.java
@@ -203,9 +203,8 @@ public class DownloadService extends Service {
private synchronized void removeAndCheckNext(DownloadEntity downloadEntity) {
DataChanger.getInstance().getDownloadingTasks().remove(downloadEntity.getUrl());
DataChanger.getInstance().getDownloadEntries().remove(downloadEntity.getUrl());
- for (Entry entry : DataChanger.getInstance()
- .getDownloadEntries().entrySet()) {
- if (entry.getValue().getStatus() == DownloadStatus.waiting) {
+ for (Entry entry : DataChanger.getInstance().getDownloadEntries().entrySet()) {
+ if (DownloadStatus.waiting.equals(entry.getValue().getStatus())) {
startDownload(entry.getValue());
return;
}
diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java
index 36c8073f99..21e05f7a8f 100644
--- a/app/src/main/java/com/gh/gamecenter/MainActivity.java
+++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java
@@ -15,6 +15,8 @@ import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
+import android.view.Window;
+import android.view.WindowManager;
import android.widget.*;
import com.gh.base.BaseFragmentActivity;
import com.gh.common.constant.Config;
@@ -31,6 +33,8 @@ import com.gh.gamecenter.news.NewsFragment;
import com.gh.gamecenter.personal.PersonalFragment;
import com.gh.gamecenter.retrofit.*;
import com.gh.gamecenter.retrofit.Response;
+import com.readystatesoftware.systembartint.SystemBarTintManager;
+
import de.greenrobot.event.EventBus;
import okhttp3.*;
import org.json.JSONArray;
@@ -43,6 +47,8 @@ import rx.functions.Func1;
import rx.schedulers.Schedulers;
import java.io.IOException;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
import java.util.*;
import java.util.concurrent.CountDownLatch;
import java.util.zip.ZipEntry;
@@ -282,6 +288,50 @@ public class MainActivity extends BaseFragmentActivity implements OnClickListene
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
setTheme(R.style.AppTheme);
setTranslucentStatus(true);
+ SystemBarTintManager tintManager = new SystemBarTintManager(this);
+ tintManager.setStatusBarTintEnabled(true);
+ if (Build.MANUFACTURER.equals("Meizu") || Build.MANUFACTURER.equals("Xiaomi")) {
+ tintManager.setStatusBarTintColor(Color.WHITE);
+ } else {
+ tintManager.setStatusBarTintColor(Color.BLACK);
+ }
+ SystemBarTintManager.SystemBarConfig config = tintManager.getConfig();
+ contentView.setPadding(0, config.getPixelInsetTop(false), 0,
+ config.getPixelInsetBottom());
+
+ if (Build.MANUFACTURER.equals("Meizu")) {
+ try {
+ Window window = getWindow();
+ if (window != null) {
+ WindowManager.LayoutParams lp = window.getAttributes();
+ Field darkFlag = WindowManager.LayoutParams.class.getDeclaredField("MEIZU_FLAG_DARK_STATUS_BAR_ICON");
+ Field meizuFlags = WindowManager.LayoutParams.class.getDeclaredField("meizuFlags");
+ darkFlag.setAccessible(true);
+ meizuFlags.setAccessible(true);
+ int bit = darkFlag.getInt(null);
+ int value = meizuFlags.getInt(lp);
+ value |= bit;
+ meizuFlags.setInt(lp, value);
+ window.setAttributes(lp);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ } else if (Build.MANUFACTURER.equals("Xiaomi")) {
+ try {
+ Window window = getWindow();
+ if (window != null) {
+ Class> clazz = window.getClass();
+ Class layoutParams = Class.forName("android.view.MiuiWindowManager$LayoutParams");
+ Field field = layoutParams.getField("EXTRA_FLAG_STATUS_BAR_DARK_MODE");
+ int darkModeFlag = field.getInt(layoutParams);
+ Method extraFlagField = clazz.getMethod("setExtraFlags", int.class, int.class);
+ extraFlagField.invoke(window, darkModeFlag, darkModeFlag);
+ }
+ } catch (Exception e){
+ e.printStackTrace();
+ }
+ }
}
setContentView(contentView);
@@ -646,6 +696,9 @@ public class MainActivity extends BaseFragmentActivity implements OnClickListene
PackageManager.init(list);
+ //应用上报
+ uploadAppList();
+
// 过滤助手收录的包
ArrayList localList = new ArrayList<>();
FilterManager filterManager = new FilterManager(this);
@@ -689,6 +742,14 @@ public class MainActivity extends BaseFragmentActivity implements OnClickListene
}
}
+ private void uploadAppList() {
+ //检查是否符合应用上报周期
+ long time = sp.getLong("last_upload_applist_time", 0);
+ if (Utils.getTime(this) - time >= 604800L) {//一周为一个周期
+ DataCollectionUtils.uploadAppList(this, PackageUtils.getAppList(this));
+ }
+ }
+
private void updateConcern() {
ArrayList concernIdList = new ArrayList<>();
for (ConcernInfo entity : concernManager.getAllConcern()) {
diff --git a/app/src/main/java/com/gh/gamecenter/SearchActivity.java b/app/src/main/java/com/gh/gamecenter/SearchActivity.java
index 64c69b799c..f3390a8946 100644
--- a/app/src/main/java/com/gh/gamecenter/SearchActivity.java
+++ b/app/src/main/java/com/gh/gamecenter/SearchActivity.java
@@ -2,12 +2,15 @@ package com.gh.gamecenter;
import android.app.ActionBar.LayoutParams;
import android.content.Context;
+import android.graphics.Color;
import android.os.*;
import android.support.v4.app.FragmentTransaction;
import android.text.*;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
+import android.view.Window;
+import android.view.WindowManager;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
import android.widget.*;
@@ -22,6 +25,9 @@ import com.gh.gamecenter.search.*;
import com.readystatesoftware.systembartint.SystemBarTintManager;
import com.readystatesoftware.systembartint.SystemBarTintManager.SystemBarConfig;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
public class SearchActivity extends BaseFragmentActivity {
@@ -65,10 +71,48 @@ public class SearchActivity extends BaseFragmentActivity {
setTranslucentStatus(true);
SystemBarTintManager tintManager = new SystemBarTintManager(this);
tintManager.setStatusBarTintEnabled(true);
- tintManager.setStatusBarTintResource(R.color.back);
+ if (Build.MANUFACTURER.equals("Meizu") || Build.MANUFACTURER.equals("Xiaomi")) {
+ tintManager.setStatusBarTintColor(Color.WHITE);
+ } else {
+ tintManager.setStatusBarTintColor(Color.BLACK);
+ }
SystemBarConfig config = tintManager.getConfig();
contentView.setPadding(0, config.getPixelInsetTop(false), 0,
config.getPixelInsetBottom());
+
+ if (Build.MANUFACTURER.equals("Meizu")) {
+ try {
+ Window window = getWindow();
+ if (window != null) {
+ WindowManager.LayoutParams lp = window.getAttributes();
+ Field darkFlag = WindowManager.LayoutParams.class.getDeclaredField("MEIZU_FLAG_DARK_STATUS_BAR_ICON");
+ Field meizuFlags = WindowManager.LayoutParams.class.getDeclaredField("meizuFlags");
+ darkFlag.setAccessible(true);
+ meizuFlags.setAccessible(true);
+ int bit = darkFlag.getInt(null);
+ int value = meizuFlags.getInt(lp);
+ value |= bit;
+ meizuFlags.setInt(lp, value);
+ window.setAttributes(lp);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ } else if (Build.MANUFACTURER.equals("Xiaomi")) {
+ try {
+ Window window = getWindow();
+ if (window != null) {
+ Class> clazz = window.getClass();
+ Class layoutParams = Class.forName("android.view.MiuiWindowManager$LayoutParams");
+ Field field = layoutParams.getField("EXTRA_FLAG_STATUS_BAR_DARK_MODE");
+ int darkModeFlag = field.getInt(layoutParams);
+ Method extraFlagField = clazz.getMethod("setExtraFlags", int.class, int.class);
+ extraFlagField.invoke(window, darkModeFlag, darkModeFlag);
+ }
+ } catch (Exception e){
+ e.printStackTrace();
+ }
+ }
}
setContentView(contentView);
diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNormalViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNormalViewHolder.java
index 0a7a92b487..0471a79954 100644
--- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNormalViewHolder.java
+++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameNormalViewHolder.java
@@ -9,8 +9,6 @@ import android.widget.TextView;
import com.facebook.drawee.view.SimpleDraweeView;
import com.gh.gamecenter.R;
-import static com.gh.gamecenter.R.id.home1_game_order;
-
public class GameNormalViewHolder extends GameViewHolder {
@@ -18,7 +16,7 @@ public class GameNormalViewHolder extends GameViewHolder {
super(itemView);
gameLibaoIcon = (ImageView) itemView.findViewById(R.id.home1_game_libao);
- gameOrder = (TextView) itemView.findViewById(home1_game_order);
+ gameOrder = (TextView) itemView.findViewById(R.id.home1_game_order);
gameThumb = (SimpleDraweeView) itemView.findViewById(R.id.home1_game_thumb);
gameName = (TextView) itemView.findViewById(R.id.home1_game_nameAndsize);
gameDownloadBtn = (TextView) itemView.findViewById(R.id.home1_download_btn);
diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameTestViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameTestViewHolder.java
index 59f4cf71b8..9936fcc0e6 100644
--- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameTestViewHolder.java
+++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/GameTestViewHolder.java
@@ -9,8 +9,6 @@ import android.widget.TextView;
import com.facebook.drawee.view.SimpleDraweeView;
import com.gh.gamecenter.R;
-import static com.gh.gamecenter.R.id.home2_game_order;
-
public class GameTestViewHolder extends GameViewHolder {
@@ -21,7 +19,7 @@ public class GameTestViewHolder extends GameViewHolder {
super(itemView);
gameLibaoIcon = (ImageView) itemView.findViewById(R.id.home2_game_libao);
- gameOrder = (TextView) itemView.findViewById(home2_game_order);
+ gameOrder = (TextView) itemView.findViewById(R.id.home2_game_order);
gameThumb = (SimpleDraweeView) itemView.findViewById(R.id.home2_game_thumb);
gameName = (TextView) itemView.findViewById(R.id.home2_game_nameAndsize);
gameDownloadBtn = (TextView) itemView.findViewById(R.id.home2_download_btn);
diff --git a/app/src/main/java/com/gh/gamecenter/manager/DataCollectionManager.java b/app/src/main/java/com/gh/gamecenter/manager/DataCollectionManager.java
index e84cc79cb6..cc4588af19 100644
--- a/app/src/main/java/com/gh/gamecenter/manager/DataCollectionManager.java
+++ b/app/src/main/java/com/gh/gamecenter/manager/DataCollectionManager.java
@@ -2,6 +2,7 @@ package com.gh.gamecenter.manager;
import android.content.Context;
+import com.gh.common.constant.Config;
import com.gh.common.util.Installation;
import com.gh.common.util.PackageUtils;
import com.gh.common.util.TokenUtils;
@@ -134,7 +135,7 @@ public class DataCollectionManager {
/*
* 实时上传
*/
- private void realTimeUpload(String type, Map map) {
+ private void realTimeUpload(final String type, Map map) {
String version = PackageUtils.getVersionName(mContext);
String user = Installation.getUUID(mContext);
String channel = (String) PackageUtils.getMetaData(mContext,
@@ -152,7 +153,15 @@ public class DataCollectionManager {
RetrofitManager.getData().postRealData(body)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
- .subscribe(new Response());
+ .subscribe(new Response() {
+ @Override
+ public void onResponse(ResponseBody response) {
+ if ("applist".equals(type)) {
+ mContext.getSharedPreferences(Config.PREFERENCE, Context.MODE_PRIVATE)
+ .edit().putLong("last_upload_applist_time", Utils.getTime(mContext)).apply();
+ }
+ }
+ });
}
/*
diff --git a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java
index 044143a8a1..4a3058c496 100644
--- a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java
+++ b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java
@@ -5,6 +5,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
+import android.net.Uri;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.ViewHolder;
import android.text.TextUtils;
@@ -34,10 +35,13 @@ import com.gh.common.util.NewsUtils;
import com.gh.common.util.PostCommentUtils;
import com.gh.common.util.RandomUtils;
import com.gh.common.util.Utils;
+import com.gh.gamecenter.LibaoDetailActivity;
import com.gh.gamecenter.MessageDetailActivity;
import com.gh.gamecenter.NewsDetailActivity;
import com.gh.gamecenter.R;
+import com.gh.gamecenter.SubjectActivity;
import com.gh.gamecenter.ViewImageActivity;
+import com.gh.gamecenter.WebActivity;
import com.gh.gamecenter.adapter.BaseRecyclerAdapter;
import com.gh.gamecenter.adapter.viewholder.NewsDetailCommentListViewHolder;
import com.gh.gamecenter.db.VoteDao;
@@ -70,6 +74,8 @@ import retrofit2.adapter.rxjava.HttpException;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
+import static anetwork.channel.http.NetworkSdkSetting.context;
+
/**
* Created by LGT on 2016/9/13.
* 新闻详情数据适配器
@@ -614,18 +620,83 @@ public class NewsDetailAdapter extends BaseRecyclerAdapter {
+ " window.imagelistener.openImage(this.src);"
+ " }"
+ "}"
- + "var as = document.getElementsByTagName(\"a\");"
- + "for (var i = 0; i < as.length; i++) {"
- + " as[i].onclick = function() {"
- + " window.imagelistener.skip(this.mId, this.mType);"
- + " }"
- + "}"
+// + "var as = document.getElementsByTagName(\"a\");"
+// + "for (var i = 0; i < as.length; i++) {"
+// + " as[i].onclick = function() {"
+// + " window.imagelistener.skip(this.mId, this.mType);"
+// + " }"
+// + "}"
+ "})()");
super.onPageFinished(view, url);
mListener.loadDone(mNewsDetailEntity.getGameId());
// 获取相关推荐
getNewsMore();
}
+
+ @Override
+ public boolean shouldOverrideUrlLoading(WebView view, String url) {
+ Uri uri = Uri.parse(url);
+ if ("ghzhushou".equals(uri.getScheme())) {
+ Utils.log("url = " + uri.getScheme());
+ String host = uri.getHost();
+ if ("article".equals(host)) {
+ String id = uri.getPath().substring(1);
+ Intent intent = new Intent(context, NewsDetailActivity.class);
+ intent.putExtra("newsId", id);
+ intent.putExtra("entrance", mEntrance + "+(新闻详情[" + mNewsDetailEntity.getTitle() + "])");
+ context.startActivity(intent);
+ } else if ("game".equals(host)) {
+ String id = uri.getPath().substring(1);
+ GameUtils.startGameDetailActivity(context, id, mEntrance + "+(新闻详情[" + mNewsDetailEntity.getTitle() + "])");
+ } else if ("column".equals(host)) {
+ String id = uri.getPath().substring(1);
+ String name = uri.getQueryParameter("name");
+ Intent intent = new Intent(context, SubjectActivity.class);
+ intent.putExtra("id", id);
+ intent.putExtra("name", name);
+ intent.putExtra("entrance", mEntrance + "+(新闻详情[" + mNewsDetailEntity.getTitle() + "])");
+ context.startActivity(intent);
+ } else if ("libao".equals(host)) {
+ String id = uri.getPath().substring(1);
+ Intent intent = new Intent(context, LibaoDetailActivity.class);
+ intent.putExtra("id", id);
+ intent.putExtra("entrance", mEntrance + "+(新闻详情[" + mNewsDetailEntity.getTitle() + "])");
+ context.startActivity(intent);
+ } else if ("qq".equals(host)) {
+ String qq = uri.getPath().substring(1);
+ Intent intent = new Intent();
+ intent.setAction(Intent.ACTION_VIEW);
+ intent.setData(Uri.parse("mqqwpa://im/chat?chat_type=wpa&uin=" + qq));
+ try {
+ context.startActivity(intent);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ } else if ("qqqun".equals(host)) {
+ String key = uri.getQueryParameter("key");
+ Intent intent = new Intent();
+ intent.setData(Uri.parse("mqqopensdkapi://bizAgent/qm/qr?url=http%3A%2F%2Fqm.qq.com%2Fcgi-bin%2Fqm%2Fqr%3Ffrom%3Dapp%26p%3Dandroid%26k%3D" + key));
+ // 此Flag可根据具体产品需要自定义,如设置,则在加群界面按返回,返回手Q主界面,不设置,按返回会返回到呼起产品界面
+ // intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+ try {
+ context.startActivity(intent);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ } else if ("inurl".equals(host)) {
+ Intent intent = new Intent(context, WebActivity.class);
+ intent.putExtra("url", uri.getQueryParameter("url"));
+ context.startActivity(intent);
+ } else if ("outurl".equals(host)) {
+ Intent intent = new Intent();
+ intent.setAction(Intent.ACTION_VIEW);
+ intent.setData(Uri.parse(uri.getQueryParameter("url")));
+ context.startActivity(intent);
+ }
+ return true;
+ }
+ return super.shouldOverrideUrlLoading(view, url);
+ }
});
viewHolder.newsdetail_item_wv_content.setTag("show");
}
diff --git a/app/src/main/res/layout/activity_suggest.xml b/app/src/main/res/layout/activity_suggest.xml
index eece92b364..8411e0c448 100644
--- a/app/src/main/res/layout/activity_suggest.xml
+++ b/app/src/main/res/layout/activity_suggest.xml
@@ -1,5 +1,6 @@
-
@@ -9,7 +10,7 @@
+ android:background="@color/cutting_line"/>