Move Activity classes to own packages.
FilesActivity > manager/ManageActivity
DocumentsActivity > picker/PickActivity
Change-Id: If2efb07fbebbd6ef84aa744af17c8cbeac05d770
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 206f9fc..cdad8d4 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -15,7 +15,7 @@
android:supportsRtl="true">
<activity
- android:name=".DocumentsActivity"
+ android:name=".picker.PickActivity"
android:theme="@style/DocumentsTheme"
android:icon="@drawable/picker_icon">
<intent-filter>
@@ -43,18 +43,26 @@
</activity>
<activity
- android:name=".LauncherActivity"
+ android:name=".manager.LauncherActivity"
android:label="@string/downloads_label"
android:icon="@drawable/files_icon"
android:theme="@android:style/Theme.NoDisplay">
+ </activity>
+
+ <!-- Preserve original launcher activity from Nougat. -->
+ <activity-alias
+ android:name=".Launcher"
+ android:targetActivity=".manager.LauncherActivity"
+ android:label="@string/downloads_label"
+ android:icon="@drawable/files_icon" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
- </activity>
+ </activity-alias>
<activity
- android:name=".FilesActivity"
+ android:name=".manager.ManageActivity"
android:label="@string/downloads_label"
android:icon="@drawable/files_icon"
android:documentLaunchMode="intoExisting"
diff --git a/app-perf-tests/src/com/android/documentsui/FilesAppPerfTest.java b/app-perf-tests/src/com/android/documentsui/FilesAppPerfTest.java
index ce2fc13..d39b49c 100644
--- a/app-perf-tests/src/com/android/documentsui/FilesAppPerfTest.java
+++ b/app-perf-tests/src/com/android/documentsui/FilesAppPerfTest.java
@@ -27,7 +27,6 @@
import android.support.test.uiautomator.UiDevice;
import android.test.InstrumentationTestCase;
import android.test.suitebuilder.annotation.LargeTest;
-import android.util.Log;
import java.util.Arrays;
import java.util.List;
diff --git a/perf-tests/src/com/android/documentsui/FilesActivityPerfTest.java b/perf-tests/src/com/android/documentsui/FilesActivityPerfTest.java
index bf056f1..a4a4a86 100644
--- a/perf-tests/src/com/android/documentsui/FilesActivityPerfTest.java
+++ b/perf-tests/src/com/android/documentsui/FilesActivityPerfTest.java
@@ -30,6 +30,7 @@
import com.android.documentsui.model.RootInfo;
import com.android.documentsui.EventListener;
+import com.android.documentsui.manager.ManageActivity;
import java.util.ArrayList;
import java.util.Arrays;
@@ -38,7 +39,7 @@
import java.util.concurrent.CountDownLatch;
@LargeTest
-public class FilesActivityPerfTest extends ActivityTest<FilesActivity> {
+public class FilesActivityPerfTest extends ActivityTest<ManageActivity> {
// Constants starting with KEY_ are used to report metrics to APCT.
private static final String KEY_FILES_LISTED_PERFORMANCE_FIRST =
@@ -53,7 +54,7 @@
private static final int NUM_MEASUREMENTS = 10;
public FilesActivityPerfTest() {
- super(FilesActivity.class);
+ super(ManageActivity.class);
}
@Override
diff --git a/perf-tests/src/com/android/documentsui/FilesJankPerfTest.java b/perf-tests/src/com/android/documentsui/FilesJankPerfTest.java
index 9925d5b..84d23f7 100644
--- a/perf-tests/src/com/android/documentsui/FilesJankPerfTest.java
+++ b/perf-tests/src/com/android/documentsui/FilesJankPerfTest.java
@@ -33,8 +33,8 @@
import android.support.test.uiautomator.UiScrollable;
import android.util.Log;
-import com.android.documentsui.FilesActivity;
import com.android.documentsui.bots.RootsListBot;
+import com.android.documentsui.manager.ManageActivity;
import com.android.documentsui.bots.DirectoryListBot;
@LargeTest
@@ -53,7 +53,7 @@
mRootsListBot = new RootsListBot(device, context, BOT_TIMEOUT);
mDirListBot = new DirectoryListBot(device, context, BOT_TIMEOUT);
- final Intent intent = new Intent(context, FilesActivity.class);
+ final Intent intent = new Intent(context, ManageActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mActivity = getInstrumentation().startActivitySync(intent);
try {
diff --git a/src/com/android/documentsui/BaseActivity.java b/src/com/android/documentsui/BaseActivity.java
index 7ae2e51..2970eb1 100644
--- a/src/com/android/documentsui/BaseActivity.java
+++ b/src/com/android/documentsui/BaseActivity.java
@@ -104,14 +104,16 @@
private static final String BENCHMARK_TESTING_PACKAGE = "com.android.documentsui.appperftests";
- State mState;
- @Nullable RetainedState mRetainedState;
- RootsCache mRoots;
- SearchViewManager mSearchManager;
- DrawerController mDrawer;
- NavigationViewManager mNavigator;
+ protected SearchViewManager mSearchManager;
+ // TODO: Unpublic this by injecting it into LoadLastAccessedStackTask
+ public State mState;
+
+ protected @Nullable RetainedState mRetainedState;
+ protected RootsCache mRoots;
+ protected DrawerController mDrawer;
+ protected NavigationViewManager mNavigator;
List<EventListener> mEventListeners = new ArrayList<>();
- SortController mSortController;
+ protected SortController mSortController;
private final String mTag;
private final ContentObserver mRootsCacheObserver = new ContentObserver(new Handler()) {
@@ -134,11 +136,11 @@
public abstract MenuManager getMenuManager();
public abstract DirectoryDetails getDirectoryDetails();
- abstract void onTaskFinished(Uri... uris);
- abstract void refreshDirectory(int anim);
+ protected abstract void onTaskFinished(Uri... uris);
+ protected abstract void refreshDirectory(int anim);
/** Allows sub-classes to include information in a newly created State instance. */
- abstract void includeState(State initialState);
- abstract void onDirectoryCreated(DocumentInfo doc);
+ protected abstract void includeState(State initialState);
+ protected abstract void onDirectoryCreated(DocumentInfo doc);
public BaseActivity(@LayoutRes int layoutId, String tag) {
mLayoutId = layoutId;
@@ -321,11 +323,11 @@
}
}
- final @Nullable DirectoryFragment getDirectoryFragment() {
+ protected final @Nullable DirectoryFragment getDirectoryFragment() {
return DirectoryFragment.get(getFragmentManager());
}
- void showCreateDirectoryDialog() {
+ protected void showCreateDirectoryDialog() {
Metrics.logUserAction(this, Metrics.USER_ACTION_CREATE_DIR);
CreateDirectoryFragment.show(getFragmentManager());
@@ -335,7 +337,7 @@
* Returns true if a directory can be created in the current location.
* @return
*/
- boolean canCreateDirectory() {
+ protected boolean canCreateDirectory() {
final RootInfo root = getCurrentRoot();
final DocumentInfo cwd = getCurrentDirectory();
return cwd != null
@@ -345,7 +347,7 @@
&& !root.isDownloads();
}
- void openContainerDocument(DocumentInfo doc) {
+ protected void openContainerDocument(DocumentInfo doc) {
assert(doc.isContainer());
notifyDirectoryNavigated(doc.derivedUri);
@@ -379,7 +381,7 @@
invalidateOptionsMenu();
}
- final void loadRoot(final Uri uri) {
+ protected final void loadRoot(final Uri uri) {
new LoadRootTask(this, uri).executeOnExecutor(
ProviderExecutor.forAuthority(uri.getAuthority()));
}
@@ -417,7 +419,7 @@
DirectoryFragment.reloadSearch(fm, root, cwd, query);
}
- final List<String> getExcludedAuthorities() {
+ private final List<String> getExcludedAuthorities() {
List<String> authorities = new ArrayList<>();
if (getIntent().getBooleanExtra(DocumentsContract.EXTRA_EXCLUDE_SELF, false)) {
// Exclude roots provided by the calling package.
@@ -440,7 +442,7 @@
return (root.flags & Root.FLAG_SUPPORTS_SEARCH) != 0;
}
- final String getCallingPackageMaybeExtra() {
+ public final String getCallingPackageMaybeExtra() {
String callingPackage = getCallingPackage();
// System apps can set the calling package name using an extra.
try {
@@ -514,10 +516,7 @@
}
public void setPending(boolean pending) {
- final SaveFragment save = SaveFragment.get(getFragmentManager());
- if (save != null) {
- save.setPending(pending);
- }
+ // TODO: Isolate this behavior to PickActivity.
}
@Override
@@ -601,7 +600,7 @@
super.onBackPressed();
}
- boolean onBeforePopDir() {
+ protected boolean onBeforePopDir() {
// Files app overrides this with some fancy logic.
return false;
}
diff --git a/src/com/android/documentsui/CheckedTask.java b/src/com/android/documentsui/CheckedTask.java
index 747eb9c..242a279 100644
--- a/src/com/android/documentsui/CheckedTask.java
+++ b/src/com/android/documentsui/CheckedTask.java
@@ -41,13 +41,13 @@
}
/** Called prior to run being executed. Analogous to {@link AsyncTask#onPreExecute} */
- void prepare() {}
+ protected void prepare() {}
/** Analogous to {@link AsyncTask#doInBackground} */
- abstract Output run(Input... input);
+ protected abstract Output run(Input... input);
/** Analogous to {@link AsyncTask#onPostExecute} */
- abstract void finish(Output output);
+ protected abstract void finish(Output output);
@Override
final protected void onPreExecute() {
diff --git a/src/com/android/documentsui/DocumentsMenuManager.java b/src/com/android/documentsui/DocumentsMenuManager.java
index e9d502e..035268e 100644
--- a/src/com/android/documentsui/DocumentsMenuManager.java
+++ b/src/com/android/documentsui/DocumentsMenuManager.java
@@ -25,7 +25,7 @@
import android.view.Menu;
import android.view.MenuItem;
-final class DocumentsMenuManager extends MenuManager {
+public final class DocumentsMenuManager extends MenuManager {
private boolean mPicking;
diff --git a/src/com/android/documentsui/DrawerController.java b/src/com/android/documentsui/DrawerController.java
index 97d459b..eca3f0a 100644
--- a/src/com/android/documentsui/DrawerController.java
+++ b/src/com/android/documentsui/DrawerController.java
@@ -36,7 +36,7 @@
*
* @see DrawerController#create(DrawerLayout)
*/
-abstract class DrawerController implements DrawerListener {
+public abstract class DrawerController implements DrawerListener {
public static final String TAG = "DrawerController";
// Drawer opening triggered by tapping the navigation icon
@@ -54,11 +54,12 @@
@Retention(RetentionPolicy.SOURCE)
public @interface Trigger {}
+ public abstract void update();
/**
* Toggles the drawer and sets the OPENED_OTHER as the action that causes opening the drawer.
* @param open
*/
- abstract void setOpen(boolean open);
+ public abstract void setOpen(boolean open);
/**
* Toggles the drawer.
@@ -66,10 +67,9 @@
* @param trigger Indicates what action caused opening the drawer. It is ignored for closing.
*/
abstract void setOpen(boolean open, @Trigger int trigger);
- abstract boolean isPresent();
- abstract boolean isOpen();
+ public abstract boolean isPresent();
+ public abstract boolean isOpen();
abstract void setTitle(String title);
- abstract void update();
/**
* Returns a controller suitable for {@code Layout}.
@@ -166,7 +166,7 @@
}
@Override
- void setOpen(boolean open) {
+ public void setOpen(boolean open) {
setOpen(open, OPENED_OTHER);
}
@@ -181,12 +181,12 @@
}
@Override
- boolean isOpen() {
+ public boolean isOpen() {
return mLayout.isDrawerOpen(mDrawer);
}
@Override
- boolean isPresent() {
+ public boolean isPresent() {
return true;
}
@@ -196,7 +196,7 @@
}
@Override
- void update() {
+ public void update() {
mToggle.syncState();
}
@@ -232,18 +232,18 @@
private static final class DummyDrawerController extends DrawerController {
@Override
- void setOpen(boolean open) {}
+ public void setOpen(boolean open) {}
@Override
- void setOpen(boolean open, @Trigger int trigger) {}
+ public void setOpen(boolean open, @Trigger int trigger) {}
@Override
- boolean isOpen() {
+ public boolean isOpen() {
return false;
}
@Override
- boolean isPresent() {
+ public boolean isPresent() {
return false;
}
@@ -251,7 +251,7 @@
void setTitle(String title) {}
@Override
- void update() {}
+ public void update() {}
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {}
diff --git a/src/com/android/documentsui/FilesMenuManager.java b/src/com/android/documentsui/FilesMenuManager.java
index f5ccbd5..94ea4f9 100644
--- a/src/com/android/documentsui/FilesMenuManager.java
+++ b/src/com/android/documentsui/FilesMenuManager.java
@@ -21,7 +21,7 @@
import com.android.documentsui.model.RootInfo;
-final class FilesMenuManager extends MenuManager {
+public final class FilesMenuManager extends MenuManager {
public FilesMenuManager(SearchViewManager searchManager, State displayState) {
super(searchManager, displayState);
diff --git a/src/com/android/documentsui/Metrics.java b/src/com/android/documentsui/Metrics.java
index 3c45a93..22d7f34 100644
--- a/src/com/android/documentsui/Metrics.java
+++ b/src/com/android/documentsui/Metrics.java
@@ -31,6 +31,7 @@
import android.util.Log;
import com.android.documentsui.State.ActionType;
+import com.android.documentsui.manager.LauncherActivity;
import com.android.documentsui.model.DocumentInfo;
import com.android.documentsui.model.RootInfo;
import com.android.documentsui.services.FileOperationService;
diff --git a/src/com/android/documentsui/NavigationViewManager.java b/src/com/android/documentsui/NavigationViewManager.java
index 8c0972b..1479ed4 100644
--- a/src/com/android/documentsui/NavigationViewManager.java
+++ b/src/com/android/documentsui/NavigationViewManager.java
@@ -81,7 +81,7 @@
}
}
- void update() {
+ public void update() {
// TODO: Looks to me like this block is never getting hit.
if (mEnv.isSearchExpanded()) {
diff --git a/src/com/android/documentsui/PairedTask.java b/src/com/android/documentsui/PairedTask.java
index 7d2da0b..fe0e0f8 100644
--- a/src/com/android/documentsui/PairedTask.java
+++ b/src/com/android/documentsui/PairedTask.java
@@ -17,7 +17,6 @@
package com.android.documentsui;
import android.app.Activity;
-import android.os.AsyncTask;
/**
* An {@link CheckedTask} that guards work with checks that a paired {@link Activity}
@@ -27,7 +26,7 @@
* @template Input input type
* @template Output output type
*/
-abstract class PairedTask<Owner extends Activity, Input, Output>
+public abstract class PairedTask<Owner extends Activity, Input, Output>
extends CheckedTask<Input, Output> {
protected final Owner mOwner;
diff --git a/src/com/android/documentsui/PickFragment.java b/src/com/android/documentsui/PickFragment.java
index 933506c..e7ce944 100644
--- a/src/com/android/documentsui/PickFragment.java
+++ b/src/com/android/documentsui/PickFragment.java
@@ -31,6 +31,7 @@
import android.widget.Button;
import com.android.documentsui.model.DocumentInfo;
+import com.android.documentsui.picker.PickActivity;
import com.android.documentsui.services.FileOperationService.OpType;
/**
@@ -81,7 +82,7 @@
private View.OnClickListener mPickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
- final DocumentsActivity activity = DocumentsActivity.get(PickFragment.this);
+ final PickActivity activity = PickActivity.get(PickFragment.this);
activity.onPickRequested(mPickTarget);
}
};
diff --git a/src/com/android/documentsui/RootsFragment.java b/src/com/android/documentsui/RootsFragment.java
index 335ae4c..e4d44f2 100644
--- a/src/com/android/documentsui/RootsFragment.java
+++ b/src/com/android/documentsui/RootsFragment.java
@@ -63,6 +63,7 @@
import com.android.documentsui.clipping.DocumentClipper;
import com.android.documentsui.model.DocumentInfo;
import com.android.documentsui.model.RootInfo;
+import com.android.documentsui.picker.PickActivity;
import com.android.documentsui.services.FileOperations;
import java.util.ArrayList;
@@ -549,7 +550,7 @@
@Override
void open(RootsFragment fragment) {
- DocumentsActivity activity = DocumentsActivity.get(fragment);
+ PickActivity activity = PickActivity.get(fragment);
Metrics.logAppVisited(fragment.getActivity(), info);
activity.onAppPicked(info);
}
diff --git a/src/com/android/documentsui/SearchViewManager.java b/src/com/android/documentsui/SearchViewManager.java
index de2d155..63c07dd 100644
--- a/src/com/android/documentsui/SearchViewManager.java
+++ b/src/com/android/documentsui/SearchViewManager.java
@@ -295,12 +295,11 @@
return mCurrentSearch;
}
- boolean isSearching() {
+ public boolean isSearching() {
return mCurrentSearch != null;
}
boolean isExpanded() {
return mSearchExpanded;
}
-
}
diff --git a/src/com/android/documentsui/dirlist/DirectoryFragment.java b/src/com/android/documentsui/dirlist/DirectoryFragment.java
index fe07958..29b605d 100644
--- a/src/com/android/documentsui/dirlist/DirectoryFragment.java
+++ b/src/com/android/documentsui/dirlist/DirectoryFragment.java
@@ -67,7 +67,6 @@
import com.android.documentsui.BaseActivity;
import com.android.documentsui.DirectoryLoader;
import com.android.documentsui.DirectoryResult;
-import com.android.documentsui.DocumentsActivity;
import com.android.documentsui.DocumentsApplication;
import com.android.documentsui.Events.InputEvent;
import com.android.documentsui.Events.MotionInputEvent;
@@ -89,6 +88,7 @@
import com.android.documentsui.dirlist.MultiSelectManager.Selection;
import com.android.documentsui.model.DocumentInfo;
import com.android.documentsui.model.RootInfo;
+import com.android.documentsui.picker.PickActivity;
import com.android.documentsui.services.FileOperation;
import com.android.documentsui.services.FileOperationService;
import com.android.documentsui.services.FileOperationService.OpType;
@@ -862,7 +862,7 @@
Shared.ACTION_PICK_COPY_DESTINATION,
Uri.EMPTY,
getActivity(),
- DocumentsActivity.class);
+ PickActivity.class);
UrisSupplier srcs;
try {
diff --git a/src/com/android/documentsui/LauncherActivity.java b/src/com/android/documentsui/manager/LauncherActivity.java
similarity index 95%
rename from src/com/android/documentsui/LauncherActivity.java
rename to src/com/android/documentsui/manager/LauncherActivity.java
index 5d7e8cd..165bb14 100644
--- a/src/com/android/documentsui/LauncherActivity.java
+++ b/src/com/android/documentsui/manager/LauncherActivity.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.documentsui;
+package com.android.documentsui.manager;
import static com.android.documentsui.Shared.DEBUG;
@@ -29,6 +29,8 @@
import android.support.annotation.Nullable;
import android.util.Log;
+import com.android.documentsui.Shared;
+
import java.util.List;
/**
@@ -97,7 +99,7 @@
}
static final Intent createLaunchIntent(Activity activity) {
- Intent intent = new Intent(activity, FilesActivity.class);
+ Intent intent = new Intent(activity, ManageActivity.class);
intent.setData(buildLaunchUri());
// Relay any config overrides bits present in the original intent.
@@ -128,7 +130,7 @@
.build();
}
- static boolean isLaunchUri(@Nullable Uri uri) {
+ public static boolean isLaunchUri(@Nullable Uri uri) {
boolean result = uri != null && LAUNCH_CONTROL_AUTHORITY.equals(uri.getAuthority());
return result;
}
diff --git a/src/com/android/documentsui/FilesActivity.java b/src/com/android/documentsui/manager/ManageActivity.java
similarity index 94%
rename from src/com/android/documentsui/FilesActivity.java
rename to src/com/android/documentsui/manager/ManageActivity.java
index 1d60387..2cde713 100644
--- a/src/com/android/documentsui/FilesActivity.java
+++ b/src/com/android/documentsui/manager/ManageActivity.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.documentsui;
+package com.android.documentsui.manager;
import static com.android.documentsui.OperationDialogFragment.DIALOG_TYPE_UNKNOWN;
import static com.android.documentsui.Shared.DEBUG;
@@ -34,8 +34,22 @@
import android.view.Menu;
import android.view.MenuItem;
+import com.android.documentsui.BaseActivity;
+import com.android.documentsui.DocumentsApplication;
+import com.android.documentsui.FilesMenuManager;
+import com.android.documentsui.MenuManager;
import com.android.documentsui.MenuManager.DirectoryDetails;
+import com.android.documentsui.Metrics;
+import com.android.documentsui.OperationDialogFragment;
import com.android.documentsui.OperationDialogFragment.DialogType;
+import com.android.documentsui.PairedTask;
+import com.android.documentsui.ProviderExecutor;
+import com.android.documentsui.R;
+import com.android.documentsui.RootsCache;
+import com.android.documentsui.RootsFragment;
+import com.android.documentsui.Shared;
+import com.android.documentsui.Snackbars;
+import com.android.documentsui.State;
import com.android.documentsui.clipping.DocumentClipper;
import com.android.documentsui.dirlist.AnimationView;
import com.android.documentsui.dirlist.DirectoryFragment;
@@ -56,7 +70,7 @@
/**
* Standalone file management activity.
*/
-public class FilesActivity extends BaseActivity {
+public class ManageActivity extends BaseActivity {
public static final String TAG = "FilesActivity";
@@ -70,7 +84,7 @@
private FilesMenuManager mMenuManager;
private DirectoryDetails mDetails;
- public FilesActivity() {
+ public ManageActivity() {
super(R.layout.files_activity, TAG);
}
@@ -150,7 +164,7 @@
}
@Override
- void includeState(State state) {
+ public void includeState(State state) {
final Intent intent = getIntent();
state.action = State.ACTION_BROWSE;
@@ -261,7 +275,7 @@
}
@Override
- void refreshDirectory(int anim) {
+ public void refreshDirectory(int anim) {
final FragmentManager fm = getFragmentManager();
final RootInfo root = getCurrentRoot();
final DocumentInfo cwd = getCurrentDirectory();
@@ -320,7 +334,7 @@
}
@Override
- void onDirectoryCreated(DocumentInfo doc) {
+ public void onDirectoryCreated(DocumentInfo doc) {
assert(doc.isDirectory());
getDirectoryFragment().getFocusManager().onDirectoryCreated(doc.documentId);
}
@@ -416,7 +430,7 @@
// do it if user already hit back recently and we recently
// did some fiddling.
@Override
- boolean onBeforePopDir() {
+ protected boolean onBeforePopDir() {
int size = mState.stack.size();
if (mDrawer.isPresent()
@@ -446,7 +460,7 @@
}
@Override
- void onTaskFinished(Uri... uris) {
+ public void onTaskFinished(Uri... uris) {
if (DEBUG) Log.d(TAG, "onFinished() " + Arrays.toString(uris));
final Intent intent = new Intent();
@@ -489,10 +503,10 @@
* to know which root to select. Also, the stack doesn't contain intermediate directories.
* It's primarly used for opening ZIP archives from Downloads app.
*/
- private static final class OpenUriForViewTask extends PairedTask<FilesActivity, Uri, Void> {
+ private static final class OpenUriForViewTask extends PairedTask<ManageActivity, Uri, Void> {
private final State mState;
- public OpenUriForViewTask(FilesActivity activity) {
+ public OpenUriForViewTask(ManageActivity activity) {
super(activity);
mState = activity.mState;
}
diff --git a/src/com/android/documentsui/QuickViewIntentBuilder.java b/src/com/android/documentsui/manager/QuickViewIntentBuilder.java
similarity index 98%
rename from src/com/android/documentsui/QuickViewIntentBuilder.java
rename to src/com/android/documentsui/manager/QuickViewIntentBuilder.java
index b8d2247..a74e709 100644
--- a/src/com/android/documentsui/QuickViewIntentBuilder.java
+++ b/src/com/android/documentsui/manager/QuickViewIntentBuilder.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.documentsui;
+package com.android.documentsui.manager;
import static com.android.documentsui.Shared.DEBUG;
import static com.android.documentsui.Shared.MAX_DOCS_IN_INTENT;
@@ -35,6 +35,8 @@
import android.util.Log;
import android.util.Range;
+import com.android.documentsui.R;
+import com.android.documentsui.RootCursorWrapper;
import com.android.documentsui.dirlist.Model;
import com.android.documentsui.model.DocumentInfo;
diff --git a/src/com/android/documentsui/LoadLastAccessedStackTask.java b/src/com/android/documentsui/picker/LoadLastAccessedStackTask.java
similarity index 89%
rename from src/com/android/documentsui/LoadLastAccessedStackTask.java
rename to src/com/android/documentsui/picker/LoadLastAccessedStackTask.java
index 78e79c7..0d2ea31 100644
--- a/src/com/android/documentsui/LoadLastAccessedStackTask.java
+++ b/src/com/android/documentsui/picker/LoadLastAccessedStackTask.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.documentsui;
+package com.android.documentsui.picker;
import static com.android.documentsui.Shared.DEBUG;
@@ -22,7 +22,12 @@
import android.net.Uri;
import android.util.Log;
+import com.android.documentsui.DocumentsApplication;
+import com.android.documentsui.LastAccessedProvider;
import com.android.documentsui.LastAccessedProvider.Columns;
+import com.android.documentsui.PairedTask;
+import com.android.documentsui.RootsCache;
+import com.android.documentsui.State;
import com.android.documentsui.dirlist.AnimationView;
import com.android.documentsui.model.DurableUtils;
import com.android.documentsui.model.RootInfo;
@@ -40,14 +45,14 @@
* for an app like DropBox.
*/
final class LoadLastAccessedStackTask
- extends PairedTask<DocumentsActivity, Void, Void> {
+ extends PairedTask<PickActivity, Void, Void> {
private static final String TAG = "LoadLastAccessedStackTask";
private volatile boolean mRestoredStack;
private volatile boolean mExternal;
private State mState;
- public LoadLastAccessedStackTask(DocumentsActivity activity) {
+ public LoadLastAccessedStackTask(PickActivity activity) {
super(activity);
mState = activity.mState;
}
diff --git a/src/com/android/documentsui/DocumentsActivity.java b/src/com/android/documentsui/picker/PickActivity.java
similarity index 91%
rename from src/com/android/documentsui/DocumentsActivity.java
rename to src/com/android/documentsui/picker/PickActivity.java
index 555fbde..810920d 100644
--- a/src/com/android/documentsui/DocumentsActivity.java
+++ b/src/com/android/documentsui/picker/PickActivity.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.documentsui;
+package com.android.documentsui.picker;
import static com.android.documentsui.Shared.DEBUG;
import static com.android.documentsui.State.ACTION_CREATE;
@@ -41,8 +41,21 @@
import android.util.Log;
import android.view.Menu;
-import com.android.documentsui.MenuManager.DirectoryDetails;
+import com.android.documentsui.BaseActivity;
+import com.android.documentsui.DocumentsApplication;
+import com.android.documentsui.DocumentsMenuManager;
+import com.android.documentsui.LastAccessedProvider;
import com.android.documentsui.LastAccessedProvider.Columns;
+import com.android.documentsui.MenuManager;
+import com.android.documentsui.MenuManager.DirectoryDetails;
+import com.android.documentsui.MimePredicate;
+import com.android.documentsui.PairedTask;
+import com.android.documentsui.PickFragment;
+import com.android.documentsui.R;
+import com.android.documentsui.RootsFragment;
+import com.android.documentsui.Shared;
+import com.android.documentsui.Snackbars;
+import com.android.documentsui.State;
import com.android.documentsui.dirlist.DirectoryFragment;
import com.android.documentsui.dirlist.FragmentTuner;
import com.android.documentsui.dirlist.FragmentTuner.DocumentsTuner;
@@ -54,13 +67,13 @@
import java.util.Arrays;
import java.util.List;
-public class DocumentsActivity extends BaseActivity {
+public class PickActivity extends BaseActivity {
private static final int CODE_FORWARD = 42;
private static final String TAG = "DocumentsActivity";
private DocumentsMenuManager mMenuManager;
private DirectoryDetails mDetails;
- public DocumentsActivity() {
+ public PickActivity() {
super(R.layout.documents_activity, TAG);
}
@@ -114,7 +127,7 @@
}
@Override
- void includeState(State state) {
+ protected void includeState(State state) {
final Intent intent = getIntent();
final String action = intent.getAction();
if (Intent.ACTION_OPEN_DOCUMENT.equals(action)) {
@@ -224,7 +237,7 @@
}
@Override
- void refreshDirectory(int anim) {
+ protected void refreshDirectory(int anim) {
final FragmentManager fm = getFragmentManager();
final RootInfo root = getCurrentRoot();
final DocumentInfo cwd = getCurrentDirectory();
@@ -273,7 +286,15 @@
}
@Override
- void onDirectoryCreated(DocumentInfo doc) {
+ public void setPending(boolean pending) {
+ final SaveFragment save = SaveFragment.get(getFragmentManager());
+ if (save != null) {
+ save.setPending(pending);
+ }
+ }
+
+ @Override
+ protected void onDirectoryCreated(DocumentInfo doc) {
assert(doc.isDirectory());
openContainerDocument(doc);
}
@@ -331,7 +352,7 @@
}
@Override
- void onTaskFinished(Uri... uris) {
+ protected void onTaskFinished(Uri... uris) {
if (DEBUG) Log.d(TAG, "onFinished() " + Arrays.toString(uris));
final Intent intent = new Intent();
@@ -369,8 +390,8 @@
}
- public static DocumentsActivity get(Fragment fragment) {
- return (DocumentsActivity) fragment.getActivity();
+ public static PickActivity get(Fragment fragment) {
+ return (PickActivity) fragment.getActivity();
}
@Override
@@ -390,10 +411,10 @@
return mDetails;
}
- private static final class PickFinishTask extends PairedTask<DocumentsActivity, Void, Void> {
+ private static final class PickFinishTask extends PairedTask<PickActivity, Void, Void> {
private final Uri mUri;
- public PickFinishTask(DocumentsActivity activity, Uri uri) {
+ public PickFinishTask(PickActivity activity, Uri uri) {
super(activity);
mUri = uri;
}
@@ -410,10 +431,10 @@
}
}
- private static final class ExistingFinishTask extends PairedTask<DocumentsActivity, Void, Void> {
+ private static final class ExistingFinishTask extends PairedTask<PickActivity, Void, Void> {
private final Uri[] mUris;
- public ExistingFinishTask(DocumentsActivity activity, Uri... uris) {
+ public ExistingFinishTask(PickActivity activity, Uri... uris) {
super(activity);
mUris = uris;
}
@@ -433,11 +454,11 @@
/**
* Task that creates a new document in the background.
*/
- private static final class CreateFinishTask extends PairedTask<DocumentsActivity, Void, Uri> {
+ private static final class CreateFinishTask extends PairedTask<PickActivity, Void, Uri> {
private final String mMimeType;
private final String mDisplayName;
- public CreateFinishTask(DocumentsActivity activity, String mimeType, String displayName) {
+ public CreateFinishTask(PickActivity activity, String mimeType, String displayName) {
super(activity);
mMimeType = mimeType;
mDisplayName = displayName;
diff --git a/src/com/android/documentsui/SaveFragment.java b/src/com/android/documentsui/picker/SaveFragment.java
similarity index 95%
rename from src/com/android/documentsui/SaveFragment.java
rename to src/com/android/documentsui/picker/SaveFragment.java
index a37590d..a8f2f88 100644
--- a/src/com/android/documentsui/SaveFragment.java
+++ b/src/com/android/documentsui/picker/SaveFragment.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.documentsui;
+package com.android.documentsui.picker;
import android.app.Fragment;
import android.app.FragmentManager;
@@ -33,12 +33,14 @@
import android.widget.ImageView;
import android.widget.ProgressBar;
+import com.android.documentsui.IconUtils;
+import com.android.documentsui.R;
import com.android.documentsui.model.DocumentInfo;
/**
* Display document title editor and save button.
*/
-public class SaveFragment extends Fragment {
+class SaveFragment extends Fragment {
public static final String TAG = "SaveFragment";
private DocumentInfo mReplaceTarget;
@@ -50,7 +52,7 @@
private static final String EXTRA_MIME_TYPE = "mime_type";
private static final String EXTRA_DISPLAY_NAME = "display_name";
- public static void show(FragmentManager fm, String mimeType, String displayName) {
+ static void show(FragmentManager fm, String mimeType, String displayName) {
final Bundle args = new Bundle();
args.putString(EXTRA_MIME_TYPE, mimeType);
args.putString(EXTRA_DISPLAY_NAME, displayName);
@@ -147,7 +149,7 @@
};
private void performSave() {
- final DocumentsActivity activity = DocumentsActivity.get(SaveFragment.this);
+ final PickActivity activity = PickActivity.get(SaveFragment.this);
if (mReplaceTarget != null) {
activity.onSaveRequested(mReplaceTarget);
} else {
diff --git a/src/com/android/documentsui/services/Job.java b/src/com/android/documentsui/services/Job.java
index 14ae66e..24a95c6 100644
--- a/src/com/android/documentsui/services/Job.java
+++ b/src/com/android/documentsui/services/Job.java
@@ -41,7 +41,7 @@
import android.util.Log;
import com.android.documentsui.clipping.UrisSupplier;
-import com.android.documentsui.FilesActivity;
+import com.android.documentsui.manager.ManageActivity;
import com.android.documentsui.Metrics;
import com.android.documentsui.OperationDialogFragment;
import com.android.documentsui.R;
@@ -298,7 +298,7 @@
* Creates an intent for navigating back to the destination directory.
*/
Intent buildNavigateIntent(String tag) {
- Intent intent = new Intent(service, FilesActivity.class);
+ Intent intent = new Intent(service, ManageActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(DocumentsContract.ACTION_BROWSE);
intent.setData(getDataUriForIntent(tag));
diff --git a/tests/src/com/android/documentsui/FileManagementUiTest.java b/tests/src/com/android/documentsui/FileManagementUiTest.java
index 623f68a..7beeea3 100644
--- a/tests/src/com/android/documentsui/FileManagementUiTest.java
+++ b/tests/src/com/android/documentsui/FileManagementUiTest.java
@@ -25,11 +25,13 @@
import android.test.suitebuilder.annotation.LargeTest;
import android.view.KeyEvent;
+import com.android.documentsui.manager.ManageActivity;
+
@LargeTest
-public class FileManagementUiTest extends ActivityTest<FilesActivity> {
+public class FileManagementUiTest extends ActivityTest<ManageActivity> {
public FileManagementUiTest() {
- super(FilesActivity.class);
+ super(ManageActivity.class);
}
@Override
diff --git a/tests/src/com/android/documentsui/FilesActivityDefaultsUiTest.java b/tests/src/com/android/documentsui/FilesActivityDefaultsUiTest.java
index d0ec9d7..6ad7e11 100644
--- a/tests/src/com/android/documentsui/FilesActivityDefaultsUiTest.java
+++ b/tests/src/com/android/documentsui/FilesActivityDefaultsUiTest.java
@@ -23,13 +23,14 @@
import android.provider.DocumentsContract;
import android.test.suitebuilder.annotation.LargeTest;
+import com.android.documentsui.manager.ManageActivity;
import com.android.documentsui.model.RootInfo;
@LargeTest
-public class FilesActivityDefaultsUiTest extends ActivityTest<FilesActivity> {
+public class FilesActivityDefaultsUiTest extends ActivityTest<ManageActivity> {
public FilesActivityDefaultsUiTest() {
- super(FilesActivity.class);
+ super(ManageActivity.class);
}
@Override
diff --git a/tests/src/com/android/documentsui/FilesActivityUiTest.java b/tests/src/com/android/documentsui/FilesActivityUiTest.java
index cdee5fc..4454e20 100644
--- a/tests/src/com/android/documentsui/FilesActivityUiTest.java
+++ b/tests/src/com/android/documentsui/FilesActivityUiTest.java
@@ -20,11 +20,13 @@
import android.os.RemoteException;
import android.test.suitebuilder.annotation.LargeTest;
+import com.android.documentsui.manager.ManageActivity;
+
@LargeTest
-public class FilesActivityUiTest extends ActivityTest<FilesActivity> {
+public class FilesActivityUiTest extends ActivityTest<ManageActivity> {
public FilesActivityUiTest() {
- super(FilesActivity.class);
+ super(ManageActivity.class);
}
@Override
diff --git a/tests/src/com/android/documentsui/IntegratedDownloadsUiTest.java b/tests/src/com/android/documentsui/IntegratedDownloadsUiTest.java
index ef4a68d..5462461 100644
--- a/tests/src/com/android/documentsui/IntegratedDownloadsUiTest.java
+++ b/tests/src/com/android/documentsui/IntegratedDownloadsUiTest.java
@@ -26,12 +26,14 @@
import android.test.suitebuilder.annotation.Suppress;
import android.view.MotionEvent;
+import com.android.documentsui.manager.ManageActivity;
+
// TODO: As of this writing all tests in this class are disabled. Please fix.
@LargeTest
-public class IntegratedDownloadsUiTest extends ActivityTest<FilesActivity> {
+public class IntegratedDownloadsUiTest extends ActivityTest<ManageActivity> {
public IntegratedDownloadsUiTest() {
- super(FilesActivity.class);
+ super(ManageActivity.class);
}
// We don't really need to test the entirety of download support
diff --git a/tests/src/com/android/documentsui/KeyboardNavigationUiTest.java b/tests/src/com/android/documentsui/KeyboardNavigationUiTest.java
index 76e8c96..c45eaed 100644
--- a/tests/src/com/android/documentsui/KeyboardNavigationUiTest.java
+++ b/tests/src/com/android/documentsui/KeyboardNavigationUiTest.java
@@ -22,11 +22,13 @@
import android.test.suitebuilder.annotation.Suppress;
import android.view.KeyEvent;
+import com.android.documentsui.manager.ManageActivity;
+
@LargeTest
-public class KeyboardNavigationUiTest extends ActivityTest<FilesActivity> {
+public class KeyboardNavigationUiTest extends ActivityTest<ManageActivity> {
public KeyboardNavigationUiTest() {
- super(FilesActivity.class);
+ super(ManageActivity.class);
}
@Override
diff --git a/tests/src/com/android/documentsui/RenameDocumentUiTest.java b/tests/src/com/android/documentsui/RenameDocumentUiTest.java
index e7ac293..c4517b2 100644
--- a/tests/src/com/android/documentsui/RenameDocumentUiTest.java
+++ b/tests/src/com/android/documentsui/RenameDocumentUiTest.java
@@ -19,13 +19,15 @@
import android.support.test.uiautomator.UiObjectNotFoundException;
import android.test.suitebuilder.annotation.LargeTest;
+import com.android.documentsui.manager.ManageActivity;
+
@LargeTest
-public class RenameDocumentUiTest extends ActivityTest<FilesActivity> {
+public class RenameDocumentUiTest extends ActivityTest<ManageActivity> {
private final String newName = "kitties.log";
public RenameDocumentUiTest() {
- super(FilesActivity.class);
+ super(ManageActivity.class);
}
@Override
diff --git a/tests/src/com/android/documentsui/RootsUiTest.java b/tests/src/com/android/documentsui/RootsUiTest.java
index 4edfd8a..98691db 100644
--- a/tests/src/com/android/documentsui/RootsUiTest.java
+++ b/tests/src/com/android/documentsui/RootsUiTest.java
@@ -22,13 +22,15 @@
import android.test.suitebuilder.annotation.LargeTest;
import android.test.suitebuilder.annotation.Suppress;
+import com.android.documentsui.manager.ManageActivity;
+
@LargeTest
-public class RootsUiTest extends ActivityTest<FilesActivity> {
+public class RootsUiTest extends ActivityTest<ManageActivity> {
private static final String TAG = "RootUiTest";
public RootsUiTest() {
- super(FilesActivity.class);
+ super(ManageActivity.class);
}
@Override
@@ -53,5 +55,4 @@
bots.roots.openRoot(ROOT_1_ID);
bots.main.assertInActionMode(false);
}
-
}
diff --git a/tests/src/com/android/documentsui/SearchViewUiTest.java b/tests/src/com/android/documentsui/SearchViewUiTest.java
index 01c6e1e..39c4383 100644
--- a/tests/src/com/android/documentsui/SearchViewUiTest.java
+++ b/tests/src/com/android/documentsui/SearchViewUiTest.java
@@ -23,11 +23,13 @@
import android.support.v7.recyclerview.R;
import android.test.suitebuilder.annotation.LargeTest;
+import com.android.documentsui.manager.ManageActivity;
+
@LargeTest
-public class SearchViewUiTest extends ActivityTest<FilesActivity> {
+public class SearchViewUiTest extends ActivityTest<ManageActivity> {
public SearchViewUiTest() {
- super(FilesActivity.class);
+ super(ManageActivity.class);
}
@Override
diff --git a/tests/src/com/android/documentsui/SortDocumentUiTest.java b/tests/src/com/android/documentsui/SortDocumentUiTest.java
index ac4fa4c..a202925 100644
--- a/tests/src/com/android/documentsui/SortDocumentUiTest.java
+++ b/tests/src/com/android/documentsui/SortDocumentUiTest.java
@@ -19,11 +19,12 @@
import android.net.Uri;
import android.support.test.filters.LargeTest;
+import com.android.documentsui.manager.ManageActivity;
import com.android.documentsui.sorting.SortDimension;
import com.android.documentsui.sorting.SortModel;
@LargeTest
-public class SortDocumentUiTest extends ActivityTest<FilesActivity> {
+public class SortDocumentUiTest extends ActivityTest<ManageActivity> {
private static final String DIR_1 = "folder_1";
private static final String DIR_2 = "dir_2";
@@ -47,7 +48,7 @@
private static final String[] FILES_IN_MODIFIED_DESC = reverse(FILES);
public SortDocumentUiTest() {
- super(FilesActivity.class);
+ super(ManageActivity.class);
}
@Override