From cf0e9ace5eecc4457b9bd6e92a3c8391c09654d9 Mon Sep 17 00:00:00 2001 From: Daichi Hirono Date: Fri, 17 Apr 2015 16:19:15 +0900 Subject: DocumentsUI: Save source file list into BaseActivity.State. This is needed so that the activity does not lost the list on screen rotation. BUG=20283251 Change-Id: I8f971bab0a0ce2066fd5fea29b98b355cb948ea6 --- packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java | 6 ++++++ .../DocumentsUI/src/com/android/documentsui/DirectoryFragment.java | 6 ++---- 2 files changed, 8 insertions(+), 4 deletions(-) (limited to 'packages/DocumentsUI') diff --git a/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java b/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java index 66792da..8039b71 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java +++ b/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java @@ -16,6 +16,7 @@ package com.android.documentsui; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -95,6 +96,9 @@ abstract class BaseActivity extends Activity { /** Instance state for every shown directory */ public HashMap> dirState = Maps.newHashMap(); + /** Currently copying file */ + public List selectedDocumentsForCopy = new ArrayList(); + public static final int ACTION_OPEN = 1; public static final int ACTION_CREATE = 2; public static final int ACTION_GET_CONTENT = 3; @@ -134,6 +138,7 @@ abstract class BaseActivity extends Activity { DurableUtils.writeToParcel(out, stack); out.writeString(currentSearch); out.writeMap(dirState); + out.writeList(selectedDocumentsForCopy); } public static final Creator CREATOR = new Creator() { @@ -154,6 +159,7 @@ abstract class BaseActivity extends Activity { DurableUtils.readFromParcel(in, state.stack); state.currentSearch = in.readString(); in.readMap(state.dirState, null); + in.readList(state.selectedDocumentsForCopy, null); return state; } diff --git a/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java b/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java index a617bd3..37a14c6 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java +++ b/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java @@ -100,8 +100,6 @@ public class DirectoryFragment extends Fragment { private AbsListView mCurrentView; - private List mSelectedDocumentsForCopy; - public static final int TYPE_NORMAL = 1; public static final int TYPE_SEARCH = 2; public static final int TYPE_RECENT_OPEN = 3; @@ -357,7 +355,7 @@ public class DirectoryFragment extends Fragment { return; } - final List docs = mSelectedDocumentsForCopy; + final List docs = getDisplayState(this).selectedDocumentsForCopy; final Intent copyIntent = new Intent(context, CopyService.class); copyIntent.putParcelableArrayListExtra(CopyService.EXTRA_SRC_LIST, new ArrayList(docs)); copyIntent.putExtra(CopyService.EXTRA_STACK, data.getParcelableExtra(CopyService.EXTRA_STACK)); @@ -674,7 +672,7 @@ public class DirectoryFragment extends Fragment { } private void onCopyDocuments(List docs) { - mSelectedDocumentsForCopy = docs; + getDisplayState(this).selectedDocumentsForCopy = docs; // Pop up a dialog to pick a destination. This is inadequate but works for now. // TODO: Implement a picker that is to spec. -- cgit v1.1