687 lines
30 KiB
Java
687 lines
30 KiB
Java
package com.android.nebulasdk;
|
|
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.content.pm.ApplicationInfo;
|
|
import android.content.pm.PackageManager;
|
|
import android.content.pm.ResolveInfo;
|
|
import android.text.TextUtils;
|
|
|
|
import com.android.SharePreUtils;
|
|
import com.android.database.DaoManager;
|
|
import com.android.database.lib.AdsInfoBean;
|
|
import com.android.database.lib.AppBean;
|
|
import com.android.database.lib.DownLoadTaskBean;
|
|
import com.android.database.lib.LocalAppBean;
|
|
import com.android.database.lib.MusicAppBean;
|
|
import com.android.database.lib.NetShortAppBean;
|
|
import com.android.database.lib.RecommendAppBean;
|
|
import com.android.database.lib.ShortAppBean;
|
|
import com.android.database.lib.VideoAppBean;
|
|
import com.android.eventbaus.EventBusUtils;
|
|
import com.android.eventbaus.MessageEvent;
|
|
import com.android.nebulasdk.bean.FavNaviBean;
|
|
import com.android.util.FileUtil;
|
|
import com.android.util.GsonUtil;
|
|
import com.android.util.LogUtils;
|
|
import com.android.util.PakageInstallUtil;
|
|
import com.android.util.SharedPreferencesUtil;
|
|
|
|
import org.json.JSONArray;
|
|
import org.json.JSONObject;
|
|
|
|
import java.io.BufferedReader;
|
|
import java.io.File;
|
|
import java.io.FileInputStream;
|
|
import java.io.InputStream;
|
|
import java.io.InputStreamReader;
|
|
import java.util.ArrayList;
|
|
import java.util.Collections;
|
|
import java.util.Comparator;
|
|
import java.util.HashMap;
|
|
import java.util.Iterator;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
public class AppManager {
|
|
private Context mContext;
|
|
private static AppManager mInstance=null;
|
|
public static final int CATEGORY_MUSIC=0x00;
|
|
public static final int CATEGORY_RECOMMEND=0x01;
|
|
public static final int CATEGORY_VIDEO=0x02;
|
|
public static final int CATEGORY_LOCAL=0x03;
|
|
public static final int CATEGORY_MYAPPS=0x04;
|
|
public static final int CATEGORY_SHORT=0x05;
|
|
/**快捷栏数量*/
|
|
public static final int SHORT_COUNT=16;
|
|
|
|
|
|
private static final String SHORTAPP_ONFIG="/system/MXQRES/mxq_config.json";
|
|
private static final String ICON_ASSERT_DIR="/system/MXQRES/";
|
|
|
|
//主界面图标0
|
|
public static final String ICON_00_TAG="icon_00.png";
|
|
//主界面图标1
|
|
public static final String ICON_01_TAG="icon_01.png";
|
|
//主界面图标2
|
|
public static final String ICON_02_TAG="icon_02.png";
|
|
//主界面图标3
|
|
public static final String ICON_03_TAG="icon_03.png";
|
|
//主界面图标4
|
|
public static final String ICON_04_TAG="icon_04.png";
|
|
|
|
|
|
/**主界面推荐数据*/
|
|
private Map<Integer, FavNaviBean> favRecommendCacheData = new HashMap<>();
|
|
|
|
|
|
private AppManager(Context context){
|
|
this.mContext = context;
|
|
DaoManager.initeDao(mContext);
|
|
LogUtils.loge("AppManager init");
|
|
}
|
|
|
|
|
|
public static void init(Context context){
|
|
if(mInstance==null){
|
|
mInstance = new AppManager(context);
|
|
}
|
|
}
|
|
|
|
public static AppManager getInstance(){
|
|
return mInstance;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public List<AppBean> getmyAppByCategory(){
|
|
|
|
return DaoManager.getInstance().queryList(AppBean.class);
|
|
}
|
|
|
|
public List<VideoAppBean> getVideoAppByCategory(){
|
|
return DaoManager.getInstance().queryList(VideoAppBean.class);
|
|
}
|
|
public List<MusicAppBean> getMusicAppByCategory(){
|
|
return DaoManager.getInstance().queryList(MusicAppBean.class);
|
|
}
|
|
public List<RecommendAppBean> getRecommendAppByCategory(){
|
|
return DaoManager.getInstance().queryList(RecommendAppBean.class);
|
|
}
|
|
public List<LocalAppBean> getLocalAppBeanAppByCategory(){
|
|
return DaoManager.getInstance().queryList(LocalAppBean.class);
|
|
}
|
|
public List<ShortAppBean> getShortAppBeanAppByCategory(){
|
|
List<ShortAppBean> shortAppBeanList = DaoManager.getInstance().queryList(ShortAppBean.class);
|
|
|
|
List<NetShortAppBean> netShortAppBeanList = DaoManager.getInstance().queryList(NetShortAppBean.class);
|
|
|
|
Map<String,ShortAppBean> filterAppBeanMap =new HashMap<>();
|
|
|
|
int netShortStartIndex=0;
|
|
for (NetShortAppBean netShortAppBean:netShortAppBeanList){
|
|
if(filterAppBeanMap.size()<SHORT_COUNT) {
|
|
|
|
if(PakageInstallUtil.checkAppInstall(mContext, netShortAppBean.getPackageName())){
|
|
ShortAppBean shortAppBean = new ShortAppBean();
|
|
shortAppBean.setCategory(netShortAppBean.getCategory());
|
|
shortAppBean.setAppName(netShortAppBean.getAppName());
|
|
shortAppBean.setId(netShortAppBean.getId());
|
|
shortAppBean.setIndex(netShortStartIndex);
|
|
shortAppBean.setItemType(netShortAppBean.getItemType());
|
|
shortAppBean.setPackageName(netShortAppBean.getPackageName());
|
|
filterAppBeanMap.put(shortAppBean.getPackageName(), shortAppBean);
|
|
netShortStartIndex++;
|
|
}
|
|
|
|
}else {
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
for (ShortAppBean shortAppBean:shortAppBeanList){
|
|
if(filterAppBeanMap.size()<SHORT_COUNT) {
|
|
if(PakageInstallUtil.checkAppInstall(mContext, shortAppBean.getPackageName())) {
|
|
shortAppBean.setIndex(netShortStartIndex);
|
|
filterAppBeanMap.put(shortAppBean.getPackageName(), shortAppBean);
|
|
netShortStartIndex++;
|
|
}
|
|
}else {
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
List<ShortAppBean> newShortAppBeanList = new ArrayList<>();
|
|
Iterator it= filterAppBeanMap.keySet().iterator();
|
|
while (it.hasNext()){
|
|
newShortAppBeanList.add(filterAppBeanMap.get(it.next()));
|
|
}
|
|
LogUtils.loge("newShortAppBeanList222222 :"+GsonUtil.GsonString(newShortAppBeanList));
|
|
return filterApps(newShortAppBeanList);
|
|
}
|
|
|
|
|
|
/**过滤出已安装的app*/
|
|
private List<ShortAppBean> filterApps(List<ShortAppBean> shortAppBeanList){
|
|
|
|
List<ShortAppBean> shortAppBeanLists= new ArrayList<>();
|
|
if(shortAppBeanList!=null){
|
|
for (ShortAppBean shortAppBean:shortAppBeanList){
|
|
if(PakageInstallUtil.checkAppInstall(mContext, shortAppBean.getPackageName())){
|
|
shortAppBeanLists.add(shortAppBean);
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Collections.sort(shortAppBeanLists, new Comparator<ShortAppBean>() {
|
|
@Override
|
|
public int compare(ShortAppBean o1, ShortAppBean o2) { //按升序排序
|
|
return Integer.compare(o1.getIndex(), o2.getIndex());
|
|
}
|
|
});
|
|
|
|
LogUtils.loge("newShortAppBeanList333333 :"+GsonUtil.GsonString(shortAppBeanLists));
|
|
return shortAppBeanLists;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void selectAppByCategory(AppBean appBean,int category){
|
|
LogUtils.loge("collect app package name is "+appBean.getPackageName());
|
|
if(CATEGORY_VIDEO ==category){
|
|
if(appBean.getSelect()==1) {
|
|
VideoAppBean videoAppBean = new VideoAppBean();
|
|
videoAppBean.setAppName(appBean.getAppName());
|
|
videoAppBean.setPackageName(appBean.getPackageName());
|
|
videoAppBean.setCategory(CATEGORY_VIDEO);
|
|
videoAppBean.setItemType(1);
|
|
DaoManager.getInstance().insert(VideoAppBean.class, videoAppBean);
|
|
}else {
|
|
List<VideoAppBean> appBeanList = DaoManager.getInstance().queryByKeyList(VideoAppBean.class,"packageName",appBean.getPackageName());
|
|
DaoManager.getInstance().deleteByList(VideoAppBean.class,appBeanList);
|
|
}
|
|
}else if(CATEGORY_MUSIC ==category){
|
|
if(appBean.getSelect()==1) {
|
|
MusicAppBean musicAppBean = new MusicAppBean();
|
|
musicAppBean.setAppName(appBean.getAppName());
|
|
musicAppBean.setPackageName(appBean.getPackageName());
|
|
musicAppBean.setCategory(CATEGORY_MUSIC);
|
|
musicAppBean.setItemType(1);
|
|
DaoManager.getInstance().insert(MusicAppBean.class, musicAppBean);
|
|
}else {
|
|
List<MusicAppBean> appBeanList = DaoManager.getInstance().queryByKeyList(MusicAppBean.class,"packageName",appBean.getPackageName());
|
|
DaoManager.getInstance().deleteByList(MusicAppBean.class,appBeanList);
|
|
}
|
|
}else if(CATEGORY_RECOMMEND ==category){
|
|
if(appBean.getSelect()==1) {
|
|
LogUtils.loge("no query app info by package name");
|
|
RecommendAppBean recommendAppBean = new RecommendAppBean();
|
|
recommendAppBean.setAppName(appBean.getAppName());
|
|
recommendAppBean.setPackageName(appBean.getPackageName());
|
|
recommendAppBean.setCategory(CATEGORY_VIDEO);
|
|
recommendAppBean.setItemType(1);
|
|
DaoManager.getInstance().insert(RecommendAppBean.class, recommendAppBean);
|
|
}else {
|
|
List<RecommendAppBean> appBeanList = DaoManager.getInstance().queryByKeyList(RecommendAppBean.class,"packageName",appBean.getPackageName());
|
|
DaoManager.getInstance().deleteByList(RecommendAppBean.class,appBeanList);
|
|
}
|
|
}else if(CATEGORY_LOCAL ==category){
|
|
if(appBean.getSelect()==1) {
|
|
LocalAppBean localAppBean = new LocalAppBean();
|
|
localAppBean.setAppName(appBean.getAppName());
|
|
localAppBean.setPackageName(appBean.getPackageName());
|
|
localAppBean.setCategory(CATEGORY_VIDEO);
|
|
localAppBean.setItemType(1);
|
|
DaoManager.getInstance().insert(LocalAppBean.class, localAppBean);
|
|
}else {
|
|
//del
|
|
List<LocalAppBean> appBeanList = DaoManager.getInstance().queryByKeyList(LocalAppBean.class,"packageName",appBean.getPackageName());
|
|
DaoManager.getInstance().deleteByList(LocalAppBean.class,appBeanList);
|
|
}
|
|
}else if(CATEGORY_SHORT ==category){
|
|
|
|
|
|
if(appBean.getSelect()==1){
|
|
LogUtils.loge("CATEGORY_SHORT insert:");
|
|
ShortAppBean shortAppBean = new ShortAppBean();
|
|
shortAppBean.setAppName(appBean.getAppName());
|
|
shortAppBean.setPackageName(appBean.getPackageName());
|
|
shortAppBean.setCategory(CATEGORY_SHORT);
|
|
shortAppBean.setItemType(1);
|
|
DaoManager.getInstance().insert(ShortAppBean.class,shortAppBean);
|
|
|
|
|
|
|
|
}else {
|
|
LogUtils.loge("CATEGORY_SHORT deleteByList:");
|
|
List<ShortAppBean> appBeanList = DaoManager.getInstance().queryByKeyList(ShortAppBean.class,"packageName",appBean.getPackageName());
|
|
if(appBeanList!=null&&appBeanList.size()>0) {
|
|
DaoManager.getInstance().deleteByList(ShortAppBean.class, appBeanList);
|
|
}
|
|
List<NetShortAppBean> netShortAppBeanList = DaoManager.getInstance().queryByKeyList(NetShortAppBean.class,"packageName",appBean.getPackageName());
|
|
if(netShortAppBeanList!=null&&netShortAppBeanList.size()>0){
|
|
DaoManager.getInstance().deleteByList(NetShortAppBean.class,netShortAppBeanList);
|
|
}
|
|
}
|
|
|
|
// if(appBeanList!=null&&appBeanList.size()>0){
|
|
// ShortAppBean appBeanTmp = appBeanList.get(0);
|
|
// appBeanTmp.setCategory(CATEGORY_SHORT);
|
|
// appBeanTmp.setItemType(1);
|
|
// DaoManager.getInstance().update(ShortAppBean.class,appBeanTmp);
|
|
// }else {
|
|
// LogUtils.loge("no query app info by package name");
|
|
// ShortAppBean videoAppBean = new ShortAppBean();
|
|
// videoAppBean.setAppName(appBean.getAppName());
|
|
// videoAppBean.setPackageName(appBean.getPackageName());
|
|
// videoAppBean.setCategory(CATEGORY_SHORT);
|
|
// videoAppBean.setItemType(1);
|
|
// DaoManager.getInstance().insert(ShortAppBean.class,videoAppBean);
|
|
// }
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
public void addShortcutInfo(String packageName,String apName,int index){
|
|
|
|
List<AppBean> shortcutInfoBeanList =DaoManager.getInstance().queryByKeyList(AppBean.class,"packageName",packageName);
|
|
if(shortcutInfoBeanList!=null&&shortcutInfoBeanList.size()>0){
|
|
LogUtils.loge(packageName+" 已存在");
|
|
AppBean appBean = shortcutInfoBeanList.get(0);
|
|
appBean.setCategory(CATEGORY_SHORT);
|
|
DaoManager.getInstance().update(AppBean.class,appBean);
|
|
}else {
|
|
AppBean shortcutInfoBean = new AppBean();
|
|
shortcutInfoBean.setIndex(index);
|
|
shortcutInfoBean.setPackageName(packageName);
|
|
shortcutInfoBean.setAppName(apName);
|
|
shortcutInfoBean.setCategory(CATEGORY_SHORT);
|
|
DaoManager.getInstance().insert(AppBean.class,shortcutInfoBean);
|
|
}
|
|
}
|
|
|
|
|
|
public void delShortcutInfo(String packageName){
|
|
List<AppBean> shortcutInfoBeanList =DaoManager.getInstance().queryByKeyList(AppBean.class,"packageName",packageName);
|
|
if(shortcutInfoBeanList!=null&&shortcutInfoBeanList.size()>0){
|
|
LogUtils.loge(packageName+" 已存在");
|
|
DaoManager.getInstance().deleteByList(AppBean.class,shortcutInfoBeanList);
|
|
}else {
|
|
LogUtils.loge(packageName+" 不存在");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
/*初始化快捷方式*/
|
|
public void initLocalConfigData(){
|
|
|
|
|
|
String json = getAssertData(mContext, SHORTAPP_ONFIG);
|
|
if(json==null){
|
|
return;
|
|
}
|
|
|
|
try {
|
|
LogUtils.loge("getAssertData===>"+json);
|
|
JSONObject jsonObject = new JSONObject(json);
|
|
JSONObject jsonObject01=jsonObject.getJSONObject("Homeshortcut");
|
|
String appStr = jsonObject01.getString("packageName");
|
|
JSONArray jsonArrayObject=jsonObject.getJSONArray("Favapp");
|
|
|
|
|
|
for (int i=0;i<jsonArrayObject.length();i++){
|
|
//{"id": 0,"name": "chrome","packagename": "com.android.google","img": "/system/MXQRES/icon_00.png"
|
|
JSONObject jsonobjectTmp = jsonArrayObject.getJSONObject(i);
|
|
String packageName=jsonobjectTmp.getString("packagename");
|
|
if(PakageInstallUtil.checkAppInstall(mContext,packageName)) {
|
|
FavNaviBean favNaviBean = new FavNaviBean();
|
|
favNaviBean.setIndex(jsonobjectTmp.getInt("id"));
|
|
favNaviBean.setImgPath(jsonobjectTmp.getString("img"));
|
|
favNaviBean.setRelatedApp(packageName);
|
|
favNaviBean.setAppName(jsonobjectTmp.getString("name"));
|
|
favRecommendCacheData.put(favNaviBean.getIndex(), favNaviBean);
|
|
}
|
|
}
|
|
|
|
|
|
// List<ShortAppBean> appBeanList = new ArrayList<>();
|
|
// for (int i = 0; i < array.length; i++) {
|
|
// ShortAppBean appBean = new ShortAppBean();
|
|
// appBean.setPackageName(array[i]);
|
|
// appBean.setIndex(i);
|
|
// appBean.setItemType(1);
|
|
// appBean.setCategory(CATEGORY_SHORT);
|
|
// List<ShortAppBean> tmpList =DaoManager.getInstance().queryByKeyList(ShortAppBean.class,"packageName",appBean.getPackageName());
|
|
// if(tmpList==null||tmpList.size()==0){
|
|
// appBeanList.add(appBean);
|
|
// }else {
|
|
// ShortAppBean tmpapp = tmpList.get(0);
|
|
// tmpapp.setCategory(CATEGORY_SHORT);
|
|
// DaoManager.getInstance().update(ShortAppBean.class,tmpapp);
|
|
// }
|
|
// }
|
|
int flag =SharedPreferencesUtil.getSharePrefrencesInteger(mContext,SharedPreferencesUtil.CONFIG_INIOR);
|
|
if(flag==1){//数据已初始化完成
|
|
return;
|
|
}
|
|
|
|
String[] shortcutArray =appStr.split(",");
|
|
List<ShortAppBean> appBeanList = new ArrayList<>();
|
|
for (int i = 0; i < shortcutArray.length; i++) {
|
|
String packageName= shortcutArray[i];
|
|
if(PakageInstallUtil.checkAppInstall(mContext,packageName)) {
|
|
ShortAppBean appBean = new ShortAppBean();
|
|
appBean.setPackageName(packageName);
|
|
appBean.setIndex(i);
|
|
appBean.setItemType(1);
|
|
appBeanList.add(appBean);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
if(appBeanList.size()>0){
|
|
DaoManager.getInstance().insert(ShortAppBean.class, appBeanList);
|
|
SharedPreferencesUtil.setSharePrefrencesInteger(mContext, SharedPreferencesUtil.CONFIG_INIOR, 1);
|
|
}
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
// }
|
|
}
|
|
|
|
|
|
|
|
public void initApplications() {
|
|
PackageManager manager = mContext.getPackageManager();
|
|
|
|
Map<String,AppBean> appBeanMaps = new HashMap<>();
|
|
queryLauncherApp(manager,appBeanMaps);
|
|
queryLeanbackLauncherApp(manager,appBeanMaps);
|
|
List<AppBean> appBeanList = new ArrayList<>();
|
|
|
|
Iterator<String> it =appBeanMaps.keySet().iterator();
|
|
while (it.hasNext()){
|
|
String key = it.next();
|
|
AppBean appBean =appBeanMaps.get(key);
|
|
appBeanList.add(appBean);
|
|
}
|
|
LogUtils.loge("get appBeanList===>"+appBeanList.size());
|
|
if(appBeanList.size()>0) {
|
|
DaoManager.getInstance().insert(AppBean.class, appBeanList);
|
|
}else {
|
|
LogUtils.loge("没有要更新的数据");
|
|
}
|
|
}
|
|
|
|
|
|
private void queryLauncherApp( PackageManager manager ,Map<String,AppBean> appBeanMap){
|
|
if(appBeanMap==null){
|
|
return;
|
|
}
|
|
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
|
|
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
|
|
final List<ResolveInfo> apps = manager.queryIntentActivities(mainIntent, 0);
|
|
Collections.sort(apps, new ResolveInfo.DisplayNameComparator(manager));
|
|
for (int i=0;i<apps.size();i++){
|
|
String packageName= apps.get(i).activityInfo.packageName;
|
|
if("com.android.documentsui".equals(packageName)
|
|
||"eu.chainfire.supersu".equals(packageName)
|
|
||"org.chromium.webview_shell".equals(packageName)
|
|
||"com.android.inputmethod.latin".equals(packageName)
|
|
||"com.android.traceur".equals(packageName)){
|
|
continue;
|
|
}
|
|
AppBean appBean = new AppBean();
|
|
appBean.setAppName(apps.get(i).loadLabel(manager).toString());
|
|
appBean.setPackageName(packageName);
|
|
appBean.setItemType(1);
|
|
// List<AppBean> tmpList = DaoManager.getInstance().queryByKeyList(AppBean.class,"packageName",appBean.getPackageName());
|
|
// if(tmpList==null||tmpList.size()==0){
|
|
appBeanMap.put(packageName,appBean);
|
|
// }
|
|
LogUtils.loge("======package======"+appBean.getPackageName());
|
|
}
|
|
|
|
}
|
|
|
|
private void queryLeanbackLauncherApp( PackageManager manager ,Map<String,AppBean> appBeanMap){
|
|
if(appBeanMap==null){
|
|
return;
|
|
}
|
|
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
|
|
mainIntent.addCategory(Intent.CATEGORY_LEANBACK_LAUNCHER);
|
|
final List<ResolveInfo> apps = manager.queryIntentActivities(mainIntent, 0);
|
|
Collections.sort(apps, new ResolveInfo.DisplayNameComparator(manager));
|
|
for (int i=0;i<apps.size();i++){
|
|
String packageName= apps.get(i).activityInfo.packageName;
|
|
if("com.android.documentsui".equals(packageName)
|
|
||"eu.chainfire.supersu".equals(packageName)
|
|
||"org.chromium.webview_shell".equals(packageName)
|
|
||"com.android.inputmethod.latin".equals(packageName)
|
|
||"com.android.traceur".equals(packageName)){
|
|
continue;
|
|
}
|
|
AppBean appBean = new AppBean();
|
|
appBean.setAppName(apps.get(i).loadLabel(manager).toString());
|
|
appBean.setPackageName(packageName);
|
|
appBean.setItemType(1);
|
|
// List<AppBean> tmpList = DaoManager.getInstance().queryByKeyList(AppBean.class,"packageName",appBean.getPackageName());
|
|
// if(tmpList==null||tmpList.size()==0){
|
|
appBeanMap.put(packageName,appBean);
|
|
// }
|
|
LogUtils.loge("======package======"+appBean.getPackageName());
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void addAppInfo(String packageName){
|
|
|
|
try {
|
|
PackageManager manager = mContext.getPackageManager();
|
|
ApplicationInfo applicationInfo =manager.getApplicationInfo(packageName,0);
|
|
|
|
AppBean appBean = new AppBean();
|
|
appBean.setAppName(applicationInfo.name);
|
|
appBean.setPackageName(applicationInfo.packageName);
|
|
appBean.setItemType(1);
|
|
DaoManager.getInstance().insert(AppBean.class, appBean);
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
|
|
}
|
|
|
|
public void removeAppInfo(String packageName){
|
|
|
|
try {
|
|
List<AppBean> appBeanList =DaoManager.getInstance().queryByKeyList(AppBean.class,"packageName",packageName);
|
|
if(appBeanList!=null&&appBeanList.size()>0){
|
|
DaoManager.getInstance().deleteByList(AppBean.class,appBeanList);
|
|
}
|
|
|
|
|
|
List<VideoAppBean> videoAppBeanList =DaoManager.getInstance().queryByKeyList(VideoAppBean.class,"packageName",packageName);
|
|
if(videoAppBeanList!=null&&videoAppBeanList.size()>0){
|
|
DaoManager.getInstance().deleteByList(VideoAppBean.class,videoAppBeanList);
|
|
}
|
|
|
|
|
|
List<RecommendAppBean> recommendAppBeanBeanList =DaoManager.getInstance().queryByKeyList(RecommendAppBean.class,"packageName",packageName);
|
|
if(recommendAppBeanBeanList!=null&&recommendAppBeanBeanList.size()>0){
|
|
DaoManager.getInstance().deleteByList(RecommendAppBean.class,recommendAppBeanBeanList);
|
|
}
|
|
|
|
|
|
List<MusicAppBean> musicAppBeanList =DaoManager.getInstance().queryByKeyList(MusicAppBean.class,"packageName",packageName);
|
|
if(musicAppBeanList!=null&&musicAppBeanList.size()>0){
|
|
DaoManager.getInstance().deleteByList(MusicAppBean.class,musicAppBeanList);
|
|
}
|
|
|
|
List<LocalAppBean> localAppBeanList =DaoManager.getInstance().queryByKeyList(LocalAppBean.class,"packageName",packageName);
|
|
if(localAppBeanList!=null&&localAppBeanList.size()>0){
|
|
DaoManager.getInstance().deleteByList(LocalAppBean.class,localAppBeanList);
|
|
}
|
|
|
|
List<ShortAppBean> shortAppBeanList =DaoManager.getInstance().queryByKeyList(ShortAppBean.class,"packageName",packageName);
|
|
if(shortAppBeanList!=null&&shortAppBeanList.size()>0){
|
|
DaoManager.getInstance().deleteByList(ShortAppBean.class,shortAppBeanList);
|
|
}
|
|
|
|
|
|
|
|
}catch (Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private static String getAssertData(Context context,String filepath){
|
|
File file = new File(filepath);
|
|
if(!file.exists()){
|
|
return null;
|
|
}
|
|
String resultString ="";
|
|
try {
|
|
InputStream is = new FileInputStream(file);
|
|
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(is));
|
|
String jsonString ="";
|
|
while ((jsonString=bufferedReader.readLine())!=null) {
|
|
|
|
resultString+=jsonString;
|
|
|
|
}
|
|
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
return resultString;
|
|
|
|
}
|
|
|
|
|
|
|
|
public FavNaviBean getFavNaviBean(int index){
|
|
|
|
AdsInfoBean adsInfoBean = ADManager.getInstance().getADInfoById(index,ADManager.ADTYPE_IMAGE);
|
|
|
|
LogUtils.loge("adsInfoBean===>"+GsonUtil.GsonString(adsInfoBean));
|
|
FavNaviBean favNaviBean =null;
|
|
if(adsInfoBean!=null&&adsInfoBean.getState()==1){ //先加载网络图片
|
|
if (PakageInstallUtil.checkAppInstall(mContext, adsInfoBean.getInfo())) {
|
|
if (adsInfoBean.getLocalFilePath() != null) {
|
|
File file = new File(adsInfoBean.getLocalFilePath());
|
|
if (file.exists()) {
|
|
favNaviBean = new FavNaviBean(index, adsInfoBean.getLocalFilePath(), adsInfoBean.getInfo(), null);
|
|
}else {//考虑下载好图片重启后变回 -tmp文件的情况
|
|
File tempFile=new File(adsInfoBean.getLocalFilePath()+"-tmp");
|
|
//对已上报的图片文件 系统丢失文件情况 重新下载
|
|
if(!tempFile.exists()&& SharePreUtils.filterByKeyValue(String.valueOf(adsInfoBean.getAdResourceId()),String.valueOf(0))){
|
|
LogUtils.loge("sys lost file which has upload,redownload it but not notify");
|
|
ADManager.getInstance().hasDownloadButLostFile(adsInfoBean,adsInfoBean.getAdUri(),0,adsInfoBean.getAdSize());
|
|
}
|
|
if(tempFile.exists()&&tempFile.length()==adsInfoBean.getAdSize()){
|
|
tempFile.renameTo(file);
|
|
tempFile.delete();
|
|
EventBusUtils.postMsg(new MessageEvent(MessageEvent.ACTION_UPADATE_DATA_SOURCE));
|
|
LogUtils.loge("下载大小完成但重命名失败同时下载任务已清除图片至始至终未显示处理 sys rename failed bug solved");
|
|
}
|
|
LogUtils.loge(file.getPath()+" is not exit");
|
|
}
|
|
}
|
|
}else {
|
|
LogUtils.loge(adsInfoBean.getInfo()+" is not exit");//考虑下载好APK重启后变回 -tmp文件的情况 补充clearApkFileByPowerDown 下载任务有脏数据情况下
|
|
String appUrl = adsInfoBean.getAppUrl();
|
|
boolean taskTableHasIt=false;
|
|
List<DownLoadTaskBean> list = DaoManager.getInstance().queryList(DownLoadTaskBean.class);
|
|
for (int i = 0; i <list.size() ; i++) {
|
|
if(list.get(i).getUrl().equalsIgnoreCase(appUrl)){
|
|
taskTableHasIt=true;
|
|
break;
|
|
}
|
|
}
|
|
if(!TextUtils.isEmpty(appUrl)&&!taskTableHasIt){
|
|
int lastIndex = appUrl.lastIndexOf("/");
|
|
String fileName=lastIndex==-1?appUrl:appUrl.substring(lastIndex+1);
|
|
String filePath = FileUtil.getBakPath(mContext,1)+"/"+fileName;
|
|
String tmpFilePath = FileUtil.getBakPath(mContext, 1) + "/" + fileName + "-tmp";
|
|
File tmpFile=new File(tmpFilePath);
|
|
File file =new File(filePath);
|
|
if(tmpFile.exists()&&tmpFile.length()==adsInfoBean.getAppSize()){
|
|
LogUtils.loge(adsInfoBean.getInfo()+" but apk tmpfile is exit");
|
|
tmpFile.renameTo(file);
|
|
//tmpFile.delete();
|
|
if(list!=null&&list.size()>0){
|
|
boolean flag = PakageInstallUtil.silentInstall(mContext, file.getAbsolutePath());
|
|
LogUtils.loge("no task and restart sys apk back to tmp install result="+flag);
|
|
}
|
|
}else if(file.exists()&&file.length()==adsInfoBean.getAppSize()){
|
|
if(list!=null&&list.size()>0){
|
|
boolean flag = PakageInstallUtil.silentInstall(mContext, file.getAbsolutePath());
|
|
LogUtils.loge("no task and restart sys apk not install result="+flag);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
if(favNaviBean==null){ //再加载本地图片
|
|
|
|
FavNaviBean favNaviBeantmp=favRecommendCacheData.get(index);
|
|
if (favNaviBeantmp!=null&&PakageInstallUtil.checkAppInstall(mContext, favNaviBeantmp.getRelatedApp())){
|
|
if(favNaviBeantmp.getImgPath()!=null) {
|
|
File file = new File(favNaviBeantmp.getImgPath());
|
|
if (file.exists()) {
|
|
favNaviBean = favNaviBeantmp;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(favNaviBean==null){ //最后给默认图片
|
|
favNaviBean = new FavNaviBean(index,null,null,null);
|
|
}
|
|
|
|
LogUtils.loge("favNaviBean===>"+ GsonUtil.GsonString(favNaviBean));
|
|
return favNaviBean;
|
|
}
|
|
|
|
|
|
public FavNaviBean getFavNaviBeanByLocal(int index){
|
|
FavNaviBean favNaviBean =null;
|
|
|
|
if(favNaviBean==null){ //再加载本地图片
|
|
favNaviBean =favRecommendCacheData.get(index);
|
|
}
|
|
|
|
if(favNaviBean==null){ //最后给默认图片
|
|
favNaviBean = new FavNaviBean(index,null,null,null);
|
|
}
|
|
LogUtils.loge("favNaviBean===>"+ GsonUtil.GsonString(favNaviBean));
|
|
return favNaviBean;
|
|
}
|
|
|
|
}
|