Home | History | Annotate | Download | only in mtp
      1 /*
      2  * Copyright (C) 2011 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package android.mtp;
     18 
     19 import android.content.Context;
     20 import android.os.storage.StorageVolume;
     21 
     22 /**
     23  * This class represents a storage unit on an MTP device.
     24  * Used only for MTP support in USB responder mode.
     25  * MtpStorageInfo is used in MTP host mode
     26  *
     27  * @hide
     28  */
     29 public class MtpStorage {
     30 
     31     private final int mStorageId;
     32     private final String mPath;
     33     private final String mDescription;
     34     private final long mReserveSpace;
     35     private final boolean mRemovable;
     36     private final long mMaxFileSize;
     37 
     38     public MtpStorage(StorageVolume volume, Context context) {
     39         mStorageId = volume.getStorageId();
     40         mPath = volume.getPath();
     41         mDescription = volume.getDescription(context);
     42         mReserveSpace = volume.getMtpReserveSpace() * 1024L * 1024L;
     43         mRemovable = volume.isRemovable();
     44         mMaxFileSize = volume.getMaxFileSize();
     45     }
     46 
     47     /**
     48      * Returns the storage ID for the storage unit
     49      *
     50      * @return the storage ID
     51      */
     52     public final int getStorageId() {
     53         return mStorageId;
     54     }
     55 
     56    /**
     57      * Returns the file path for the storage unit's storage in the file system
     58      *
     59      * @return the storage file path
     60      */
     61     public final String getPath() {
     62         return mPath;
     63     }
     64 
     65    /**
     66      * Returns the description string for the storage unit
     67      *
     68      * @return the storage unit description
     69      */
     70     public final String getDescription() {
     71         return mDescription;
     72     }
     73 
     74    /**
     75      * Returns the amount of space to reserve on the storage file system.
     76      * This can be set to a non-zero value to prevent MTP from filling up the entire storage.
     77      *
     78      * @return reserved space in bytes.
     79      */
     80     public final long getReserveSpace() {
     81         return mReserveSpace;
     82     }
     83 
     84    /**
     85      * Returns true if the storage is removable.
     86      *
     87      * @return is removable
     88      */
     89     public final boolean isRemovable() {
     90         return mRemovable;
     91     }
     92 
     93    /**
     94      * Returns maximum file size for the storage, or zero if it is unbounded.
     95      *
     96      * @return maximum file size
     97      */
     98     public long getMaxFileSize() {
     99         return mMaxFileSize;
    100     }
    101 }
    102