diff --git a/mylibrary/src/main/java/com/android/nebulasdk/ADManager.java b/mylibrary/src/main/java/com/android/nebulasdk/ADManager.java index 9410768..d3ec92a 100644 --- a/mylibrary/src/main/java/com/android/nebulasdk/ADManager.java +++ b/mylibrary/src/main/java/com/android/nebulasdk/ADManager.java @@ -8,6 +8,7 @@ import com.android.SharePreUtils; import com.android.database.AdsInfoBeanDao; 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.NetShortAppBean; import com.android.database.lib.ShortAppBean; @@ -20,6 +21,7 @@ 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 java.io.File; import java.util.ArrayList; @@ -91,6 +93,7 @@ public class ADManager implements DownLoadManeger.DownloadListener { // } // } if(adsInfoBean.getId()==12){ //删除收藏数据 + configUtilSaveNetEmptyApp(); DaoManager.getInstance().delete(AdsInfoBean.class,adsInfoBean); DaoManager.getInstance().deleteAll(NetShortAppBean.class); List netShortAppBeanList = DaoManager.getInstance().queryList(NetShortAppBean.class); @@ -155,7 +158,9 @@ public class ADManager implements DownLoadManeger.DownloadListener { if(aDInfo.getState()!=null) { adsInfoBean.setState(aDInfo.getState()); } - + if(adsInfoBean.getId()==12){ + configUtilSaveNetEmptyApp();//任务更新必须移除 隔离收藏夹记录 + } if(aDInfo.getState()==0){ //任务已关闭,需要删除数据 LogUtils.loge(aDInfo.getId()+"任务已关闭,暂不删除本地缓存"); adsInfoBean.setState(0); @@ -196,7 +201,7 @@ public class ADManager implements DownLoadManeger.DownloadListener { // } if(aDInfo.getId()==12){ //删除收藏数据 LogUtils.loge(aDInfo.getId()+"任务已关闭,删除本地缓存"); - DaoManager.getInstance().delete(AdsInfoBean.class,adsInfoBean); + //DaoManager.getInstance().delete(AdsInfoBean.class,adsInfoBean); DaoManager.getInstance().deleteAll(NetShortAppBean.class); List netShortAppBeanList = DaoManager.getInstance().queryList(NetShortAppBean.class); if(netShortAppBeanList==null){ @@ -210,7 +215,9 @@ public class ADManager implements DownLoadManeger.DownloadListener { //打开任务 adsInfoBean.setState(1); //任务已存在只需要改变数据,不需要重新下载 DaoManager.getInstance().update(AdsInfoBean.class,adsInfoBean); - + if(adsInfoBean.getId()==12){ + analysisResInfo(aDInfo,adsInfoBean); + } } // if(aDInfo.getState()==0){ //任务已关闭,需要删除数据 // LogUtils.loge("任务已关闭,删除本地缓存"+adsInfoBean.getLocalFilePath()); @@ -283,7 +290,16 @@ public class ADManager implements DownLoadManeger.DownloadListener { EventBusUtils.postMsg(new MessageEvent(MessageEvent.ACTION_UPADATE_DATA_SOURCE)); } + private void configUtilSaveNetEmptyApp() { + String sharePrefrencesString = SharedPreferencesUtil.getSharePrefrencesString(mContext, SharedPreferencesUtil.CONFIG_NET_DEFEND_BOOKMARK_APP); + List saveList=new ArrayList<>(); + if(TextUtils.isEmpty(sharePrefrencesString)){ + return; + } + String saveConfig = GsonUtil.GsonString(saveList); + SharedPreferencesUtil.setSharePrefrencesString(mContext,SharedPreferencesUtil.CONFIG_NET_DEFEND_BOOKMARK_APP,saveConfig); + } /*** * 根据id来查询广告展位信息 */ diff --git a/mylibrary/src/main/java/com/android/nebulasdk/AppManager.java b/mylibrary/src/main/java/com/android/nebulasdk/AppManager.java index d9de5df..01531d4 100644 --- a/mylibrary/src/main/java/com/android/nebulasdk/AppManager.java +++ b/mylibrary/src/main/java/com/android/nebulasdk/AppManager.java @@ -73,7 +73,8 @@ public class AppManager { /**主界面推荐数据*/ private Map favRecommendCacheData = new HashMap<>(); - + //包名-应用名 + private Map appNameCacheData = new HashMap<>(); private AppManager(Context context){ this.mContext = context; @@ -125,7 +126,7 @@ public class AppManager { for (NetShortAppBean netShortAppBean:netShortAppBeanList){ if(filterAppBeanMap.size()getSharePrefrencesStringList4444 :" + GsonUtil.GsonString(netShortAppBeanList)); + if(!TextUtils.isEmpty(sharePrefrencesString)){ + List appBeans = GsonUtil.GsonToList(sharePrefrencesString, AppBean.class); + for (AppBean bean : appBeans) { + if(filterAppBeanMap.size() < SHORT_COUNT){ + if (PakageInstallUtil.checkAppInstall(mContext, bean.getPackageName())) { + ShortAppBean shortAppBean = new ShortAppBean(); + shortAppBean.setCategory(bean.getCategory()); + shortAppBean.setAppName(bean.getAppName()); + shortAppBean.setId(bean.getId()); + shortAppBean.setIndex(netShortStartIndex); + shortAppBean.setItemType(bean.getItemType()); + shortAppBean.setPackageName(bean.getPackageName()); + filterAppBeanMap.put(bean.getPackageName(), shortAppBean); + netShortStartIndex++; + } + }else { + break; } - }else { - break; } } - List newShortAppBeanList = new ArrayList<>(); Iterator it= filterAppBeanMap.keySet().iterator(); while (it.hasNext()){ @@ -258,7 +280,12 @@ public class AppManager { shortAppBean.setCategory(CATEGORY_SHORT); shortAppBean.setItemType(1); DaoManager.getInstance().insert(ShortAppBean.class,shortAppBean); - + // 存 本地收藏夹config.xml 与 网络配置隔离收藏夹分开 book compose + if(!configUtilContainNetApp(appBean.getPackageName())){ + configUtilSaveLocalApp(appBean); + }else { + configUtilRmNetApp(appBean.getPackageName()); + } }else { @@ -269,8 +296,10 @@ public class AppManager { } List netShortAppBeanList = DaoManager.getInstance().queryByKeyList(NetShortAppBean.class,"packageName",appBean.getPackageName()); if(netShortAppBeanList!=null&&netShortAppBeanList.size()>0){ - DaoManager.getInstance().deleteByList(NetShortAppBean.class,netShortAppBeanList); + configUtilSaveNetApp(appBean); + //DaoManager.getInstance().deleteByList(NetShortAppBean.class,netShortAppBeanList); } + configUtilRmLocalApp(appBean); } // if(appBeanList!=null&&appBeanList.size()>0){ @@ -292,7 +321,89 @@ public class AppManager { } + private void configUtilSaveLocalApp(AppBean appBean) { + String sharePrefrencesString = SharedPreferencesUtil.getSharePrefrencesString(mContext, SharedPreferencesUtil.CONFIG_LOCAL_BOOKMARK_APP); + List saveList=null; + if(TextUtils.isEmpty(sharePrefrencesString)){ + saveList=new ArrayList<>(); + } + if(!TextUtils.isEmpty(sharePrefrencesString)){ + saveList= GsonUtil.GsonToList(sharePrefrencesString ,AppBean.class); + } + if(saveList!=null){ + saveList.add(appBean); + String saveConfig = GsonUtil.GsonString(saveList); + SharedPreferencesUtil.setSharePrefrencesString(mContext,SharedPreferencesUtil.CONFIG_LOCAL_BOOKMARK_APP,saveConfig); + } + } + + private void configUtilRmLocalApp(AppBean appBean) { + String sharePrefrencesString = SharedPreferencesUtil.getSharePrefrencesString(mContext, SharedPreferencesUtil.CONFIG_LOCAL_BOOKMARK_APP); + if(!TextUtils.isEmpty(sharePrefrencesString)){ + List appBeans = GsonUtil.GsonToList(sharePrefrencesString, AppBean.class); + List appNewBeans=new ArrayList<>(); + for (AppBean bean :appBeans) { + if(!bean.getPackageName().equalsIgnoreCase(appBean.getPackageName())){ + appNewBeans.add(bean); + } + } + String saveConfig = GsonUtil.GsonString(appNewBeans); + LogUtils.loge("SNFLauncher--->configUtilRmLocalApp() List:"+saveConfig); + SharedPreferencesUtil.setSharePrefrencesString(mContext,SharedPreferencesUtil.CONFIG_LOCAL_BOOKMARK_APP,saveConfig); + } + + } + + private void configUtilSaveNetApp(AppBean appBean) { + String sharePrefrencesString = SharedPreferencesUtil.getSharePrefrencesString(mContext, SharedPreferencesUtil.CONFIG_NET_DEFEND_BOOKMARK_APP); + List saveList=null; + if(TextUtils.isEmpty(sharePrefrencesString)){ + saveList=new ArrayList<>(); + } + if(!TextUtils.isEmpty(sharePrefrencesString)){ + saveList= GsonUtil.GsonToList(sharePrefrencesString ,AppBean.class); + } + if(saveList!=null){ + saveList.add(appBean); + String saveConfig = GsonUtil.GsonString(saveList); + SharedPreferencesUtil.setSharePrefrencesString(mContext,SharedPreferencesUtil.CONFIG_NET_DEFEND_BOOKMARK_APP,saveConfig); + } + + } + + private void configUtilRmNetApp(String name) { + String sharePrefrencesString = SharedPreferencesUtil.getSharePrefrencesString(mContext, SharedPreferencesUtil.CONFIG_NET_DEFEND_BOOKMARK_APP); + if(!TextUtils.isEmpty(sharePrefrencesString)){ + List appBeans = GsonUtil.GsonToList(sharePrefrencesString, AppBean.class); + List appNewBeans=new ArrayList<>(); + for (AppBean bean :appBeans) { + if(!bean.getPackageName().equalsIgnoreCase(name)){ + appNewBeans.add(bean); + } + } + String saveConfig = GsonUtil.GsonString(appNewBeans); + LogUtils.loge("SNFLauncher--->configUtilRmNetApp() List:"+saveConfig); + SharedPreferencesUtil.setSharePrefrencesString(mContext,SharedPreferencesUtil.CONFIG_NET_DEFEND_BOOKMARK_APP,saveConfig); + } + + } + + private boolean configUtilContainNetApp(String name) { + boolean isContain = false; + String sharePrefrencesString = SharedPreferencesUtil.getSharePrefrencesString(mContext, SharedPreferencesUtil.CONFIG_NET_DEFEND_BOOKMARK_APP); + if(!TextUtils.isEmpty(sharePrefrencesString)){ + List appBeans = GsonUtil.GsonToList(sharePrefrencesString, AppBean.class); + for (AppBean bean :appBeans) { + if(bean.getPackageName().equalsIgnoreCase(name)){ + isContain = true; + break; + } + } + + } + return isContain; + } public void addShortcutInfo(String packageName,String apName,int index){ List shortcutInfoBeanList =DaoManager.getInstance().queryByKeyList(AppBean.class,"packageName",packageName); @@ -354,6 +465,7 @@ public class AppManager { favNaviBean.setAppName(jsonobjectTmp.getString("name")); favRecommendCacheData.put(favNaviBean.getIndex(), favNaviBean); } + appNameCacheData.put(packageName,jsonobjectTmp.getString("name")); } @@ -373,26 +485,40 @@ public class AppManager { // DaoManager.getInstance().update(ShortAppBean.class,tmpapp); // } // } + String sharePrefrencesString = SharedPreferencesUtil.getSharePrefrencesString(mContext, SharedPreferencesUtil.CONFIG_LOCAL_BOOKMARK_APP); int flag =SharedPreferencesUtil.getSharePrefrencesInteger(mContext,SharedPreferencesUtil.CONFIG_INIOR); - if(flag==1){//数据已初始化完成 + if(flag==1&&!TextUtils.isEmpty(sharePrefrencesString)){//数据已初始化完成 return; } String[] shortcutArray =appStr.split(","); List appBeanList = new ArrayList<>(); + List appBeans =new ArrayList<>(); for (int i = 0; i < shortcutArray.length; i++) { String packageName= shortcutArray[i]; if(PakageInstallUtil.checkAppInstall(mContext,packageName)) { ShortAppBean appBean = new ShortAppBean(); + AppBean bean =new AppBean(); appBean.setPackageName(packageName); + bean.setPackageName(packageName); appBean.setIndex(i); + bean.setIndex(i); + bean.setId(5L); appBean.setItemType(1); + bean.setItemType(1); + bean.setCategory(0); + bean.setAppName(appNameCacheData.get(packageName)); + bean.setSelect(1); appBeanList.add(appBean); + appBeans.add(bean); } } - + if(appBeans.size()>0){ + String saveConfig = GsonUtil.GsonString(appBeans); + SharedPreferencesUtil.setSharePrefrencesString(mContext,SharedPreferencesUtil.CONFIG_LOCAL_BOOKMARK_APP,saveConfig); + } if(appBeanList.size()>0){ DaoManager.getInstance().insert(ShortAppBean.class, appBeanList); SharedPreferencesUtil.setSharePrefrencesInteger(mContext, SharedPreferencesUtil.CONFIG_INIOR, 1); diff --git a/mylibrary/src/main/java/com/android/util/SharedPreferencesUtil.java b/mylibrary/src/main/java/com/android/util/SharedPreferencesUtil.java index 60a708e..31727a9 100644 --- a/mylibrary/src/main/java/com/android/util/SharedPreferencesUtil.java +++ b/mylibrary/src/main/java/com/android/util/SharedPreferencesUtil.java @@ -27,6 +27,9 @@ public class SharedPreferencesUtil { /**是否要更新app信息到服务器*/ public static final String CONFIG_INIOR="CONFIG_INIOR"; + public static final String CONFIG_LOCAL_BOOKMARK_APP="config_local_bookmark_app";//本地配置 收藏夹 + public static final String CONFIG_NET_DEFEND_BOOKMARK_APP="config_net_defend_bookmark_app";//网络隔离 收藏夹 + public static String getSharePrefrencesString(Context context,String key){ SharedPreferences sharedPreferences=context.getSharedPreferences(SHARE_NAME,0);