diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java index e7040d443a..76dd2594ba 100644 --- a/app/src/main/java/com/gh/gamecenter/MainActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java @@ -549,81 +549,117 @@ public class MainActivity extends BaseFragmentActivity implements }); AppController.addToRequestQueue(request, MainActivity.class); } + private Class intentClass(String to) { + Class aClass = null; + try { + aClass = Class.forName("com.gh.gamecenter."+to); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } + + return aClass; + } Runnable runnable = new Runnable() { @Override public void run() { - String from = getIntent().getStringExtra("from"); - if (!TextUtils.isEmpty(from)) { - if (from.equals("plugin")) { - String packageName = getIntent().getStringExtra( - "packageName"); - Intent intent = new Intent(MainActivity.this, - DownloadManagerActivity.class); - intent.putExtra("currentItem", 1); - intent.putExtra("packageName", packageName); - startActivity(intent); - } else if (from.equals("mipush_news")) { - Intent intent = new Intent(MainActivity.this, - NewsActivity.class); - intent.putExtra("entrance", "小米推送"); - intent.putExtra("entity", - getIntent().getSerializableExtra("entity")); - startActivity(intent); - } else if (from.equals("mipush_new_game")) { - Intent intent = new Intent(MainActivity.this, - GameDetailsActivity.class); - intent.putExtra("entrance", "小米推送"); - startActivity(intent); - } else if (from.equals("mipush_plugin")) { - try { - JSONObject jsonObject = new JSONObject(getIntent() - .getStringExtra("data")); - JSONArray jsonArray = jsonObject.getJSONArray("apk"); - ArrayList list = new ArrayList(); - for (int i = 0; i < jsonArray.length(); i++) { - JSONObject apk = jsonArray.getJSONObject(i); - String packageName = apk.getString("package"); - if (PackageManager.isInstalled(packageName)) { - // 判断是否gh_version是否相同 - String gh_version = (String) PackageUtils - .getMetaData(getApplicationContext(), - packageName, "gh_version"); - if (gh_version != null) { - gh_version = gh_version.substring(2); - // 判断gh_version是否相同 - if (gh_version.equals(apk - .getString("gh_version"))) { - // 判断version是否相同 - String version = PackageUtils - .getVersionByPackage( - getApplicationContext(), - packageName); - if (version != null && version.equals(apk - .getString("version"))) { - // 版本相同,无需显示插件更新,继续查看是否有可更新的游戏包 - continue; - } - } - } - list.add(packageName); - } - } + + String to = getIntent().getExtras().getString("to"); + if(!TextUtils.isEmpty(to)){ + Intent toIntent = new Intent(getApplicationContext(),intentClass(to)); + + if("NewsActivity".equals(to)){ + toIntent.putExtra("newsId", getIntent().getExtras().getString("newsId")); + toIntent.putExtra("entrance", getIntent().getExtras().getString("entrance")); + }else if("DownloadManagerActivity".equals(to)){ + toIntent.putExtra("packageName" , getIntent().getExtras().getString("packageName")); + toIntent.putExtra("currentItem" , 1); + }else if ("GameDetailsActivity".equals(to)){ + toIntent.putExtra("gameId", getIntent().getExtras().getString("gameId")); + toIntent.putExtra("entrance", getIntent().getExtras().getString("entrance")); + }else if ("SubjectActivity".equals(to)){ + toIntent.putExtra("id", getIntent().getExtras().getString("id")); + toIntent.putExtra("name", getIntent().getExtras().getString("name")); + toIntent.putExtra("order", getIntent().getExtras().getBoolean("order")); + }else if ("ViewImageActivity".equals(to)){ + toIntent.putExtra("urls" , getIntent().getExtras().getStringArrayList("urls")); + toIntent.putExtra("current" , getIntent().getExtras().getInt("current",0)); + toIntent.putExtra("ScaleType" , getIntent().getExtras().getString("ScaleType")); + } + startActivity(toIntent); + }else { + String from = getIntent().getStringExtra("from"); + if (!TextUtils.isEmpty(from)) { + if (from.equals("plugin")) { + String packageName = getIntent().getStringExtra( + "packageName"); Intent intent = new Intent(MainActivity.this, DownloadManagerActivity.class); intent.putExtra("currentItem", 1); - intent.putExtra("isPushIntent", true); + intent.putExtra("packageName", packageName); startActivity(intent); - } catch (JSONException e) { + } else if (from.equals("mipush_news")) { + Intent intent = new Intent(MainActivity.this, + NewsActivity.class); + intent.putExtra("entrance", "小米推送"); + intent.putExtra("entity", + getIntent().getSerializableExtra("entity")); + startActivity(intent); + } else if (from.equals("mipush_new_game")) { + Intent intent = new Intent(MainActivity.this, + GameDetailsActivity.class); + intent.putExtra("entrance", "小米推送"); + startActivity(intent); + } else if (from.equals("mipush_plugin")) { + try { + JSONObject jsonObject = new JSONObject(getIntent() + .getStringExtra("data")); + JSONArray jsonArray = jsonObject.getJSONArray("apk"); + ArrayList list = new ArrayList(); + for (int i = 0; i < jsonArray.length(); i++) { + JSONObject apk = jsonArray.getJSONObject(i); + String packageName = apk.getString("package"); + if (PackageManager.isInstalled(packageName)) { + // 判断是否gh_version是否相同 + String gh_version = (String) PackageUtils + .getMetaData(getApplicationContext(), + packageName, "gh_version"); + if (gh_version != null) { + gh_version = gh_version.substring(2); + // 判断gh_version是否相同 + if (gh_version.equals(apk + .getString("gh_version"))) { + // 判断version是否相同 + String version = PackageUtils + .getVersionByPackage( + getApplicationContext(), + packageName); + if (version != null && version.equals(apk + .getString("version"))) { + // 版本相同,无需显示插件更新,继续查看是否有可更新的游戏包 + continue; + } + } + } + list.add(packageName); + } + } + Intent intent = new Intent(MainActivity.this, + DownloadManagerActivity.class); + intent.putExtra("currentItem", 1); + intent.putExtra("isPushIntent", true); + startActivity(intent); + } catch (JSONException e) { - e.printStackTrace(); + e.printStackTrace(); + } + } else if (from.equals("plugin_install")) { + Intent intent = new Intent(MainActivity.this, + DownloadManagerActivity.class); + intent.putExtra("currentItem", 0); + intent.putExtra("path", getIntent().getStringExtra("path")); + startActivity(intent); } - } else if (from.equals("plugin_install")) { - Intent intent = new Intent(MainActivity.this, - DownloadManagerActivity.class); - intent.putExtra("currentItem", 0); - intent.putExtra("path", getIntent().getStringExtra("path")); - startActivity(intent); } } } diff --git a/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java b/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java index bd1374ad10..88056d41b9 100644 --- a/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java @@ -676,17 +676,23 @@ public class SplashScreenActivity extends BaseActivity { Intent intent = new Intent(SplashScreenActivity.this, MainActivity.class); - intent.putExtra("from", from); - if ("plugin".equals(from)) { - intent.putExtra("packageName", - getIntent().getStringExtra("packageName")); - } else if ("mipush_news".equals(from)) { - intent.putExtra("entity", - getIntent().getSerializableExtra("entity")); - } else if ("mipush_plugin".equals(from)) { - intent.putExtra("data", getIntent().getStringExtra("data")); - } else if ("plugin_install".equals(from)) { - intent.putExtra("path", getIntent().getStringExtra("path")); + + Bundle bundle = getIntent().getExtras(); + if(bundle != null &&bundle.getString("to") != null){ + intentControl(bundle,intent); + }else { + intent.putExtra("from", from); + if ("plugin".equals(from)) { + intent.putExtra("packageName", + getIntent().getStringExtra("packageName")); + } else if ("mipush_news".equals(from)) { + intent.putExtra("entity", + getIntent().getSerializableExtra("entity")); + } else if ("mipush_plugin".equals(from)) { + intent.putExtra("data", getIntent().getStringExtra("data")); + } else if ("plugin_install".equals(from)) { + intent.putExtra("path", getIntent().getStringExtra("path")); + } } end = System.currentTimeMillis(); @@ -697,5 +703,26 @@ public class SplashScreenActivity extends BaseActivity { finish(); } } + private void intentControl(Bundle bundle, Intent intent) { + String to = bundle.getString("to"); + if("NewsActivity".equals(to)){ + intent.putExtra("newsId" , bundle.getString("newsId")); + intent.putExtra("entrance" , bundle.getString("entrance")); + }else if("DownloadManagerActivity".equals(to)){ + intent.putExtra("packageName" , bundle.getString("packageName")); + }else if ("GameDetailsActivity".equals(to)){ + intent.putExtra("gameId" , bundle.getString("gameId")); + intent.putExtra("entrance" , bundle.getString("entrance")); + }else if ("SubjectActivity".equals(to)){ + intent.putExtra("id" , bundle.getString("id")); + intent.putExtra("name" , bundle.getString("name")); + intent.putExtra("order" , bundle.getBoolean("order")); + }else if ("ViewImageActivity".equals(to)){ + intent.putExtra("urls" , bundle.getStringArrayList("urls")); + intent.putExtra("current" , bundle.getInt("current",0)); + intent.putExtra("ScaleType" , bundle.getString("ScaleType")); + } + intent.putExtra("to" , to); + } }