package cn.koolcloud.ipos.appstore.receiver; import java.io.File; import cn.koolcloud.ipos.appstore.AppStorePreference; import cn.koolcloud.ipos.appstore.cache.DataCleanManager; import cn.koolcloud.ipos.appstore.download.database.DownloadDBOperator; import cn.koolcloud.ipos.appstore.ui.CategoryMainActivity; import cn.koolcloud.ipos.appstore.ui.MainFrameActivity; import cn.koolcloud.ipos.appstore.ui.SearchActivity; import cn.koolcloud.ipos.appstore.ui.SoftwareDetailActivity; import cn.koolcloud.ipos.appstore.utils.Env; import cn.koolcloud.ipos.appstore.utils.Logger; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.text.TextUtils; /** * <p>Title: AppBroadcastReceiver.java </p> * <p>Description: App install or remove receiver and then refresh the main UI</p> * <p>Copyright: Copyright (c) 2013</p> * <p>Company: All In Pay</p> * @author Teddy * @date 2013-12-18 * @version */ public class AppBroadcastReceiver extends BroadcastReceiver { private static final String TAG = "AppBroadcastReceiver"; @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); MainFrameActivity mainFrameInstance = MainFrameActivity.getInstance(); CategoryMainActivity categoryInstance = CategoryMainActivity.getInstance(); SoftwareDetailActivity softwareDetailInstance = SoftwareDetailActivity.getInstance(); SearchActivity searchActivityInstance = SearchActivity.getInstance(); Logger.i(action); if (Intent.ACTION_PACKAGE_ADDED.equals(action)) { Logger.d("app installed"); Logger.d(intent.getDataString()); if (categoryInstance != null) { categoryInstance.refreshLocalSoftData(); } if (softwareDetailInstance != null) { softwareDetailInstance.refreshLocalSoftData(); } if (mainFrameInstance != null) { mainFrameInstance.refreshUpdateSoftData(); } if (searchActivityInstance != null) { searchActivityInstance.refreshUpdateSoftData(); } } else if (Intent.ACTION_PACKAGE_REMOVED.equals(action)) { Logger.d("app removed"); Logger.d(intent.getDataString()); if (!intent.getDataString().substring(8).equals(Env.getPackageName(context))) { if (mainFrameInstance != null) { mainFrameInstance.refreshLocalSoftData(); } } } else if (Intent.ACTION_PACKAGE_CHANGED.equals(action)) { } else if (Intent.ACTION_PACKAGE_REPLACED.equals(action)) { Logger.d("app replaced"); Logger.d(intent.getDataString()); if (!intent.getDataString().substring(8).equals(Env.getPackageName(context))) { if (categoryInstance != null) { categoryInstance.refreshLocalSoftData(); } if (softwareDetailInstance != null) { softwareDetailInstance.refreshLocalSoftData(); } if (mainFrameInstance != null) { mainFrameInstance.refreshUpdateSoftData(); } if (searchActivityInstance != null) { searchActivityInstance.refreshUpdateSoftData(); } } } else if (Intent.ACTION_PACKAGE_RESTARTED.equals(action)) { } //delete apk file deleteApk(context, intent); } private void deleteApk(Context context, Intent intent) { String packageString = intent.getDataString(); Logger.d("------------>" + packageString); Logger.d("=============>" + intent.getPackage()); boolean isDeleteApk = AppStorePreference.getDeleteApkTag(context); if (!TextUtils.isEmpty(packageString) && isDeleteApk) { String[] packNameArray = packageString.split(":"); if (packNameArray != null && packNameArray.length > 1) { String path = DownloadDBOperator.getInstance(context).getAppDownloadPathByPackage(packNameArray[1]); DataCleanManager.deleteFile(new File(path)); } } } }