diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6d87485fbb..28d560a490 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -299,6 +299,9 @@
+
+
clazz = ClassUtils.forName(to);
- if (clazz != null) {
- Intent intent1 = new Intent(context, clazz);
- intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- intent1.putExtra("data", bundle);
- context.startActivity(intent1);
+ if (to != null) {
+ if (RunningUtils.isRunning(context)) {
+ Utils.log("小米推送33::" + type + "==" + response.getString("target"));
+ // 应用正在运行,前台或后台
+ if (!TextUtils.isEmpty(to)) {
+ Class> clazz = ClassUtils.forName(to);
+ if (clazz != null) {
+ Intent intent1 = new Intent(context, clazz);
+ intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ intent1.putExtra("data", bundle);
+ context.startActivity(intent1);
+ }
}
+ } else {
+ // 应用未在运行
+ Intent intent1 = new Intent(context, SplashScreenActivity.class);
+ intent1.setAction(Intent.ACTION_MAIN);
+ intent1.addCategory(Intent.CATEGORY_LAUNCHER);
+ intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ intent1.putExtra("data", bundle);
+ context.startActivity(intent1);
}
- } else {
- // 应用未在运行
- Intent intent1 = new Intent(context, SplashScreenActivity.class);
- intent1.setAction(Intent.ACTION_MAIN);
- intent1.addCategory(Intent.CATEGORY_LAUNCHER);
- intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- intent1.putExtra("data", bundle);
- context.startActivity(intent1);
}
} catch (JSONException e) {
e.printStackTrace();
diff --git a/app/src/main/java/com/gh/base/GHUmengNotificationClickHandler.java b/app/src/main/java/com/gh/base/GHUmengNotificationClickHandler.java
index 72834c8be9..8f94dd3899 100644
--- a/app/src/main/java/com/gh/base/GHUmengNotificationClickHandler.java
+++ b/app/src/main/java/com/gh/base/GHUmengNotificationClickHandler.java
@@ -7,6 +7,7 @@ import android.text.TextUtils;
import com.gh.common.util.ClassUtils;
import com.gh.common.util.RunningUtils;
+import com.gh.common.util.Utils;
import com.gh.gamecenter.SplashScreenActivity;
import com.umeng.message.UmengNotificationClickHandler;
import com.umeng.message.entity.UMessage;
@@ -22,45 +23,49 @@ public class GHUmengNotificationClickHandler extends UmengNotificationClickHandl
super.launchApp(context, uMessage);
String content = uMessage.extra.get("data");
+ Utils.log("友盟推送::" + content);
try {
JSONObject response = new JSONObject(content);
Bundle bundle = new Bundle();
bundle.putString("entrance", "(友盟推送)");
String type = response.getString("type");
+ String to = null;
if ("article".equals(type)) {
- bundle.putString("to", "NewsDetailActivity");
+ to = "NewsDetailActivity";
bundle.putString("newsId", response.getString("target"));
} else if ("game".equals(type)) {
- bundle.putString("to", "GameDetailActivity");
+ to = "GameDetailActivity";
bundle.putString("gameId", response.getString("target"));
} else if ("column".equals(type)) {
- bundle.putString("to", "SubjectActivity");
+ to = "SubjectActivity";
bundle.putString("id", response.getString("target"));
} else if ("web".equals(type)) {
- bundle.putString("to", "WebActivity");
+ to = "WebActivity";
bundle.putString("url", response.getString("target"));
}
- if (RunningUtils.isRunning(context)) {
- // 应用正在运行,前台或后台
- String to = bundle.getString("to");
- if (!TextUtils.isEmpty(to)) {
- Class> clazz = ClassUtils.forName(to);
- if (clazz != null) {
- Intent intent1 = new Intent(context, clazz);
- intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- intent1.putExtra("data", bundle);
- context.startActivity(intent1);
+ if (to != null) {
+ if (RunningUtils.isRunning(context)) {
+ // 应用正在运行,前台或后台
+ if (!TextUtils.isEmpty(to)) {
+ Class> clazz = ClassUtils.forName(to);
+ if (clazz != null) {
+ Intent intent1 = new Intent(context, clazz);
+ intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ intent1.putExtra("data", bundle);
+ context.startActivity(intent1);
+ }
}
+ } else {
+ // 应用未在运行
+ Intent intent1 = new Intent(context, SplashScreenActivity.class);
+ intent1.setAction(Intent.ACTION_MAIN);
+ intent1.addCategory(Intent.CATEGORY_LAUNCHER);
+ intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ intent1.putExtra("to", to);
+ intent1.putExtra("data", bundle);
+ context.startActivity(intent1);
}
- } else {
- // 应用未在运行
- Intent intent1 = new Intent(context, SplashScreenActivity.class);
- intent1.setAction(Intent.ACTION_MAIN);
- intent1.addCategory(Intent.CATEGORY_LAUNCHER);
- intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- intent1.putExtra("data", bundle);
- context.startActivity(intent1);
}
} catch (JSONException e) {
e.printStackTrace();
diff --git a/app/src/main/java/com/gh/common/util/DialogUtils.java b/app/src/main/java/com/gh/common/util/DialogUtils.java
index 846b97c6df..866fdb265a 100644
--- a/app/src/main/java/com/gh/common/util/DialogUtils.java
+++ b/app/src/main/java/com/gh/common/util/DialogUtils.java
@@ -99,7 +99,8 @@ public class DialogUtils {
// 标题
TextView alertdialog_title = (TextView) view.findViewById(R.id.installhint_title);
alertdialog_title.setText("重要提示");
- Spanned content = Html.fromHtml("如果您使用的是华为手机或OPPO手机,安装游戏时请选择“" +
+ Spanned content = Html.fromHtml("如果您使用的是"+ "华为" +"手机或"+
+ "OPPO" +"手机,安装游戏时请选择“" +
"继续安装" +
"”(请记住不要选择“官方推荐”或“软件商店安装”)");
// 内容
diff --git a/app/src/main/java/com/gh/common/util/LibaoUtils.java b/app/src/main/java/com/gh/common/util/LibaoUtils.java
index 0f0d55a8b3..4e50a0cd44 100644
--- a/app/src/main/java/com/gh/common/util/LibaoUtils.java
+++ b/app/src/main/java/com/gh/common/util/LibaoUtils.java
@@ -4,6 +4,7 @@ import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
+import android.content.res.ColorStateList;
import android.graphics.Color;
import android.text.TextUtils;
import android.view.View;
@@ -266,14 +267,26 @@ public class LibaoUtils {
libaoBtn.setBackgroundResource(R.drawable.textview_cancel_up);
break;
case "linged":
+ int[][] states = new int[2][];
+ states[0] = new int[] { android.R.attr.state_pressed };
+ states[1] = new int[] {};
+ int[] colors = new int[] { Color.WHITE,
+ Color.parseColor("#06D0A8") };
+ ColorStateList sl = new ColorStateList(states, colors);
libaoBtn.setText("已领取");
- libaoBtn.setBackgroundResource(R.drawable.libao_linged_bg);
- libaoBtn.setTextColor(Color.parseColor("#06D0A8"));
+ libaoBtn.setBackgroundResource(R.drawable.libao_linged_style);
+ libaoBtn.setTextColor(sl);
break;
case "taoed":
+ int[][] states2 = new int[2][];
+ states2[0] = new int[] { android.R.attr.state_pressed };
+ states2[1] = new int[] {};
+ int[] colors2 = new int[] { Color.WHITE,
+ Color.parseColor("#ffb13c") };
+ ColorStateList sl2 = new ColorStateList(states2, colors2);
libaoBtn.setText("已淘号");
- libaoBtn.setBackgroundResource(R.drawable.libao_taoed_bg);
- libaoBtn.setTextColor(Color.parseColor("#ffb13c"));
+ libaoBtn.setBackgroundResource(R.drawable.libao_taoed_style);
+ libaoBtn.setTextColor(sl2);
break;
case "copy":
libaoBtn.setText("复制");
@@ -339,7 +352,9 @@ public class LibaoUtils {
}
libaoEntity.setAvailable(libaoEntity.getAvailable() - 1);
- libaoDao.add(LibaoInfo.createLibaoInfo(libaoEntity));
+ LibaoInfo libaoInfo = LibaoInfo.createLibaoInfo(libaoEntity);
+ libaoInfo.setCode(libaoCode);
+ libaoDao.add(libaoInfo);
EventBus.getDefault().post(new EBReuse("libaoChanged"));
@@ -429,7 +444,9 @@ public class LibaoUtils {
Utils.toast(libaoBtn.getContext(), "淘号成功");
- libaoDao.add(LibaoInfo.createLibaoInfo(libaoEntity));
+ LibaoInfo libaoInfo = LibaoInfo.createLibaoInfo(libaoEntity);
+ libaoInfo.setCode(libaoCode);
+ libaoDao.add(libaoInfo);
EventBus.getDefault().post(new EBReuse("libaoChanged"));
diff --git a/app/src/main/java/com/gh/common/util/PostCommentUtils.java b/app/src/main/java/com/gh/common/util/PostCommentUtils.java
index 20ee55e9ff..32d07c6e56 100644
--- a/app/src/main/java/com/gh/common/util/PostCommentUtils.java
+++ b/app/src/main/java/com/gh/common/util/PostCommentUtils.java
@@ -107,32 +107,37 @@ public class PostCommentUtils {
}
private static void addReportData(final Context context, final String reportData,
- final PostCommentListener listener, boolean isCheck) {
- RequestBody body = RequestBody.create(MediaType.parse("application/json"), reportData);
- RetrofitManager.getComment().postReportData(body,TokenUtils.getToken(context, isCheck))
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(new Response(){
- @Override
- public void onNext(ResponseBody response) {
- super.onNext(response);
- listener.postSucced(null);
- }
-
- @Override
- public void onError(Throwable e) {
- super.onError(e);
- if (e instanceof HttpException) {
- if (((HttpException) e).code() == 401) {
- addReportData(context, reportData, listener, false);
- return;
+ final PostCommentListener listener, final boolean isCheck) {
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ RequestBody body = RequestBody.create(MediaType.parse("application/json"), reportData);
+ RetrofitManager.getComment().postReportData(body,TokenUtils.getToken(context, isCheck))
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Response(){
+ @Override
+ public void onNext(ResponseBody response) {
+ super.onNext(response);
+ listener.postSucced(null);
}
- }
- Utils.log("addReportData=onError::" + e.toString());
- listener.postFailed(e);
- }
- });
+ @Override
+ public void onError(Throwable e) {
+ super.onError(e);
+ if (e instanceof HttpException) {
+ if (((HttpException) e).code() == 401) {
+ addReportData(context, reportData, listener, false);
+ return;
+ }
+ }
+ Utils.log("addReportData=onError::" + e.toString());
+ listener.postFailed(e);
+ }
+ });
+
+ }
+ }).start();
}
public interface PostCommentListener {
diff --git a/app/src/main/java/com/gh/download/DownloadManager.java b/app/src/main/java/com/gh/download/DownloadManager.java
index 0d1cae8b7e..266a5aa031 100644
--- a/app/src/main/java/com/gh/download/DownloadManager.java
+++ b/app/src/main/java/com/gh/download/DownloadManager.java
@@ -3,7 +3,6 @@ package com.gh.download;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
-import android.os.Build;
import android.os.Handler;
import android.os.Message;
import android.support.v4.util.ArrayMap;
@@ -222,7 +221,7 @@ public class DownloadManager {
String location) {
// 安装指引
- if (Build.BOARD.equals("Huawei") || "Oppo".equals(Build.BRAND)) {
+ if (android.os.Build.BRAND.equals("Huawei") || "Oppo".equals(android.os.Build.BRAND)) {
SharedPreferences sp = context.getSharedPreferences(Config.PREFERENCE, Context.MODE_PRIVATE);
final SharedPreferences.Editor edit = sp.edit();
if (sp.getBoolean("InstallHint" + PackageUtils.getVersionName(context), true)) {
diff --git a/app/src/main/java/com/gh/gamecenter/LibaoActivity.java b/app/src/main/java/com/gh/gamecenter/LibaoActivity.java
index d80dfaa8cd..287f757582 100644
--- a/app/src/main/java/com/gh/gamecenter/LibaoActivity.java
+++ b/app/src/main/java/com/gh/gamecenter/LibaoActivity.java
@@ -1,11 +1,13 @@
package com.gh.gamecenter;
+import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.util.DisplayMetrics;
import android.view.Gravity;
import android.view.View;
+import android.view.inputmethod.InputMethodManager;
import android.widget.LinearLayout;
import android.widget.TextView;
@@ -129,6 +131,10 @@ public class LibaoActivity extends BaseFragmentActivity implements View.OnClickL
} else if (v == mChunhaoxiangTv) {
mLibaoVp.setCurrentItem(2);
}
+
+ // 隐藏软键盘
+ InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
+ imm.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(), 0);
}
@Override
diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java
index 707a559eb2..cd5847a3c0 100644
--- a/app/src/main/java/com/gh/gamecenter/MainActivity.java
+++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java
@@ -331,7 +331,8 @@ public class MainActivity extends BaseFragmentActivity implements OnClickListene
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
-
+// String imei = ((TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId();
+// Utils.log("======IMEI::" + imei);
// 初始化gameMap
DownloadManager.getInstance(this).initGameMap();
@@ -351,11 +352,12 @@ public class MainActivity extends BaseFragmentActivity implements OnClickListene
if (savedInstanceState != null) {
currentTab = savedInstanceState.getInt("currentTab");
isSkipped = savedInstanceState.getBoolean("isSkipped");
- } else if (isNewFirstLaunch) {
- currentTab = 1;
- } else {
- currentTab = 0;
}
+// else if (isNewFirstLaunch) {
+// currentTab = 1;
+// } else {
+// currentTab = 0;
+// }
setTabSelection(currentTab);
concernManager = new ConcernManager(getApplicationContext());
@@ -368,7 +370,7 @@ public class MainActivity extends BaseFragmentActivity implements OnClickListene
}
if (isNewFirstLaunch) {
getPluginUpdate();
-// sp.edit().putBoolean("isNewFirstLaunchV" + PackageUtils.getVersionName(getApplicationContext()), false).apply();
+ sp.edit().putBoolean("isNewFirstLaunchV" + PackageUtils.getVersionName(getApplicationContext()), false).apply();
}
// 获取免责声明
diff --git a/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java b/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java
index f4351d8146..5adb147141 100644
--- a/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java
+++ b/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java
@@ -94,6 +94,8 @@ public class MessageDetailActivity extends BaseActivity implements MessageDetail
private int commentNum = -1; //区分来源 -1:资讯关注列表 !=-1 :新闻详情
+ private boolean openSoftInput;
+
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
@@ -109,6 +111,7 @@ public class MessageDetailActivity extends BaseActivity implements MessageDetail
Intent intent = getIntent();
newsId = intent.getExtras().getString("newsId");
commentNum = intent.getExtras().getInt("commentNum");
+ openSoftInput = intent.getExtras().getBoolean("openSoftInput"); //新闻详情的发表评论
//复用问题 mConcernEntity对应的文章有可能和跳转之前的文章不一致
if (mConcernEntity != null && newsId != null && !newsId.equals(mConcernEntity.getId())) {
@@ -198,6 +201,10 @@ public class MessageDetailActivity extends BaseActivity implements MessageDetail
if (newsId != null && mConcernEntity == null ) {
getConcernDigest();
}
+
+ if (openSoftInput) {
+ setSoftInput(true);
+ }
}
public void getCommentNum() {
@@ -215,9 +222,6 @@ public class MessageDetailActivity extends BaseActivity implements MessageDetail
commentNum = response.get(0).getNum();
mConcernEntity.setCommentnum(commentNum);
adapter.notifyItemChanged(0);
- if (commentNum == 0) {
- setSoftInput(true);
- }
}
}
}
diff --git a/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java b/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java
index d32ef41e26..6bd3bb8152 100644
--- a/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java
+++ b/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java
@@ -427,7 +427,8 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener
} else if (v == detail_ll_comment) {
Intent intent = new Intent(this, MessageDetailActivity.class);
intent.putExtra("commentNum", -1);
- intent.putExtra("newsId", newsId);
+ intent.putExtra("newsId", adapter.getNewsDetailEntity().getId());
+ intent.putExtra("openSoftInput", true);
startActivity(intent);
}
}
diff --git a/app/src/main/java/com/gh/gamecenter/WebActivity.java b/app/src/main/java/com/gh/gamecenter/WebActivity.java
index ccb8c63afb..21f7773884 100644
--- a/app/src/main/java/com/gh/gamecenter/WebActivity.java
+++ b/app/src/main/java/com/gh/gamecenter/WebActivity.java
@@ -42,16 +42,18 @@ public class WebActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ String webUrl;
+ String webTitle;
if (getIntent().getBundleExtra("data") != null) {
Bundle data = getIntent().getBundleExtra("data");
+ webUrl = data.getString("url");
+ webTitle = "推送网页";
} else {
-
+ webUrl = getIntent().getStringExtra("url");
+ webTitle = getIntent().getStringExtra("gameName");
+ newsId = getIntent().getStringExtra("newsId");
}
- String webUrl = getIntent().getStringExtra("url");
- String webTitle = getIntent().getStringExtra("gameName");
- newsId = getIntent().getStringExtra("newsId");
-
View contentView = View.inflate(this, R.layout.activity_web, null);
init(contentView, webTitle);
@@ -153,7 +155,7 @@ public class WebActivity extends BaseActivity {
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// 刷新评论数
- if (resultCode == 1001 && progressBar.getVisibility() == View.VISIBLE) {
+ if (resultCode == 1001 && progressBar.getVisibility() == View.VISIBLE && newsId != null) {
webComment.setText("查看评论(" + data.getExtras().getInt("commentNum") + ")");
}
}
diff --git a/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java
index 4cba93f565..5a2209772b 100644
--- a/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java
+++ b/app/src/main/java/com/gh/gamecenter/adapter/LibaoDetailAdapter.java
@@ -9,6 +9,7 @@ import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.LinearLayout;
import android.widget.TextView;
import com.gh.common.util.DisplayUtils;
@@ -179,12 +180,16 @@ public class LibaoDetailAdapter extends RecyclerView.Adapter" +libaoInfo.getCode()+ "");
- holder.libaoCopyBtn.setBackgroundResource(R.drawable.libao_linged_bg);
- holder.libaoCopyBtn.setTextColor(Color.parseColor("#06D0A8"));
if (count == 0) {
- content = Html.fromHtml("剩余:" + "" + count + "%" + "");
+ content = Html.fromHtml("剩余:" + count + "%");
} else {
content = Html.fromHtml("剩余:" + "" + count + "%" + "");
}
} else {
libaoCode = Html.fromHtml("已淘号:" + "" +libaoInfo.getCode()+ "");
content = Html.fromHtml("剩余:" + count + "%" );
- holder.libaoCopyBtn.setBackgroundResource(R.drawable.libao_taoed_bg);
- holder.libaoCopyBtn.setTextColor(Color.parseColor("#ffb13c"));
}
holder.libaoCode.setVisibility(View.VISIBLE);
holder.libaoCode.setText(libaoCode);
diff --git a/app/src/main/java/com/gh/gamecenter/adapter/StrategyDialogAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/StrategyDialogAdapter.java
index 7fc69d0ea0..4c85a3db23 100644
--- a/app/src/main/java/com/gh/gamecenter/adapter/StrategyDialogAdapter.java
+++ b/app/src/main/java/com/gh/gamecenter/adapter/StrategyDialogAdapter.java
@@ -36,7 +36,13 @@ public class StrategyDialogAdapter extends RecyclerView.Adapter concernGame = concernManager.getConcernGame();
+ for (int i = 0; i < concernGame.size(); i++) {
+ if ("5618b86e8ab49e17088b4575".equals(concernGame.get(i).getId())) {
+ concernGame.remove(i);
+ }
+ }
+ mConcernGame = concernGame;
}
@Override
diff --git a/app/src/main/java/com/gh/gamecenter/db/AppRunTimeDao.java b/app/src/main/java/com/gh/gamecenter/db/AppRunTimeDao.java
new file mode 100644
index 0000000000..083b6f7502
--- /dev/null
+++ b/app/src/main/java/com/gh/gamecenter/db/AppRunTimeDao.java
@@ -0,0 +1,79 @@
+package com.gh.gamecenter.db;
+
+import android.content.Context;
+
+import com.gh.gamecenter.db.info.AppRunTimeInfo;
+import com.j256.ormlite.dao.Dao;
+
+import java.sql.SQLException;
+import java.util.List;
+
+/**
+ * Created by khy on 2017/1/3.
+ */
+
+public class AppRunTimeDao {
+
+ private DatabaseHelper helper;
+ private Dao dao;
+
+ public AppRunTimeDao(Context context) {
+ try {
+ helper = DatabaseHelper.getHelper(context);
+ dao = helper.getDao(AppRunTimeInfo.class);
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 添加一个记录
+ */
+ public void add(AppRunTimeInfo runTimeInfo) {
+ try {
+ dao.create(runTimeInfo);
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 根据包名获取某一个App的运行时长
+ */
+ public int getRunTimeCount(String packageName) {
+ try {
+ AppRunTimeInfo appRunTimeInfo = dao.queryForId(packageName);
+ return appRunTimeInfo.getRunTime();
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ return 0;
+ }
+
+ /**
+ * 获取所有信息
+ */
+ public List getAll() {
+ try {
+ return dao.queryForAll();
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ /**
+ * 根据packageName 查找记录是否存在
+ */
+ public boolean isExist(String packageName) {
+ try {
+ if (dao.queryForId(packageName) != null) {
+ return true;
+ }
+ return false;
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ return false;
+ }
+}
diff --git a/app/src/main/java/com/gh/gamecenter/db/CommentDao.java b/app/src/main/java/com/gh/gamecenter/db/CommentDao.java
index 192533bb21..8e2076533a 100644
--- a/app/src/main/java/com/gh/gamecenter/db/CommentDao.java
+++ b/app/src/main/java/com/gh/gamecenter/db/CommentDao.java
@@ -34,7 +34,7 @@ public class CommentDao {
}
}
- /*
+ /**
* 根据commentId 查找是否是自己的评论
*/
public boolean isMyComment(String id) {
diff --git a/app/src/main/java/com/gh/gamecenter/db/DatabaseHelper.java b/app/src/main/java/com/gh/gamecenter/db/DatabaseHelper.java
index 40fca22b70..1438839ee0 100644
--- a/app/src/main/java/com/gh/gamecenter/db/DatabaseHelper.java
+++ b/app/src/main/java/com/gh/gamecenter/db/DatabaseHelper.java
@@ -5,6 +5,7 @@ import android.database.sqlite.SQLiteDatabase;
import android.support.v4.util.ArrayMap;
import com.gh.common.util.Utils;
+import com.gh.gamecenter.db.info.AppRunTimeInfo;
import com.gh.gamecenter.db.info.CommentInfo;
import com.gh.gamecenter.db.info.ConcernInfo;
import com.gh.gamecenter.db.info.DataCollectionInfo;
@@ -64,6 +65,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
TableUtils.createTable(connectionSource, VoteInfo.class);
TableUtils.createTable(connectionSource, CommentInfo.class);
TableUtils.createTable(connectionSource, LibaoInfo.class);
+ TableUtils.createTable(connectionSource, AppRunTimeInfo.class);
} catch (SQLException e) {
e.printStackTrace();
@@ -84,6 +86,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
TableUtils.dropTable(connectionSource, VoteInfo.class, true);
TableUtils.dropTable(connectionSource, CommentInfo.class, true);
TableUtils.dropTable(connectionSource, LibaoInfo.class, true);
+ TableUtils.dropTable(connectionSource, AppRunTimeInfo.class, true);
onCreate(database, connectionSource);
} catch (SQLException e) {
diff --git a/app/src/main/java/com/gh/gamecenter/db/info/AppRunTimeInfo.java b/app/src/main/java/com/gh/gamecenter/db/info/AppRunTimeInfo.java
new file mode 100644
index 0000000000..f2ef9bd7ef
--- /dev/null
+++ b/app/src/main/java/com/gh/gamecenter/db/info/AppRunTimeInfo.java
@@ -0,0 +1,44 @@
+package com.gh.gamecenter.db.info;
+
+import com.j256.ormlite.field.DatabaseField;
+import com.j256.ormlite.table.DatabaseTable;
+
+import java.io.Serializable;
+
+/**
+ * Created by khy on 2017/1/3.
+ */
+
+@DatabaseTable(tableName = "tb_runtime")
+public class AppRunTimeInfo implements Serializable {
+
+ @DatabaseField(id = true, columnName = "id")
+ private String packageName;
+
+ @DatabaseField(columnName = "runTime")
+ private int runTime;
+
+ public String getPackageName() {
+ return packageName;
+ }
+
+ public void setPackageName(String packageName) {
+ this.packageName = packageName;
+ }
+
+ public int getRunTime() {
+ return runTime;
+ }
+
+ public void setRunTime(int runTime) {
+ this.runTime = runTime;
+ }
+
+ public AppRunTimeInfo() {
+ }
+
+ public AppRunTimeInfo(String packageName, int runTime) {
+ this.packageName = packageName;
+ this.runTime = runTime;
+ }
+}
diff --git a/app/src/main/java/com/gh/gamecenter/db/info/CommentInfo.java b/app/src/main/java/com/gh/gamecenter/db/info/CommentInfo.java
index 623f49ac65..6345a2f1de 100644
--- a/app/src/main/java/com/gh/gamecenter/db/info/CommentInfo.java
+++ b/app/src/main/java/com/gh/gamecenter/db/info/CommentInfo.java
@@ -3,12 +3,14 @@ package com.gh.gamecenter.db.info;
import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;
+import java.io.Serializable;
+
/**
* Created by khy on 2016/11/21.
*/
@DatabaseTable(tableName = "tb_comment")
-public class CommentInfo {
+public class CommentInfo implements Serializable {
@DatabaseField(id = true, columnName = "commentId")
private String commentId;
diff --git a/app/src/main/java/com/gh/gamecenter/db/info/LibaoInfo.java b/app/src/main/java/com/gh/gamecenter/db/info/LibaoInfo.java
index 4d01c64f19..5666eb9682 100644
--- a/app/src/main/java/com/gh/gamecenter/db/info/LibaoInfo.java
+++ b/app/src/main/java/com/gh/gamecenter/db/info/LibaoInfo.java
@@ -1,5 +1,7 @@
package com.gh.gamecenter.db.info;
+import android.text.TextUtils;
+
import com.gh.gamecenter.entity.LibaoEntity;
import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;
@@ -47,7 +49,7 @@ public class LibaoInfo implements Serializable {
private int total;
@DatabaseField(columnName = "active")
- private boolean active = false;
+ private boolean active = true;
public LibaoInfo() {
@@ -151,7 +153,11 @@ public class LibaoInfo implements Serializable {
public static LibaoInfo createLibaoInfo(LibaoEntity libaoEntity) {
LibaoInfo libaoInfo = new LibaoInfo();
- libaoInfo.setLibaoId(libaoEntity.getLibaoId());
+ if (TextUtils.isEmpty(libaoEntity.getId())) {
+ libaoInfo.setLibaoId(libaoEntity.getLibaoId());
+ } else {
+ libaoInfo.setLibaoId(libaoEntity.getId());
+ }
libaoInfo.setContent(libaoEntity.getContent());
libaoInfo.setIcon(libaoEntity.getIcon());
libaoInfo.setName(libaoEntity.getName());
diff --git a/app/src/main/java/com/gh/gamecenter/game/GameFragment.java b/app/src/main/java/com/gh/gamecenter/game/GameFragment.java
index e22bbba4cc..8132fe63be 100644
--- a/app/src/main/java/com/gh/gamecenter/game/GameFragment.java
+++ b/app/src/main/java/com/gh/gamecenter/game/GameFragment.java
@@ -5,6 +5,7 @@ import android.support.annotation.Nullable;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
+import android.view.MotionEvent;
import android.view.View;
import android.widget.LinearLayout;
@@ -44,6 +45,8 @@ public class GameFragment extends HomeFragment implements SwipeRefreshLayout.OnR
private boolean isEverpause;
+ private int adapterPosition = -1;
+
private DataWatcher dataWatcher = new DataWatcher() {
@Override
public void onDataChanged(DownloadEntity downloadEntity) {
@@ -62,12 +65,14 @@ public class GameFragment extends HomeFragment implements SwipeRefreshLayout.OnR
}
}
};
+ private LinearLayoutManager layoutManager;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- ((LinearLayout) view).addView(View.inflate(getActivity(), R.layout.fragment_game, null));
+ View inflate = View.inflate(getActivity(), R.layout.fragment_game, null);
+ ((LinearLayout) view).addView(inflate);
reuse_no_connection = (LinearLayout) view.findViewById(R.id.reuse_no_connection);
fm_game_swipe_refresh = (SwipeRefreshLayout) view.findViewById(R.id.fm_game_swipe_refresh);
@@ -89,7 +94,8 @@ public class GameFragment extends HomeFragment implements SwipeRefreshLayout.OnR
fm_game_swipe_refresh.setOnRefreshListener(this);
fm_game_rv_list.setHasFixedSize(true);
- fm_game_rv_list.setLayoutManager(new LinearLayoutManager(getActivity()));
+ layoutManager = new LinearLayoutManager(getActivity());
+ fm_game_rv_list.setLayoutManager(layoutManager);
adapter = new GameFragmentAdapter(GameFragment.this, fm_game_swipe_refresh);
fm_game_rv_list.setAdapter(adapter);
@@ -104,8 +110,38 @@ public class GameFragment extends HomeFragment implements SwipeRefreshLayout.OnR
}
}
});
+
+ // 计算顶部下拉偏移量
+ fm_game_swipe_refresh.setOnTouchListener(new View.OnTouchListener() {
+ float y = -1;
+ float y1 = -1;
+ float offset = -1;
+
+ @Override
+ public boolean onTouch(View v, MotionEvent event) {
+ switch (event.getAction()) {
+ case MotionEvent.ACTION_DOWN:
+ y = event.getY();
+ break;
+ case MotionEvent.ACTION_MOVE:
+ y1 = event.getY();
+ offset = y - y1;
+ y = y1;
+ if ((adapterPosition == -1 || adapterPosition == 0) && Math.abs(offset) < 50) {
+ adapter.stretchTop(-Math.round(offset)/2, false);
+ }
+ break;
+ case MotionEvent.ACTION_UP:
+ adapter.stretchTop(-Math.round(offset), true);
+ break;
+ }
+ return false;
+ }
+ });
}
+
+
@Override
public void loadDone() {
if (fm_game_swipe_refresh != null && fm_game_swipe_refresh.isRefreshing()) {
diff --git a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java
index 5915e620cb..a8fdb9f806 100644
--- a/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java
+++ b/app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.java
@@ -2,6 +2,7 @@ package com.gh.gamecenter.game;
import android.content.Context;
import android.content.Intent;
+import android.content.SharedPreferences;
import android.graphics.Color;
import android.support.v4.util.ArrayMap;
import android.support.v4.view.ViewPager;
@@ -12,6 +13,7 @@ import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
@@ -19,6 +21,7 @@ import android.widget.TextView;
import android.widget.Toast;
import com.facebook.drawee.view.SimpleDraweeView;
+import com.gh.common.constant.Config;
import com.gh.common.constant.ItemViewType;
import com.gh.common.util.DataCollectionUtils;
import com.gh.common.util.DataUtils;
@@ -102,6 +105,8 @@ public class GameFragmentAdapter extends RecyclerView.Adapter topHeightOld) {
+ topHeight = topHeight - 2;
+ notifyItemChanged(0);
+ } else {
+ return;
+ }
+ }
+ }
+
+ topHeight = topHeight + offset;
+ if (topHeight > topHeightOld) {
+ notifyItemChanged(0);
+ } else {
+ topHeight = topHeight - offset;
+ }
+
+ }
+
public void startAutoScroll() {
isAutoScroll = true;
notifyItemChanged(0);
diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameLibaoGalleryAdapter.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameLibaoGalleryAdapter.java
index 8f37824380..ce0165a1d5 100644
--- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameLibaoGalleryAdapter.java
+++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameLibaoGalleryAdapter.java
@@ -9,7 +9,6 @@ import android.view.View;
import android.view.ViewGroup;
import com.gh.base.AppController;
-import com.gh.common.util.Utils;
import com.gh.gamecenter.LibaoDetailActivity;
import com.gh.gamecenter.R;
import com.gh.gamecenter.entity.LibaoEntity;
@@ -40,7 +39,6 @@ public class GameLibaoGalleryAdapter extends RecyclerView.Adapter不可恢复" +",请确定您已经兑换过该礼包"
, "取消", "确定删除"
, new DialogUtils.ConfiremListener() {
@Override
diff --git a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java
index 2fa835593b..d151de8dc6 100644
--- a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java
+++ b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java
@@ -87,6 +87,8 @@ public class NewsDetailAdapter extends RecyclerView.Adapter {
private String entrance;
// private int commentNum = -1;
+ private boolean isHotComment;
+
private VoteDao mVoteDao;
public NewsDetailAdapter(NewsDetailActivity activity, String entrance) {
@@ -112,6 +114,7 @@ public class NewsDetailAdapter extends RecyclerView.Adapter {
super.onResponse(response);
if (response.size() >= 3) {
commentList = response;
+ isHotComment = true;
notifyDataSetChanged();
} else {
getNewsComment();
@@ -136,6 +139,7 @@ public class NewsDetailAdapter extends RecyclerView.Adapter {
public void onResponse(List response) {
super.onResponse(response);
if (response.size() >= 1) {
+ isHotComment = false;
commentList = response;
notifyDataSetChanged();
}
@@ -277,7 +281,12 @@ public class NewsDetailAdapter extends RecyclerView.Adapter {
holder.list.removeAllViews();
- holder.title.setText("热门评论");
+ if (isHotComment) {
+ holder.title.setText("热门评论");
+ } else {
+ holder.title.setText("最新评论");
+ }
+
for (final CommentEntity commentEntity : commentList) {
View contentView = View.inflate(context, R.layout.comment_item, null);
diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragment.java b/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragment.java
index 3695093c0d..3039cf8d82 100644
--- a/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragment.java
+++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragment.java
@@ -2,7 +2,6 @@ package com.gh.gamecenter.search;
import android.os.Bundle;
import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
@@ -11,10 +10,19 @@ import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
+import com.gh.base.BaseFragment;
+import com.gh.common.util.DownloadItemUtils;
+import com.gh.download.DataWatcher;
+import com.gh.download.DownloadEntity;
+import com.gh.download.DownloadManager;
import com.gh.gamecenter.R;
+import com.gh.gamecenter.entity.GameEntity;
+import com.gh.gamecenter.eventbus.EBDownloadStatus;
import com.gh.gamecenter.listener.OnCallBackListener;
-public class SearchGameDetailFragment extends Fragment implements OnCallBackListener {
+import java.util.ArrayList;
+
+public class SearchGameDetailFragment extends BaseFragment implements OnCallBackListener {
private View view;
private RecyclerView search_detail;
@@ -24,6 +32,26 @@ public class SearchGameDetailFragment extends Fragment implements OnCallBackList
private String key;
+ private SearchGameDetailFragmentAdapter adapter;
+
+ DataWatcher dataWatcher = new DataWatcher() {
+ @Override
+ public void onDataChanged(DownloadEntity downloadEntity) {
+ ArrayList locationList = adapter.getLocationMap().get(downloadEntity.getPackageName());
+ if (locationList != null && locationList.size() != 0) {
+ GameEntity gameEntity;
+ for (int location : locationList) {
+ gameEntity = adapter.getGameEntity(location);
+ if (gameEntity != null) {
+ DownloadItemUtils.processDate(getActivity(), gameEntity,
+ downloadEntity, adapter, location);
+ }
+ }
+ }
+ }
+ };
+
+
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -40,7 +68,8 @@ public class SearchGameDetailFragment extends Fragment implements OnCallBackList
search_detail = (RecyclerView) view.findViewById(R.id.search_detail);
search_detail.setHasFixedSize(true);
search_detail.setLayoutManager(new LinearLayoutManager(getActivity()));
- search_detail.setAdapter(new SearchGameDetailFragmentAdapter(SearchGameDetailFragment.this, key));
+ adapter = new SearchGameDetailFragmentAdapter(SearchGameDetailFragment.this, key);
+ search_detail.setAdapter(adapter);
}
@Nullable
@@ -86,4 +115,37 @@ public class SearchGameDetailFragment extends Fragment implements OnCallBackList
reuse_no_connection.setVisibility(View.GONE);
}
+ //下载被删除事件
+ public void onEventMainThread(EBDownloadStatus status) {
+ if ("delete".equals(status.getStatus())) {
+ DownloadManager.getInstance(getActivity()).removePlatform(status.getName(), status.getPlatform());
+
+ ArrayList locationList = adapter.getLocationMap().get(status.getPackageName());
+ GameEntity gameEntity;
+ if (locationList != null && locationList.size() != 0) {
+ for (int location : locationList) {
+ gameEntity = adapter.getGameEntity(location);
+ if (gameEntity != null && gameEntity.getEntryMap() != null) {
+ gameEntity.getEntryMap().remove(status.getPlatform());
+ }
+ adapter.notifyItemChanged(location);
+ }
+ }
+ }
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ isEverpause = false;
+ DownloadManager.getInstance(getContext()).addObserver(dataWatcher);
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ isEverpause = true;
+ DownloadManager.getInstance(getContext()).removeObserver(dataWatcher);
+ }
+
}
diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragmentAdapter.java
index c0a616087b..72d848cdec 100644
--- a/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragmentAdapter.java
+++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragmentAdapter.java
@@ -1,24 +1,24 @@
package com.gh.gamecenter.search;
import android.content.Context;
+import android.support.v4.util.ArrayMap;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
-import android.view.inputmethod.InputMethodManager;
-import com.gh.common.constant.Config;
import com.gh.common.util.DataCollectionUtils;
import com.gh.common.util.DataUtils;
import com.gh.common.util.DisplayUtils;
+import com.gh.common.util.DownloadItemUtils;
import com.gh.common.util.GameUtils;
import com.gh.common.util.GameViewUtils;
import com.gh.common.view.CardLinearLayout;
-import com.gh.common.view.DownloadDialog;
import com.gh.gamecenter.R;
import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder;
+import com.gh.gamecenter.entity.ApkEntity;
import com.gh.gamecenter.entity.GameEntity;
import com.gh.gamecenter.listener.OnCallBackListener;
import com.gh.gamecenter.retrofit.Response;
@@ -32,12 +32,13 @@ import java.util.Map;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
-public class SearchGameDetailFragmentAdapter extends RecyclerView.Adapter {
+public class SearchGameDetailFragmentAdapter extends RecyclerView.Adapter {
private Context context;
private OnCallBackListener listener;
private List gameList;
+ private ArrayMap> locationMap;
private String key;
@@ -46,6 +47,7 @@ public class SearchGameDetailFragmentAdapter extends RecyclerView.Adapter();
+ locationMap = new ArrayMap<>();
this.key = key;
if (!TextUtils.isEmpty(key)) {
@@ -69,6 +71,7 @@ public class SearchGameDetailFragmentAdapter extends RecyclerView.Adapter list;
+ GameEntity gameEntity;
+ for (int i = 0, size = gameList.size(); i < size; i++) {
+ gameEntity = gameList.get(i);
+ if (gameEntity.getApk() != null && gameEntity.getApk().size() != 0) {
+ for (ApkEntity apkEntity : gameEntity.getApk()) {
+ list = locationMap.get(apkEntity.getPackageName());
+ if (list == null) {
+ list = new ArrayList<>();
+ locationMap.put(apkEntity.getPackageName(), list);
+ }
+ list.add(i);
+ }
+ }
+ }
+ }
+
@Override
public int getItemCount() {
return gameList.size();
@@ -99,7 +120,8 @@ public class SearchGameDetailFragmentAdapter extends RecyclerView.Adapter> getLocationMap() {
+ return locationMap;
+ }
+
+ public GameEntity getGameEntity(int location) {
+ return gameList.get(location);
+ }
}
diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragment.java b/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragment.java
index af64badf7f..21e2b2542c 100644
--- a/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragment.java
+++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragment.java
@@ -2,7 +2,6 @@ package com.gh.gamecenter.search;
import android.os.Bundle;
import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
@@ -11,10 +10,19 @@ import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
+import com.gh.base.BaseFragment;
+import com.gh.common.util.DownloadItemUtils;
+import com.gh.download.DataWatcher;
+import com.gh.download.DownloadEntity;
+import com.gh.download.DownloadManager;
import com.gh.gamecenter.R;
+import com.gh.gamecenter.entity.GameEntity;
+import com.gh.gamecenter.eventbus.EBDownloadStatus;
import com.gh.gamecenter.listener.OnCallBackListener;
-public class SearchGameListFragment extends Fragment implements OnCallBackListener {
+import java.util.ArrayList;
+
+public class SearchGameListFragment extends BaseFragment implements OnCallBackListener {
private View view;
private RecyclerView search_detail;
@@ -24,6 +32,22 @@ public class SearchGameListFragment extends Fragment implements OnCallBackListen
private String key;
+ private SearchGameListFragmentAdapter adapter;
+
+ DataWatcher dataWatcher = new DataWatcher() {
+ @Override
+ public void onDataChanged(DownloadEntity downloadEntity) {
+ ArrayList locationList = adapter.getLocationMap().get(downloadEntity.getPackageName());
+ if (locationList != null && locationList.size() != 0) {
+ GameEntity gameEntity = adapter.getGameEntity();
+ if (gameEntity != null) {
+ DownloadItemUtils.processDate(getActivity(), gameEntity,
+ downloadEntity, adapter, 0);
+ }
+ }
+ }
+ };
+
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -40,7 +64,8 @@ public class SearchGameListFragment extends Fragment implements OnCallBackListen
search_detail = (RecyclerView) view.findViewById(R.id.search_detail);
search_detail.setHasFixedSize(true);
search_detail.setLayoutManager(new LinearLayoutManager(getActivity()));
- search_detail.setAdapter(new SearchGameListFragmentAdapter(SearchGameListFragment.this, key));
+ adapter = new SearchGameListFragmentAdapter(SearchGameListFragment.this, key);
+ search_detail.setAdapter(adapter);
}
@Nullable
@@ -85,4 +110,35 @@ public class SearchGameListFragment extends Fragment implements OnCallBackListen
reuse_none_date.setVisibility(View.VISIBLE);
reuse_no_connection.setVisibility(View.GONE);
}
+
+ //下载被删除事件
+ public void onEventMainThread(EBDownloadStatus status) {
+ if ("delete".equals(status.getStatus())) {
+ DownloadManager.getInstance(getActivity()).removePlatform(status.getName(), status.getPlatform());
+ ArrayList locationList = adapter.getLocationMap().get(status.getPackageName());
+ GameEntity gameEntity;
+ if (locationList != null && locationList.size() != 0) {
+ gameEntity = adapter.getGameEntity();
+ if (gameEntity != null && gameEntity.getEntryMap() != null) {
+ gameEntity.getEntryMap().remove(status.getPlatform());
+ }
+ adapter.notifyItemChanged(0);
+ }
+ }
+ }
+
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ isEverpause = false;
+ DownloadManager.getInstance(getContext()).addObserver(dataWatcher);
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ isEverpause = true;
+ DownloadManager.getInstance(getContext()).removeObserver(dataWatcher);
+ }
}
diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragmentAdapter.java
index 130f054885..bb95694664 100644
--- a/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragmentAdapter.java
+++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragmentAdapter.java
@@ -1,24 +1,24 @@
package com.gh.gamecenter.search;
import android.content.Context;
+import android.support.v4.util.ArrayMap;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.view.inputmethod.InputMethodManager;
-import com.gh.common.constant.Config;
import com.gh.common.constant.ItemViewType;
import com.gh.common.util.DataCollectionUtils;
import com.gh.common.util.DataUtils;
import com.gh.common.util.DisplayUtils;
+import com.gh.common.util.DownloadItemUtils;
import com.gh.common.util.GameUtils;
import com.gh.common.util.GameViewUtils;
import com.gh.common.view.CardLinearLayout;
-import com.gh.common.view.DownloadDialog;
import com.gh.gamecenter.R;
import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder;
+import com.gh.gamecenter.entity.ApkEntity;
import com.gh.gamecenter.entity.GameEntity;
import com.gh.gamecenter.listener.OnCallBackListener;
import com.gh.gamecenter.retrofit.Response;
@@ -38,6 +38,7 @@ public class SearchGameListFragmentAdapter extends RecyclerView.Adapter gameList;
+ private ArrayMap> locationMap;
private String key;
@@ -46,6 +47,7 @@ public class SearchGameListFragmentAdapter extends RecyclerView.Adapter();
+ locationMap = new ArrayMap<>();
this.key = key;
if (!TextUtils.isEmpty(key)) {
@@ -69,6 +71,7 @@ public class SearchGameListFragmentAdapter extends RecyclerView.Adapter list = locationMap.get(apkEntity.getPackageName());
+ if (list == null) {
+ list = new ArrayList<>();
+ locationMap.put(apkEntity.getPackageName(), list);
+ }
+ list.add(0);
+ }
+ }
+
@Override
public int getItemCount() {
return gameList.size();
@@ -143,32 +158,41 @@ public class SearchGameListFragmentAdapter extends RecyclerView.Adapter> getLocationMap() {
+ return locationMap;
+ }
+
+ public GameEntity getGameEntity() {
+ return gameList.get(0);
+ }
}
diff --git a/app/src/main/java/com/gh/gamecenter/statistics/AppStaticService.java b/app/src/main/java/com/gh/gamecenter/statistics/AppStaticService.java
new file mode 100644
index 0000000000..545bcf5c86
--- /dev/null
+++ b/app/src/main/java/com/gh/gamecenter/statistics/AppStaticService.java
@@ -0,0 +1,119 @@
+package com.gh.gamecenter.statistics;
+
+import android.app.ActivityManager;
+import android.app.Service;
+import android.content.Context;
+import android.content.Intent;
+import android.os.IBinder;
+import android.os.PowerManager;
+import android.support.annotation.Nullable;
+
+import com.gh.common.util.Utils;
+import com.gh.gamecenter.db.AppRunTimeDao;
+
+import java.util.List;
+
+import static java.lang.Thread.sleep;
+
+/**
+ * Created by khy on 2016/12/30.
+ * 统计用户App运行时长服务
+ */
+public class AppStaticService extends Service {
+
+ private List mTaskInfo;
+
+ private ActivityManager.RunningTaskInfo mTopTaskInfo;
+ private ActivityManager mActivityManager;
+
+ private String mPrePackageName; // 切换app前的应用包名
+ private String mNextPackageName; // 切换app后的应用包名
+
+ private String homePackage = "com.huawei.android.launcher"; //桌面包名 以华为为例
+
+ private int mRunTime;
+ AppRunTimeDao runTimeDao;
+
+ @Nullable
+ @Override
+ public IBinder onBind(Intent intent) {
+ return null;
+ }
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ mActivityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
+ mPrePackageName = getPackageName();
+ mNextPackageName = getPackageName();
+ runTimeDao = new AppRunTimeDao(getApplicationContext());
+
+// PackageManager packageManager = getApplication().getPackageManager();
+// Intent intent = new Intent(Intent.ACTION_MAIN);
+// intent.addCategory(Intent.CATEGORY_HOME);
+// List resolveInfos = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
+
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ PowerManager mPowerManager = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE);
+ boolean isScreenOn;
+ int i =0;
+ while (true) {
+ try {
+ isScreenOn = mPowerManager.isScreenOn(); //判断屏幕状态(屏幕亮起/屏幕熄灭)
+ if (isScreenOn) {
+// // 获取当前正在运行的任务
+ mTaskInfo = mActivityManager.getRunningTasks(1);
+
+ mTopTaskInfo = mTaskInfo.get(0);
+ mNextPackageName = mTopTaskInfo.topActivity.getPackageName();
+
+ if (homePackage.equals(mNextPackageName)) { // 跳转至桌面
+ if (homePackage.equals(mPrePackageName)) { // 桌面跳转至桌面 不统计
+ Utils.log("============ 桌面跳转至桌面 不统计");
+ } else { // 非桌面跳转至桌面
+ // TODO 计时结束 存储数据
+ writeToStorage();
+ Utils.log("============ 非桌面跳转至桌面 计时结束 存储数据"+ mRunTime);
+ }
+
+ } else { // 跳转至非桌面
+ if (mNextPackageName.equals(mPrePackageName)) { //如果nextPackageName和prePackageName相同(无跳转操作),那么计时增加
+ // TODO 计时开始
+ mRunTime = mRunTime + 1;
+ mPrePackageName = mNextPackageName; //身份转换
+
+ Utils.log("============ 计时开始");
+ } else { // 非桌面跳转至非桌面 mPrePackageName的计时结束,mNextPackageName的计时开始
+ // TODO 计时结束 存储数据
+ Utils.log("============ 非桌面跳转至非桌面 计时结束 存储数据22"+ mRunTime);
+ writeToStorage();
+ }
+ }
+ } else {
+ if (mRunTime != 0) {
+ // TODO 计时结束 存储数据
+ writeToStorage();
+ }
+ Utils.log("======屏幕变暗 停止统计服务" + mRunTime);
+ stopSelf(); // 屏幕变暗 停止统计服务
+ break; // 结束服务之后跳出循环
+ }
+ i = i + 1;
+ sleep(1000);
+ Utils.log("============" + isScreenOn + "==" + mPrePackageName + "::" + mRunTime );
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }).start();
+ }
+
+ private void writeToStorage() {
+ StatisticsUtils.saveRunTime( mPrePackageName, mRunTime, runTimeDao);
+ mRunTime = 0;
+ mPrePackageName = mNextPackageName;
+ }
+}
diff --git a/app/src/main/java/com/gh/gamecenter/statistics/StatisticsUtils.java b/app/src/main/java/com/gh/gamecenter/statistics/StatisticsUtils.java
new file mode 100644
index 0000000000..098fc509a0
--- /dev/null
+++ b/app/src/main/java/com/gh/gamecenter/statistics/StatisticsUtils.java
@@ -0,0 +1,24 @@
+package com.gh.gamecenter.statistics;
+
+import com.gh.common.util.Utils;
+import com.gh.gamecenter.db.AppRunTimeDao;
+import com.gh.gamecenter.db.info.AppRunTimeInfo;
+
+/**
+ * Created by khy on 2017/1/3.
+ */
+public class StatisticsUtils {
+
+ public static void saveRunTime(String packageName, int runTimeCount, AppRunTimeDao runTimeDao) {
+
+
+ if (runTimeDao.isExist(packageName)) {
+ Utils.log("存在记录=================" + (runTimeCount + runTimeDao.getRunTimeCount(packageName)));
+ runTimeDao.add(new AppRunTimeInfo(packageName, (runTimeCount + runTimeDao.getRunTimeCount(packageName))));
+ } else {
+ Utils.log("不存在记录=================" + runTimeCount);
+ runTimeDao.add(new AppRunTimeInfo(packageName, runTimeCount ));
+ }
+ }
+
+}
diff --git a/app/src/main/java/com/gh/gamecenter/statistics/TrafficUtils.java b/app/src/main/java/com/gh/gamecenter/statistics/TrafficUtils.java
new file mode 100644
index 0000000000..c15fd267d0
--- /dev/null
+++ b/app/src/main/java/com/gh/gamecenter/statistics/TrafficUtils.java
@@ -0,0 +1,19 @@
+package com.gh.gamecenter.statistics;
+
+/**
+ * Created by khy on 2017/1/3.
+ */
+public class TrafficUtils {
+//
+// PackageManager pm = getPackageManager();
+// List installedPackages = (List) pm.getInstalledPackages(0);
+// TrafficStats trafficStats = new TrafficStats();
+//
+// for (PackageInfo installedPackage : installedPackages) {
+// int uid = installedPackage.applicationInfo.uid;
+// long uidRxBytes = trafficStats.getUidRxBytes(uid);
+// long KB = uidRxBytes / 1024;
+// Utils.log(installedPackage.applicationInfo.loadLabel(pm).toString() + "===========" + KB);
+// }
+
+}
diff --git a/app/src/main/java/com/gh/gamecenter/statistics/UnlockScreenReceiver.java b/app/src/main/java/com/gh/gamecenter/statistics/UnlockScreenReceiver.java
new file mode 100644
index 0000000000..f5ede44f19
--- /dev/null
+++ b/app/src/main/java/com/gh/gamecenter/statistics/UnlockScreenReceiver.java
@@ -0,0 +1,21 @@
+package com.gh.gamecenter.statistics;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+
+import com.gh.common.util.Utils;
+
+/**
+ * Created by khy on 2016/12/31.
+ */
+public class UnlockScreenReceiver extends BroadcastReceiver {
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ Utils.log("================屏幕状态切换" + intent.getAction());
+
+ Intent staticIntent = new Intent(context, AppStaticService.class);
+ context.startService(staticIntent);
+ }
+}
diff --git a/app/src/main/res/anim/popshow_anim_scale.xml b/app/src/main/res/anim/popshow_anim_scale.xml
index 43a823b29b..c5147cd70c 100644
--- a/app/src/main/res/anim/popshow_anim_scale.xml
+++ b/app/src/main/res/anim/popshow_anim_scale.xml
@@ -2,14 +2,15 @@
diff --git a/app/src/main/res/drawable-hdpi/game_gift_icon.png b/app/src/main/res/drawable-hdpi/game_gift_icon.png
index 9bf1e07006..bbc74146af 100644
Binary files a/app/src/main/res/drawable-hdpi/game_gift_icon.png and b/app/src/main/res/drawable-hdpi/game_gift_icon.png differ
diff --git a/app/src/main/res/drawable-hdpi/subject_new.png b/app/src/main/res/drawable-hdpi/subject_new.png
new file mode 100644
index 0000000000..5047c084e1
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/subject_new.png differ
diff --git a/app/src/main/res/drawable-nodpi/splash_01.webp b/app/src/main/res/drawable-nodpi/splash_01.webp
index ff8ab05c1e..cface2dce1 100644
Binary files a/app/src/main/res/drawable-nodpi/splash_01.webp and b/app/src/main/res/drawable-nodpi/splash_01.webp differ
diff --git a/app/src/main/res/drawable/libao_linged_dn.xml b/app/src/main/res/drawable/libao_linged_dn.xml
new file mode 100644
index 0000000000..d2a0fb24b2
--- /dev/null
+++ b/app/src/main/res/drawable/libao_linged_dn.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/libao_linged_style.xml b/app/src/main/res/drawable/libao_linged_style.xml
new file mode 100644
index 0000000000..33b05213ab
--- /dev/null
+++ b/app/src/main/res/drawable/libao_linged_style.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/libao_linged_bg.xml b/app/src/main/res/drawable/libao_linged_up.xml
similarity index 100%
rename from app/src/main/res/drawable/libao_linged_bg.xml
rename to app/src/main/res/drawable/libao_linged_up.xml
diff --git a/app/src/main/res/drawable/libao_taoed_dn.xml b/app/src/main/res/drawable/libao_taoed_dn.xml
new file mode 100644
index 0000000000..3a77803f50
--- /dev/null
+++ b/app/src/main/res/drawable/libao_taoed_dn.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/libao_taoed_style.xml b/app/src/main/res/drawable/libao_taoed_style.xml
new file mode 100644
index 0000000000..cde880a118
--- /dev/null
+++ b/app/src/main/res/drawable/libao_taoed_style.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/libao_taoed_bg.xml b/app/src/main/res/drawable/libao_taoed_up.xml
similarity index 100%
rename from app/src/main/res/drawable/libao_taoed_bg.xml
rename to app/src/main/res/drawable/libao_taoed_up.xml
diff --git a/app/src/main/res/drawable/news_detail_comment.xml b/app/src/main/res/drawable/news_detail_comment.xml
index d0242f41d1..9f58d2ae98 100644
--- a/app/src/main/res/drawable/news_detail_comment.xml
+++ b/app/src/main/res/drawable/news_detail_comment.xml
@@ -4,7 +4,7 @@
+ android:color="#EDEDED" />
diff --git a/app/src/main/res/layout/activity_suggest.xml b/app/src/main/res/layout/activity_suggest.xml
index 8f1b0ed2b1..240bcaaf6a 100644
--- a/app/src/main/res/layout/activity_suggest.xml
+++ b/app/src/main/res/layout/activity_suggest.xml
@@ -39,7 +39,7 @@
android:maxLines="12"
android:minLines="6"
android:padding="8dp"
- android:hint="使用过程中发现的任何问题或者其他建议都欢迎提交给我们~光环助手会努力变得更好更强大!"
+ android:hint="使用过程中发现的任何问题或者其他建议都欢迎提交给我们~光环助手会努力变得更好更强大!\n\n\n\n若反馈游戏问题,请写上游戏名字和平台版本"
android:textSize="14sp" />
diff --git a/app/src/main/res/layout/comment_item.xml b/app/src/main/res/layout/comment_item.xml
index 6dd92fdb1a..244737ad5f 100644
--- a/app/src/main/res/layout/comment_item.xml
+++ b/app/src/main/res/layout/comment_item.xml
@@ -54,7 +54,7 @@
android:layout_height="wrap_content"
android:layout_below="@+id/comment_user_name"
android:textSize="11sp"
- android:layout_marginTop="8dp"
+ android:layout_marginTop="6dp"
android:textColor="#c7c7c7"/>
-
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_personal.xml b/app/src/main/res/layout/fragment_personal.xml
index ce1b4e3e99..c470598966 100644
--- a/app/src/main/res/layout/fragment_personal.xml
+++ b/app/src/main/res/layout/fragment_personal.xml
@@ -85,12 +85,6 @@
-
-
-
-
+ android:layout_height="match_parent">
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/game_test_item.xml b/app/src/main/res/layout/game_test_item.xml
index 521b206bf7..2e5a1d79a7 100644
--- a/app/src/main/res/layout/game_test_item.xml
+++ b/app/src/main/res/layout/game_test_item.xml
@@ -41,8 +41,8 @@
diff --git a/app/src/main/res/layout/home_subject_entrance_item.xml b/app/src/main/res/layout/home_subject_entrance_item.xml
index 6c8f9fdc63..6def8e3211 100644
--- a/app/src/main/res/layout/home_subject_entrance_item.xml
+++ b/app/src/main/res/layout/home_subject_entrance_item.xml
@@ -5,18 +5,32 @@
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">
+
+
-
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/libao_item.xml b/app/src/main/res/layout/libao_item.xml
index 394455aef1..c191fca089 100644
--- a/app/src/main/res/layout/libao_item.xml
+++ b/app/src/main/res/layout/libao_item.xml
@@ -35,8 +35,7 @@
android:layout_height="wrap_content"
android:textColor="@color/title"
android:textSize="16sp"
- android:singleLine="true"
- android:text="暖床萌萌大礼包"/>
+ android:singleLine="true" />
+ android:singleLine="true"/>
+ android:singleLine="true"/>
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 56badf0bdb..faec3a4d30 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -65,8 +65,8 @@
- @anim/popshow_anim_scale
- - @anim/pophidden_anim_scale
-
+
+