DataWatcher修改
This commit is contained in:
@ -119,7 +119,6 @@ public class MainActivity extends BaseFragmentActivity implements
|
||||
private SharedPreferences sp;
|
||||
|
||||
private ArrayMap<String, String> entryMap;
|
||||
private ArrayMap<String, String> doneMap;
|
||||
|
||||
private int currentTab;
|
||||
|
||||
@ -136,213 +135,201 @@ public class MainActivity extends BaseFragmentActivity implements
|
||||
// 黄壮华 添加观察者 修改2015/8/15
|
||||
private DataWatcher dataWatcher = new DataWatcher() {
|
||||
@Override
|
||||
public void onDataChanged(HashMap<String, DownloadEntry> downloadingEntries) {
|
||||
for (Map.Entry<String, DownloadEntry> entry : downloadingEntries.entrySet()) {
|
||||
final DownloadEntry downloadEntry = entry.getValue();
|
||||
// 链接被劫持
|
||||
if (DownloadStatus.hijack.equals(downloadEntry.getStatus())) {
|
||||
// 删除任务
|
||||
DownloadManager.getInstance(getApplicationContext()).cancel(downloadEntry.getUrl());
|
||||
// 弹出提示框
|
||||
EventBus.getDefault().post(new EBShowDialog("hijack"));
|
||||
//记录链接被劫持
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("url", downloadEntry.getUrl());
|
||||
map.put("game", downloadEntry.getName());
|
||||
map.put("platform", downloadEntry.getMeta().get("platform"));
|
||||
map.put("createdOn", System.currentTimeMillis() / 1000);
|
||||
DataCollectionManager.onEvent(MainActivity.this, "hijack", map);
|
||||
continue;
|
||||
}
|
||||
if (downloadEntry.getName().contains("光环助手") && isShowDownload) {
|
||||
app_tv_speed.setText(String.format("%s(剩%s)",
|
||||
SpeedUtils.getSpeed(downloadEntry.getSpeed()),
|
||||
SpeedUtils.getRemainTime(downloadEntry.getSize(),
|
||||
downloadEntry.getProgress(), downloadEntry.getSpeed() * 1024)));
|
||||
app_pb_progress.setProgress((int) (downloadEntry
|
||||
.getPercent() * 10));
|
||||
app_tv_percent.setText(downloadEntry.getPercent() + "%");
|
||||
if (DownloadStatus.done.equals(downloadEntry.getStatus())) {
|
||||
DownloadManager.getInstance(getApplicationContext())
|
||||
.cancel(downloadEntry.getUrl(), false);
|
||||
dialog.dismiss();
|
||||
isShowDownload = false;
|
||||
}
|
||||
}
|
||||
public void onDataChanged(DownloadEntry downloadEntry) {
|
||||
// 链接被劫持
|
||||
if (DownloadStatus.hijack.equals(downloadEntry.getStatus())) {
|
||||
// 删除任务
|
||||
DownloadManager.getInstance(getApplicationContext()).cancel(downloadEntry.getUrl());
|
||||
// 弹出提示框
|
||||
EventBus.getDefault().post(new EBShowDialog("hijack"));
|
||||
//记录链接被劫持
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("url", downloadEntry.getUrl());
|
||||
map.put("game", downloadEntry.getName());
|
||||
map.put("platform", downloadEntry.getMeta().get("platform"));
|
||||
map.put("createdOn", System.currentTimeMillis() / 1000);
|
||||
DataCollectionManager.onEvent(MainActivity.this, "hijack", map);
|
||||
return;
|
||||
}
|
||||
if (downloadEntry.getName().contains("光环助手") && isShowDownload) {
|
||||
app_tv_speed.setText(String.format("%s(剩%s)",
|
||||
SpeedUtils.getSpeed(downloadEntry.getSpeed()),
|
||||
SpeedUtils.getRemainTime(downloadEntry.getSize(),
|
||||
downloadEntry.getProgress(), downloadEntry.getSpeed() * 1024)));
|
||||
app_pb_progress.setProgress((int) (downloadEntry
|
||||
.getPercent() * 10));
|
||||
app_tv_percent.setText(downloadEntry.getPercent() + "%");
|
||||
if (DownloadStatus.done.equals(downloadEntry.getStatus())) {
|
||||
if (doneMap.get(downloadEntry.getUrl()) == null) {
|
||||
doneMap.put(downloadEntry.getUrl(), "done");
|
||||
if (downloadEntry.getName().contains("光环助手")) {
|
||||
DataUtils.onEvent(MainActivity.this, "软件更新", "下载完成");
|
||||
startActivity(PackageUtils
|
||||
.getInstallIntent(downloadEntry.getPath()));
|
||||
if (appEntity != null && appEntity.isIs_force()) {
|
||||
finish();
|
||||
}
|
||||
} else {
|
||||
|
||||
Map<String, Object> kv = new HashMap<>();
|
||||
kv.put("版本", downloadEntry.getMeta().get("platform"));
|
||||
kv.put("状态", "下载完成");
|
||||
|
||||
String isUpdate = downloadEntry.getMeta().get("isUpdate");
|
||||
String entrance = downloadEntry.getMeta().get("entrance");
|
||||
if (isUpdate != null && "true".equals(isUpdate)) {
|
||||
DataUtils.onEvent(MainActivity.this, "游戏更新",
|
||||
downloadEntry.getName(), kv);
|
||||
} else {
|
||||
DataUtils.onEvent(MainActivity.this, "游戏下载",
|
||||
downloadEntry.getName(), kv);
|
||||
|
||||
Map<String, Object> kv2 = new HashMap<>();
|
||||
kv2.put("版本",
|
||||
downloadEntry.getMeta().get("platform"));
|
||||
kv2.put("状态", "下载完成");
|
||||
kv2.put("位置", entrance + "-完成");
|
||||
DataUtils.onEvent(MainActivity.this, "游戏下载位置",
|
||||
downloadEntry.getName(), kv2);
|
||||
}
|
||||
if (downloadEntry.getMeta().get("isPlugin") != null) {
|
||||
Map<String, Object> kv6 = new HashMap<>();
|
||||
kv6.put("下载", "下载完成");
|
||||
kv6.put("版本",
|
||||
downloadEntry.getMeta().get("platform"));
|
||||
DataUtils.onEvent(MainActivity.this, "插件化",
|
||||
downloadEntry.getName(), kv6);
|
||||
}
|
||||
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("game", downloadEntry.getName());
|
||||
if (downloadEntry.getMeta().get("isPlugin") != null) {
|
||||
map.put("method", "插件化");
|
||||
} else {
|
||||
map.put("method", "正常");
|
||||
}
|
||||
map.put("platform",
|
||||
PlatformUtils.getInstance(
|
||||
getApplicationContext())
|
||||
.getPlatformName(
|
||||
downloadEntry.getMeta()
|
||||
.get("platform")));
|
||||
map.put("status", "完成");
|
||||
map.put("location",
|
||||
downloadEntry.getMeta().get("location"));
|
||||
map.put("from", entrance);
|
||||
map.put("network", NetworkUtils
|
||||
.getConnectedType(MainActivity.this));
|
||||
map.put("createdOn",
|
||||
System.currentTimeMillis() / 1000);
|
||||
DataCollectionManager.onEvent(MainActivity.this, "download", map);
|
||||
|
||||
entryMap.put(PackageUtils.getPackageNameByPath(
|
||||
getApplicationContext(),
|
||||
downloadEntry.getPath()), downloadEntry
|
||||
.getUrl());
|
||||
|
||||
if (RunningUtils
|
||||
.isApplicationBroughtToBackground(getApplicationContext())) {
|
||||
if (downloadEntry.getMeta().get("isPlugin") != null) {
|
||||
NotificationManager nManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
|
||||
String path = downloadEntry.getPath();
|
||||
Intent intent = new Intent();
|
||||
intent.putExtra("path", path);
|
||||
intent.setAction("com.gh.gamecenter.UNINSTALL");
|
||||
PendingIntent pendingIntent = PendingIntent
|
||||
.getBroadcast(MainActivity.this, 0,
|
||||
intent,
|
||||
PendingIntent.FLAG_ONE_SHOT);
|
||||
|
||||
String platform = PlatformUtils
|
||||
.getInstance(
|
||||
getApplicationContext())
|
||||
.getPlatformName(
|
||||
downloadEntry.getMeta()
|
||||
.get("platform"));
|
||||
String title = downloadEntry.getName()
|
||||
+ " - " + platform;
|
||||
|
||||
Notification notification = new NotificationCompat.Builder(
|
||||
MainActivity.this)
|
||||
.setSmallIcon(R.drawable.logo)
|
||||
.setTicker(title)
|
||||
.setContentTitle(title)
|
||||
.setContentText("下载完成,点击继续插件化。")
|
||||
.setContentIntent(pendingIntent)
|
||||
.build();
|
||||
|
||||
notification.defaults = Notification.DEFAULT_SOUND;// 添加系统默认声音
|
||||
notification.flags |= Notification.FLAG_AUTO_CANCEL; // FLAG_AUTO_CANCEL表明当通知被用户点击时,通知将被清除。
|
||||
nManager.notify(
|
||||
((int) System.currentTimeMillis() / 1000),
|
||||
notification);
|
||||
|
||||
uninstallMap.put(PackageUtils
|
||||
.getPackageNameByPath(
|
||||
getApplicationContext(),
|
||||
path), path);
|
||||
}
|
||||
} else {
|
||||
String platform = PlatformUtils.getInstance(
|
||||
getApplicationContext())
|
||||
.getPlatformName(
|
||||
downloadEntry.getMeta().get(
|
||||
"platform"));
|
||||
if (platform != null) {
|
||||
if (downloadEntry.getMeta().get("isPlugin") != null) {
|
||||
EventBus.getDefault().post(new EBShowDialog("plugin", downloadEntry
|
||||
.getPath()));
|
||||
} else {
|
||||
toast(downloadEntry.getName()
|
||||
+ " - " + platform + " - 下载完成");
|
||||
}
|
||||
} else {
|
||||
toast(downloadEntry.getName() + " - 下载完成");
|
||||
}
|
||||
if (downloadEntry.getMeta().get("isPlugin") == null) {
|
||||
if (sp.getBoolean("autoinstall", true)) {
|
||||
if (FileUtils.isEmptyFile(entry
|
||||
.getValue().getPath())) {
|
||||
toast("解析包错误");
|
||||
} else {
|
||||
PackageManager manager = new PackageManager(
|
||||
getApplicationContext());
|
||||
if (manager.launchSetup(entry
|
||||
.getValue().getPath())) {
|
||||
startActivity(PackageUtils
|
||||
.getInstallIntent(downloadEntry
|
||||
.getPath()));
|
||||
} else {
|
||||
// 记录自动弹出卸载框
|
||||
// 弹出卸载提示框
|
||||
EventBus.getDefault().post(new EBShowDialog("delete", downloadEntry
|
||||
.getPath()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 统计下载完成
|
||||
uploadData(downloadEntry.getMeta().get("gameId"),
|
||||
downloadEntry.getMeta().get("platform"));
|
||||
}
|
||||
} else {
|
||||
Utils.log("It is already done!");
|
||||
DataUtils.onEvent(
|
||||
MainActivity.this,
|
||||
"多次弹框数据",
|
||||
downloadEntry.getName()
|
||||
+ "-"
|
||||
+ downloadEntry.getMeta().get(
|
||||
"platform"));
|
||||
DownloadManager.getInstance(getApplicationContext())
|
||||
.cancel(downloadEntry.getUrl(), false);
|
||||
dialog.dismiss();
|
||||
isShowDownload = false;
|
||||
}
|
||||
}
|
||||
if (DownloadStatus.done.equals(downloadEntry.getStatus())) {
|
||||
if (downloadEntry.getName().contains("光环助手")) {
|
||||
DataUtils.onEvent(MainActivity.this, "软件更新", "下载完成");
|
||||
startActivity(PackageUtils
|
||||
.getInstallIntent(downloadEntry.getPath()));
|
||||
if (appEntity != null && appEntity.isIs_force()) {
|
||||
finish();
|
||||
}
|
||||
} else {
|
||||
if (doneMap.containsKey(downloadEntry.getUrl())) {
|
||||
doneMap.remove(downloadEntry.getUrl());
|
||||
|
||||
Map<String, Object> kv = new HashMap<>();
|
||||
kv.put("版本", downloadEntry.getMeta().get("platform"));
|
||||
kv.put("状态", "下载完成");
|
||||
|
||||
String isUpdate = downloadEntry.getMeta().get("isUpdate");
|
||||
String entrance = downloadEntry.getMeta().get("entrance");
|
||||
if (isUpdate != null && "true".equals(isUpdate)) {
|
||||
DataUtils.onEvent(MainActivity.this, "游戏更新",
|
||||
downloadEntry.getName(), kv);
|
||||
} else {
|
||||
DataUtils.onEvent(MainActivity.this, "游戏下载",
|
||||
downloadEntry.getName(), kv);
|
||||
|
||||
Map<String, Object> kv2 = new HashMap<>();
|
||||
kv2.put("版本",
|
||||
downloadEntry.getMeta().get("platform"));
|
||||
kv2.put("状态", "下载完成");
|
||||
kv2.put("位置", entrance + "-完成");
|
||||
DataUtils.onEvent(MainActivity.this, "游戏下载位置",
|
||||
downloadEntry.getName(), kv2);
|
||||
}
|
||||
if (downloadEntry.getMeta().get("isPlugin") != null) {
|
||||
Map<String, Object> kv6 = new HashMap<>();
|
||||
kv6.put("下载", "下载完成");
|
||||
kv6.put("版本",
|
||||
downloadEntry.getMeta().get("platform"));
|
||||
DataUtils.onEvent(MainActivity.this, "插件化",
|
||||
downloadEntry.getName(), kv6);
|
||||
}
|
||||
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("game", downloadEntry.getName());
|
||||
if (downloadEntry.getMeta().get("isPlugin") != null) {
|
||||
map.put("method", "插件化");
|
||||
} else {
|
||||
map.put("method", "正常");
|
||||
}
|
||||
map.put("platform",
|
||||
PlatformUtils.getInstance(
|
||||
getApplicationContext())
|
||||
.getPlatformName(
|
||||
downloadEntry.getMeta()
|
||||
.get("platform")));
|
||||
map.put("status", "完成");
|
||||
map.put("location",
|
||||
downloadEntry.getMeta().get("location"));
|
||||
map.put("from", entrance);
|
||||
map.put("network", NetworkUtils
|
||||
.getConnectedType(MainActivity.this));
|
||||
map.put("createdOn",
|
||||
System.currentTimeMillis() / 1000);
|
||||
DataCollectionManager.onEvent(MainActivity.this, "download", map);
|
||||
|
||||
entryMap.put(PackageUtils.getPackageNameByPath(
|
||||
getApplicationContext(),
|
||||
downloadEntry.getPath()), downloadEntry
|
||||
.getUrl());
|
||||
|
||||
if (RunningUtils
|
||||
.isApplicationBroughtToBackground(getApplicationContext())) {
|
||||
if (downloadEntry.getMeta().get("isPlugin") != null) {
|
||||
NotificationManager nManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
|
||||
String path = downloadEntry.getPath();
|
||||
Intent intent = new Intent();
|
||||
intent.putExtra("path", path);
|
||||
intent.setAction("com.gh.gamecenter.UNINSTALL");
|
||||
PendingIntent pendingIntent = PendingIntent
|
||||
.getBroadcast(MainActivity.this, 0,
|
||||
intent,
|
||||
PendingIntent.FLAG_ONE_SHOT);
|
||||
|
||||
String platform = PlatformUtils
|
||||
.getInstance(
|
||||
getApplicationContext())
|
||||
.getPlatformName(
|
||||
downloadEntry.getMeta()
|
||||
.get("platform"));
|
||||
String title = downloadEntry.getName()
|
||||
+ " - " + platform;
|
||||
|
||||
Notification notification = new NotificationCompat.Builder(
|
||||
MainActivity.this)
|
||||
.setSmallIcon(R.drawable.logo)
|
||||
.setTicker(title)
|
||||
.setContentTitle(title)
|
||||
.setContentText("下载完成,点击继续插件化。")
|
||||
.setContentIntent(pendingIntent)
|
||||
.build();
|
||||
|
||||
notification.defaults = Notification.DEFAULT_SOUND;// 添加系统默认声音
|
||||
notification.flags |= Notification.FLAG_AUTO_CANCEL; // FLAG_AUTO_CANCEL表明当通知被用户点击时,通知将被清除。
|
||||
nManager.notify(
|
||||
((int) System.currentTimeMillis() / 1000),
|
||||
notification);
|
||||
|
||||
uninstallMap.put(PackageUtils
|
||||
.getPackageNameByPath(
|
||||
getApplicationContext(),
|
||||
path), path);
|
||||
}
|
||||
} else {
|
||||
String platform = PlatformUtils.getInstance(
|
||||
getApplicationContext())
|
||||
.getPlatformName(
|
||||
downloadEntry.getMeta().get(
|
||||
"platform"));
|
||||
if (platform != null) {
|
||||
if (downloadEntry.getMeta().get("isPlugin") != null) {
|
||||
EventBus.getDefault().post(new EBShowDialog("plugin", downloadEntry
|
||||
.getPath()));
|
||||
} else {
|
||||
toast(downloadEntry.getName()
|
||||
+ " - " + platform + " - 下载完成");
|
||||
}
|
||||
} else {
|
||||
toast(downloadEntry.getName() + " - 下载完成");
|
||||
}
|
||||
if (downloadEntry.getMeta().get("isPlugin") == null) {
|
||||
if (sp.getBoolean("autoinstall", true)) {
|
||||
if (FileUtils.isEmptyFile(downloadEntry.getPath())) {
|
||||
toast("解析包错误");
|
||||
} else {
|
||||
PackageManager manager = new PackageManager(
|
||||
getApplicationContext());
|
||||
if (manager.launchSetup(downloadEntry.getPath())) {
|
||||
startActivity(PackageUtils
|
||||
.getInstallIntent(downloadEntry
|
||||
.getPath()));
|
||||
} else {
|
||||
// 记录自动弹出卸载框
|
||||
// 弹出卸载提示框
|
||||
EventBus.getDefault().post(new EBShowDialog("delete", downloadEntry
|
||||
.getPath()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 统计下载完成
|
||||
uploadData(downloadEntry.getMeta().get("gameId"),
|
||||
downloadEntry.getMeta().get("platform"));
|
||||
}
|
||||
} else {
|
||||
Utils.log("It is already done!");
|
||||
DataUtils.onEvent(
|
||||
MainActivity.this,
|
||||
"多次弹框数据",
|
||||
downloadEntry.getName()
|
||||
+ "-"
|
||||
+ downloadEntry.getMeta().get(
|
||||
"platform"));
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -403,7 +390,6 @@ public class MainActivity extends BaseFragmentActivity implements
|
||||
|
||||
uninstallMap = new ArrayMap<>();
|
||||
entryMap = new ArrayMap<>();
|
||||
doneMap = new ArrayMap<>();
|
||||
|
||||
getSearchHints();
|
||||
|
||||
@ -1252,7 +1238,6 @@ public class MainActivity extends BaseFragmentActivity implements
|
||||
home3Title = null;
|
||||
sp = null;
|
||||
entryMap = null;
|
||||
doneMap = null;
|
||||
dialog = null;
|
||||
app_pb_progress = null;
|
||||
app_tv_speed = null;
|
||||
|
||||
Reference in New Issue
Block a user