Example usage for android.os.storage StorageVolume isPrimary

List of usage examples for android.os.storage StorageVolume isPrimary

Introduction

In this page you can find the example usage for android.os.storage StorageVolume isPrimary.

Prototype

public boolean isPrimary() 

Source Link

Document

Returns true if the volume is the primary shared/external storage, which is the volume backed by Environment#getExternalStorageDirectory() .

Usage

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//from  w  ww  . j a v  a 2 s .  c om
        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:com.android.server.MountService.java

private StorageVolume getPrimaryPhysicalVolume() {
    synchronized (mVolumesLock) {
        for (StorageVolume volume : mVolumes) {
            if (volume.isPrimary() && !volume.isEmulated()) {
                return volume;
            }//from w  w  w.j  a  v  a 2s  .com
        }
    }
    return null;
}

From source file:com.android.server.MountService.java

private void updatePublicVolumeState(StorageVolume volume, String state) {
    final String path = volume.getPath();
    final String oldState;
    synchronized (mVolumesLock) {
        oldState = mVolumeStates.put(path, state);
        volume.setState(state);//  w ww.  j  av  a 2 s.c  o  m
    }

    if (state.equals(oldState)) {
        Slog.w(TAG, String.format("Duplicate state transition (%s -> %s) for %s", state, state, path));
        return;
    }

    Slog.d(TAG, "volume state changed for " + path + " (" + oldState + " -> " + state + ")");

    // Tell PackageManager about changes to primary volume state, but only
    // when not emulated.
    if (volume.isPrimary() && !volume.isEmulated()) {
        if (Environment.MEDIA_UNMOUNTED.equals(state)) {
            mPms.updateExternalMediaStatus(false, false);

            /*
             * Some OBBs might have been unmounted when this volume was
             * unmounted, so send a message to the handler to let it know to
             * remove those from the list of mounted OBBS.
             */
            mObbActionHandler.sendMessage(mObbActionHandler.obtainMessage(OBB_FLUSH_MOUNT_STATE, path));
        } else if (Environment.MEDIA_MOUNTED.equals(state)) {
            mPms.updateExternalMediaStatus(true, false);
        }
    }

    synchronized (mListeners) {
        for (int i = mListeners.size() - 1; i >= 0; i--) {
            MountServiceBinderListener bl = mListeners.get(i);
            try {
                bl.mListener.onStorageStateChanged(path, oldState, state);
            } catch (RemoteException rex) {
                Slog.e(TAG, "Listener dead");
                mListeners.remove(i);
            } catch (Exception ex) {
                Slog.e(TAG, "Listener failed", ex);
            }
        }
    }
}