197a60d9d00240949b9642c28a34be118469eb727Winson Chung/* 297a60d9d00240949b9642c28a34be118469eb727Winson Chung * Copyright (C) 2015 The Android Open Source Project 397a60d9d00240949b9642c28a34be118469eb727Winson Chung * 497a60d9d00240949b9642c28a34be118469eb727Winson Chung * Licensed under the Apache License, Version 2.0 (the "License"); 597a60d9d00240949b9642c28a34be118469eb727Winson Chung * you may not use this file except in compliance with the License. 697a60d9d00240949b9642c28a34be118469eb727Winson Chung * You may obtain a copy of the License at 797a60d9d00240949b9642c28a34be118469eb727Winson Chung * 897a60d9d00240949b9642c28a34be118469eb727Winson Chung * http://www.apache.org/licenses/LICENSE-2.0 997a60d9d00240949b9642c28a34be118469eb727Winson Chung * 1097a60d9d00240949b9642c28a34be118469eb727Winson Chung * Unless required by applicable law or agreed to in writing, software 1197a60d9d00240949b9642c28a34be118469eb727Winson Chung * distributed under the License is distributed on an "AS IS" BASIS, 1297a60d9d00240949b9642c28a34be118469eb727Winson Chung * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1397a60d9d00240949b9642c28a34be118469eb727Winson Chung * See the License for the specific language governing permissions and 1497a60d9d00240949b9642c28a34be118469eb727Winson Chung * limitations under the License. 1597a60d9d00240949b9642c28a34be118469eb727Winson Chung */ 1697a60d9d00240949b9642c28a34be118469eb727Winson Chung 1797a60d9d00240949b9642c28a34be118469eb727Winson Chungpackage com.android.mtp; 1897a60d9d00240949b9642c28a34be118469eb727Winson Chung 199c2a6867578142b3e51fa8787a39d350c147b4faWinson Chungimport android.mtp.MtpStorageInfo; 209c2a6867578142b3e51fa8787a39d350c147b4faWinson Chung 2197a60d9d00240949b9642c28a34be118469eb727Winson Chungimport com.android.internal.annotations.VisibleForTesting; 229c2a6867578142b3e51fa8787a39d350c147b4faWinson Chung 2397a60d9d00240949b9642c28a34be118469eb727Winson Chungclass MtpRoot { 249c2a6867578142b3e51fa8787a39d350c147b4faWinson Chung final int mDeviceId; 2597a60d9d00240949b9642c28a34be118469eb727Winson Chung final int mStorageId; 2697a60d9d00240949b9642c28a34be118469eb727Winson Chung final String mDescription; 279c2a6867578142b3e51fa8787a39d350c147b4faWinson Chung final long mFreeSpace; 289c2a6867578142b3e51fa8787a39d350c147b4faWinson Chung final long mMaxCapacity; 2997a60d9d00240949b9642c28a34be118469eb727Winson Chung final String mVolumeIdentifier; 3097a60d9d00240949b9642c28a34be118469eb727Winson Chung 3197a60d9d00240949b9642c28a34be118469eb727Winson Chung @VisibleForTesting 3297a60d9d00240949b9642c28a34be118469eb727Winson Chung MtpRoot(int deviceId, 3397a60d9d00240949b9642c28a34be118469eb727Winson Chung int storageId, 349c2a6867578142b3e51fa8787a39d350c147b4faWinson Chung String description, 3597a60d9d00240949b9642c28a34be118469eb727Winson Chung long freeSpace, 3697a60d9d00240949b9642c28a34be118469eb727Winson Chung long maxCapacity, 3797a60d9d00240949b9642c28a34be118469eb727Winson Chung String volumeIdentifier) { 3897a60d9d00240949b9642c28a34be118469eb727Winson Chung mDeviceId = deviceId; 3997a60d9d00240949b9642c28a34be118469eb727Winson Chung mStorageId = storageId; 4097a60d9d00240949b9642c28a34be118469eb727Winson Chung mDescription = description; 4197a60d9d00240949b9642c28a34be118469eb727Winson Chung mFreeSpace = freeSpace; 4297a60d9d00240949b9642c28a34be118469eb727Winson Chung mMaxCapacity = maxCapacity; 4397a60d9d00240949b9642c28a34be118469eb727Winson Chung mVolumeIdentifier = volumeIdentifier; 4497a60d9d00240949b9642c28a34be118469eb727Winson Chung } 4597a60d9d00240949b9642c28a34be118469eb727Winson Chung 4697a60d9d00240949b9642c28a34be118469eb727Winson Chung MtpRoot(int deviceId, MtpStorageInfo storageInfo) { 4797a60d9d00240949b9642c28a34be118469eb727Winson Chung mDeviceId = deviceId; 4897a60d9d00240949b9642c28a34be118469eb727Winson Chung mStorageId = storageInfo.getStorageId(); 499c2a6867578142b3e51fa8787a39d350c147b4faWinson Chung mDescription = storageInfo.getDescription(); 509c2a6867578142b3e51fa8787a39d350c147b4faWinson Chung mFreeSpace = storageInfo.getFreeSpace(); 5183fbf18ced2a386dff5fd9bb30fa5d8229cb517aWinson Chung mMaxCapacity = storageInfo.getMaxCapacity(); 5283fbf18ced2a386dff5fd9bb30fa5d8229cb517aWinson Chung mVolumeIdentifier = storageInfo.getVolumeIdentifier(); 539c2a6867578142b3e51fa8787a39d350c147b4faWinson Chung } 5497a60d9d00240949b9642c28a34be118469eb727Winson Chung 5597a60d9d00240949b9642c28a34be118469eb727Winson Chung @Override 5697a60d9d00240949b9642c28a34be118469eb727Winson Chung public boolean equals(Object object) { 5797a60d9d00240949b9642c28a34be118469eb727Winson Chung if (!(object instanceof MtpRoot)) 5897a60d9d00240949b9642c28a34be118469eb727Winson Chung return false; 5997a60d9d00240949b9642c28a34be118469eb727Winson Chung final MtpRoot other = (MtpRoot) object; 6097a60d9d00240949b9642c28a34be118469eb727Winson Chung return mDeviceId == other.mDeviceId && 6197a60d9d00240949b9642c28a34be118469eb727Winson Chung mStorageId == other.mStorageId && 6297a60d9d00240949b9642c28a34be118469eb727Winson Chung mDescription.equals(other.mDescription) && 6397a60d9d00240949b9642c28a34be118469eb727Winson Chung mFreeSpace == other.mFreeSpace && 6497a60d9d00240949b9642c28a34be118469eb727Winson Chung mMaxCapacity == other.mMaxCapacity && 6597a60d9d00240949b9642c28a34be118469eb727Winson Chung mVolumeIdentifier.equals(other.mVolumeIdentifier); 6697a60d9d00240949b9642c28a34be118469eb727Winson Chung } 6797a60d9d00240949b9642c28a34be118469eb727Winson Chung 6897a60d9d00240949b9642c28a34be118469eb727Winson Chung @Override 6997a60d9d00240949b9642c28a34be118469eb727Winson Chung public int hashCode() { 7097a60d9d00240949b9642c28a34be118469eb727Winson Chung return mDeviceId ^ mStorageId ^ mDescription.hashCode() ^ 7197a60d9d00240949b9642c28a34be118469eb727Winson Chung ((int) mFreeSpace) ^ ((int) mMaxCapacity) ^ mVolumeIdentifier.hashCode(); 7283fbf18ced2a386dff5fd9bb30fa5d8229cb517aWinson Chung } 7383fbf18ced2a386dff5fd9bb30fa5d8229cb517aWinson Chung 7497a60d9d00240949b9642c28a34be118469eb727Winson Chung @Override 759c2a6867578142b3e51fa8787a39d350c147b4faWinson Chung public String toString() { 769c2a6867578142b3e51fa8787a39d350c147b4faWinson Chung return "MtpRoot{Name: " + mDescription + "}"; 779c2a6867578142b3e51fa8787a39d350c147b4faWinson Chung } 789c2a6867578142b3e51fa8787a39d350c147b4faWinson Chung} 799c2a6867578142b3e51fa8787a39d350c147b4faWinson Chung