diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 182f2a8376..87c5dacdb1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -222,6 +222,10 @@ + + diff --git a/app/src/main/java/com/gh/base/AppController.java b/app/src/main/java/com/gh/base/AppController.java index 6b85c49c71..2c28883dfa 100644 --- a/app/src/main/java/com/gh/base/AppController.java +++ b/app/src/main/java/com/gh/base/AppController.java @@ -10,15 +10,15 @@ import android.support.v4.util.ArrayMap; import android.text.TextUtils; import android.util.Log; -import com.bandeng.MyEventBusIndex; import com.facebook.drawee.backends.pipeline.Fresco; +import com.gh.EventBusIndex; import com.gh.common.constant.Config; import com.gh.common.util.DataUtils; import com.gh.common.util.StringUtils; import com.gh.common.util.TokenUtils; -import com.lightgame.utils.Utils; import com.gh.gamecenter.BuildConfig; import com.leon.channel.helper.ChannelReaderUtil; +import com.lightgame.utils.Utils; import com.umeng.message.IUmengRegisterCallback; import com.umeng.message.PushAgent; import com.umeng.message.UTrack; @@ -124,10 +124,6 @@ public class AppController extends Application { try { if (shouldInit()) { MiPushClient.registerPush(this, Config.MIPUSH_APPID, Config.MIPUSH_APPKEY); - if (BuildConfig.DEBUG) { - MiPushClient.registerPush(this, Config.DEBUG_MIPUSH_APPID, Config.DEBUG_MIPUSH_APPKEY); - } - } } catch (Exception e) { e.printStackTrace(); @@ -158,10 +154,6 @@ public class AppController extends Application { //友盟推送 final PushAgent pushAgent = PushAgent.getInstance(this); pushAgent.setAppkeyAndSecret(Config.UMENG_APPKEY, Config.UMENG_MESSAGE_SECRET); - if (BuildConfig.DEBUG) { - // 设置debug的key,覆盖掉原值,非debug build这个if分支会被去掉 - pushAgent.setAppkeyAndSecret(Config.DEBUG_UMENG_APPKEY, Config.DEBUG_UMENG_MESSAGE_SECRET); - } //注册推送服务,每次调用register方法都会回调该接口 pushAgent.register(new IUmengRegisterCallback() { @@ -213,7 +205,7 @@ public class AppController extends Application { // } // 启用EventBus3.0加速功能 - EventBus.builder().addIndex(new MyEventBusIndex()).installDefaultEventBus(); + EventBus.builder().addIndex(new EventBusIndex()).installDefaultEventBus(); } private boolean shouldInit() { diff --git a/app/src/main/java/com/gh/base/BaseActivity.java b/app/src/main/java/com/gh/base/BaseActivity.java index ec3574d36a..ab4831eb32 100644 --- a/app/src/main/java/com/gh/base/BaseActivity.java +++ b/app/src/main/java/com/gh/base/BaseActivity.java @@ -2,21 +2,17 @@ package com.gh.base; import android.os.Build; import android.os.Bundle; -import android.preference.PreferenceManager; import android.view.View; import android.view.View.OnClickListener; -import android.view.ViewGroup.LayoutParams; -import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; -import com.gh.download.DownloadManager; import com.gh.common.util.DataUtils; import com.gh.common.util.DialogUtils; -import com.gh.common.util.DisplayUtils; import com.gh.common.util.PackageUtils; import com.gh.common.util.RunningUtils; import com.gh.common.util.ShareUtils; +import com.gh.download.DownloadManager; import com.gh.gamecenter.R; import com.gh.gamecenter.eventbus.EBShowDialog; import com.lightgame.download.FileUtils; @@ -34,7 +30,7 @@ import butterknife.ButterKnife; import static com.gh.common.util.EntranceUtils.KEY_DATA; import static com.gh.common.util.EntranceUtils.KEY_ENTRANCE; -public abstract class BaseActivity extends BaseAppCompatToolBarActivity implements OnRequestCallBackListener { +public abstract class BaseActivity extends BaseAppCompatToolBarActivity { protected String mEntrance; private boolean mIsPause; @@ -65,21 +61,14 @@ public abstract class BaseActivity extends BaseAppCompatToolBarActivity implemen ButterKnife.bind(this); - View reuse_actionbar = findViewById(R.id.reuse_actionbar); - if (reuse_actionbar != null) { - int actionbar_height = PreferenceManager.getDefaultSharedPreferences(this) - .getInt("actionbar_height", DisplayUtils.dip2px(getApplicationContext(), 55)); - LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, actionbar_height); - reuse_actionbar.setLayoutParams(lparams); - - findViewById(R.id.actionbar_rl_back).setOnClickListener( - new OnClickListener() { - @Override - public void onClick(View v) { - finish(); - } - }); - } + View back = findViewById(R.id.actionbar_rl_back); + if (back != null) + back.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } protected void initTitle(String title) { @@ -161,24 +150,4 @@ public abstract class BaseActivity extends BaseAppCompatToolBarActivity implemen DownloadManager.getInstance(this).initGameMap(); } - @Override - public void loadDone() { - - } - - @Override - public void loadDone(Object obj) { - - } - - @Override - public void loadError() { - - } - - @Override - public void loadEmpty() { - - } - } diff --git a/app/src/main/java/com/gh/base/BaseAppCompatToolBarActivity.java b/app/src/main/java/com/gh/base/BaseAppCompatToolBarActivity.java index c692141925..a730026ae2 100644 --- a/app/src/main/java/com/gh/base/BaseAppCompatToolBarActivity.java +++ b/app/src/main/java/com/gh/base/BaseAppCompatToolBarActivity.java @@ -1,15 +1,19 @@ package com.gh.base; +import android.annotation.TargetApi; import android.graphics.Color; import android.os.Build; import android.os.Bundle; import android.support.v7.widget.Toolbar; import android.view.MenuItem; +import android.view.View; import android.view.Window; import android.view.WindowManager; import com.gh.gamecenter.R; import com.lightgame.BaseAppCompatActivity; +import com.lightgame.ToolbarContainer; +import com.lightgame.ToolbarController; import com.readystatesoftware.systembartint.SystemBarTintManager; import java.lang.reflect.Field; @@ -18,6 +22,7 @@ import java.lang.reflect.Method; /** * Created by csheng on 15-10-12. */ +@ToolbarContainer public abstract class BaseAppCompatToolBarActivity extends BaseAppCompatActivity implements ToolbarController { private Toolbar mToolbar; @@ -39,8 +44,13 @@ public abstract class BaseAppCompatToolBarActivity extends BaseAppCompatActivity private void initToolbar() { mToolbar = (Toolbar) findViewById(R.id.toolbar_navigation); if (mToolbar != null) { - mToolbar.setTitle(""); +// mToolbar.setTitle(""); setSupportActionBar(mToolbar); + mToolbar.addView(View.inflate(this, R.layout.reuse_actionbar, null)); + getSupportActionBar().setHomeButtonEnabled(false); +// getSupportActionBar().setDisplayHomeAsUpEnabled(false); +// getSupportActionBar().setDisplayShowHomeEnabled(false); +// getSupportActionBar().setDisplayOptions(); } } @@ -98,6 +108,7 @@ public abstract class BaseAppCompatToolBarActivity extends BaseAppCompatActivity } } + @TargetApi(Build.VERSION_CODES.KITKAT) protected void setTranslucentStatus(boolean status) { Window window = getWindow(); WindowManager.LayoutParams winParams = window.getAttributes(); @@ -123,12 +134,16 @@ public abstract class BaseAppCompatToolBarActivity extends BaseAppCompatActivity @Override public void setNavigationTitle(int res) { - mToolbar.setTitle(res); + if (mToolbar != null) { + mToolbar.setTitle(res); + } } @Override public void setNavigationTitle(CharSequence res) { - mToolbar.setTitle(res); + if (mToolbar != null) { + mToolbar.setTitle(res); + } } @Override diff --git a/app/src/main/java/com/gh/base/BaseDetailActivity.java b/app/src/main/java/com/gh/base/BaseDetailActivity.java index cbc12ed63b..acb3176f14 100644 --- a/app/src/main/java/com/gh/base/BaseDetailActivity.java +++ b/app/src/main/java/com/gh/base/BaseDetailActivity.java @@ -1,396 +1,410 @@ -package com.gh.base; - -import android.content.Intent; -import android.os.Bundle; -import android.support.v4.content.ContextCompat; -import android.support.v7.widget.RecyclerView; -import android.text.TextUtils; -import android.view.View; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.ProgressBar; -import android.widget.RelativeLayout; -import android.widget.TextView; - -import com.gh.common.constant.Config; -import com.gh.common.util.ApkActiveUtils; -import com.gh.common.util.DataUtils; -import com.gh.common.util.DialogUtils; -import com.gh.common.util.DisplayUtils; -import com.lightgame.download.FileUtils; -import com.gh.common.util.GameUtils; -import com.gh.common.util.NetworkUtils; -import com.gh.common.util.PackageUtils; -import com.gh.common.util.ShareUtils; -import com.gh.common.view.DownloadDialog; -import com.lightgame.download.DataWatcher; -import com.lightgame.download.DownloadEntity; -import com.gh.download.DownloadManager; -import com.gh.gamecenter.DownloadManagerActivity; -import com.gh.gamecenter.R; -import com.gh.gamecenter.entity.ApkEntity; -import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.eventbus.EBDownloadStatus; -import com.gh.gamecenter.eventbus.EBPackage; -import com.gh.gamecenter.manager.PackageManager; -import com.tencent.tauth.Tencent; - -import org.greenrobot.eventbus.Subscribe; -import org.greenrobot.eventbus.ThreadMode; - -/** - * Created by Administrator on 2016/9/19. - * 游戏详情、新闻详情基类(控制底部下载栏) - */ -public abstract class BaseDetailActivity extends BaseActivity implements View.OnClickListener { - - protected TextView actionbar_tv_title; - protected RecyclerView detail_rv_show; - protected LinearLayout detail_ll_bottom; - protected TextView detail_tv_download; - protected ProgressBar detail_pb_progressbar; - protected TextView detail_tv_per; - protected LinearLayout reuse_ll_loading; - protected LinearLayout reuse_no_connection; - protected LinearLayout reuse_none_data; - protected TextView reuse_tv_none_data; - protected ImageView iv_share; - - protected GameEntity gameEntity; - protected DownloadEntity mDownloadEntity; - - protected String name; - protected String title; - protected String downloadAddWord; - protected String downloadOffText; - - private DataWatcher dataWatcher = new DataWatcher() { - @Override - public void onDataChanged(DownloadEntity downloadEntity) { - if (gameEntity != null && gameEntity.getApk().size() == 1) { - String url = gameEntity.getApk().get(0).getUrl(); - if (url.equals(downloadEntity.getUrl())) { - if (!"pause".equals(DownloadManager.getInstance(BaseDetailActivity.this). - getStatus(downloadEntity.getUrl()))) { - mDownloadEntity = downloadEntity; - invalidate(); - } - } - } - } - }; - - @Override - protected int getLayoutId() { - return R.layout.activity_detail; - } - - //接收QQ或者QQ空间分享回调 - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); - - if (requestCode == com.tencent.connect.common.Constants.REQUEST_QQ_SHARE - || requestCode == com.tencent.connect.common.Constants.REQUEST_QZONE_SHARE) { - Tencent.onActivityResultData(requestCode, resultCode, data, ShareUtils.getInstance(this).QqShareListener); - } - - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - // 添加分享图标 - iv_share = new ImageView(this); - iv_share.setImageResource(R.drawable.ic_share); - iv_share.setOnClickListener(this); - iv_share.setVisibility(View.GONE); - iv_share.setPadding(DisplayUtils.dip2px(this, 13), DisplayUtils.dip2px(this, 11) - , DisplayUtils.dip2px(this, 11), DisplayUtils.dip2px(this, 13)); - RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams( - DisplayUtils.dip2px(this, 48), DisplayUtils.dip2px(this, 48)); - params.addRule(RelativeLayout.CENTER_VERTICAL); - params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); - RelativeLayout reuse_actionbar = (RelativeLayout) mContentView.findViewById( - R.id.reuse_actionbar); - reuse_actionbar.addView(iv_share, params); - - actionbar_tv_title = (TextView) findViewById(R.id.actionbar_tv_title); - detail_rv_show = (RecyclerView) findViewById(R.id.detail_rv_show); - detail_ll_bottom = (LinearLayout) findViewById(R.id.detail_ll_bottom); - detail_tv_download = (TextView) findViewById(R.id.detail_tv_download); - detail_pb_progressbar = (ProgressBar) findViewById(R.id.detail_pb_progressbar); - detail_tv_per = (TextView) findViewById(R.id.detail_tv_per); - reuse_ll_loading = (LinearLayout) findViewById(R.id.reuse_ll_loading); - reuse_no_connection = (LinearLayout) findViewById(R.id.reuse_no_connection); - reuse_none_data = (LinearLayout) findViewById(R.id.reuse_none_data); - reuse_tv_none_data = (TextView) findViewById(R.id.reuse_tv_none_data); - - detail_ll_bottom.setOnClickListener(this); - detail_tv_download.setOnClickListener(this); - detail_pb_progressbar.setOnClickListener(this); - detail_tv_per.setOnClickListener(this); - reuse_no_connection.setOnClickListener(this); - - } - - @Override - protected void onPause() { - super.onPause(); - DownloadManager.getInstance(this).removeObserver(dataWatcher); - } - - @Override - protected void onResume() { - super.onResume(); - if (gameEntity != null - && gameEntity.getApk() != null - && gameEntity.getApk().size() == 1) { - initDownload(true); - } - DownloadManager.getInstance(this).addObserver(dataWatcher); - } - - protected void initDownload(boolean isCheck) { - if (Config.isShow(this)) { - detail_ll_bottom.setVisibility(View.VISIBLE); - detail_rv_show.setPadding(0, 0, 0, - DisplayUtils.dip2px(getApplicationContext(), 60)); - } else { - detail_ll_bottom.setVisibility(View.GONE); - detail_rv_show.setPadding(0, 0, 0, 0); - } - if (gameEntity != null && "光环助手".equals(gameEntity.getName())) { - detail_ll_bottom.setVisibility(View.GONE); - detail_rv_show.setPadding(0, 0, 0, 0); - } else if (gameEntity == null || gameEntity.getApk().isEmpty()) { - detail_tv_download.setVisibility(View.VISIBLE); - detail_pb_progressbar.setVisibility(View.GONE); - detail_tv_per.setVisibility(View.GONE); - if (TextUtils.isEmpty(downloadOffText)) { - detail_tv_download.setText("暂无下载"); - } else { - detail_tv_download.setText(downloadOffText); - } - detail_tv_download.setBackgroundResource(R.drawable.game_item_btn_pause_style); - detail_tv_download.setTextColor(0xFF999999); - detail_tv_download.setClickable(false); - } else { - detail_tv_download.setVisibility(View.VISIBLE); - detail_pb_progressbar.setVisibility(View.GONE); - detail_tv_per.setVisibility(View.GONE); - boolean isInstalled = false; - if (gameEntity.getApk() != null && gameEntity.getApk().size() == 1 - && PackageManager.isInstalled(gameEntity.getApk().get(0).getPackageName())) { - isInstalled = true; - } - if (isInstalled) { - if (PackageManager.isCanUpdate(gameEntity.getId(), gameEntity.getApk().get(0).getPackageName())) { - if (TextUtils.isEmpty(downloadAddWord)) { - detail_tv_download.setBackgroundResource( - R.drawable.game_item_btn_download_style); - detail_tv_download.setText(String.format("更新《%s》", - gameEntity.getName())); - } else { - detail_tv_download.setBackgroundResource( - R.drawable.game_item_btn_download_style); - detail_tv_download.setText(String.format("更新《%s》%s", - gameEntity.getName(), downloadAddWord)); - } - } else { - if (gameEntity.getTag() != null && gameEntity.getTag().size() != 0 - && !TextUtils.isEmpty(gameEntity.getApk().get(0).getGhVersion()) - && !PackageUtils.isSignature(this, gameEntity.getApk().get(0).getPackageName())) { - if (TextUtils.isEmpty(downloadAddWord)) { - detail_tv_download.setBackgroundResource( - R.drawable.game_item_btn_plugin_style); - detail_tv_download.setText(String.format("插件化《%s》", - gameEntity.getName())); - } else { - detail_tv_download.setBackgroundResource( - R.drawable.game_item_btn_plugin_style); - detail_tv_download.setText(String.format("插件化《%s》%s", - gameEntity.getName(), downloadAddWord)); - } - } else { - if (TextUtils.isEmpty(downloadAddWord)) { - detail_tv_download.setBackgroundResource( - R.drawable.game_item_btn_launch_style); - detail_tv_download.setText(String.format("启动《%s》", - gameEntity.getName())); - } else { - detail_tv_download.setBackgroundResource( - R.drawable.game_item_btn_launch_style); - detail_tv_download.setText(String.format("启动《%s》%s", - gameEntity.getName(), downloadAddWord)); - } - } - } - } else { - String status = GameUtils.getDownloadBtnText(this, gameEntity); - - switch (status) { - case "插件化": - detail_tv_download.setBackgroundResource(R.drawable.game_item_btn_plugin_style); - break; - case "打开": - detail_tv_download.setBackgroundResource(R.drawable.game_item_btn_launch_style); - break; - default: - detail_tv_download.setBackgroundResource(R.drawable.game_item_btn_download_style); - break; - } - - if (TextUtils.isEmpty(downloadAddWord)) { - detail_tv_download.setText(String.format(status + "《%s》", - gameEntity.getName())); - } else { - detail_tv_download.setText(String.format(status + "《%s》%s", - gameEntity.getName(), downloadAddWord)); - } - } - } - if (isCheck && gameEntity != null - && gameEntity.getApk() != null - && gameEntity.getApk().size() == 1) { - String url = gameEntity.getApk().get(0).getUrl(); - DownloadEntity downloadEntity = DownloadManager.getInstance(getApplicationContext()).get(url); - if (downloadEntity != null) { - mDownloadEntity = downloadEntity; - detail_tv_download.setVisibility(View.GONE); - detail_pb_progressbar.setVisibility(View.VISIBLE); - detail_tv_per.setVisibility(View.VISIBLE); - invalidate(); - } - } - } - - private void invalidate() { - detail_pb_progressbar.setProgress((int) (mDownloadEntity.getPercent() * 10)); - detail_tv_per.setTextColor(0xFFFFFFFF); - switch (mDownloadEntity.getStatus()) { - case downloading: - case pause: - case timeout: - case neterror: - case waiting: - detail_tv_per.setText("下载中"); - break; - case done: - detail_tv_per.setText("安装"); - if (mDownloadEntity.isPluggable() - && PackageManager.isInstalled(mDownloadEntity.getPackageName())) { - detail_pb_progressbar.setProgressDrawable(ContextCompat.getDrawable(this, R.drawable.progressbar_plugin_radius_style)); - } else { - detail_pb_progressbar.setProgressDrawable(ContextCompat.getDrawable(this, R.drawable.progressbar_normal_radius_style)); - } - break; - case cancel: - case hijack: - case notfound: - initDownload(false); - break; - default: - break; - } - } - - // 接收下载被删除消息 - @Subscribe(threadMode = ThreadMode.MAIN) - public void onEvent(EBDownloadStatus status) { - if ("delete".equals(status.getStatus()) - && gameEntity != null - && gameEntity.getApk() != null - && gameEntity.getApk().size() == 1) { - String url = gameEntity.getApk().get(0).getUrl(); - if (url.equals(status.getUrl())) { - initDownload(false); - } - } - } - - // 接受安装、卸载消息 - @Subscribe(threadMode = ThreadMode.MAIN) - public void onEventMainThread(EBPackage busFour) { - if (gameEntity != null - && gameEntity.getApk() != null - && gameEntity.getApk().size() > 0) { - for (ApkEntity apkEntity : gameEntity.getApk()) { - String packageName = apkEntity.getPackageName(); - if (packageName.equals(busFour.getPackageName())) { - ApkActiveUtils.filterHideApk(gameEntity); - initDownload(false); - } - } - } - } - - @Override - public void onClick(View v) { - if (v == detail_tv_download) { - if (gameEntity != null && !gameEntity.getApk().isEmpty()) { - if (gameEntity.getApk().size() == 1) { - if (NetworkUtils.isWifiConnected(this)) { - download(); - } else { - DialogUtils.showDownloadDialog(this, new DialogUtils.ConfirmListener() { - @Override - public void onConfirm() { - download(); - } - }); - } - } else { - DownloadDialog.getInstance(this).showPopupWindow(v, gameEntity, mEntrance, name + ":" + title); - } - } else { - toast("稍等片刻~!游戏正在上传中..."); - } - } else if (v == detail_pb_progressbar || v == detail_tv_per) { - String str = detail_tv_per.getText().toString(); - if ("下载中".equals(str)) { - DownloadManagerActivity.startDownloadManagerActivity(this, gameEntity.getApk().get(0).getUrl() - , mEntrance + "+(" + name + "[" + title + "])"); - } else if ("安装".equals(str)) { - PackageUtils.launchSetup(this, mDownloadEntity.getPath()); - } - } - } - - private void download() { - String str = detail_tv_download.getText().toString(); - if (str.contains("启动")) { - DataUtils.onGameLaunchEvent(this, gameEntity.getName(), gameEntity.getApk().get(0).getPlatform(), name); - - PackageUtils.launchApplicationByPackageName(this, gameEntity.getApk().get(0).getPackageName()); - } else { - String method; - if (str.contains("更新")) { - method = "更新"; - } else if (str.contains("插件化")) { - method = "插件化"; - } else { - method = "下载"; - } - ApkEntity apkEntity = gameEntity.getApk().get(0); - String msg = FileUtils.isCanDownload(this, apkEntity.getSize()); - if (TextUtils.isEmpty(msg)) { - DataUtils.onGameDownloadEvent(this, gameEntity.getName(), apkEntity.getPlatform(), mEntrance, "下载开始"); - - DownloadManager.createDownload(this, apkEntity, gameEntity, method, mEntrance, name + ":" + title); - - detail_tv_download.setVisibility(View.GONE); - detail_pb_progressbar.setVisibility(View.VISIBLE); - detail_tv_per.setVisibility(View.VISIBLE); - detail_pb_progressbar.setProgress(0); - detail_tv_per.setText("0.0%"); - -// DownloadManager.getInstance(BaseDetailActivity.this).putStatus(apkEntity.getUrl(), "downloading"); - } else { - toast(msg); - } - } - } - -} +//package com.gh.base; +// +//import android.content.Intent; +//import android.os.Bundle; +//import android.support.v4.content.ContextCompat; +//import android.text.TextUtils; +//import android.view.View; +//import android.widget.ImageView; +//import android.widget.LinearLayout; +//import android.widget.ProgressBar; +//import android.widget.RelativeLayout; +//import android.widget.TextView; +// +//import com.gh.common.constant.Config; +//import com.gh.common.util.ApkActiveUtils; +//import com.gh.common.util.DataUtils; +//import com.gh.common.util.DialogUtils; +//import com.gh.common.util.DisplayUtils; +//import com.gh.common.util.GameUtils; +//import com.gh.common.util.NetworkUtils; +//import com.gh.common.util.PackageUtils; +//import com.gh.common.util.ShareUtils; +//import com.gh.common.view.DownloadDialog; +//import com.gh.download.DownloadManager; +//import com.gh.gamecenter.DownloadManagerActivity; +//import com.gh.gamecenter.R; +//import com.gh.gamecenter.entity.ApkEntity; +//import com.gh.gamecenter.entity.GameEntity; +//import com.gh.gamecenter.eventbus.EBDownloadStatus; +//import com.gh.gamecenter.eventbus.EBPackage; +//import com.gh.gamecenter.manager.PackageManager; +//import com.lightgame.download.DataWatcher; +//import com.lightgame.download.DownloadEntity; +//import com.lightgame.download.FileUtils; +//import com.tencent.tauth.Tencent; +// +//import org.greenrobot.eventbus.Subscribe; +//import org.greenrobot.eventbus.ThreadMode; +// +//import butterknife.BindView; +//import butterknife.OnClick; +// +///** +// * Created by Administrator on 2016/9/19. +// * 游戏详情、新闻详情基类(控制底部下载栏) +// */ +//public abstract class BaseDetailActivity extends BaseActivity implements View.OnClickListener { +// +// @BindView(R.id.actionbar_tv_title) +// protected TextView actionbar_tv_title; +// +//// @BindView(R.id.detail_rv_show) +//// protected RecyclerView detail_rv_show; +// +// @BindView(R.id.detail_ll_bottom) +// protected LinearLayout detail_ll_bottom; +// +// @BindView(R.id.detail_tv_download) +// protected TextView detail_tv_download; +// +// @BindView(R.id.detail_pb_progressbar) +// protected ProgressBar detail_pb_progressbar; +// +// @BindView(R.id.detail_tv_per) +// protected TextView detail_tv_per; +// +// @BindView(R.id.reuse_ll_loading) +// protected LinearLayout reuse_ll_loading; +// +// @BindView(R.id.reuse_no_connection) +// protected LinearLayout reuse_no_connection; +// +// @BindView(R.id.reuse_none_data) +// protected LinearLayout reuse_none_data; +// +// @BindView(R.id.reuse_tv_none_data) +// protected TextView reuse_tv_none_data; +// +// protected ImageView iv_share; +// +// protected GameEntity gameEntity; +// protected DownloadEntity mDownloadEntity; +// +// protected String name; +// protected String title; +// protected String downloadAddWord; +// protected String downloadOffText; +// +// private DataWatcher dataWatcher = new DataWatcher() { +// @Override +// public void onDataChanged(DownloadEntity downloadEntity) { +// if (gameEntity != null && gameEntity.getApk().size() == 1) { +// String url = gameEntity.getApk().get(0).getUrl(); +// if (url.equals(downloadEntity.getUrl())) { +// if (!"pause".equals(DownloadManager.getInstance(getApplicationContext()). +// getStatus(downloadEntity.getUrl()))) { +// mDownloadEntity = downloadEntity; +// invalidate(); +// } +// } +// } +// } +// }; +// +// @Override +// protected int getLayoutId() { +// return R.layout.activity_detail; +// } +// +// //接收QQ或者QQ空间分享回调 +// @Override +// protected void onActivityResult(int requestCode, int resultCode, Intent data) { +// super.onActivityResult(requestCode, resultCode, data); +// +// if (requestCode == com.tencent.connect.common.Constants.REQUEST_QQ_SHARE +// || requestCode == com.tencent.connect.common.Constants.REQUEST_QZONE_SHARE) { +// Tencent.onActivityResultData(requestCode, resultCode, data, ShareUtils.getInstance(this).QqShareListener); +// } +// +// } +// +// @Override +// protected void onCreate(Bundle savedInstanceState) { +// super.onCreate(savedInstanceState); +// +// // 添加分享图标 +// iv_share = new ImageView(this); +// iv_share.setImageResource(R.drawable.ic_share); +// iv_share.setOnClickListener(this); +// iv_share.setVisibility(View.GONE); +// iv_share.setPadding(DisplayUtils.dip2px(this, 13), DisplayUtils.dip2px(this, 11) +// , DisplayUtils.dip2px(this, 11), DisplayUtils.dip2px(this, 13)); +// RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams( +// DisplayUtils.dip2px(this, 48), DisplayUtils.dip2px(this, 48)); +// params.addRule(RelativeLayout.CENTER_VERTICAL); +// params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); +// RelativeLayout reuse_actionbar = (RelativeLayout) mContentView.findViewById(R.id.reuse_actionbar); +// reuse_actionbar.addView(iv_share, params); +// +// } +// +// @Override +// protected void onPause() { +// super.onPause(); +// DownloadManager.getInstance(this).removeObserver(dataWatcher); +// } +// +// @Override +// protected void onResume() { +// super.onResume(); +// if (gameEntity != null +// && gameEntity.getApk() != null +// && gameEntity.getApk().size() == 1) { +// initDownload(true); +// } +// DownloadManager.getInstance(this).addObserver(dataWatcher); +// } +// +// protected void initDownload(boolean isCheck) { +// if (Config.isShow(this)) { +// detail_ll_bottom.setVisibility(View.VISIBLE); +//// detail_rv_show.setPadding(0, 0, 0, +//// DisplayUtils.dip2px(getApplicationContext(), 60)); +// } else { +// detail_ll_bottom.setVisibility(View.GONE); +//// detail_rv_show.setPadding(0, 0, 0, 0); +// } +// if (gameEntity != null && "光环助手".equals(gameEntity.getName())) { +// detail_ll_bottom.setVisibility(View.GONE); +//// detail_rv_show.setPadding(0, 0, 0, 0); +// } else if (gameEntity == null || gameEntity.getApk().isEmpty()) { +// detail_tv_download.setVisibility(View.VISIBLE); +// detail_pb_progressbar.setVisibility(View.GONE); +// detail_tv_per.setVisibility(View.GONE); +// if (TextUtils.isEmpty(downloadOffText)) { +// detail_tv_download.setText("暂无下载"); +// } else { +// detail_tv_download.setText(downloadOffText); +// } +// detail_tv_download.setBackgroundResource(R.drawable.game_item_btn_pause_style); +// detail_tv_download.setTextColor(0xFF999999); +// detail_tv_download.setClickable(false); +// } else { +// detail_tv_download.setVisibility(View.VISIBLE); +// detail_pb_progressbar.setVisibility(View.GONE); +// detail_tv_per.setVisibility(View.GONE); +// boolean isInstalled = false; +// if (gameEntity.getApk() != null && gameEntity.getApk().size() == 1 +// && PackageManager.isInstalled(gameEntity.getApk().get(0).getPackageName())) { +// isInstalled = true; +// } +// if (isInstalled) { +// if (PackageManager.isCanUpdate(gameEntity.getId(), gameEntity.getApk().get(0).getPackageName())) { +// if (TextUtils.isEmpty(downloadAddWord)) { +// detail_tv_download.setBackgroundResource( +// R.drawable.game_item_btn_download_style); +// detail_tv_download.setText(String.format("更新《%s》", +// gameEntity.getName())); +// } else { +// detail_tv_download.setBackgroundResource( +// R.drawable.game_item_btn_download_style); +// detail_tv_download.setText(String.format("更新《%s》%s", +// gameEntity.getName(), downloadAddWord)); +// } +// } else { +// if (gameEntity.getTag() != null && gameEntity.getTag().size() != 0 +// && !TextUtils.isEmpty(gameEntity.getApk().get(0).getGhVersion()) +// && !PackageUtils.isSignature(this, gameEntity.getApk().get(0).getPackageName())) { +// if (TextUtils.isEmpty(downloadAddWord)) { +// detail_tv_download.setBackgroundResource( +// R.drawable.game_item_btn_plugin_style); +// detail_tv_download.setText(String.format("插件化《%s》", +// gameEntity.getName())); +// } else { +// detail_tv_download.setBackgroundResource( +// R.drawable.game_item_btn_plugin_style); +// detail_tv_download.setText(String.format("插件化《%s》%s", +// gameEntity.getName(), downloadAddWord)); +// } +// } else { +// if (TextUtils.isEmpty(downloadAddWord)) { +// detail_tv_download.setBackgroundResource( +// R.drawable.game_item_btn_launch_style); +// detail_tv_download.setText(String.format("启动《%s》", +// gameEntity.getName())); +// } else { +// detail_tv_download.setBackgroundResource( +// R.drawable.game_item_btn_launch_style); +// detail_tv_download.setText(String.format("启动《%s》%s", +// gameEntity.getName(), downloadAddWord)); +// } +// } +// } +// } else { +// String status = GameUtils.getDownloadBtnText(this, gameEntity); +// +// switch (status) { +// case "插件化": +// detail_tv_download.setBackgroundResource(R.drawable.game_item_btn_plugin_style); +// break; +// case "打开": +// detail_tv_download.setBackgroundResource(R.drawable.game_item_btn_launch_style); +// break; +// default: +// detail_tv_download.setBackgroundResource(R.drawable.game_item_btn_download_style); +// break; +// } +// +// if (TextUtils.isEmpty(downloadAddWord)) { +// detail_tv_download.setText(String.format(status + "《%s》", +// gameEntity.getName())); +// } else { +// detail_tv_download.setText(String.format(status + "《%s》%s", +// gameEntity.getName(), downloadAddWord)); +// } +// } +// } +// if (isCheck && gameEntity != null +// && gameEntity.getApk() != null +// && gameEntity.getApk().size() == 1) { +// String url = gameEntity.getApk().get(0).getUrl(); +// DownloadEntity downloadEntity = DownloadManager.getInstance(getApplicationContext()).getDownloadEntityByUrl(url); +// if (downloadEntity != null) { +// mDownloadEntity = downloadEntity; +// detail_tv_download.setVisibility(View.GONE); +// detail_pb_progressbar.setVisibility(View.VISIBLE); +// detail_tv_per.setVisibility(View.VISIBLE); +// invalidate(); +// } +// } +// } +// +// private void invalidate() { +// detail_pb_progressbar.setProgress((int) (mDownloadEntity.getPercent() * 10)); +// detail_tv_per.setTextColor(0xFFFFFFFF); +// switch (mDownloadEntity.getStatus()) { +// case downloading: +// case pause: +// case timeout: +// case neterror: +// case waiting: +// detail_tv_per.setText("下载中"); +// break; +// case done: +// detail_tv_per.setText("安装"); +// if (mDownloadEntity.isPluggable() +// && PackageManager.isInstalled(mDownloadEntity.getPackageName())) { +// detail_pb_progressbar.setProgressDrawable(ContextCompat.getDrawable(this, R.drawable.progressbar_plugin_radius_style)); +// } else { +// detail_pb_progressbar.setProgressDrawable(ContextCompat.getDrawable(this, R.drawable.progressbar_normal_radius_style)); +// } +// break; +// case cancel: +// case hijack: +// case notfound: +// initDownload(false); +// break; +// default: +// break; +// } +// } +// +// // 接收下载被删除消息 +// @Subscribe(threadMode = ThreadMode.MAIN) +// public void onEvent(EBDownloadStatus status) { +// if ("delete".equals(status.getStatus()) +// && gameEntity != null +// && gameEntity.getApk() != null +// && gameEntity.getApk().size() == 1) { +// String url = gameEntity.getApk().get(0).getUrl(); +// if (url.equals(status.getUrl())) { +// initDownload(false); +// } +// } +// } +// +// // 接受安装、卸载消息 +// @Subscribe(threadMode = ThreadMode.MAIN) +// public void onEventMainThread(EBPackage busFour) { +// if (gameEntity != null +// && gameEntity.getApk() != null +// && gameEntity.getApk().size() > 0) { +// for (ApkEntity apkEntity : gameEntity.getApk()) { +// String packageName = apkEntity.getPackageName(); +// if (packageName.equals(busFour.getPackageName())) { +// ApkActiveUtils.filterHideApk(gameEntity); +// initDownload(false); +// } +// } +// } +// } +// +// @OnClick({R.id.detail_ll_bottom, +// R.id.detail_tv_download, +// R.id.detail_pb_progressbar, +// R.id.detail_tv_per, +// R.id.reuse_no_connection}) +// @Override +// public void onClick(View v) { +// switch (v.getId()) { +// case R.id.detail_tv_download: +// if (gameEntity != null && !gameEntity.getApk().isEmpty()) { +// if (gameEntity.getApk().size() == 1) { +// if (NetworkUtils.isWifiConnected(this)) { +// download(); +// } else { +// DialogUtils.showDownloadDialog(this, new DialogUtils.ConfirmListener() { +// @Override +// public void onConfirm() { +// download(); +// } +// }); +// } +// } else { +// DownloadDialog.getInstance(this).showPopupWindow(v, gameEntity, mEntrance, name + ":" + title); +// } +// } else { +// toast("稍等片刻~!游戏正在上传中..."); +// } +// break; +// case R.id.detail_pb_progressbar: +// case R.id.detail_tv_per: +// String str = detail_tv_per.getText().toString(); +// if ("下载中".equals(str)) { +// DownloadManagerActivity.startDownloadManagerActivity(this, gameEntity.getApk().get(0).getUrl() +// , mEntrance + "+(" + name + "[" + title + "])"); +// } else if ("安装".equals(str)) { +// PackageUtils.launchSetup(this, mDownloadEntity.getPath()); +// } +// break; +// default: +// break; +// } +// } +// +// private void download() { +// String str = detail_tv_download.getText().toString(); +// if (str.contains("启动")) { +// DataUtils.onGameLaunchEvent(this, gameEntity.getName(), gameEntity.getApk().get(0).getPlatform(), name); +// PackageUtils.launchApplicationByPackageName(this, gameEntity.getApk().get(0).getPackageName()); +// } else { +// String method; +// if (str.contains("更新")) { +// method = "更新"; +// } else if (str.contains("插件化")) { +// method = "插件化"; +// } else { +// method = "下载"; +// } +// ApkEntity apkEntity = gameEntity.getApk().get(0); +// String msg = FileUtils.isCanDownload(this, apkEntity.getSize()); +// if (TextUtils.isEmpty(msg)) { +// DataUtils.onGameDownloadEvent(this, gameEntity.getName(), apkEntity.getPlatform(), mEntrance, "下载开始"); +// +// DownloadManager.createDownload(this, apkEntity, gameEntity, method, mEntrance, name + ":" + title); +// +// detail_tv_download.setVisibility(View.GONE); +// detail_pb_progressbar.setVisibility(View.VISIBLE); +// detail_tv_per.setVisibility(View.VISIBLE); +// detail_pb_progressbar.setProgress(0); +// detail_tv_per.setText("0.0%"); +// +//// DownloadManager.getInstance(BaseDetailActivity.this).putStatus(apkEntity.getUrl(), "downloading"); +// } else { +// toast(msg); +// } +// } +// } +// +//} diff --git a/app/src/main/java/com/gh/base/OnBackPressedListener.java b/app/src/main/java/com/gh/base/OnBackPressedListener.java deleted file mode 100644 index 53e1b64d9a..0000000000 --- a/app/src/main/java/com/gh/base/OnBackPressedListener.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.gh.base; - -/** - * Forward activity onBackPressed() events to fragment - * (If nested fragments need this, just forward again) - */ -public interface OnBackPressedListener { - public boolean onHandleBackPressed(); -} diff --git a/app/src/main/java/com/gh/base/OnRequestCallBackListener.java b/app/src/main/java/com/gh/base/OnRequestCallBackListener.java index 3845b16a0e..0ec848c383 100644 --- a/app/src/main/java/com/gh/base/OnRequestCallBackListener.java +++ b/app/src/main/java/com/gh/base/OnRequestCallBackListener.java @@ -3,11 +3,11 @@ package com.gh.base; /** * Created by Administrator on 2016/9/8. */ -public interface OnRequestCallBackListener { +public interface OnRequestCallBackListener { void loadDone(); - void loadDone(Object obj); + void loadDone(T obj); void loadError(); diff --git a/app/src/main/java/com/gh/base/ToolbarController.java b/app/src/main/java/com/gh/base/ToolbarController.java deleted file mode 100644 index ade2a1d3d0..0000000000 --- a/app/src/main/java/com/gh/base/ToolbarController.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.gh.base; - -import android.support.annotation.StringRes; -import android.support.v7.widget.Toolbar; - -/** - * Created by csheng on 15-10-12. - */ -public interface ToolbarController { - - void setNavigationTitle(@StringRes int res); - - void setNavigationTitle(CharSequence res); - - Toolbar getToolBar(); - -} diff --git a/app/src/main/java/com/gh/base/fragment/BaseFragment.java b/app/src/main/java/com/gh/base/fragment/BaseFragment.java index c1f8f1c7bf..4d7c8b9f33 100644 --- a/app/src/main/java/com/gh/base/fragment/BaseFragment.java +++ b/app/src/main/java/com/gh/base/fragment/BaseFragment.java @@ -3,16 +3,19 @@ package com.gh.base.fragment; import android.os.Bundle; import android.support.annotation.LayoutRes; import android.support.annotation.Nullable; +import android.support.annotation.StringRes; import android.support.v4.app.Fragment; +import android.support.v7.widget.Toolbar; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Toast; import com.gh.base.OnRequestCallBackListener; +import com.lightgame.ToolbarController; import com.gh.common.util.EntranceUtils; -import com.lightgame.utils.RuntimeUtils; import com.gh.gamecenter.eventbus.EBMiPush; +import com.lightgame.utils.RuntimeUtils; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; @@ -24,7 +27,8 @@ import butterknife.ButterKnife; * Created by LGT on 2016/9/4. * Fragment 基类 */ -public abstract class BaseFragment extends Fragment implements OnRequestCallBackListener, View.OnClickListener { +public abstract class BaseFragment extends Fragment implements OnRequestCallBackListener, + View.OnClickListener, ToolbarController { // TODO private view protected View view; @@ -54,9 +58,6 @@ public abstract class BaseFragment extends Fragment implements OnRequestCallBack } protected void postRunnable(Runnable runnable) { -// if (getView() != null) { -// getView().post(runnable); -// } RuntimeUtils.getInstance().runOnUiThread(runnable); } @@ -64,6 +65,28 @@ public abstract class BaseFragment extends Fragment implements OnRequestCallBack RuntimeUtils.getInstance().runOnUiThread(runnable, delayMillis); } + @Override + public void setNavigationTitle(@StringRes int res) { + if (getActivity() instanceof ToolbarController) { + ((ToolbarController) getActivity()).setNavigationTitle(res); + } + } + + @Override + public void setNavigationTitle(CharSequence res) { + if (getActivity() instanceof ToolbarController) { + ((ToolbarController) getActivity()).setNavigationTitle(res); + } + } + + @Override + public Toolbar getToolBar() { + if (getActivity() instanceof ToolbarController) { + return ((ToolbarController) getActivity()).getToolBar(); + } + return null; + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); diff --git a/app/src/main/java/com/gh/common/constant/Config.java b/app/src/main/java/com/gh/common/constant/Config.java index adc96d5201..47eaa6ff4d 100644 --- a/app/src/main/java/com/gh/common/constant/Config.java +++ b/app/src/main/java/com/gh/common/constant/Config.java @@ -15,7 +15,12 @@ public class Config { public static final String DATA_HOST = "http://data.ghzhushou.com/"; public static final String LIBAO_HOST = "http://libao2.ghzhushou.com/v1d2/"; public static final String MESSAGE_HOST = "http://message.ghzhushou.com/v1d0/"; // TODO TEST v1d1 - public static final String PREFERENCE = "ghzhushou"; + + /** + * 需要配置的请使用{@link PreferenceManager#getDefaultSharedPreferences(Context)} + */ + @Deprecated +// public static final String PREFERENCE = "ghzhushou"; // Third-Party confs public static final String WECHAT_APPID = BuildConfig.WECHAT_APPID; @@ -29,10 +34,10 @@ public class Config { public static final String UMENG_APPKEY = BuildConfig.UMENG_APPKEY; public static final String UMENG_MESSAGE_SECRET = BuildConfig.UMENG_MESSAGE_SECRET; - public static final String DEBUG_MIPUSH_APPID = BuildConfig.DEBUG_MIPUSH_APPID; - public static final String DEBUG_MIPUSH_APPKEY = BuildConfig.DEBUG_MIPUSH_APPKEY; - public static final String DEBUG_UMENG_APPKEY = BuildConfig.DEBUG_UMENG_APPKEY; - public static final String DEBUG_UMENG_MESSAGE_SECRET = BuildConfig.DEBUG_UMENG_MESSAGE_SECRET; +// public static final String DEBUG_MIPUSH_APPID = BuildConfig.DEBUG_MIPUSH_APPID; +// public static final String DEBUG_MIPUSH_APPKEY = BuildConfig.DEBUG_MIPUSH_APPKEY; +// public static final String DEBUG_UMENG_APPKEY = BuildConfig.DEBUG_UMENG_APPKEY; +// public static final String DEBUG_UMENG_MESSAGE_SECRET = BuildConfig.DEBUG_UMENG_MESSAGE_SECRET; public static boolean isShow(Context context) { diff --git a/app/src/main/java/com/gh/common/util/DetailDownloadUtils.java b/app/src/main/java/com/gh/common/util/DetailDownloadUtils.java index 350899aac1..d6082cdd44 100644 --- a/app/src/main/java/com/gh/common/util/DetailDownloadUtils.java +++ b/app/src/main/java/com/gh/common/util/DetailDownloadUtils.java @@ -125,7 +125,7 @@ public class DetailDownloadUtils { && viewHolder.gameEntity.getApk() != null && viewHolder.gameEntity.getApk().size() == 1) { String url = viewHolder.gameEntity.getApk().get(0).getUrl(); - DownloadEntity downloadEntity = DownloadManager.getInstance(viewHolder.context).get(url); + DownloadEntity downloadEntity = DownloadManager.getInstance(viewHolder.context).getDownloadEntityByUrl(url); if (downloadEntity != null) { viewHolder.downloadEntity = downloadEntity; viewHolder.downloadTv.setVisibility(View.GONE); diff --git a/app/src/main/java/com/gh/common/util/DownloadItemUtils.java b/app/src/main/java/com/gh/common/util/DownloadItemUtils.java index eb0a889a5f..6cce350868 100644 --- a/app/src/main/java/com/gh/common/util/DownloadItemUtils.java +++ b/app/src/main/java/com/gh/common/util/DownloadItemUtils.java @@ -17,6 +17,7 @@ import com.gh.download.DownloadManager; import com.gh.gamecenter.DownloadManagerActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.GameViewHolder; +import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.manager.PackageManager; import com.lightgame.download.DownloadConfig; @@ -65,10 +66,10 @@ public class DownloadItemUtils { } else { if (!queue.contains(platform)) { queue.offer(platform); - if (AppDebugConfig.IS_DEBUG) { - AppDebugConfig.logMethodWithParams(DownloadItemUtils.class, queue.size(), gameEntity.getBrief(), downloadEntity.getPlatform(), index); - } - // 有两个平台同时下载的时候启用 + if (AppDebugConfig.IS_DEBUG) { + AppDebugConfig.logMethodWithParams(DownloadItemUtils.class, queue.size(), gameEntity.getBrief(), downloadEntity.getPlatform(), index); + } + // 有两个平台同时下载的时候启用 if (queue.size() == 2) { //TODO fuck this Message msg = Message.obtain(); @@ -93,7 +94,7 @@ public class DownloadItemUtils { public static void updateItem(Context context, GameEntity gameEntity, GameViewHolder holder, boolean isShowPlatform) { // 控制是否显示下载按钮 - if (!Config.isShow(context) || "光环助手".equals(gameEntity.getName())) { + if (!Config.isShow(context) || context.getString(R.string.app_name).equals(gameEntity.getName())) { holder.gameDownloadBtn.setVisibility(View.GONE); } else { holder.gameDownloadBtn.setVisibility(View.VISIBLE); @@ -105,13 +106,6 @@ public class DownloadItemUtils { holder.gameLibaoIcon.setVisibility(View.GONE); } -// LibaoDao libaoDao = new LibaoDao(context); -// if (libaoDao.isExist(gameEntity.getId())) { -// holder.gameLibaoIcon.setVisibility(View.VISIBLE); -// } else { -// -// } - if (gameEntity.getApk() == null || gameEntity.getApk().isEmpty()) { holder.gameDes.setVisibility(View.VISIBLE); holder.gameProgressbar.setVisibility(View.GONE); @@ -122,18 +116,21 @@ public class DownloadItemUtils { } else if (gameEntity.getApk().size() == 1) { updateNormalItem(context, holder, gameEntity, isShowPlatform); } else { +// updateNormalItem(context, holder, gameEntity, isShowPlatform); updatePluginItem(context, holder, gameEntity, isShowPlatform); } } // 更新正常的条目,只有一个apk包 - public static void updateNormalItem(Context context, GameViewHolder holder, GameEntity gameEntity, - boolean isShowPlatform) { + static void updateNormalItem(Context context, GameViewHolder holder, GameEntity gameEntity, + boolean isShowPlatform) { + + final ArrayMap entryMap = gameEntity.getEntryMap(); + final ApkEntity apkEntity = gameEntity.getApk().get(0); - ArrayMap entryMap = gameEntity.getEntryMap(); if (entryMap != null && !entryMap.isEmpty()) { - DownloadEntity downloadEntity = entryMap.get(gameEntity.getApk().get(0).getPlatform()); + DownloadEntity downloadEntity = entryMap.get(apkEntity.getPlatform()); if (downloadEntity != null) { // 更改进度条和提示文本的状态 changeStatus(context, holder, downloadEntity, isShowPlatform, true); @@ -146,37 +143,22 @@ public class DownloadItemUtils { holder.gameInfo.setVisibility(View.GONE); holder.gameDownloadBtn.setTextColor(Color.WHITE); + + final String packageName = apkEntity.getPackageName(); + if (gameEntity.isPluggable()) { holder.gameDownloadBtn.setText("插件化"); - DownloadEntity downloadEntity = DownloadManager.getInstance(context).getByPackage( - gameEntity.getApk().get(0).getPackageName()); - if (downloadEntity == null - || downloadEntity.getUrl().equals(gameEntity.getApk().get(0).getUrl())) { - holder.gameDownloadBtn.setClickable(true); - holder.gameDownloadBtn.setBackgroundResource(R.drawable.game_item_btn_plugin_style); - } else { - holder.gameDownloadBtn.setClickable(false); - holder.gameDownloadBtn.setBackgroundResource(R.drawable.game_item_btn_pause_up); - } - } else if (PackageManager.isInstalled(gameEntity.getApk().get(0).getPackageName())) { - if (PackageManager.isCanUpdate(gameEntity.getId(), gameEntity.getApk().get(0).getPackageName())) { + setwhat(context, holder, apkEntity, packageName); + } else if (PackageManager.isInstalled(packageName)) { + if (PackageManager.isCanUpdate(gameEntity.getId(), packageName)) { holder.gameDownloadBtn.setText("更新"); holder.gameDownloadBtn.setBackgroundResource(R.drawable.game_item_btn_download_style); } else { if (gameEntity.getTag() != null && gameEntity.getTag().size() != 0 - && !TextUtils.isEmpty(gameEntity.getApk().get(0).getGhVersion()) - && !PackageUtils.isSignature(context, gameEntity.getApk().get(0).getPackageName())) { + && !TextUtils.isEmpty(apkEntity.getGhVersion()) + && !PackageUtils.isSignature(context, packageName)) { holder.gameDownloadBtn.setText("插件化"); - DownloadEntity downloadEntity = DownloadManager.getInstance(context).getByPackage( - gameEntity.getApk().get(0).getPackageName()); - if (downloadEntity == null - || downloadEntity.getUrl().equals(gameEntity.getApk().get(0).getUrl())) { - holder.gameDownloadBtn.setClickable(true); - holder.gameDownloadBtn.setBackgroundResource(R.drawable.game_item_btn_plugin_style); - } else { - holder.gameDownloadBtn.setClickable(false); - holder.gameDownloadBtn.setBackgroundResource(R.drawable.game_item_btn_pause_up); - } + setwhat(context, holder, apkEntity, packageName); } else { holder.gameDownloadBtn.setText("启动"); holder.gameDownloadBtn.setBackgroundResource(R.drawable.game_item_btn_launch_style); @@ -188,9 +170,28 @@ public class DownloadItemUtils { } } + /** + * 这个干什么鬼? + * + * @param context + * @param holder + * @param apkEntity + * @param packageName + */ + public static void setwhat(Context context, GameViewHolder holder, ApkEntity apkEntity, String packageName) { + DownloadEntity downloadEntity = DownloadManager.getInstance(context).getDownloadEntityByPackageName(packageName); + if (downloadEntity == null || downloadEntity.getUrl().equals(apkEntity.getUrl())) { + holder.gameDownloadBtn.setClickable(true); + holder.gameDownloadBtn.setBackgroundResource(R.drawable.game_item_btn_plugin_style); + } else { + holder.gameDownloadBtn.setClickable(false); + holder.gameDownloadBtn.setBackgroundResource(R.drawable.game_item_btn_pause_up); + } + } + // 更新插件的条目,有多个apk包 - public static void updatePluginItem(Context context, GameViewHolder holder, GameEntity gameEntity, - boolean isShowPlatform) { + static void updatePluginItem(Context context, GameViewHolder holder, GameEntity gameEntity, + boolean isShowPlatform) { GameUtils.setDownloadBtnStatus(context, gameEntity, holder.gameDownloadBtn); @@ -432,14 +433,15 @@ public class DownloadItemUtils { //安装 private static void install(final Context context, GameEntity gameEntity, int position, RecyclerView.Adapter adapter) { - DownloadEntity downloadEntity = DownloadManager.getInstance(context).get(gameEntity.getApk().get(0).getUrl()); + ApkEntity apkEntity = gameEntity.getApk().get(0); + DownloadEntity downloadEntity = DownloadManager.getInstance(context).getDownloadEntityByUrl(apkEntity.getUrl()); if (downloadEntity != null) { final String path = downloadEntity.getPath(); if (FileUtils.isEmptyFile(path)) { Toast.makeText(context, "解析包出错(可能被误删了),请重新下载", Toast.LENGTH_SHORT).show(); DownloadManager.getInstance(context).cancel(downloadEntity.getUrl()); if (gameEntity.getEntryMap() != null) { - gameEntity.getEntryMap().remove(gameEntity.getApk().get(0).getPlatform()); + gameEntity.getEntryMap().remove(apkEntity.getPlatform()); } adapter.notifyItemChanged(position); } else { diff --git a/app/src/main/java/com/gh/common/util/GameUtils.java b/app/src/main/java/com/gh/common/util/GameUtils.java index faed6cc581..d4dd9ba8d8 100644 --- a/app/src/main/java/com/gh/common/util/GameUtils.java +++ b/app/src/main/java/com/gh/common/util/GameUtils.java @@ -68,7 +68,7 @@ public class GameUtils { DownloadEntity downloadEntity; Object gh_id; for (ApkEntity apkEntity : gameEntity.getApk()) { - downloadEntity = DownloadManager.getInstance(context).get(apkEntity.getUrl()); + downloadEntity = DownloadManager.getInstance(context).getDownloadEntityByUrl(apkEntity.getUrl()); if (downloadEntity != null) { if (downloadEntity.getStatus().equals(DownloadStatus.done)) { doneCount++; diff --git a/app/src/main/java/com/gh/common/util/ImageUtils.java b/app/src/main/java/com/gh/common/util/ImageUtils.java index 58e318b713..1fe3f83255 100644 --- a/app/src/main/java/com/gh/common/util/ImageUtils.java +++ b/app/src/main/java/com/gh/common/util/ImageUtils.java @@ -64,7 +64,7 @@ public class ImageUtils { simpleDraweeView.setHierarchy(new GenericDraweeHierarchyBuilder(resources) .setFadeDuration(500) .setPressedStateOverlay(new ColorDrawable(ContextCompat.getColor(context, R.color.pressed_bg))) - .setPlaceholderImage(R.drawable.ocupy2, ScalingUtils.ScaleType.CENTER) + .setPlaceholderImage(R.drawable.occupy2, ScalingUtils.ScaleType.CENTER) .setBackground(new ColorDrawable(ContextCompat.getColor(context, R.color.placeholder_bg))) .setActualImageScaleType(scaleType) .build()); 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 73dc01c5f5..90ae98bf48 100644 --- a/app/src/main/java/com/gh/common/util/PackageUtils.java +++ b/app/src/main/java/com/gh/common/util/PackageUtils.java @@ -57,7 +57,7 @@ public class PackageUtils { return metaDate.get(name); } } catch (NameNotFoundException e) { - e.printStackTrace(); +// e.printStackTrace(); } return null; } diff --git a/app/src/main/java/com/gh/common/view/DownloadDialog.java b/app/src/main/java/com/gh/common/view/DownloadDialog.java index 7753dbc477..987d7f3dd7 100644 --- a/app/src/main/java/com/gh/common/view/DownloadDialog.java +++ b/app/src/main/java/com/gh/common/view/DownloadDialog.java @@ -213,7 +213,7 @@ public class DownloadDialog implements OnCollectionCallBackListener { String packageName; Object gh_id; for (ApkEntity apkEntity : apkList) { - downloadEntity = DownloadManager.getInstance(mContext).get(apkEntity.getUrl()); + downloadEntity = DownloadManager.getInstance(mContext).getDownloadEntityByUrl(apkEntity.getUrl()); if (downloadEntity == null) { packageName = apkEntity.getPackageName(); if (PackageManager.isInstalled(packageName)) { diff --git a/app/src/main/java/com/gh/download/DownloadManager.java b/app/src/main/java/com/gh/download/DownloadManager.java index 9130c3a56c..352cdd029c 100644 --- a/app/src/main/java/com/gh/download/DownloadManager.java +++ b/app/src/main/java/com/gh/download/DownloadManager.java @@ -6,10 +6,10 @@ import android.content.SharedPreferences; import android.os.Handler; import android.os.Looper; import android.os.Message; +import android.preference.PreferenceManager; import android.support.v4.util.ArrayMap; import android.widget.Toast; -import com.gh.common.constant.Config; import com.gh.common.util.AppDebugConfig; import com.gh.common.util.DataCollectionUtils; import com.gh.common.util.DialogUtils; @@ -39,6 +39,8 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.LinkedBlockingQueue; +import static android.os.Build.MANUFACTURER; + public class DownloadManager implements DownloadStatusListener { private static DownloadManager mInstance; @@ -193,8 +195,8 @@ public class DownloadManager implements DownloadStatusListener { String location) { // 安装指引 - if (android.os.Build.MANUFACTURER.equalsIgnoreCase("Huawei") || "Oppo".equalsIgnoreCase(android.os.Build.MANUFACTURER)) { - SharedPreferences sp = context.getSharedPreferences(Config.PREFERENCE, Context.MODE_PRIVATE); + if ("Huawei".equalsIgnoreCase(MANUFACTURER) || "Oppo".equalsIgnoreCase(MANUFACTURER)) { + SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); final SharedPreferences.Editor edit = sp.edit(); if (sp.getBoolean("InstallHint" + PackageUtils.getVersionName(context), true)) { DialogUtils.showInstallHintDialog(context, @@ -273,7 +275,7 @@ public class DownloadManager implements DownloadStatusListener { * @param url 下载任务的标识url */ private boolean checkDownloadEntryRecordValidate(String url) { - DownloadEntity entry = get(url); + DownloadEntity entry = getDownloadEntityByUrl(url); if (entry != null && ((int) entry.getPercent()) != 0) { File file = new File(entry.getPath()); if (!file.exists()) { @@ -292,7 +294,7 @@ public class DownloadManager implements DownloadStatusListener { * @return */ public boolean isFileCompleted(String url) { - DownloadEntity entry = get(url); + DownloadEntity entry = getDownloadEntityByUrl(url); if (entry != null && entry.getPercent() == 100) { Utils.log(DownloadManager.class.getSimpleName(), "文件已经下载完成!"); @@ -323,7 +325,7 @@ public class DownloadManager implements DownloadStatusListener { * @param url 下载链接 * @return null表示下载列表中不存在该任务,否则返回下载任务 */ - public DownloadEntity get(String url) { + public DownloadEntity getDownloadEntityByUrl(String url) { return mDownloadDao.get(url); } @@ -333,7 +335,7 @@ public class DownloadManager implements DownloadStatusListener { * @param packageName 包名 * @return null表示下载列表中不存在该任务,否则返回下载任务 */ - public DownloadEntity getByPackage(String packageName) { + public DownloadEntity getDownloadEntityByPackageName(String packageName) { for (DownloadEntity downloadEntity : mDownloadDao.getAll()) { if (packageName.equals(downloadEntity.getPackageName())) { return downloadEntity; @@ -395,7 +397,7 @@ public class DownloadManager implements DownloadStatusListener { void putStatus(String url, String status) { statusMap.put(url, status); - onTaskStatusChanged(get(url)); + onTaskStatusChanged(getDownloadEntityByUrl(url)); } public String getStatus(String url) { @@ -417,7 +419,7 @@ public class DownloadManager implements DownloadStatusListener { */ @Deprecated void resume(String url) { - DownloadEntity entry = get(url); + DownloadEntity entry = getDownloadEntityByUrl(url); // 暂停任务后,把文件删除,然后点继续,文件不存在,需要重新加入下载队列进行下载 if (checkDownloadEntryRecordValidate(url)) { diff --git a/app/src/main/java/com/gh/gamecenter/ChooseReceiverActivity.java b/app/src/main/java/com/gh/gamecenter/ChooseReceiverActivity.java index 14b30099cd..9cc9cfa948 100644 --- a/app/src/main/java/com/gh/gamecenter/ChooseReceiverActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ChooseReceiverActivity.java @@ -169,6 +169,7 @@ public class ChooseReceiverActivity extends BaseActivity implements View.OnClick RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.MATCH_PARENT); params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); + params.addRule(RelativeLayout.CENTER_VERTICAL); RelativeLayout reuse_actionbar = (RelativeLayout) mContentView.findViewById( R.id.reuse_actionbar); reuse_actionbar.addView(hintTv, params); diff --git a/app/src/main/java/com/gh/gamecenter/CommonActivity.java b/app/src/main/java/com/gh/gamecenter/CommonActivity.java new file mode 100644 index 0000000000..a1e11bf073 --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/CommonActivity.java @@ -0,0 +1,18 @@ +package com.gh.gamecenter; + +import com.gh.base.BaseAppCompatToolBarActivity; + +public class CommonActivity extends BaseAppCompatToolBarActivity { + + @Override + protected int getLayoutId() { + return R.layout.layout_wrapper_toolbar; + } + + @Override + protected boolean onNavigationIconClicked() { + finish(); + return true; + } + +} diff --git a/app/src/main/java/com/gh/gamecenter/ConcernActivity.java b/app/src/main/java/com/gh/gamecenter/ConcernActivity.java index 9c794dcb03..aa3fb4e50b 100644 --- a/app/src/main/java/com/gh/gamecenter/ConcernActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ConcernActivity.java @@ -12,9 +12,9 @@ import android.widget.LinearLayout; import android.widget.RelativeLayout; import com.gh.base.BaseActivity; +import com.gh.base.OnRequestCallBackListener; import com.gh.common.util.ConcernUtils; import com.gh.common.util.EntranceUtils; -import com.lightgame.utils.Utils; import com.gh.common.view.Concern_LinearLayout; import com.gh.gamecenter.adapter.ConcernAdapter; import com.gh.gamecenter.adapter.ConcernRecommendAdapter; @@ -22,6 +22,7 @@ import com.gh.gamecenter.db.info.ConcernInfo; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.eventbus.EBConcernChanged; import com.gh.gamecenter.manager.ConcernManager; +import com.lightgame.utils.Utils; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; @@ -31,7 +32,7 @@ import java.util.List; import butterknife.BindView; -public class ConcernActivity extends BaseActivity implements OnClickListener { +public class ConcernActivity extends BaseActivity implements OnClickListener, OnRequestCallBackListener { @BindView(R.id.concern_rv_show) RecyclerView mConcernRv; @@ -140,6 +141,16 @@ public class ConcernActivity extends BaseActivity implements OnClickListener { mConcernRecommendRv.getAdapter().notifyDataSetChanged(); } + @Override + public void loadDone(Object obj) { + + } + + @Override + public void loadError() { + + } + @Override public void loadEmpty() { if (concernAdapter.getConcernList() == null @@ -153,8 +164,8 @@ public class ConcernActivity extends BaseActivity implements OnClickListener { mConcernRecommendRv.setVisibility(View.GONE); } else { if (concernRecommendAdapter.getRecommendGameList().size() < 4) { - mConcernRecommendRv.setLayoutManager(new GridLayoutManager( - ConcernActivity.this, concernRecommendAdapter.getRecommendGameList().size())); + mConcernRecommendRv.setLayoutManager( + new GridLayoutManager(this, concernRecommendAdapter.getRecommendGameList().size())); } } } @@ -202,11 +213,10 @@ public class ConcernActivity extends BaseActivity implements OnClickListener { mConcernRecommendRv.setVisibility(View.GONE); } if (concernRecommendAdapter.getRecommendGameList().size() < 4) { - mConcernRecommendRv.setLayoutManager(new GridLayoutManager( - ConcernActivity.this, concernRecommendAdapter.getRecommendGameList().size())); + mConcernRecommendRv.setLayoutManager( + new GridLayoutManager(this, concernRecommendAdapter.getRecommendGameList().size())); } else { - mConcernRecommendRv.setLayoutManager(new GridLayoutManager( - ConcernActivity.this, 4)); + mConcernRecommendRv.setLayoutManager(new GridLayoutManager(this, 4)); } break; } @@ -227,11 +237,10 @@ public class ConcernActivity extends BaseActivity implements OnClickListener { mConcernRecommendRv.setVisibility(View.VISIBLE); } if (concernRecommendAdapter.getRecommendGameList().size() < 4) { - mConcernRecommendRv.setLayoutManager(new GridLayoutManager( - ConcernActivity.this, concernRecommendAdapter.getRecommendGameList().size())); + mConcernRecommendRv.setLayoutManager( + new GridLayoutManager(this, concernRecommendAdapter.getRecommendGameList().size())); } else { - mConcernRecommendRv.setLayoutManager(new GridLayoutManager( - ConcernActivity.this, 4)); + mConcernRecommendRv.setLayoutManager(new GridLayoutManager(this, 4)); } } } diff --git a/app/src/main/java/com/gh/gamecenter/InstallActivity.java b/app/src/main/java/com/gh/gamecenter/InstallActivity.java index d4e4521b0f..fe70f00da7 100644 --- a/app/src/main/java/com/gh/gamecenter/InstallActivity.java +++ b/app/src/main/java/com/gh/gamecenter/InstallActivity.java @@ -12,6 +12,7 @@ import android.widget.LinearLayout; import android.widget.TextView; import com.gh.base.BaseActivity; +import com.gh.base.OnRequestCallBackListener; import com.gh.common.util.DialogUtils; import com.gh.common.util.DownloadItemUtils; import com.gh.common.view.SwipeLayout; @@ -40,7 +41,8 @@ import static com.gh.gamecenter.R.id.reuse_nodata_skip_tv_hint; * Created by khy on 15/06/17. */ -public class InstallActivity extends BaseActivity implements InstallFragmentAdapter.onSmoothLayoutListener { +public class InstallActivity extends BaseActivity implements InstallFragmentAdapter.onSmoothLayoutListener, + OnRequestCallBackListener { @BindView(R.id.fm_install_rv_show) RecyclerView mInstallRv; @@ -134,6 +136,21 @@ public class InstallActivity extends BaseActivity implements InstallFragmentAdap DownloadManager.getInstance(this).removeObserver(dataWatcher); } + @Override + public void loadDone() { + + } + + @Override + public void loadDone(Object obj) { + + } + + @Override + public void loadError() { + + } + @Override public void loadEmpty() { mInstallRv.setVisibility(View.GONE); diff --git a/app/src/main/java/com/gh/gamecenter/KaiFuActivity.java b/app/src/main/java/com/gh/gamecenter/KaiFuActivity.java index 265e7a5788..1880dbe633 100644 --- a/app/src/main/java/com/gh/gamecenter/KaiFuActivity.java +++ b/app/src/main/java/com/gh/gamecenter/KaiFuActivity.java @@ -19,11 +19,10 @@ import android.widget.TextView; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; import com.gh.base.BaseActivity; +import com.gh.base.OnRequestCallBackListener; import com.gh.common.util.DownloadItemUtils; import com.gh.common.util.EntranceUtils; import com.gh.common.view.VerticalItemDecoration; -import com.lightgame.download.DataWatcher; -import com.lightgame.download.DownloadEntity; import com.gh.download.DownloadManager; import com.gh.gamecenter.adapter.KaiFuAdapter; import com.gh.gamecenter.adapter.KaiFuDialogAdapter; @@ -33,6 +32,8 @@ import com.gh.gamecenter.eventbus.EBDownloadStatus; import com.gh.gamecenter.eventbus.EBNetworkState; import com.gh.gamecenter.eventbus.EBPackage; import com.jakewharton.rxbinding.view.RxView; +import com.lightgame.download.DataWatcher; +import com.lightgame.download.DownloadEntity; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; @@ -47,8 +48,9 @@ import rx.functions.Action1; * Created by khy on 2017/3/16. * 首页-开服表 */ -public class KaiFuActivity extends BaseActivity implements KaiFuDialogAdapter.OnKaiFuDialogCallBackListener - , KaiFuAdapter.OnScrollToKaiFuIndexListener, SwipeRefreshLayout.OnRefreshListener { +public class KaiFuActivity extends BaseActivity implements OnRequestCallBackListener, + KaiFuDialogAdapter.OnKaiFuDialogCallBackListener, KaiFuAdapter.OnScrollToKaiFuIndexListener, + SwipeRefreshLayout.OnRefreshListener { @BindView(R.id.kaifu_rv) RecyclerView mRecyclerView; @@ -145,7 +147,7 @@ public class KaiFuActivity extends BaseActivity implements KaiFuDialogAdapter.On int n = mMovePosition - layoutManager.findFirstVisibleItemPosition(); if (0 <= n && n < mRecyclerView.getChildCount()) { View view = layoutManager.findViewByPosition(n); - if (view!= null) { + if (view != null) { int top = view.getTop(); mRecyclerView.smoothScrollBy(0, top); } @@ -162,15 +164,15 @@ public class KaiFuActivity extends BaseActivity implements KaiFuDialogAdapter.On && layoutManager.findFirstVisibleItemPosition() == 0) { int countTop = mAdapter.loadCountTop(); // if (countTop % 20 == 0) { // 不是20的倍数 证明加载完毕 - int offset = kaifuOffset - countTop; - int limit = 20; - if (offset < 0) { - limit = limit + offset; - offset = 0; - } - if (limit == 0) return; + int offset = kaifuOffset - countTop; + int limit = 20; + if (offset < 0) { + limit = limit + offset; + offset = 0; + } + if (limit == 0) return; - mAdapter.initListTop(offset, limit); + mAdapter.initListTop(offset, limit); // } } } @@ -362,8 +364,6 @@ public class KaiFuActivity extends BaseActivity implements KaiFuDialogAdapter.On @Override public void loadDone(Object obj) { - super.loadDone(obj); - kaifuOffset = (int) obj; } @@ -380,7 +380,6 @@ public class KaiFuActivity extends BaseActivity implements KaiFuDialogAdapter.On @Override public void loadEmpty() { - super.loadEmpty(); mNoData.setVisibility(View.VISIBLE); mNoConnection.setVisibility(View.GONE); } diff --git a/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java b/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java index fcefe6d2f2..f1889c9a87 100644 --- a/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java @@ -14,6 +14,7 @@ import android.widget.LinearLayout; import android.widget.TextView; import com.gh.base.BaseActivity; +import com.gh.base.OnRequestCallBackListener; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.DetailDownloadUtils; import com.gh.common.util.EntranceUtils; @@ -52,7 +53,8 @@ import static com.gh.gamecenter.R.id.reuse_tv_none_data; /** * Created by khy on 2016/12/13. */ -public class LibaoDetailActivity extends BaseActivity implements LibaoDetailAdapter.OnCodeScrollListener { +public class LibaoDetailActivity extends BaseActivity implements LibaoDetailAdapter.OnCodeScrollListener, + OnRequestCallBackListener { @BindView(R.id.libaodetail_rv_show) RecyclerView mLibaoDetailRv; @@ -306,6 +308,11 @@ public class LibaoDetailActivity extends BaseActivity implements LibaoDetailAdap } } + @Override + public void loadDone(Object obj) { + + } + @Override public void loadError() { mLibaoDetailRv.setVisibility(View.GONE); diff --git a/app/src/main/java/com/gh/gamecenter/LoginActivity.java b/app/src/main/java/com/gh/gamecenter/LoginActivity.java index 03cc71cad2..4e5ff1cf1c 100644 --- a/app/src/main/java/com/gh/gamecenter/LoginActivity.java +++ b/app/src/main/java/com/gh/gamecenter/LoginActivity.java @@ -14,6 +14,7 @@ import android.text.Editable; import android.text.TextWatcher; import android.view.KeyEvent; import android.view.View; +import android.view.ViewGroup; import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; @@ -101,21 +102,18 @@ public class LoginActivity extends BaseActivity implements LoginUtils.OnLoginLis // 添加老用户入口 mOldUser = new ImageView(this); mOldUser.setImageResource(R.drawable.login_olduser_icon); - mOldUser.setPadding(DisplayUtils.dip2px(this, 13), DisplayUtils.dip2px(this, 11) - , DisplayUtils.dip2px(this, 11), DisplayUtils.dip2px(this, 13)); + mOldUser.setPadding(DisplayUtils.dip2px(this, 13), DisplayUtils.dip2px(this, 11), + DisplayUtils.dip2px(this, 11), DisplayUtils.dip2px(this, 13)); RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams( - DisplayUtils.dip2px(this, 48), DisplayUtils.dip2px(this, 48)); + ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); params.addRule(RelativeLayout.CENTER_VERTICAL); params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); - RelativeLayout reuseActionbar = (RelativeLayout) mContentView.findViewById( - R.id.reuse_actionbar); + RelativeLayout reuseActionbar = (RelativeLayout) mContentView.findViewById(R.id.reuse_actionbar); reuseActionbar.addView(mOldUser, params); - mLoginPassEt.addTextChangedListener(new LoginTextWatcher(mLoginPassEt)); mLoginPhoneEt.addTextChangedListener(new LoginTextWatcher(mLoginPhoneEt)); - mOldUser.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java b/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java index 68d42f3af3..669439c79f 100644 --- a/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java @@ -15,6 +15,7 @@ import android.text.TextUtils; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; +import android.view.ViewGroup; import android.view.Window; import android.widget.ImageView; import android.widget.LinearLayout; @@ -23,7 +24,7 @@ import android.widget.TextView; import android.widget.Toast; import com.gh.base.BaseActivity; -import com.gh.download.DownloadManager; +import com.gh.base.OnRequestCallBackListener; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.CheckLoginUtils; import com.gh.common.util.DataCollectionUtils; @@ -33,6 +34,7 @@ import com.gh.common.util.DisplayUtils; import com.gh.common.util.EntranceUtils; import com.gh.common.util.ShareUtils; import com.gh.common.view.VerticalItemDecoration; +import com.gh.download.DownloadManager; import com.gh.gamecenter.adapter.viewholder.DetailViewHolder; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.entity.NewsEntity; @@ -67,7 +69,7 @@ import rx.schedulers.Schedulers; * * @author 黄壮华 */ -public class NewsDetailActivity extends BaseActivity implements OnClickListener { +public class NewsDetailActivity extends BaseActivity implements OnClickListener, OnRequestCallBackListener { @BindView(R.id.actionbar_tv_title) TextView mActionbarTitle; @@ -224,10 +226,10 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener iv_share.setPadding(DisplayUtils.dip2px(this, 13), DisplayUtils.dip2px(this, 11) , DisplayUtils.dip2px(this, 11), DisplayUtils.dip2px(this, 13)); RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams( - DisplayUtils.dip2px(this, 48), DisplayUtils.dip2px(this, 48)); + DisplayUtils.dip2px(this, 48), ViewGroup.LayoutParams.MATCH_PARENT); params.addRule(RelativeLayout.CENTER_VERTICAL); params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); - RelativeLayout reuse_actionbar = (RelativeLayout) mContentView.findViewById( + ViewGroup reuse_actionbar = (ViewGroup) mContentView.findViewById( R.id.reuse_actionbar); reuse_actionbar.addView(iv_share, params); @@ -371,6 +373,11 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener DownloadManager.getInstance(this).addObserver(dataWatcher); } + @Override + public void loadDone() { + + } + @Override public void loadDone(Object obj) { if (mReuseLoading != null) { @@ -388,6 +395,11 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener mNoConn.setVisibility(View.VISIBLE); } + @Override + public void loadEmpty() { + + } + private void getNewsDigest(final String newsId) { RetrofitManager.getApi().getNewsDigest(newsId) .subscribeOn(Schedulers.io()) diff --git a/app/src/main/java/com/gh/gamecenter/PluginActivity.java b/app/src/main/java/com/gh/gamecenter/PluginActivity.java index f6b56f9585..0fbfa66695 100644 --- a/app/src/main/java/com/gh/gamecenter/PluginActivity.java +++ b/app/src/main/java/com/gh/gamecenter/PluginActivity.java @@ -11,6 +11,7 @@ import android.widget.LinearLayout; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; import com.gh.base.BaseActivity; +import com.gh.base.OnRequestCallBackListener; import com.gh.common.util.DownloadItemUtils; import com.gh.common.util.EntranceUtils; import com.lightgame.download.DataWatcher; @@ -34,7 +35,7 @@ import butterknife.BindView; * Created by LGT on 2016/7/6. * 可插件化界面 */ -public class PluginActivity extends BaseActivity { +public class PluginActivity extends BaseActivity implements OnRequestCallBackListener { @BindView(R.id.plugin_list) RecyclerView mPluginRv; @@ -130,6 +131,21 @@ public class PluginActivity extends BaseActivity { } } + @Override + public void loadDone(Object obj) { + + } + + @Override + public void loadError() { + + } + + @Override + public void loadEmpty() { + + } + // 下载被删除事件 @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(EBDownloadStatus status) { diff --git a/app/src/main/java/com/gh/gamecenter/SearchActivity.java b/app/src/main/java/com/gh/gamecenter/SearchActivity.java index a7ccda3560..c9be7ba30b 100644 --- a/app/src/main/java/com/gh/gamecenter/SearchActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SearchActivity.java @@ -1,12 +1,10 @@ package com.gh.gamecenter; -import android.app.ActionBar.LayoutParams; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; -import android.preference.PreferenceManager; import android.support.annotation.NonNull; import android.support.v4.app.FragmentTransaction; import android.text.Editable; @@ -19,20 +17,18 @@ import android.view.inputmethod.EditorInfo; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; import android.widget.ImageView; -import android.widget.LinearLayout; import android.widget.TextView; import android.widget.TextView.OnEditorActionListener; import com.gh.base.BaseActivity; import com.gh.common.util.DataCollectionUtils; -import com.gh.common.util.DisplayUtils; import com.gh.common.util.EntranceUtils; -import com.lightgame.utils.Utils; import com.gh.gamecenter.db.SearchHistoryDao; import com.gh.gamecenter.eventbus.EBSearch; import com.gh.gamecenter.search.SearchGameDetailFragment; import com.gh.gamecenter.search.SearchGameListFragment; import com.gh.gamecenter.search.SearchHistoryFragment; +import com.lightgame.utils.Utils; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; @@ -125,13 +121,6 @@ public class SearchActivity extends BaseActivity { } public void setActionBarLayout() { - int actionbar_height = PreferenceManager.getDefaultSharedPreferences(this).getInt("actionbar_height", - DisplayUtils.dip2px(getApplicationContext(), 48)); - - LinearLayout reuse_actionbar = (LinearLayout) findViewById(R.id.search_actionbar); - LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams( - LayoutParams.MATCH_PARENT, actionbar_height); - reuse_actionbar.setLayoutParams(lparams); searchInput = (EditText) findViewById(R.id.etSearch); searchInput.setOnEditorActionListener(new OnEditorActionListener() { diff --git a/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java b/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java index 5c5a02ee77..9352c1416d 100644 --- a/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java @@ -1,7 +1,5 @@ package com.gh.gamecenter; -import android.app.ActionBar; -import android.app.ActionBar.LayoutParams; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; @@ -17,7 +15,6 @@ import android.view.KeyEvent; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; -import android.widget.RelativeLayout; import android.widget.TextView; import com.gh.base.AppController; @@ -114,19 +111,20 @@ public class SplashScreenActivity extends BaseActivity { isFirst = true; - if (isNewFirstLaunch || mSharedPreferences.getInt("actionbar_height", 0) != 0) { +// if (isNewFirstLaunch || mSharedPreferences.getInt("actionbar_height", 0) != 0) { + if (isNewFirstLaunch) { setTheme(R.style.AppGuideTheme); } else { setTheme(R.style.AppFullScreenTheme); // 自定义ActionBar - ActionBar actionBar = getActionBar(); - if (actionBar != null) { - actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); - RelativeLayout relativeLayout = new RelativeLayout(this); - relativeLayout.setBackgroundResource(R.color.theme); - LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); - actionBar.setCustomView(relativeLayout, params);// 自定义ActionBar布局 - } +// ActionBar actionBar = getActionBar(); +// if (actionBar != null) { +// actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); +// RelativeLayout relativeLayout = new RelativeLayout(this); +// relativeLayout.setBackgroundResource(R.color.theme); +// LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); +// actionBar.setCustomView(relativeLayout, params);// 自定义ActionBar布局 +// } } if (isNewFirstLaunch) { @@ -239,13 +237,13 @@ public class SplashScreenActivity extends BaseActivity { // 不是第一次启动 if (!isNewFirstLaunch) { - int height = mSharedPreferences.getInt("actionbar_height", 0); - if (height == 0) { - final ActionBar actionBar = getActionBar(); - if (actionBar != null) { - mSharedPreferences.edit().putInt("actionbar_height", actionBar.getHeight()).apply(); - } - } +// int height = mSharedPreferences.getInt("actionbar_height", 0); +// if (height == 0) { +// final ActionBar actionBar = getActionBar(); +// if (actionBar != null) { +// mSharedPreferences.edit().putInt("actionbar_height", actionBar.getHeight()).apply(); +// } +// } long end = System.currentTimeMillis() - start; if (end < 3000) { getWindow().getDecorView().postDelayed(new Runnable() { diff --git a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java index fb0765ce7f..d1b6f8f88a 100644 --- a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java @@ -29,6 +29,7 @@ import android.widget.TextView; import com.gh.base.AppController; import com.gh.base.BaseActivity; +import com.gh.base.OnRequestCallBackListener; import com.gh.common.constant.Config; import com.gh.common.util.BitmapUtils; import com.gh.common.util.DialogUtils; @@ -82,7 +83,8 @@ import rx.schedulers.Schedulers; /** * Created by khy on 2017/3/31. */ -public class SuggestionActivity extends BaseActivity implements SuggestTypeAdapter.OnSelectTypeListener { +public class SuggestionActivity extends BaseActivity implements SuggestTypeAdapter.OnSelectTypeListener, + OnRequestCallBackListener { @BindView(R.id.suggest_content_et) EditText mSuggestContentEt; @@ -342,18 +344,31 @@ public class SuggestionActivity extends BaseActivity implements SuggestTypeAdapt } @Override - public void loadDone(Object obj) { - super.loadDone(obj); + public void loadDone() { + + } + + @Override + public void loadDone(InstallGameEntity entity) { if (selectGameDialog != null) { selectGameDialog.cancel(); } mSuggestGameLl.setVisibility(View.GONE); mSuggestContentEt.setVisibility(View.VISIBLE); - InstallGameEntity entity = (InstallGameEntity) obj; mSuggestContentEt.setText("推荐收录:" + entity.getGameName() + "(" + entity.getPackageName() + ", " + entity.getGameVersion() + ")"); } + @Override + public void loadError() { + + } + + @Override + public void loadEmpty() { + + } + @OnClick({R.id.suggest_post_btn, R.id.suggest_select_game, R.id.suggest_game_text}) public void onViewClicked(View view) { switch (view.getId()) { diff --git a/app/src/main/java/com/gh/gamecenter/ToolBoxActivity.java b/app/src/main/java/com/gh/gamecenter/ToolBoxActivity.java index 5263b3ef1e..97e9a0e9c5 100644 --- a/app/src/main/java/com/gh/gamecenter/ToolBoxActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ToolBoxActivity.java @@ -13,6 +13,7 @@ import android.widget.TextView; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; import com.gh.base.BaseActivity; +import com.gh.base.OnRequestCallBackListener; import com.gh.common.view.VerticalItemDecoration; import com.gh.gamecenter.adapter.ToolBoxRvAdapter; @@ -24,7 +25,7 @@ import butterknife.OnClick; */ public class ToolBoxActivity extends BaseActivity implements SwipeRefreshLayout.OnRefreshListener, - ToolBoxRvAdapter.OnSearchCallBackListener { + ToolBoxRvAdapter.OnSearchCallBackListener, OnRequestCallBackListener { @BindView(R.id.toolbox_rv) RecyclerView mToolboxRv; @@ -114,7 +115,6 @@ public class ToolBoxActivity extends BaseActivity implements SwipeRefreshLayout. @Override public void loadDone() { - super.loadDone(); mRefresh.setRefreshing(false); mNoneData.setVisibility(View.GONE); mNoConnection.setVisibility(View.GONE); @@ -122,9 +122,13 @@ public class ToolBoxActivity extends BaseActivity implements SwipeRefreshLayout. } + @Override + public void loadDone(Object obj) { + + } + @Override public void loadEmpty() { - super.loadEmpty(); mRefresh.setRefreshing(false); mNoneData.setVisibility(View.VISIBLE); mNoConnection.setVisibility(View.GONE); @@ -138,7 +142,6 @@ public class ToolBoxActivity extends BaseActivity implements SwipeRefreshLayout. @Override public void loadError() { - super.loadError(); mRefresh.setRefreshing(false); mNoneData.setVisibility(View.GONE); mNoConnection.setVisibility(View.VISIBLE); diff --git a/app/src/main/java/com/gh/gamecenter/VoteActivity.java b/app/src/main/java/com/gh/gamecenter/VoteActivity.java index 1be043ad97..053ddfc3cd 100644 --- a/app/src/main/java/com/gh/gamecenter/VoteActivity.java +++ b/app/src/main/java/com/gh/gamecenter/VoteActivity.java @@ -22,14 +22,15 @@ import android.widget.Toast; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; import com.gh.base.BaseActivity; +import com.gh.base.OnRequestCallBackListener; import com.gh.common.util.DialogUtils; import com.gh.common.util.TokenUtils; -import com.lightgame.utils.Utils; import com.gh.gamecenter.adapter.VoteAdapter; import com.gh.gamecenter.db.VersionVoteDao; import com.gh.gamecenter.db.info.VersionVoteInfo; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; +import com.lightgame.utils.Utils; import org.json.JSONException; import org.json.JSONObject; @@ -49,7 +50,8 @@ import rx.schedulers.Schedulers; * Created by khy on 2017/4/11. * 求版本投票页面 */ -public class VoteActivity extends BaseActivity implements SwipeRefreshLayout.OnRefreshListener, VoteAdapter.OnAddVoteListener { +public class VoteActivity extends BaseActivity implements SwipeRefreshLayout.OnRefreshListener, + VoteAdapter.OnAddVoteListener, OnRequestCallBackListener { @BindView(R.id.vote_rv) RecyclerView mVoteRv; @@ -132,7 +134,6 @@ public class VoteActivity extends BaseActivity implements SwipeRefreshLayout.OnR @Override public void loadDone() { - super.loadDone(); mVoteRefresh.setRefreshing(false); mVoteLoading.setVisibility(View.GONE); mVoteRv.setVisibility(View.VISIBLE); @@ -140,14 +141,12 @@ public class VoteActivity extends BaseActivity implements SwipeRefreshLayout.OnR } @Override - public void loadDone(Object obj) { - super.loadDone(obj); - postVersionVote((String) obj, true, false); // 投票 + public void loadDone(String obj) { + postVersionVote(obj, true, false); // 投票 } @Override public void loadError() { - super.loadError(); mVoteRefresh.setRefreshing(false); mNoConnection.setVisibility(View.VISIBLE); mVoteRv.setVisibility(View.GONE); @@ -156,7 +155,6 @@ public class VoteActivity extends BaseActivity implements SwipeRefreshLayout.OnR @Override public void loadEmpty() { - super.loadEmpty(); mVoteRefresh.setRefreshing(false); mAddTv.setVisibility(View.VISIBLE); mVoteLoading.setVisibility(View.GONE); diff --git a/app/src/main/java/com/gh/gamecenter/WebActivity.java b/app/src/main/java/com/gh/gamecenter/WebActivity.java index 7b628444ac..689edfb750 100644 --- a/app/src/main/java/com/gh/gamecenter/WebActivity.java +++ b/app/src/main/java/com/gh/gamecenter/WebActivity.java @@ -8,6 +8,7 @@ import android.support.annotation.NonNull; import android.text.TextUtils; import android.view.KeyEvent; import android.view.View; +import android.view.ViewGroup; import android.webkit.DownloadListener; import android.webkit.WebChromeClient; import android.webkit.WebSettings; @@ -105,13 +106,11 @@ public class WebActivity extends BaseActivity implements View.OnClickListener{ if (mIsTools) { mToolBoxEntity = getIntent().getParcelableExtra("ToolBoxEntity"); mShareIv = new ImageView(this); - mShareIv.setImageResource(R.drawable.ic_share); + mShareIv.setImageResource(R.drawable.menu_ic_share); mShareIv.setOnClickListener(this); mShareIv.setVisibility(View.VISIBLE); - mShareIv.setPadding(DisplayUtils.dip2px(this, 13), DisplayUtils.dip2px(this, 11) - , DisplayUtils.dip2px(this, 11), DisplayUtils.dip2px(this, 13)); RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams( - DisplayUtils.dip2px(this, 48), DisplayUtils.dip2px(this, 48)); + ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.MATCH_PARENT); params.addRule(RelativeLayout.CENTER_VERTICAL); params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); RelativeLayout reuse_actionbar = (RelativeLayout) mContentView.findViewById( diff --git a/app/src/main/java/com/gh/gamecenter/adapter/FileReceiverAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/FileReceiverAdapter.java index 6c09f871c1..2547901f33 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/FileReceiverAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/FileReceiverAdapter.java @@ -66,7 +66,7 @@ public class FileReceiverAdapter extends BaseRecyclerAdapter { && !TextUtils.isEmpty(apkEntity.getGhVersion()) && !PackageUtils.isSignature(mContext, apkEntity.getPackageName())) { viewHolder.mDownloadItemTvStatus.setText("插件化"); - downloadEntity = DownloadManager.getInstance(mContext).getByPackage(apkEntity.getPackageName()); + downloadEntity = DownloadManager.getInstance(mContext).getDownloadEntityByPackageName(apkEntity.getPackageName()); if (downloadEntity == null || downloadEntity.getUrl().equals(apkEntity.getUrl())) { viewHolder.itemView.setClickable(true); diff --git a/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragmentAdapter.java index 1080dce897..d99a03739c 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragmentAdapter.java @@ -15,9 +15,7 @@ import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; -import android.widget.ToggleButton; -import com.gh.common.util.AppDebugConfig; import com.gh.common.util.BitmapUtils; import com.gh.common.util.DataUtils; import com.gh.common.util.DialogUtils; @@ -398,9 +396,6 @@ class GameDownloadFragmentAdapter extends BaseRecyclerAdapter { viewHolder.dm_item_head_tv_allstart.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - if (AppDebugConfig.IS_DEBUG) { - AppDebugConfig.logMethodWithParams(this, v, ((TextView) v).getText(), ((ToggleButton) v).isChecked()); - } String str = ((TextView) v).getText().toString(); if ("全部开始".equals(str)) { if (NetworkUtils.isWifiConnected(mContext)) { diff --git a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java index 469d5703c7..425d28fb80 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragmentAdapter.java @@ -291,7 +291,7 @@ class GameUpdateFragmentAdapter extends BaseRecyclerAdapter { String str = updateList.get(i).getSize(); str = str.substring(0, str.lastIndexOf("M")); size += Float.valueOf(str); - DownloadEntity downloadEntity = DownloadManager.getInstance(mContext).get(updateList.get(i).getUrl()); + DownloadEntity downloadEntity = DownloadManager.getInstance(mContext).getDownloadEntityByUrl(updateList.get(i).getUrl()); if (downloadEntity != null) { count++; if (downloadEntity.getStatus().equals(DownloadStatus.done)) { @@ -322,7 +322,7 @@ class GameUpdateFragmentAdapter extends BaseRecyclerAdapter { if (NetworkUtils.isWifiConnected(mContext)) { viewHolder.dm_item_head_tv_allstart.setText("更新中"); for (int i = 0; i < updateList.size(); i++) { - if (DownloadManager.getInstance(mContext).get(updateList.get(i).getUrl()) == null) { + if (DownloadManager.getInstance(mContext).getDownloadEntityByUrl(updateList.get(i).getUrl()) == null) { addUpdateDownload(i); // notifyItemChanged(i + 1); } @@ -339,7 +339,7 @@ class GameUpdateFragmentAdapter extends BaseRecyclerAdapter { public void onConfirm() { viewHolder.dm_item_head_tv_allstart.setText("更新中"); for (int i = 0; i < updateList.size(); i++) { - if (DownloadManager.getInstance(mContext).get(updateList.get(i).getUrl()) == null) { + if (DownloadManager.getInstance(mContext).getDownloadEntityByUrl(updateList.get(i).getUrl()) == null) { addUpdateDownload(i); // notifyItemChanged(i + 1); } @@ -454,7 +454,7 @@ class GameUpdateFragmentAdapter extends BaseRecyclerAdapter { } }); - DownloadEntity downloadEntity = DownloadManager.getInstance(mContext).get(updateEntity.getUrl()); + DownloadEntity downloadEntity = DownloadManager.getInstance(mContext).getDownloadEntityByUrl(updateEntity.getUrl()); if (downloadEntity == null) { if (PackageManager.isCanUpdate(updateEntity.getId(), updateEntity.getPackageName())) { viewHolder.guUpdate.setText("更新"); @@ -463,7 +463,7 @@ class GameUpdateFragmentAdapter extends BaseRecyclerAdapter { } else if (updateEntity.isPluggable()) { viewHolder.guUpdate.setText("插件化"); viewHolder.guUpdate.setTextColor(Color.WHITE); - downloadEntity = DownloadManager.getInstance(mContext).getByPackage( + downloadEntity = DownloadManager.getInstance(mContext).getDownloadEntityByPackageName( updateEntity.getPackageName()); if (downloadEntity == null || downloadEntity.getUrl().equals(updateEntity.getUrl())) { diff --git a/app/src/main/java/com/gh/gamecenter/fragment/GameFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/GameFragment.java index fdc11d1d19..90844211c4 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/GameFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/GameFragment.java @@ -9,10 +9,10 @@ import android.widget.LinearLayout; import com.facebook.drawee.backends.pipeline.Fresco; import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; +import com.gh.base.OnRequestCallBackListener; +import com.gh.base.fragment.BaseFragment; import com.gh.common.util.ApkActiveUtils; import com.gh.common.util.DownloadItemUtils; -import com.lightgame.download.DataWatcher; -import com.lightgame.download.DownloadEntity; import com.gh.download.DownloadManager; import com.gh.gamecenter.MainActivity; import com.gh.gamecenter.R; @@ -25,7 +25,8 @@ import com.gh.gamecenter.eventbus.EBPackage; import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.eventbus.EBUISwitch; import com.gh.gamecenter.game.GameFragmentAdapter; -import com.gh.base.OnRequestCallBackListener; +import com.lightgame.download.DataWatcher; +import com.lightgame.download.DownloadEntity; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; @@ -37,7 +38,7 @@ import java.util.List; * Created by khy on 2016/12/6. * 新主界面 */ -public class GameFragment extends SearchToolbarFragment implements SwipeRefreshLayout.OnRefreshListener, OnRequestCallBackListener { +public class GameFragment extends BaseFragment implements SwipeRefreshLayout.OnRefreshListener, OnRequestCallBackListener { private SwipeRefreshLayout mGameSwipeRefresh; private RecyclerView mGameRv; @@ -145,7 +146,7 @@ public class GameFragment extends SearchToolbarFragment implements SwipeRefreshL //下载被删除事件 @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(EBDownloadStatus status) { - super.onEventMainThread(status); +// super.onEventMainThread(status); if ("delete".equals(status.getStatus())) { DownloadManager.getInstance(getActivity()).removePlatform(status.getName(), status.getPlatform()); @@ -207,12 +208,17 @@ public class GameFragment extends SearchToolbarFragment implements SwipeRefreshL if ("安装".equals(busFour.getType()) || "卸载".equals(busFour.getType())) { List list = adapter.getPluginList(); for (int i = 0; i < list.size(); i++) { - if (list.get(i).getApk().get(0).getPackageName().equals(busFour.getPackageName())) { + final GameEntity entity = list.get(i); + final ArrayList apkEntities = entity.getApk(); + final ApkEntity normalApkEntity = apkEntities.get(0); + + if (normalApkEntity.getPackageName().equals(busFour.getPackageName())) { if ("卸载".equals(busFour.getType()) - && DownloadManager.getInstance(getActivity()).get( - list.get(i).getApk().get(0).getUrl()) != null) { + && DownloadManager.getInstance(getContext()).getDownloadEntityByUrl( + normalApkEntity.getUrl()) != null) { adapter.notifyItemChanged(2 + i); } else { + //TODO ???? remove? list.remove(i); if (list.isEmpty()) { adapter.initItemCount(); diff --git a/app/src/main/java/com/gh/gamecenter/fragment/GameWrapperFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/GameWrapperFragment.java new file mode 100644 index 0000000000..3ecdbfa60d --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/fragment/GameWrapperFragment.java @@ -0,0 +1,51 @@ +package com.gh.gamecenter.fragment; + +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.view.View; + +import com.gh.base.SearchBarHint; +import com.gh.base.fragment.BaseFragment; +import com.gh.gamecenter.R; + +import java.util.ArrayList; + +/** + * @author CsHeng + * @Date 02/07/2017 + * @Time 11:30 AM + */ +public class GameWrapperFragment extends BaseFragment implements SearchBarHint { + + private SearchToolbarFragment mSearchToolbarFragment; + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + mSearchToolbarFragment = new SearchToolbarFragment(); + } + + @Override + protected int getLayoutId() { + return R.layout.fragment_wrapper_toolbar; + } + + @Override + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + getChildFragmentManager().beginTransaction() + .replace(R.id.wrapper_toolbar, mSearchToolbarFragment) + .replace(R.id.wrapper_main_content, new GameFragment()).commitAllowingStateLoss(); + + } + + @Override + public void setHint(ArrayList hintList) { + if (mSearchToolbarFragment != null) { + mSearchToolbarFragment.setHint(hintList); + } + } + +} + + diff --git a/app/src/main/java/com/gh/gamecenter/fragment/MainFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/MainFragment.java index a146f9b2a5..ca5294c4fa 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/MainFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/MainFragment.java @@ -84,7 +84,7 @@ public class MainFragment extends BaseFragment_ViewPager_Checkable { @Override protected void initFragmentList(List fragments) { - fragments.add(new GameFragment()); + fragments.add(new GameWrapperFragment()); fragments.add(new NewsWrapperFragment()); fragments.add(new MessageFragment()); fragments.add(new PersonalFragment()); diff --git a/app/src/main/java/com/gh/gamecenter/fragment/SearchToolbarFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/SearchToolbarFragment.java index 7c41be72bb..c3e69d4b60 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/SearchToolbarFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/SearchToolbarFragment.java @@ -3,6 +3,9 @@ package com.gh.gamecenter.fragment; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; import android.view.View; import android.view.animation.AlphaAnimation; import android.view.animation.Animation; @@ -128,6 +131,20 @@ public class SearchToolbarFragment extends BaseFragment implements View.OnClickL } + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + super.onCreateOptionsMenu(menu, inflater); + menu.clear(); + inflater.inflate(R.menu.menu_concern, menu); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + //TODO concern item only + + return super.onOptionsItemSelected(item); + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -149,6 +166,11 @@ public class SearchToolbarFragment extends BaseFragment implements View.OnClickL } private void initActionBar(View view) { + + if (getActivity().getActionBar() != null) { + getActivity().getActionBar().setCustomView(R.layout.search_actionbar); + } + mDownloadView.setOnClickListener(this); view.findViewById(R.id.actionbar_iv_search).setOnClickListener(this); diff --git a/app/src/main/java/com/gh/gamecenter/libao/LibaoFragment.java b/app/src/main/java/com/gh/gamecenter/libao/LibaoFragment.java new file mode 100644 index 0000000000..cc045417bd --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/libao/LibaoFragment.java @@ -0,0 +1,130 @@ +package com.gh.gamecenter.libao; + +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; +import android.util.DisplayMetrics; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.View; +import android.widget.LinearLayout; + +import com.gh.base.fragment.BaseFragment_ViewPager_Checkable; +import com.gh.common.util.DisplayUtils; +import com.gh.gamecenter.LibaoActivity; +import com.gh.gamecenter.R; +import com.gh.gamecenter.eventbus.EBUISwitch; + +import org.greenrobot.eventbus.EventBus; +import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; + +import java.util.List; + +import butterknife.BindView; + +import static com.gh.gamecenter.LibaoActivity.EB_LIBAOACTIVITY_TAG; + +/** + * @author CsHeng + * @Date 17/06/2017 + * @Time 10:30 AM + */ + +public class LibaoFragment extends BaseFragment_ViewPager_Checkable { + + @BindView(R.id.libao_slide_line) + View mSlidebarLine; + private LinearLayout.LayoutParams mLayoutParams; + private int mWidth; + + @Override + protected int getLayoutId() { + return R.layout.fragment_libao; + } + + @Override + protected int getCheckableGroupId() { + return R.id.libao_ll_top; + } + + @Override + protected int getViewPagerId() { + return R.id.libao_vp_content; + } + + @Override + protected boolean getSmoothScroll() { + return true; + } + + @Override + protected void initFragmentList(List fragments) { + fragments.add(new Libao1Fragment()); + fragments.add(new Libao2Fragment()); + fragments.add(new Libao3Fragment()); + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + DisplayMetrics outMetrics = new DisplayMetrics(); + getActivity().getWindowManager().getDefaultDisplay().getMetrics(outMetrics); + mWidth = outMetrics.widthPixels / 3; + mLayoutParams = new LinearLayout.LayoutParams(mWidth / 2, DisplayUtils.dip2px(getActivity(), 2)); + setHasOptionsMenu(true); + } + + @Override + public void onResume() { + super.onResume(); + setNavigationTitle(R.string.personal_libao); + } + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + super.onCreateOptionsMenu(menu, inflater); + inflater.inflate(R.menu.menu_concern, menu); + } + + @Override + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + + mLayoutParams.leftMargin = (int) (mWidth * (mCheckedIndex + 0.25f)); + mSlidebarLine.setLayoutParams(mLayoutParams); + + view.postDelayed(new Runnable() { + @Override + public void run() { + EventBus.getDefault().post(new EBUISwitch(EB_LIBAOACTIVITY_TAG, 0)); + } + }, 100); + + } + + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + super.onPageScrolled(position, positionOffset, positionOffsetPixels); + if (positionOffset != 0) { + mLayoutParams.leftMargin = (int) (mWidth * (position + positionOffset + 0.25f)); + mSlidebarLine.setLayoutParams(mLayoutParams); +// } else { +// if (currentItem != mNewsVP.getCurrentItem()) { +// currentItem = mNewsVP.getCurrentItem(); +// EventBus.getDefault().post(new EBUISwitch(EB_NEWSFRAGMENT_TAG, currentItem)); +// } + } + } + + + @Subscribe(threadMode = ThreadMode.MAIN) + public void onEventMainThread(EBUISwitch busNine) { + if (LibaoActivity.EB_LIBAOACTIVITY_TAG.equals(busNine.getFrom())) { + if (busNine.getPosition() == 1) { + EventBus.getDefault().post(new EBUISwitch(EB_LIBAOACTIVITY_TAG, mCheckedIndex)); + } + } + } + +} diff --git a/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java index 32c19b2cb6..6803e3bd3e 100644 --- a/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/news/News1FragmentAdapter.java @@ -3,12 +3,12 @@ package com.gh.gamecenter.news; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView.ViewHolder; import android.util.DisplayMetrics; -import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.Toast; +import com.gh.base.OnRequestCallBackListener; import com.gh.common.constant.ItemViewType; import com.gh.common.util.DataCollectionUtils; import com.gh.common.util.DataUtils; @@ -17,19 +17,18 @@ import com.gh.common.util.ImageUtils; import com.gh.common.util.NewsUtils; import com.gh.gamecenter.NewsDetailActivity; import com.gh.gamecenter.R; -import com.lightgame.adapter.BaseRecyclerAdapter; import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; import com.gh.gamecenter.adapter.viewholder.NewsImage1ViewHolder; import com.gh.gamecenter.adapter.viewholder.NewsImage2ViewHolder; import com.gh.gamecenter.adapter.viewholder.NewsImage3ViewHolder; import com.gh.gamecenter.entity.NewsEntity; import com.gh.gamecenter.entity.ViewsEntity; -import com.gh.base.OnRequestCallBackListener; import com.gh.gamecenter.manager.VisitManager; import com.gh.gamecenter.retrofit.JSONObjectResponse; import com.gh.gamecenter.retrofit.ObservableUtil; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; +import com.lightgame.adapter.BaseRecyclerAdapter; import org.json.JSONException; import org.json.JSONObject; @@ -82,24 +81,15 @@ public class News1FragmentAdapter extends BaseRecyclerAdapter { @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - View view; switch (viewType) { case ItemViewType.NEWS_IMAGE1: - view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.news_image1_item, parent, false); - return new NewsImage1ViewHolder(view); + return new NewsImage1ViewHolder(mLayoutInflater.inflate(R.layout.news_image1_item, parent, false)); case ItemViewType.NEWS_IMAGE2: - view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.news_image2_item, parent, false); - return new NewsImage2ViewHolder(view); + return new NewsImage2ViewHolder(mLayoutInflater.inflate(R.layout.news_image2_item, parent, false)); case ItemViewType.NEWS_IMAGE3: - view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.news_image3_item, parent, false); - return new NewsImage3ViewHolder(view); + return new NewsImage3ViewHolder(mLayoutInflater.inflate(R.layout.news_image3_item, parent, false)); case ItemViewType.LOADING: - view = LayoutInflater.from(parent.getContext()).inflate( - R.layout.refresh_footerview, parent, false); - return new FooterViewHolder(view); + return new FooterViewHolder(mLayoutInflater.inflate(R.layout.refresh_footerview, parent, false)); default: return null; } @@ -107,14 +97,19 @@ public class News1FragmentAdapter extends BaseRecyclerAdapter { @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { - if (holder instanceof NewsImage1ViewHolder) { - initNewsImage1ViewHolder((NewsImage1ViewHolder) holder, position); - } else if (holder instanceof NewsImage2ViewHolder) { - initNewsImage2ViewHolder((NewsImage2ViewHolder) holder, position); - } else if (holder instanceof NewsImage3ViewHolder) { - initNewsImage3ViewHolder((NewsImage3ViewHolder) holder, position); - } else if (holder instanceof FooterViewHolder) { - initFooterViewHolder((FooterViewHolder) holder); + switch (getItemViewType(position)) { + case ItemViewType.NEWS_IMAGE1: + initNewsImage1ViewHolder((NewsImage1ViewHolder) holder, position); + break; + case ItemViewType.NEWS_IMAGE2: + initNewsImage2ViewHolder((NewsImage2ViewHolder) holder, position); + break; + case ItemViewType.NEWS_IMAGE3: + initNewsImage3ViewHolder((NewsImage3ViewHolder) holder, position); + break; + case ItemViewType.LOADING: + initFooterViewHolder((FooterViewHolder) holder); + break; } } diff --git a/app/src/main/res/drawable-xhdpi/ocupy.9.png b/app/src/main/res/drawable-xhdpi/occupy.9.png similarity index 100% rename from app/src/main/res/drawable-xhdpi/ocupy.9.png rename to app/src/main/res/drawable-xhdpi/occupy.9.png diff --git a/app/src/main/res/drawable-xhdpi/ocupy2.png b/app/src/main/res/drawable-xhdpi/occupy2.png similarity index 100% rename from app/src/main/res/drawable-xhdpi/ocupy2.png rename to app/src/main/res/drawable-xhdpi/occupy2.png diff --git a/app/src/main/res/drawable/menu_ic_bar_back.xml b/app/src/main/res/drawable/menu_ic_bar_back.xml new file mode 100644 index 0000000000..a5569d140f --- /dev/null +++ b/app/src/main/res/drawable/menu_ic_bar_back.xml @@ -0,0 +1,7 @@ + + \ No newline at end of file diff --git a/app/src/main/res/drawable/menu_ic_concern.xml b/app/src/main/res/drawable/menu_ic_concern.xml new file mode 100644 index 0000000000..7cde3b7e6f --- /dev/null +++ b/app/src/main/res/drawable/menu_ic_concern.xml @@ -0,0 +1,7 @@ + + \ No newline at end of file diff --git a/app/src/main/res/drawable/menu_ic_share.xml b/app/src/main/res/drawable/menu_ic_share.xml new file mode 100644 index 0000000000..cae85870ac --- /dev/null +++ b/app/src/main/res/drawable/menu_ic_share.xml @@ -0,0 +1,7 @@ + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_detail.xml b/app/src/main/res/layout/activity_detail.xml index 54586ca578..d8ef22b71e 100644 --- a/app/src/main/res/layout/activity_detail.xml +++ b/app/src/main/res/layout/activity_detail.xml @@ -10,11 +10,6 @@ android:layout_width = "match_parent" android:layout_height = "match_parent" > - - + + + android:layout_height = "?actionBarSize" + android:background = "@android:color/white" > + + android:visibility = "gone" > + android:layout_above = "@+id/detail_ll_bottom" + android:background = "@drawable/shadow" /> + android:layout_above = "@+id/sharecard_bottom" + android:fillViewport = "true" > + fresco:placeholderImage = "@drawable/occupy2" /> - - + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/reuse_actionbar.xml b/app/src/main/res/layout/reuse_actionbar.xml index eae1d6b9c5..2c9554ab15 100644 --- a/app/src/main/res/layout/reuse_actionbar.xml +++ b/app/src/main/res/layout/reuse_actionbar.xml @@ -2,9 +2,24 @@ + + + + + + - - - - - + android:textSize = "17sp" /> \ No newline at end of file diff --git a/app/src/main/res/layout/search_actionbar.xml b/app/src/main/res/layout/search_actionbar.xml index 195c1e2c87..a7e1b6b648 100644 --- a/app/src/main/res/layout/search_actionbar.xml +++ b/app/src/main/res/layout/search_actionbar.xml @@ -2,7 +2,7 @@ diff --git a/app/src/main/res/layout/viewimage_normal_item.xml b/app/src/main/res/layout/viewimage_normal_item.xml index 2853a1c76d..ddad1d20a5 100644 --- a/app/src/main/res/layout/viewimage_normal_item.xml +++ b/app/src/main/res/layout/viewimage_normal_item.xml @@ -9,7 +9,7 @@ android:layout_width = "match_parent" android:layout_height = "match_parent" fresco:actualImageScaleType = "centerCrop" - fresco:placeholderImage = "@drawable/ocupy2" /> + fresco:placeholderImage = "@drawable/occupy2" /> + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 00045f7af3..6bf00ab6fd 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -60,7 +60,7 @@