diff options
Diffstat (limited to 'src/com/android/gallery3d/data/MtpDevice.java')
-rw-r--r-- | src/com/android/gallery3d/data/MtpDevice.java | 177 |
1 files changed, 0 insertions, 177 deletions
diff --git a/src/com/android/gallery3d/data/MtpDevice.java b/src/com/android/gallery3d/data/MtpDevice.java deleted file mode 100644 index 25ffbc8ba..000000000 --- a/src/com/android/gallery3d/data/MtpDevice.java +++ /dev/null @@ -1,177 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.gallery3d.data; - -import android.annotation.TargetApi; -import android.hardware.usb.UsbDevice; -import android.mtp.MtpConstants; -import android.mtp.MtpObjectInfo; -import android.mtp.MtpStorageInfo; -import android.net.Uri; -import android.util.Log; - -import com.android.gallery3d.app.GalleryApp; -import com.android.gallery3d.common.ApiHelper; - -import java.util.ArrayList; -import java.util.List; - -@TargetApi(ApiHelper.VERSION_CODES.HONEYCOMB_MR1) -public class MtpDevice extends MediaSet { - private static final String TAG = "MtpDevice"; - - private final GalleryApp mApplication; - private final int mDeviceId; - private final String mDeviceName; - private final MtpContext mMtpContext; - private final String mName; - private final ChangeNotifier mNotifier; - private final Path mItemPath; - private List<MtpObjectInfo> mJpegChildren; - - public MtpDevice(Path path, GalleryApp application, int deviceId, - String name, MtpContext mtpContext) { - super(path, nextVersionNumber()); - mApplication = application; - mDeviceId = deviceId; - mDeviceName = UsbDevice.getDeviceName(deviceId); - mMtpContext = mtpContext; - mName = name; - mNotifier = new ChangeNotifier(this, Uri.parse("mtp://"), application); - mItemPath = Path.fromString("/mtp/item/" + String.valueOf(deviceId)); - mJpegChildren = new ArrayList<MtpObjectInfo>(); - } - - public MtpDevice(Path path, GalleryApp application, int deviceId, - MtpContext mtpContext) { - this(path, application, deviceId, - MtpDeviceSet.getDeviceName(mtpContext, deviceId), mtpContext); - } - - private List<MtpObjectInfo> loadItems() { - ArrayList<MtpObjectInfo> result = new ArrayList<MtpObjectInfo>(); - - List<MtpStorageInfo> storageList = mMtpContext.getMtpClient() - .getStorageList(mDeviceName); - if (storageList == null) return result; - - for (MtpStorageInfo info : storageList) { - collectJpegChildren(info.getStorageId(), 0, result); - } - - return result; - } - - private void collectJpegChildren(int storageId, int objectId, - ArrayList<MtpObjectInfo> result) { - ArrayList<MtpObjectInfo> dirChildren = new ArrayList<MtpObjectInfo>(); - - queryChildren(storageId, objectId, result, dirChildren); - - for (int i = 0, n = dirChildren.size(); i < n; i++) { - MtpObjectInfo info = dirChildren.get(i); - collectJpegChildren(storageId, info.getObjectHandle(), result); - } - } - - private void queryChildren(int storageId, int objectId, - ArrayList<MtpObjectInfo> jpeg, ArrayList<MtpObjectInfo> dir) { - List<MtpObjectInfo> children = mMtpContext.getMtpClient().getObjectList( - mDeviceName, storageId, objectId); - if (children == null) return; - - for (MtpObjectInfo obj : children) { - int format = obj.getFormat(); - switch (format) { - case MtpConstants.FORMAT_JFIF: - case MtpConstants.FORMAT_EXIF_JPEG: - jpeg.add(obj); - break; - case MtpConstants.FORMAT_ASSOCIATION: - dir.add(obj); - break; - default: - Log.w(TAG, "other type: name = " + obj.getName() - + ", format = " + format); - } - } - } - - public static MtpObjectInfo getObjectInfo(MtpContext mtpContext, int deviceId, - int objectId) { - String deviceName = UsbDevice.getDeviceName(deviceId); - return mtpContext.getMtpClient().getObjectInfo(deviceName, objectId); - } - - @Override - public ArrayList<MediaItem> getMediaItem(int start, int count) { - ArrayList<MediaItem> result = new ArrayList<MediaItem>(); - int begin = start; - int end = Math.min(start + count, mJpegChildren.size()); - - DataManager dataManager = mApplication.getDataManager(); - for (int i = begin; i < end; i++) { - MtpObjectInfo child = mJpegChildren.get(i); - Path childPath = mItemPath.getChild(child.getObjectHandle()); - synchronized (DataManager.LOCK) { - MtpImage image = (MtpImage) dataManager.peekMediaObject(childPath); - if (image == null) { - image = new MtpImage( - childPath, mApplication, mDeviceId, child, mMtpContext); - } else { - image.updateContent(child); - } - result.add(image); - } - } - return result; - } - - @Override - public int getMediaItemCount() { - return mJpegChildren.size(); - } - - @Override - public String getName() { - return mName; - } - - @Override - public long reload() { - if (mNotifier.isDirty()) { - mDataVersion = nextVersionNumber(); - mJpegChildren = loadItems(); - } - return mDataVersion; - } - - @Override - public int getSupportedOperations() { - return SUPPORT_IMPORT; - } - - @Override - public boolean Import() { - return mMtpContext.copyAlbum(mDeviceName, mName, mJpegChildren); - } - - @Override - public boolean isLeafAlbum() { - return true; - } -} |