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"/>