1c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar/* 2c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar * Copyright (C) 2017 The Android Open Source Project 3c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar * 4c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar * Licensed under the Apache License, Version 2.0 (the "License"); 5c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar * you may not use this file except in compliance with the License. 6c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar * You may obtain a copy of the License at 7c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar * 8c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar * http://www.apache.org/licenses/LICENSE-2.0 9c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar * 10c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar * Unless required by applicable law or agreed to in writing, software 11c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar * distributed under the License is distributed on an "AS IS" BASIS, 12c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar * See the License for the specific language governing permissions and 14c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar * limitations under the License. 15c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar */ 16c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar 17564e43098c323d1a90be53c190b8fdbdde973505Sumir Katariapackage androidx.work.integration.testapp.imageprocessing; 18c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar 19b9701e2752b53221501cfaeb247256f1ae12baecSumir Katariaimport android.support.annotation.NonNull; 20c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagarimport android.text.TextUtils; 21c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagarimport android.util.Log; 22c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar 23564e43098c323d1a90be53c190b8fdbdde973505Sumir Katariaimport androidx.work.Worker; 24564e43098c323d1a90be53c190b8fdbdde973505Sumir Katariaimport androidx.work.integration.testapp.db.Image; 25564e43098c323d1a90be53c190b8fdbdde973505Sumir Katariaimport androidx.work.integration.testapp.db.TestDatabase; 26564e43098c323d1a90be53c190b8fdbdde973505Sumir Kataria 2764e6bd86c786f1cb1b0c3dbc2b5307cca5c0d1f6Sumir Katariaimport java.io.File; 2864e6bd86c786f1cb1b0c3dbc2b5307cca5c0d1f6Sumir Katariaimport java.util.List; 2964e6bd86c786f1cb1b0c3dbc2b5307cca5c0d1f6Sumir Kataria 30c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar/** 31c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar * Removes all existing {@link Image} entities and deletes associated compressed files 32c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar */ 33c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagarpublic class ImageCleanupWorker extends Worker { 34c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar private static final String TAG = "ImageProcessingWorker"; 35c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar 36c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar @Override 3711a7c26af63674a21787696e509e9a43d0bd7acfSumir Kataria public @NonNull Result doWork() { 38c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar Log.d(TAG, "Started"); 39d0d61c5aa317685f06802a202a2f46c71e1da962Rahul Ravikumar List<Image> images = TestDatabase.getInstance(getApplicationContext()) 40d0d61c5aa317685f06802a202a2f46c71e1da962Rahul Ravikumar .getImageDao().getImages(); 41c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar for (Image image : images) { 42c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar if (!TextUtils.isEmpty(image.mProcessedFilePath)) { 43c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar if (new File(image.mProcessedFilePath).delete()) { 44c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar Log.d(TAG, "Deleted : " + image.mProcessedFilePath); 45c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar } else { 46c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar Log.e(TAG, "Failed to delete : " + image.mProcessedFilePath); 47c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar } 48c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar } else { 49c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar Log.d(TAG, image.mOriginalAssetName + "was not processed"); 50c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar } 51c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar } 52d0d61c5aa317685f06802a202a2f46c71e1da962Rahul Ravikumar TestDatabase.getInstance(getApplicationContext()).getImageDao().clear(); 53c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar Log.d(TAG, "Cleanup Complete!"); 5411a7c26af63674a21787696e509e9a43d0bd7acfSumir Kataria return Result.SUCCESS; 55c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar } 56c5c83e113f5047c3c957a6179bac88721bceb6abXyan Bhatnagar} 57