예제 #1
0
 public ThemeInfo getCurrentThemeInfo() {
   ContentResolver contentResolver = getContext().getContentResolver();
   if (mCurrentThemeInfo == null) {
     String where = ThemeColumns.IS_APPLY + "=" + 1;
     Cursor cursor = contentResolver.query(ThemeColumns.CONTENT_URI, null, where, null, null);
     if (cursor != null) {
       if (cursor.moveToFirst()) {
         mCurrentThemeInfo = ThemeInfo.CreateFromDB(cursor);
       }
       cursor.close();
     }
     if (mCurrentThemeInfo == null) {
       HomeUtils.markThemeAsApply(
           getContext(), HomeDataBaseHelper.getInstance(getContext()).getDefaultThemeID());
       cursor = contentResolver.query(ThemeColumns.CONTENT_URI, null, where, null, null);
       if (cursor != null) {
         if (cursor.moveToFirst()) {
           mCurrentThemeInfo = ThemeInfo.CreateFromDB(cursor);
         }
         cursor.close();
       }
     }
     if (mCurrentThemeInfo == null) {
       // 数据库错误,删除数据库
       HomeUtils.deleteFile(getContext().getDatabasePath(ProviderUtils.DATABASE_NAME).getParent());
       Process.killProcess(Process.myPid());
     }
   }
   mCurrentThemeInfo.initFromXML(getContext());
   return mCurrentThemeInfo;
 }
예제 #2
0
 public static String deleteModelAndObjectDBByName(Context context, String name) {
   ContentResolver resolver = context.getContentResolver();
   String where = ModelColumns.OBJECT_NAME + " = '" + name + "'";
   String[] selection = {ModelColumns.PRODUCT_ID, ModelColumns.ASSETS_PATH};
   Cursor cursor = resolver.query(ModelColumns.CONTENT_URI, selection, where, null, null);
   String localPath = null;
   String productId = null;
   if (cursor != null && cursor.moveToNext()) {
     productId = cursor.getString(0);
     localPath = cursor.getString(1);
   } else {
     if (cursor != null) {
       cursor.close();
     }
     return null;
   }
   if (cursor != null) {
     cursor.close();
   }
   where = ModelColumns.OBJECT_NAME + "='" + name + "'";
   resolver.delete(ModelColumns.CONTENT_URI, where, null);
   where = ObjectInfoColumns.OBJECT_NAME + "='" + name + "'";
   resolver.delete(ObjectInfoColumns.CONTENT_URI, where, null);
   deleteFile(localPath);
   return productId;
 }
예제 #3
0
 public static String deleteThemeDBByProductID(Context context, String productID) {
   String where = ThemeColumns.PRODUCT_ID + " = '" + productID + "'";
   String assetPath;
   String name;
   String sceneName;
   Cursor cursor =
       context.getContentResolver().query(ThemeColumns.CONTENT_URI, null, where, null, null);
   if (cursor != null && cursor.moveToFirst()) {
     assetPath = cursor.getString(cursor.getColumnIndexOrThrow(ThemeColumns.FILE_PATH));
     name = cursor.getString(cursor.getColumnIndexOrThrow(ThemeColumns.NAME));
     sceneName = cursor.getString(cursor.getColumnIndexOrThrow(ThemeColumns.SCENE_NAME));
   } else {
     if (cursor != null) {
       cursor.close();
     }
     return null;
   }
   if (cursor != null) {
     cursor.close();
   }
   context.getContentResolver().delete(ThemeColumns.CONTENT_URI, where, null);
   if (!"home8".equals(sceneName)) {
     where = ObjectInfoColumns.SCENE_NAME + " = '" + sceneName + "'";
     context.getContentResolver().delete(ObjectInfoColumns.CONTENT_URI, where, null);
   }
   // 在老版本中资源包和wallpaper存在一个路径,假如是老版本上来的不删除这个文件夹
   if (!name.equals(new File(assetPath).getName())) deleteFile(assetPath);
   return name;
 }
예제 #4
0
 public static void deleteFile(String path) {
   File f = new File(path);
   if (!f.exists()) return;
   if (!(f.delete())) {
     File subs[] = f.listFiles();
     for (int i = 0; i <= subs.length - 1; i++) {
       if (subs[i].isDirectory()) deleteFile(subs[i].getAbsolutePath());
       subs[i].delete();
     }
     f.delete();
   }
 }
예제 #5
0
 public static void deleteWallpaperByLocalPath(Context context, String localPath) {
   deleteFile(localPath);
 }