1a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot/*
2a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot * Copyright (C) 2010 The Android Open Source Project
3a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot *
4a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot * Licensed under the Apache License, Version 2.0 (the "License");
5a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot * you may not use this file except in compliance with the License.
6a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot * You may obtain a copy of the License at
7a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot *
8a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot *      http://www.apache.org/licenses/LICENSE-2.0
9a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot *
10a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot * Unless required by applicable law or agreed to in writing, software
11a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot * distributed under the License is distributed on an "AS IS" BASIS,
12a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot * See the License for the specific language governing permissions and
14a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot * limitations under the License.
15a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot */
16a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot
17a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabotpackage android.os.storage;
18a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot
19a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabotimport android.util.Log;
20a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot
21a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabotpublic class StorageListener extends StorageEventListener {
22a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot    private static final boolean localLOGV = true;
23a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot
24d7b421b4de68d803252a5d9b3cb0106731217ad7Kenny Root    public static final String TAG = "StorageListener";
25a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot
26d7b421b4de68d803252a5d9b3cb0106731217ad7Kenny Root    private String mTargetState;
27a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot    private boolean doneFlag = false;
28d7b421b4de68d803252a5d9b3cb0106731217ad7Kenny Root
29d7b421b4de68d803252a5d9b3cb0106731217ad7Kenny Root    public StorageListener(String targetState) {
30d7b421b4de68d803252a5d9b3cb0106731217ad7Kenny Root        mTargetState = targetState;
31d7b421b4de68d803252a5d9b3cb0106731217ad7Kenny Root    }
32d7b421b4de68d803252a5d9b3cb0106731217ad7Kenny Root
33a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot    @Override
34a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot    public void onStorageStateChanged(String path, String oldState, String newState) {
35a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot        if (localLOGV) Log.i(TAG, "Storage state changed from " + oldState + " to " + newState);
36d7b421b4de68d803252a5d9b3cb0106731217ad7Kenny Root
37a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot        synchronized (this) {
38d7b421b4de68d803252a5d9b3cb0106731217ad7Kenny Root            if (mTargetState.equals(newState)) {
39d7b421b4de68d803252a5d9b3cb0106731217ad7Kenny Root                doneFlag = true;
40d7b421b4de68d803252a5d9b3cb0106731217ad7Kenny Root                notifyAll();
41d7b421b4de68d803252a5d9b3cb0106731217ad7Kenny Root            }
42a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot        }
43a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot    }
44a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot
45a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot    public boolean isDone() {
46a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot        return doneFlag;
47a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot    }
48a3de74555120cc4dc205a3f93ef44c843b8d64a8Brett Chabot}
49