List of usage examples for android.os.storage StorageVolume getDescription
public String getDescription(Context context)
From source file:com.example.android.scopeddirectoryaccess.ScopedDirectoryAccessFragment.java
@Override public void onViewCreated(final View rootView, Bundle savedInstanceState) { super.onViewCreated(rootView, savedInstanceState); mCurrentDirectoryTextView = (TextView) rootView.findViewById(R.id.textview_current_directory); mNothingInDirectoryTextView = (TextView) rootView.findViewById(R.id.textview_nothing_in_directory); mPrimaryVolumeNameTextView = (TextView) rootView.findViewById(R.id.textview_primary_volume_name); // Set onClickListener for the primary volume Button openPictureButton = (Button) rootView.findViewById(R.id.button_open_directory_primary_volume); openPictureButton.setOnClickListener(new View.OnClickListener() { @Override//w w w.ja v a2 s. c o m public void onClick(View view) { String selected = mDirectoriesSpinner.getSelectedItem().toString(); String directoryName = getDirectoryName(selected); StorageVolume storageVolume = mStorageManager.getPrimaryStorageVolume(); Intent intent = storageVolume.createAccessIntent(directoryName); startActivityForResult(intent, OPEN_DIRECTORY_REQUEST_CODE); } }); // Set onClickListener for the external volumes if exists List<StorageVolume> storageVolumes = mStorageManager.getStorageVolumes(); LinearLayout containerVolumes = (LinearLayout) mActivity.findViewById(R.id.container_volumes); for (final StorageVolume volume : storageVolumes) { String volumeDescription = volume.getDescription(mActivity); if (volume.isPrimary()) { // Primary volume area is already added... if (volumeDescription != null) { // ...but with a default name: set it to the real name when available. mPrimaryVolumeNameTextView.setText(volumeDescription); } continue; } LinearLayout volumeArea = (LinearLayout) mActivity.getLayoutInflater().inflate(R.layout.volume_entry, containerVolumes); TextView volumeName = (TextView) volumeArea.findViewById(R.id.textview_volume_name); volumeName.setText(volumeDescription); Button button = (Button) volumeArea.findViewById(R.id.button_open_directory); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String selected = mDirectoriesSpinner.getSelectedItem().toString(); String directoryName = getDirectoryName(selected); Intent intent = volume.createAccessIntent(directoryName); startActivityForResult(intent, OPEN_DIRECTORY_REQUEST_CODE); } }); } RecyclerView recyclerView = (RecyclerView) rootView.findViewById(R.id.recyclerview_directory_entries); if (savedInstanceState != null) { mDirectoryEntries = savedInstanceState.getParcelableArrayList(DIRECTORY_ENTRIES_KEY); mCurrentDirectoryTextView.setText(savedInstanceState.getString(SELECTED_DIRECTORY_KEY)); mAdapter = new DirectoryEntryAdapter(mDirectoryEntries); if (mAdapter.getItemCount() == 0) { mNothingInDirectoryTextView.setVisibility(View.VISIBLE); } } else { mDirectoryEntries = new ArrayList<>(); mAdapter = new DirectoryEntryAdapter(); } recyclerView.setAdapter(mAdapter); recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); mDirectoriesSpinner = (Spinner) rootView.findViewById(R.id.spinner_directories); ArrayAdapter<CharSequence> directoriesAdapter = ArrayAdapter.createFromResource(getActivity(), R.array.directories, android.R.layout.simple_spinner_item); directoriesAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); mDirectoriesSpinner.setAdapter(directoriesAdapter); }
From source file:net.sf.fakenames.fddemo.BaseDirLayout.java
private void parseMounts(HashMap<File, String> pathNameMap, List<StorageVolume> volumes) throws IOException { mounts: for (LongObjectCursor<MountInfo.Mount> mount : mountInfo.mountMap) { final Iterator<Map.Entry<File, String>> i = pathNameMap.entrySet().iterator(); while (i.hasNext()) { final Map.Entry<File, String> e = i.next(); final String p = e.getKey().toString(); if (p.equals(mount.value.rootPath) || p.startsWith(mount.value.rootPath + '/')) { i.remove();//from www .j a va 2 s . com pathNameMap.remove(e.getKey()); mount.value.rootPath = p; mount.value.description = e.getValue(); usableFilesystems.add(mount.value.fstype); break; } } if (Build.VERSION.SDK_INT >= 24) { final File mountRoot = new File(mount.value.rootPath); final StorageManager sm = (StorageManager) getSystemService(STORAGE_SERVICE); Iterator<StorageVolume> j = volumes.iterator(); while (j.hasNext()) { StorageVolume knownVolume = j.next(); if (knownVolume.equals(sm.getStorageVolume(mountRoot))) { // seems like the mount belongs to the storage device, appropriately labeled // by the manufacturer use system-provided description j.remove(); mount.value.description = knownVolume.getDescription(this); usableFilesystems.add(mount.value.fstype); continue mounts; } } } } final Set<File> current = new HashSet<>(); Collections.addAll(current, home.listFiles()); // display all mounts with sensible descriptions for (LongObjectCursor<MountInfo.Mount> mount : mountInfo.mountMap) { if (TextUtils.isEmpty(mount.value.description)) { continue; } File descFile = new File(home, mount.value.description); if (!descFile.exists()) { if (current.contains(descFile)) { // a broken link... //noinspection ResultOfMethodCallIgnored descFile.delete(); } @Fd int dir = os.opendir(home.getPath()); os.symlinkat(mount.value.rootPath, dir, descFile.getName()); } } }
From source file:com.freeme.filemanager.view.FileViewFragment.java
private void initVolumeState(StorageVolume paramStorageVolume) { if (paramStorageVolume == null) { return;/*w w w . j a va 2 s . co m*/ } this.mVolumePath = paramStorageVolume.getPath(); this.mVolumeDescription = paramStorageVolume.getDescription(this.mActivity); //*/ freeme.liuhaoran , 20160728 , adapter zhanxun M if (paramStorageVolume.getStorageId() == 0) { mVolumeDescription = getString(R.string.storage_phone); } //*/ Log.i("liuhaoran", "mVolumeDescription = " + mVolumeDescription + "----" + paramStorageVolume.getStorageId()); if (mFileViewInteractionHub == null) { mFileViewInteractionHub = new FileViewInteractionHub(this, 1); } mFileViewInteractionHub.setRootPath(this.mVolumePath); }