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