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

Commit 9fa03b36 authored by Christopher R. Palmer's avatar Christopher R. Palmer Committed by Abhisek Devkota
Browse files

apps2sd: Only allow "move to ___" if the media is mounted [1/2]

Change-Id: Id398c5906b442b1c92aa930e3bc9d571827641f7
parent 6c771d2d
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -58,6 +58,8 @@ import android.os.IBinder;
import android.os.Message;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.storage.StorageEventListener;
import android.os.storage.StorageManager;
import android.os.UserHandle;
import android.os.UserManager;
import android.text.SpannableString;
@@ -111,6 +113,7 @@ public class InstalledAppDetails extends Fragment
    private AppWidgetManager mAppWidgetManager;
    private DevicePolicyManager mDpm;
    private ISms mSmsManager;
    private StorageManager mStorageManager;
    private ApplicationsState mState;
    private ApplicationsState.Session mSession;
    private ApplicationsState.AppEntry mAppEntry;
@@ -492,6 +495,8 @@ public class InstalledAppDetails extends Fragment
        mAppWidgetManager = AppWidgetManager.getInstance(getActivity());
        mDpm = (DevicePolicyManager)getActivity().getSystemService(Context.DEVICE_POLICY_SERVICE);
        mSmsManager = ISms.Stub.asInterface(ServiceManager.getService("isms"));
        mStorageManager = StorageManager.from(getActivity());
        mStorageManager.registerListener(mStorageListener);

        mCanBeOnSdCardChecker = new CanBeOnSdCardChecker();

@@ -694,6 +699,7 @@ public class InstalledAppDetails extends Fragment
        
        mAppControlRestricted = mUserManager.hasUserRestriction(UserManager.DISALLOW_APPS_CONTROL);
        mSession.resume();
        mStorageManager.registerListener(mStorageListener);
        if (!refreshUi()) {
            setIntentAndFinish(true, true);
        }
@@ -703,12 +709,14 @@ public class InstalledAppDetails extends Fragment
    public void onPause() {
        super.onPause();
        mSession.pause();
        mStorageManager.unregisterListener(mStorageListener);
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        mSession.release();
        mStorageManager.unregisterListener(mStorageListener);
    }

    @Override
@@ -739,6 +747,13 @@ public class InstalledAppDetails extends Fragment
    public void onRunningStateChanged(boolean running) {
    }

    private StorageEventListener mStorageListener = new StorageEventListener() {
        @Override
        public void onStorageStateChanged(String path, String oldState, String newState) {
            refreshButtons();
        }
    };

    private String retrieveAppEntry() {
        final Bundle args = getArguments();
        String packageName = (args != null) ? args.getString(ARG_PACKAGE_NAME) : null;
+3 −1
Original line number Diff line number Diff line
@@ -102,7 +102,9 @@ final class CanBeOnSdCardChecker {
    
    boolean check(ApplicationInfo info) {
        boolean canBe = false;
        if ((info.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0) {
        if (!PackageHelper.isExternalInstallPossible()) {
            // Don't even bother checking the other cases, no media is available
        } else if ((info.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0) {
            canBe = true;
        } else {
            if ((info.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {