Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2949a4ab authored by Jeff Sharkey's avatar Jeff Sharkey
Browse files

Follow storage refactoring in system.

Also add entry point for SystemUI unmounting, and require permissions
when launching into those flows.

Bug: 19993667
Change-Id: I703d2e5f118848a2e2e96ce1d7f970e5705a288a
parent e29dae68
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -1494,7 +1494,8 @@
        <activity android:name=".deviceinfo.StorageWizardInit"
                android:theme="@style/SuwThemeMaterial.Light"
                android:taskAffinity="com.android.settings.storage_wizard"
                android:exported="true" />
                android:exported="true"
                android:permission="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
        <activity android:name=".deviceinfo.StorageWizardFormatConfirm"
                android:taskAffinity="com.android.settings.storage_wizard"
                android:exported="false" />
@@ -1521,6 +1522,11 @@
                android:taskAffinity="com.android.settings.storage_wizard"
                android:exported="false" />

        <!-- Exported for SystemUI to trigger -->
        <receiver android:name=".deviceinfo.StorageUnmountReceiver"
                android:exported="true"
                android:permission="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />

        <activity android:name="ApnEditor"
                android:label="@string/apn_edit">
            <intent-filter>
+3 −3
Original line number Diff line number Diff line
@@ -46,9 +46,9 @@ public class PrivateVolumeFormatConfirm extends InstrumentedFragment {
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        final StorageManager storage = getActivity().getSystemService(StorageManager.class);
        final String volumeId = getArguments().getString(StorageSettings.EXTRA_VOLUME_ID);
        final String volumeId = getArguments().getString(VolumeInfo.EXTRA_VOLUME_ID);
        mVolume = storage.findVolumeById(volumeId);
        mDisk = storage.findDiskByVolumeId(volumeId);
        mDisk = storage.findDiskById(mVolume.diskId);

        final View view = inflater.inflate(R.layout.storage_internal_format, container, false);
        final TextView body = (TextView) view.findViewById(R.id.body);
@@ -65,7 +65,7 @@ public class PrivateVolumeFormatConfirm extends InstrumentedFragment {
        @Override
        public void onClick(View v) {
            final Intent intent = new Intent(getActivity(), StorageWizardFormatProgress.class);
            intent.putExtra(StorageWizardBase.EXTRA_DISK_ID, mDisk.id);
            intent.putExtra(DiskInfo.EXTRA_DISK_ID, mDisk.id);
            intent.putExtra(StorageWizardFormatProgress.EXTRA_FORMAT_PUBLIC, true);
            startActivity(intent);
            getActivity().finish();
+8 −9
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package com.android.settings.deviceinfo;

import static com.android.settings.deviceinfo.StorageSettings.EXTRA_VOLUME_ID;
import static com.android.settings.deviceinfo.StorageSettings.TAG;

import android.app.AlertDialog;
@@ -118,7 +117,7 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment {
        mUserManager = context.getSystemService(UserManager.class);
        mStorageManager = context.getSystemService(StorageManager.class);

        mVolumeId = getArguments().getString(EXTRA_VOLUME_ID);
        mVolumeId = getArguments().getString(VolumeInfo.EXTRA_VOLUME_ID);
        mVolume = mStorageManager.findVolumeById(mVolumeId);

        Preconditions.checkNotNull(mVolume);
@@ -159,7 +158,7 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment {
    }

    public void refresh() {
        getActivity().setTitle(mStorageManager.getBestVolumeDescription(mVolume.id));
        getActivity().setTitle(mStorageManager.getBestVolumeDescription(mVolume));

        // Valid options may have changed
        getFragmentManager().invalidateOptionsMenu();
@@ -298,15 +297,15 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment {
                RenameFragment.show(this);
                return true;
            case R.id.storage_mount:
                new MountTask(context, mVolume.id).execute();
                new MountTask(context, mVolume).execute();
                return true;
            case R.id.storage_unmount:
                args.putString(StorageSettings.EXTRA_VOLUME_ID, mVolume.id);
                args.putString(VolumeInfo.EXTRA_VOLUME_ID, mVolume.id);
                startFragment(this, PrivateVolumeUnmountConfirm.class.getCanonicalName(),
                        R.string.storage_menu_unmount, 0, args);
                return true;
            case R.id.storage_format:
                args.putString(StorageSettings.EXTRA_VOLUME_ID, mVolume.id);
                args.putString(VolumeInfo.EXTRA_VOLUME_ID, mVolume.id);
                startFragment(this, PrivateVolumeFormatConfirm.class.getCanonicalName(),
                        R.string.storage_menu_format, 0, args);
                return true;
@@ -345,7 +344,7 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment {
            return true;

        } else if (pref == mMisc) {
            intent = StorageSettings.buildBrowseIntent(mSharedVolume);
            intent = mSharedVolume.buildBrowseIntent();
        }

        if (intent != null) {
@@ -454,7 +453,7 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment {
            final Context context = getActivity();
            final StorageManager storageManager = context.getSystemService(StorageManager.class);

            final String volId = getArguments().getString(EXTRA_VOLUME_ID);
            final String volId = getArguments().getString(VolumeInfo.EXTRA_VOLUME_ID);
            final VolumeInfo vol = storageManager.findVolumeById(volId);

            final AlertDialog.Builder builder = new AlertDialog.Builder(context);
@@ -466,7 +465,7 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment {
            if (!TextUtils.isEmpty(vol.nickname)) {
                nickname.setText(vol.nickname);
            } else {
                nickname.setText(storageManager.getBestVolumeDescription(volId));
                nickname.setText(storageManager.getBestVolumeDescription(vol));
            }

            builder.setTitle(R.string.storage_rename_title);
+3 −3
Original line number Diff line number Diff line
@@ -46,9 +46,9 @@ public class PrivateVolumeUnmountConfirm extends InstrumentedFragment {
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        final StorageManager storage = getActivity().getSystemService(StorageManager.class);
        final String volumeId = getArguments().getString(StorageSettings.EXTRA_VOLUME_ID);
        final String volumeId = getArguments().getString(VolumeInfo.EXTRA_VOLUME_ID);
        mVolume = storage.findVolumeById(volumeId);
        mDisk = storage.findDiskByVolumeId(volumeId);
        mDisk = storage.findDiskById(mVolume.id);

        final View view = inflater.inflate(R.layout.storage_internal_unmount, container, false);
        final TextView body = (TextView) view.findViewById(R.id.body);
@@ -64,7 +64,7 @@ public class PrivateVolumeUnmountConfirm extends InstrumentedFragment {
    private final OnClickListener mConfirmListener = new OnClickListener() {
        @Override
        public void onClick(View v) {
            new UnmountTask(getActivity(), mVolume.id).execute();
            new UnmountTask(getActivity(), mVolume).execute();
            getActivity().finish();
        }
    };
+7 −11
Original line number Diff line number Diff line
@@ -16,8 +16,6 @@

package com.android.settings.deviceinfo;

import static com.android.settings.deviceinfo.StorageSettings.EXTRA_VOLUME_ID;

import android.content.Context;
import android.content.Intent;
import android.net.Uri;
@@ -49,8 +47,6 @@ import java.util.Objects;
public class PublicVolumeSettings extends SettingsPreferenceFragment {
    // TODO: disable unmount when providing over MTP/PTP

    private static final String PREF_FORMAT_INTERNAL = "debug.format_internal";

    private StorageManager mStorageManager;

    private String mVolumeId;
@@ -90,14 +86,14 @@ public class PublicVolumeSettings extends SettingsPreferenceFragment {
            final String fsUuid = DocumentsContract.getRootId(rootUri);
            mVolume = mStorageManager.findVolumeByUuid(fsUuid);
        } else {
            final String volId = getArguments().getString(EXTRA_VOLUME_ID);
            final String volId = getArguments().getString(VolumeInfo.EXTRA_VOLUME_ID);
            mVolume = mStorageManager.findVolumeById(volId);
        }

        Preconditions.checkNotNull(mVolume);
        Preconditions.checkState(mVolume.type == VolumeInfo.TYPE_PUBLIC);

        mDisk = mStorageManager.findDiskByVolumeId(mVolume.id);
        mDisk = mStorageManager.findDiskById(mVolume.diskId);
        Preconditions.checkNotNull(mDisk);

        mVolumeId = mVolume.id;
@@ -115,7 +111,7 @@ public class PublicVolumeSettings extends SettingsPreferenceFragment {
    }

    public void refresh() {
        getActivity().setTitle(mStorageManager.getBestVolumeDescription(mVolume.id));
        getActivity().setTitle(mStorageManager.getBestVolumeDescription(mVolume));

        final Context context = getActivity();
        final PreferenceScreen screen = getPreferenceScreen();
@@ -197,14 +193,14 @@ public class PublicVolumeSettings extends SettingsPreferenceFragment {
    public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference pref) {
        final Context context = getActivity();
        if (pref == mMount) {
            new MountTask(context, mVolume.id).execute();
            new MountTask(context, mVolume).execute();
        } else if (pref == mUnmount) {
            new UnmountTask(context, mVolume.id).execute();
            new UnmountTask(context, mVolume).execute();
        } else if (pref == mFormat) {
            new FormatTask(context, mVolume.id).execute();
            new FormatTask(context, mVolume).execute();
        } else if (pref == mFormatInternal) {
            final Intent intent = new Intent(context, StorageWizardFormatConfirm.class);
            intent.putExtra(StorageWizardBase.EXTRA_DISK_ID, mDisk.id);
            intent.putExtra(DiskInfo.EXTRA_DISK_ID, mDisk.id);
            startActivity(intent);
        }

Loading