diff --git a/app/src/main/java/com/gh/gamecenter/adapter/InstallFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/InstallFragmentAdapter.java index 19c391714b..e457c42a17 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/InstallFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/InstallFragmentAdapter.java @@ -35,7 +35,6 @@ import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.entity.GameInstall; import com.gh.gamecenter.kuaichuan.FileInfo; -import com.gh.gamecenter.manager.GameManager; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.halo.assistant.HaloApp; @@ -179,10 +178,8 @@ public class InstallFragmentAdapter extends BaseRecyclerAdapter { } } } - GameManager manager = new GameManager(mContext); for (GameEntity entity : this.gameList) { entity.setEntryMap(DownloadManager.getInstance(mContext).getEntryMap(entity.getName())); - manager.addOrUpdate(entity); } } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/PluginAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/PluginAdapter.java index 7950c6f3f5..fee72bf189 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/PluginAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/PluginAdapter.java @@ -19,7 +19,6 @@ import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.entity.GameUpdateEntity; -import com.gh.gamecenter.manager.GameManager; import com.gh.gamecenter.manager.PackagesManager; import com.lightgame.adapter.BaseRecyclerAdapter; @@ -86,10 +85,8 @@ public class PluginAdapter extends BaseRecyclerAdapter { } } if (!list.isEmpty()) { - GameManager manager = new GameManager(mContext); for (GameEntity gEntity : list) { gEntity.setEntryMap(DownloadManager.getInstance(mContext).getEntryMap(gEntity.getName())); - manager.addOrUpdate(gEntity); } mPluginList = list; notifyItemRangeInserted(0, mPluginList.size()); diff --git a/app/src/main/java/com/gh/gamecenter/category/CategoryListAdapter.java b/app/src/main/java/com/gh/gamecenter/category/CategoryListAdapter.java index c8a6bf2dc0..b4ef40a54c 100644 --- a/app/src/main/java/com/gh/gamecenter/category/CategoryListAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/category/CategoryListAdapter.java @@ -33,7 +33,6 @@ import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; import com.gh.gamecenter.adapter.viewholder.GameTestViewHolder; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; -import com.gh.gamecenter.manager.GameManager; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.gh.gamecenter.subject.refactor.SubjectActivity; @@ -107,13 +106,10 @@ public class CategoryListAdapter extends BaseRecyclerAdapter>() { @Override public void onResponse(List response) { - GameManager manager = new GameManager(mContext); if (response.size() != 0) { for (GameEntity entity : response) { // 黄壮华 初始化游戏状态 修改2015/8/15 entity.setEntryMap(DownloadManager.getInstance(mContext).getEntryMap(entity.getName())); - manager.addOrUpdate(entity); - ApkActiveUtils.filterHideApk(entity); // 过滤隐藏apk } 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 7446a8e2c6..b14596957e 100644 --- a/app/src/main/java/com/gh/gamecenter/db/DatabaseHelper.java +++ b/app/src/main/java/com/gh/gamecenter/db/DatabaseHelper.java @@ -4,14 +4,10 @@ import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.support.v4.util.ArrayMap; -import com.gh.gamecenter.db.info.AppRunTimeInfo; -import com.gh.gamecenter.db.info.AppTrafficInfo; import com.gh.gamecenter.db.info.AskSearchHistoryInfo; import com.gh.gamecenter.db.info.DataCollectionInfo; import com.gh.gamecenter.db.info.FilterInfo; -import com.gh.gamecenter.db.info.GameInfo; import com.gh.gamecenter.db.info.GameTrendsInfo; -import com.gh.gamecenter.db.info.InstallInfo; import com.gh.gamecenter.db.info.PackageInfo; import com.gh.gamecenter.db.info.SearchHistoryInfo; import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper; @@ -56,13 +52,9 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper { public void onCreate(SQLiteDatabase database, ConnectionSource connectionSource) { try { Utils.log("DatabaseHelper onCreate"); - TableUtils.createTable(connectionSource, InstallInfo.class); TableUtils.createTable(connectionSource, SearchHistoryInfo.class); - TableUtils.createTable(connectionSource, GameInfo.class); TableUtils.createTable(connectionSource, DataCollectionInfo.class); - TableUtils.createTable(connectionSource, AppRunTimeInfo.class); TableUtils.createTable(connectionSource, PackageInfo.class); - TableUtils.createTable(connectionSource, AppTrafficInfo.class); TableUtils.createTable(connectionSource, GameTrendsInfo.class); TableUtils.createTable(connectionSource, AskSearchHistoryInfo.class); } catch (SQLException e) { @@ -74,14 +66,10 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper { public void onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, int oldVersion, int newVersion) { try { Utils.log("DatabaseHelper onUpgrade"); - TableUtils.dropTable(connectionSource, InstallInfo.class, true); TableUtils.dropTable(connectionSource, SearchHistoryInfo.class, true); - TableUtils.dropTable(connectionSource, GameInfo.class, true); TableUtils.dropTable(connectionSource, FilterInfo.class, true); TableUtils.dropTable(connectionSource, DataCollectionInfo.class, true); - TableUtils.dropTable(connectionSource, AppRunTimeInfo.class, true); TableUtils.dropTable(connectionSource, PackageInfo.class, true); - TableUtils.dropTable(connectionSource, AppTrafficInfo.class, true); TableUtils.dropTable(connectionSource, GameTrendsInfo.class, true); TableUtils.dropTable(connectionSource, AskSearchHistoryInfo.class, true); onCreate(database, connectionSource); diff --git a/app/src/main/java/com/gh/gamecenter/db/GameDao.java b/app/src/main/java/com/gh/gamecenter/db/GameDao.java deleted file mode 100644 index 63ab9ac005..0000000000 --- a/app/src/main/java/com/gh/gamecenter/db/GameDao.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.gh.gamecenter.db; - -import android.content.Context; - -import com.gh.gamecenter.db.info.GameInfo; -import com.j256.ormlite.dao.Dao; -import com.j256.ormlite.stmt.QueryBuilder; -import com.j256.ormlite.stmt.Where; - -import java.sql.SQLException; -import java.util.List; - -public class GameDao { - - private DatabaseHelper helper; - private Dao dao; - - public GameDao(Context context) { - try { - helper = DatabaseHelper.getHelper(context); - dao = helper.getDao(GameInfo.class); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - /** - * 添加一个游戏 - */ - public void add(GameInfo entity) { - try { - dao.create(entity); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - /** - * 添加多个个游戏 - */ - public void addAll(List list) { - try { - dao.create(list); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - /** - * 删除一个游戏 - */ - public void delete(String packageName) { - try { - dao.deleteById(packageName); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - /** - * 根据包名获取某一个游戏 - */ - public GameInfo find(String packageName) { - try { - return dao.queryForId(packageName); - } catch (SQLException e) { - e.printStackTrace(); - } - return null; - } - - /** - * 根据包名获取多个游戏 - */ - public List findAll(List packageNames) { - try { - QueryBuilder builder = dao.queryBuilder(); - Where where = builder.where(); - for (int i = 0, size = packageNames.size(); i < size; i++) { - if (i == 0) { - where.eq("packageName", packageNames.get(i)); - } else { - where.or().eq("packageName", packageNames.get(i)); - } - } - return builder.query(); - } catch (SQLException e) { - e.printStackTrace(); - } - return null; - } - - /** - * 获取所有的游戏 - */ - public List getAll() { - try { - return dao.queryForAll(); - } catch (SQLException e) { - e.printStackTrace(); - } - return null; - } - - /** - * 更新游戏 - */ - public void update(GameInfo entity) { - try { - dao.update(entity); - } catch (SQLException e) { - e.printStackTrace(); - } - } -} diff --git a/app/src/main/java/com/gh/gamecenter/db/InstallDao.java b/app/src/main/java/com/gh/gamecenter/db/InstallDao.java deleted file mode 100644 index 2a6135da6c..0000000000 --- a/app/src/main/java/com/gh/gamecenter/db/InstallDao.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.gh.gamecenter.db; - -import android.content.Context; - -import com.gh.gamecenter.db.info.InstallInfo; -import com.j256.ormlite.dao.Dao; -import com.j256.ormlite.stmt.QueryBuilder; - -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; - -public class InstallDao { - - private DatabaseHelper helper; - private Dao dao; - - public InstallDao(Context context) { - try { - helper = DatabaseHelper.getHelper(context); - dao = helper.getDao(InstallInfo.class); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - /** - * 获取权重和流量排序靠前的关注 - */ - public List get(int number) { - List concernEntities = new ArrayList(); - try { - QueryBuilder builder = dao.queryBuilder(); - - builder.orderBy("weight", false).orderBy("traffic", false); - - List list = builder.query(); - - if (number == 0 || number >= list.size()) { - return list; - } else { - for (int i = 0; i < number; i++) { - concernEntities.add(list.get(i)); - } - return concernEntities; - } - } catch (SQLException e) { - e.printStackTrace(); - } - return null; - } - - /** - * 添加一个游戏 - */ - public void add(InstallInfo entity) { - try { - dao.create(entity); - } catch (SQLException e) { - - e.printStackTrace(); - } - } - - /** - * 删除一个游戏 - */ - public void delete(String id) { - try { - dao.deleteById(id); - } catch (SQLException e) { - - e.printStackTrace(); - } - } - - /** - * 根据id获取某一个游戏 - */ - public InstallInfo find(String id) { - try { - return dao.queryForId(id); - } catch (SQLException e) { - - e.printStackTrace(); - } - return null; - } - - /** - * 获取所有的游戏 - */ - public List getAll() { - try { - return dao.queryForAll(); - } catch (SQLException e) { - - e.printStackTrace(); - } - return null; - } - - /** - * 更新游戏数据 - */ - public void update(InstallInfo entity) { - try { - dao.update(entity); - } catch (SQLException e) { - - e.printStackTrace(); - } - } - -} 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 deleted file mode 100644 index 6a716109b3..0000000000 --- a/app/src/main/java/com/gh/gamecenter/db/info/AppRunTimeInfo.java +++ /dev/null @@ -1,44 +0,0 @@ -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 AppRunTimeInfo() { - } - - public AppRunTimeInfo(String packageName, int runTime) { - this.packageName = packageName; - this.runTime = 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; - } -} diff --git a/app/src/main/java/com/gh/gamecenter/db/info/AppTrafficInfo.java b/app/src/main/java/com/gh/gamecenter/db/info/AppTrafficInfo.java deleted file mode 100644 index 70141b2137..0000000000 --- a/app/src/main/java/com/gh/gamecenter/db/info/AppTrafficInfo.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.gh.gamecenter.db.info; - -import com.j256.ormlite.field.DataType; -import com.j256.ormlite.field.DatabaseField; -import com.j256.ormlite.table.DatabaseTable; - -import java.io.Serializable; -import java.util.HashMap; - -/** - * Created by khy on 23/07/17. - */ - -@DatabaseTable(tableName = "tb_traffic") -public class AppTrafficInfo implements Serializable { - - @DatabaseField(id = true, columnName = "time") - private long time; - - // packageName + traffic - @DatabaseField(columnName = "trafficByDay", dataType = DataType.SERIALIZABLE) - private HashMap trafficByDay; // 一天使用的流量 - - // packageName + traffic - @DatabaseField(columnName = "trafficByAll", dataType = DataType.SERIALIZABLE) - private HashMap trafficByAll; // 总使用的流量 - - public long getTime() { - return time; - } - - public void setTime(long time) { - this.time = time; - } - - public HashMap getTrafficByDay() { - return trafficByDay; - } - - public void setTrafficByDay(HashMap trafficByDay) { - this.trafficByDay = trafficByDay; - } - - public HashMap getTrafficByAll() { - return trafficByAll; - } - - public void setTrafficByAll(HashMap trafficByAll) { - this.trafficByAll = trafficByAll; - } -} diff --git a/app/src/main/java/com/gh/gamecenter/db/info/GameInfo.java b/app/src/main/java/com/gh/gamecenter/db/info/GameInfo.java deleted file mode 100644 index ece90d0652..0000000000 --- a/app/src/main/java/com/gh/gamecenter/db/info/GameInfo.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.gh.gamecenter.db.info; - -import com.j256.ormlite.field.DatabaseField; -import com.j256.ormlite.table.DatabaseTable; - -import java.io.Serializable; - -@DatabaseTable(tableName = "tb_game") -public class GameInfo implements Serializable { - - /** - * - */ - private static final long serialVersionUID = -5260664512970779554L; - - @DatabaseField(id = true, columnName = "packageName") - private String packageName; - - @DatabaseField(columnName = "id") - private String id; - - @DatabaseField(columnName = "gameName") - private String gameName; - - @DatabaseField(columnName = "gameIcon") - private String gameIcon; - - public GameInfo() { - - } - - public GameInfo(String packageName, String id, String gameName, String gameIcon) { - super(); - this.packageName = packageName; - this.id = id; - this.gameName = gameName; - this.gameIcon = gameIcon; - } - - public String getPackageName() { - return packageName; - } - - public void setPackageName(String packageName) { - this.packageName = packageName; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getGameName() { - return gameName; - } - - public void setGameName(String gameName) { - this.gameName = gameName; - } - - public String getGameIcon() { - return gameIcon; - } - - public void setGameIcon(String gameIcon) { - this.gameIcon = gameIcon; - } - - @Override - public String toString() { - return "GameEntity [packageName=" + packageName + ", id=" + id - + ", gameName=" + gameName + ", gameIcon=" + gameIcon + "]"; - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/db/info/InstallInfo.java b/app/src/main/java/com/gh/gamecenter/db/info/InstallInfo.java deleted file mode 100644 index 9fbf4d65f0..0000000000 --- a/app/src/main/java/com/gh/gamecenter/db/info/InstallInfo.java +++ /dev/null @@ -1,134 +0,0 @@ -package com.gh.gamecenter.db.info; - -import com.j256.ormlite.field.DataType; -import com.j256.ormlite.field.DatabaseField; -import com.j256.ormlite.table.DatabaseTable; - -import java.io.Serializable; -import java.util.HashMap; - -@DatabaseTable(tableName = "tb_concern") -public class InstallInfo implements Serializable { - - /** - * - */ - private static final long serialVersionUID = -7284046360961851205L; - - @DatabaseField(id = true, columnName = "id") - private String id; - - @DatabaseField(columnName = "time") - private long time; - - @DatabaseField(columnName = "gameName") - private String gameName; - - @DatabaseField(columnName = "icon") - private String icon; - - @DatabaseField(columnName = "installedQuantity") - private int installedQuantity; - - @DatabaseField(columnName = "packageNames", dataType = DataType.SERIALIZABLE) - private HashMap packageNames; - - @DatabaseField(columnName = "weight") - private int weight; - - @DatabaseField(columnName = "traffic") - private long traffic; - - public InstallInfo() { - - } - - public InstallInfo(String id, long time, String gameName, String icon, - int installedQuantity, HashMap packageNames, - int weight, long traffic) { - super(); - this.id = id; - this.time = time; - this.gameName = gameName; - this.icon = icon; - this.installedQuantity = installedQuantity; - this.packageNames = packageNames; - this.weight = weight; - this.traffic = traffic; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public long getTime() { - return time; - } - - public void setTime(long time) { - this.time = time; - } - - public String getGameName() { - return gameName; - } - - public void setGameName(String gameName) { - this.gameName = gameName; - } - - public String getIcon() { - return icon; - } - - public void setIcon(String icon) { - this.icon = icon; - } - - - public int getInstalledQuantity() { - return installedQuantity; - } - - public void setInstalledQuantity(int installedQuantity) { - this.installedQuantity = installedQuantity; - } - - public HashMap getPackageNames() { - return packageNames; - } - - public void setPackageNames(HashMap packageNames) { - this.packageNames = packageNames; - } - - public int getWeight() { - return weight; - } - - public void setWeight(int weight) { - this.weight = weight; - } - - public long getTraffic() { - return traffic; - } - - public void setTraffic(long traffic) { - this.traffic = traffic; - } - - @Override - public String toString() { - return "ConcernEntity [id=" + id + ", time=" + time + ", gameName=" - + gameName + ", icon=" + icon - + ", installedQuantity=" + installedQuantity - + ", packageNames=" + packageNames + ", weight=" + weight - + ", traffic=" + traffic + "]"; - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/install/PackageRepository.kt b/app/src/main/java/com/gh/gamecenter/install/PackageRepository.kt index d80cd78bc2..23f68b212f 100644 --- a/app/src/main/java/com/gh/gamecenter/install/PackageRepository.kt +++ b/app/src/main/java/com/gh/gamecenter/install/PackageRepository.kt @@ -8,7 +8,6 @@ import com.gh.common.util.DataCollectionUtils import com.gh.common.util.GameUtils import com.gh.common.util.PackageUtils import com.gh.common.util.UrlFilterUtils -import com.gh.gamecenter.db.info.GameInfo import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.GameInstall import com.gh.gamecenter.entity.GameUpdateEntity @@ -125,11 +124,6 @@ object PackageRepository { if (!isNotifyUpdate && isCanUpdate || isCanPluggable) { isNotifyUpdate = true } - val gameInfo = GameInfo() - gameInfo.id = game.id - gameInfo.gameIcon = game.icon - gameInfo.packageName = pkgName - gameInfo.gameName = game.name } } latch.countDown() diff --git a/app/src/main/java/com/gh/gamecenter/kaifu/KaiFuVpAdapter.java b/app/src/main/java/com/gh/gamecenter/kaifu/KaiFuVpAdapter.java index bf197348fe..778d310bae 100644 --- a/app/src/main/java/com/gh/gamecenter/kaifu/KaiFuVpAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/kaifu/KaiFuVpAdapter.java @@ -30,7 +30,6 @@ import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.entity.KaiFuCalendarEntity; import com.gh.gamecenter.eventbus.EBKaiFuReset; -import com.gh.gamecenter.manager.GameManager; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.lightgame.adapter.BaseRecyclerAdapter; @@ -92,12 +91,10 @@ public class KaiFuVpAdapter extends BaseRecyclerAdapter { .subscribe(new Response>() { @Override public void onResponse(List response) { - GameManager manager = new GameManager(mContext); for (int i = 0; i < response.size(); i++) { // 初始化游戏状态 GameEntity entity = response.get(i); entity.setEntryMap(DownloadManager.getInstance(mContext).getEntryMap(entity.getName())); - manager.addOrUpdate(entity); ApkActiveUtils.filterHideApk(entity); // 过滤隐藏apk GameEntity fixedTopItem = null; diff --git a/app/src/main/java/com/gh/gamecenter/manager/GameManager.java b/app/src/main/java/com/gh/gamecenter/manager/GameManager.java deleted file mode 100644 index fae575352a..0000000000 --- a/app/src/main/java/com/gh/gamecenter/manager/GameManager.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.gh.gamecenter.manager; - -import android.content.Context; - -import com.gh.gamecenter.db.GameDao; -import com.gh.gamecenter.db.info.GameInfo; -import com.gh.gamecenter.entity.ApkEntity; -import com.gh.gamecenter.entity.GameEntity; - -import java.util.ArrayList; -import java.util.List; - -public class GameManager { - - private GameDao dao; - - public GameManager(Context context) { - dao = new GameDao(context); - } - - public void addOrUpdate(GameInfo entity) { - if (dao.find(entity.getPackageName()) == null) { - dao.add(entity); - } - } - - public void addOrUpdate(GameEntity gameEntity) { - ArrayList apk = gameEntity.getApk(); - if (apk.isEmpty()) { - return; - } - ArrayList list = new ArrayList<>(); - ArrayList packageNames = new ArrayList<>(); - for (ApkEntity apkEntity : apk) { - packageNames.add(apkEntity.getPackageName()); - } - if (packageNames.isEmpty()) { - return; - } - List result = dao.findAll(packageNames); - for (GameInfo gameInfo : result) { - packageNames.remove(gameInfo.getPackageName()); - } - for (String packageName : packageNames) { - list.add(new GameInfo(packageName, gameEntity.getId(), gameEntity.getName(), gameEntity.getIcon())); - } - if (list.size() != 0) { - dao.addAll(list); - } - } - - public void addGame(GameInfo entity) { - dao.add(entity); - } - - public GameInfo findGame(String packageName) { - return dao.find(packageName); - } - - public void deleteGame(String packageName) { - dao.delete(packageName); - } - - public List getAllGame() { - return dao.getAll(); - } - - public void updateGame(GameInfo entity) { - dao.update(entity); - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/personal/installed/InstallGameViewModel.kt b/app/src/main/java/com/gh/gamecenter/personal/installed/InstallGameViewModel.kt deleted file mode 100644 index 399478e8bc..0000000000 --- a/app/src/main/java/com/gh/gamecenter/personal/installed/InstallGameViewModel.kt +++ /dev/null @@ -1,172 +0,0 @@ -package com.gh.gamecenter.personal.installed - -import android.app.Application -import android.arch.lifecycle.AndroidViewModel -import android.arch.lifecycle.MutableLiveData -import android.support.v4.util.ArrayMap -import com.gh.common.util.ApkActiveUtils -import com.gh.common.util.PackageUtils -import com.gh.download.DownloadManager -import com.gh.gamecenter.db.info.InstallInfo -import com.gh.gamecenter.entity.ApkEntity -import com.gh.gamecenter.entity.GameEntity -import com.gh.gamecenter.entity.GameInfoEntity -import com.gh.gamecenter.manager.GameManager -import com.gh.gamecenter.retrofit.Response -import com.gh.gamecenter.retrofit.RetrofitManager -import com.halo.assistant.HaloApp -import io.reactivex.Observable -import io.reactivex.android.schedulers.AndroidSchedulers -import io.reactivex.schedulers.Schedulers -import retrofit2.HttpException -import java.util.* -import kotlin.collections.ArrayList - -class InstallGameViewModel(application: Application) : AndroidViewModel(application) { - - companion object { - const val PERSONAL_MAX_GAME_COUNT = 4 - } - - val gameEntity = MutableLiveData>() - - var mCacheGameData = ArrayList() - - init { - initInstalledData() - } - - fun initInstalledData() { - val sortList = ArrayList() - val installedGame = ArrayList() - if (installedGame.isEmpty()) { - gameEntity.postValue(null) - } else { - HaloApp.getInstance().mainExecutor.execute { - transformationData(installedGame, sortList) - - // 按安装时间排序 - sortList.sortWith(Comparator { lhs, rhs -> - if (lhs.installTime > rhs.installTime) -1 else 1 - }) - - getGameData(sortList) - } - } - } - - //转换数据(游戏多包名拆分) - private fun transformationData(installedGame: List, sortList: ArrayList) { - val list = ArrayList() - val signatureList = ArrayList() // 是我们签名的游戏 - val unSignatureList = ArrayList() // 不是我们签名的游戏 - - for (concernEntity in installedGame) { - for ((key, value) in concernEntity.packageNames) { - if (value) { - val info = GameInfoEntity() - info.id = concernEntity.id - info.packageName = key - info.isSignature = PackageUtils.isSignature(getApplication(), key) - info.installTime = PackageUtils.getInstalledTime(getApplication(), key) - list.add(info) - } - } - } - - val map = ArrayMap>() - var mList: ArrayList? - var i = 0 - val size = list.size - while (i < size) { - mList = map[list[i].packageName] - if (mList == null) { - mList = ArrayList() - map[list[i].packageName] = mList - } - mList.add(list[i]) - i++ - } - - val comparator: Comparator = Comparator { lhs, rhs -> rhs.id!!.compareTo(lhs.id!!) } - var gh_id: Any? - for (key in map.keys) { - mList = map[key] - if (mList!!.size > 1) { - Collections.sort(mList, comparator) - } - if (mList[0].isSignature) { - gh_id = PackageUtils.getMetaData(getApplication(), key, "gh_id") - for (info in mList) { - if (gh_id == null || info.id == gh_id) { - signatureList.add(info) - break - } - } - } else { - unSignatureList.add(mList[0]) - } - } - sortList.addAll(signatureList) - sortList.addAll(unSignatureList) - } - - private fun getGameData(sortList: ArrayList) { - // 请求接口 获取GameEntity数据 - val result = ArrayList() - val sequences = ArrayList>() - for (entity in sortList) { - sequences.add(RetrofitManager.getInstance(getApplication()).api.getGameDigest(entity.id)) - } - Observable.mergeDelayError(sequences) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(object : Response() { - override fun onComplete() { - initGameData(result, sortList) - } - - override fun onFailure(e: HttpException?) { - initGameData(result, sortList) - } - - override fun onNext(response: GameEntity) { - ApkActiveUtils.filterHideApk(response) - result.add(response) - } - }) - } - - private fun initGameData(result: ArrayList, sortList: ArrayList) { - // 过滤未安装的apkEntity - if (result.size != 0) { - for (i in 0 until sortList.size) { - val id = sortList[i].id - for (entity in result) { - if (entity.id == id && entity.getApk().size > 1) { - for (apkEntity in entity.getApk()) { - if (sortList[i].packageName == apkEntity.packageName) { - val list = ArrayList() - list.add(apkEntity) - entity.setApk(list) - break - } - } - break - } - } - } - // 更新数据库内容 - val manager = GameManager(getApplication()) - for (entity in result) { - entity.setEntryMap(DownloadManager.getInstance(getApplication()).getEntryMap(entity.name)) - manager.addOrUpdate(entity) - } - - mCacheGameData = result - gameEntity.postValue(result) - } else { - gameEntity.postValue(null) - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/personal/installed/PersonalInstallGameAdapter.kt b/app/src/main/java/com/gh/gamecenter/personal/installed/PersonalInstallGameAdapter.kt deleted file mode 100644 index 9b2d161969..0000000000 --- a/app/src/main/java/com/gh/gamecenter/personal/installed/PersonalInstallGameAdapter.kt +++ /dev/null @@ -1,63 +0,0 @@ -package com.gh.gamecenter.personal.installed - -import android.content.Context -import android.support.v7.widget.RecyclerView -import android.view.ViewGroup -import com.gh.base.BaseRecyclerViewHolder -import com.gh.gamecenter.R -import com.gh.gamecenter.databinding.PersonalGameItemBinding -import com.gh.gamecenter.entity.GameEntity -import com.lightgame.adapter.BaseRecyclerAdapter -import java.util.* -import kotlin.collections.HashMap - -class PersonalInstallGameAdapter(context: Context) : BaseRecyclerAdapter(context) { - - var mEntityList = ArrayList() - var mPositionAndIdMap = HashMap() // key: gameId + position, value: position - - fun setListData(updateData: List?) { - mPositionAndIdMap.clear() - mEntityList = updateData as ArrayList - notifyDataSetChanged() - } - - // notifyItemRemoved notifyItemInserted 会出现异常 - override fun getItemViewType(position: Int): Int { - mPositionAndIdMap[mEntityList[position].id + position] = position - return super.getItemViewType(position) - } - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { - val bind = PersonalGameItemBinding.bind(mLayoutInflater.inflate(R.layout.personal_game_item, parent, false)) - return InstallGameViewHolder(bind) - } - - override fun getItemCount(): Int { - return if (mEntityList.size > InstallGameViewModel.PERSONAL_MAX_GAME_COUNT) - InstallGameViewModel.PERSONAL_MAX_GAME_COUNT else mEntityList.size - } - - override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { - if (holder is InstallGameViewHolder) { - holder.bind.game = mEntityList[position] - holder.adapterPosition - holder.itemView.setOnLongClickListener({ - notifyItemRemoved(1) - return@setOnLongClickListener true - }) - } - } - - class InstallGameViewHolder(binding: PersonalGameItemBinding) : BaseRecyclerViewHolder(binding.root) { - val bind: PersonalGameItemBinding = binding - } - - fun notifyItemById(gameId: String) { - for (key in mPositionAndIdMap.keys) { - if (key.contains(gameId)) { - notifyItemChanged(mPositionAndIdMap[key]!!) - } - } - } -} \ No newline at end of file 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 b29af43070..263a81e377 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameDetailFragmentAdapter.java @@ -24,7 +24,6 @@ import com.gh.gamecenter.adapter.viewholder.GameNormalViewHolder; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.eventbus.EBSearch; -import com.gh.gamecenter.manager.GameManager; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.lightgame.adapter.BaseRecyclerAdapter; @@ -80,12 +79,10 @@ class SearchGameDetailFragmentAdapter extends BaseRecyclerAdapter { @Override public void onResponse(List response) { if (response.size() != 0) { - GameManager manager = new GameManager(mContext); for (GameEntity gameEntity : response) { // 初始化游戏状态 gameEntity.setEntryMap(DownloadManager.getInstance(mContext).getEntryMap(gameEntity.getName())); gameEntity.setGameLocation(GameEntity.GameLocation.SEARCH); - manager.addOrUpdate(gameEntity); ApkActiveUtils.filterHideApk(gameEntity); } 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 98ddbae9f1..74be99e8d5 100644 --- a/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragmentAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/search/SearchGameListFragmentAdapter.java @@ -26,7 +26,6 @@ import com.gh.gamecenter.db.SearchHistoryDao; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.eventbus.EBSearch; -import com.gh.gamecenter.manager.GameManager; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.lightgame.adapter.BaseRecyclerAdapter; @@ -86,12 +85,10 @@ class SearchGameListFragmentAdapter extends BaseRecyclerAdapter { @Override public void onResponse(List response) { if (response.size() != 0) { - GameManager manager = new GameManager(mContext); for (GameEntity gameEntity : response) { // 初始化游戏状态 gameEntity.setEntryMap(DownloadManager.getInstance(mContext).getEntryMap(gameEntity.getName())); gameEntity.setGameLocation(GameEntity.GameLocation.SEARCH); - manager.addOrUpdate(gameEntity); ApkActiveUtils.filterHideApk(gameEntity); }