Loading src/com/android/documentsui/AbstractActionHandler.java +32 −0 Original line number Original line Diff line number Diff line Loading @@ -22,8 +22,10 @@ import static com.android.documentsui.base.Shared.DEBUG; import android.app.Activity; import android.app.Activity; import android.app.LoaderManager.LoaderCallbacks; import android.app.LoaderManager.LoaderCallbacks; import android.app.PendingIntent; import android.content.Context; import android.content.Context; import android.content.Intent; import android.content.Intent; import android.content.IntentSender; import android.content.Loader; import android.content.Loader; import android.content.pm.ResolveInfo; import android.content.pm.ResolveInfo; import android.database.Cursor; import android.database.Cursor; Loading Loading @@ -76,6 +78,10 @@ import javax.annotation.Nullable; public abstract class AbstractActionHandler<T extends Activity & CommonAddons> public abstract class AbstractActionHandler<T extends Activity & CommonAddons> implements ActionHandler { implements ActionHandler { @VisibleForTesting public static final int CODE_FORWARD = 42; public static final int CODE_AUTHENTICATION = 43; @VisibleForTesting @VisibleForTesting static final int LOADER_ID = 42; static final int LOADER_ID = 42; Loading Loading @@ -147,6 +153,32 @@ public abstract class AbstractActionHandler<T extends Activity & CommonAddons> listener).executeOnExecutor(ProviderExecutor.forAuthority(root.authority)); listener).executeOnExecutor(ProviderExecutor.forAuthority(root.authority)); } } @Override public void startAuthentication(PendingIntent intent) { try { mActivity.startIntentSenderForResult(intent.getIntentSender(), CODE_AUTHENTICATION, null, 0, 0, 0); } catch (IntentSender.SendIntentException cancelled) { Log.d(TAG, "Authentication Pending Intent either canceled or ignored."); } } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case CODE_AUTHENTICATION: onAuthenticationResult(resultCode); break; } } private void onAuthenticationResult(int resultCode) { if (resultCode == Activity.RESULT_OK) { Log.v(TAG, "Authentication was successful. Refreshing directory now."); mActivity.refreshCurrentRootAndDirectory(AnimationView.ANIM_NONE); } } @Override @Override public void getRootDocument(RootInfo root, int timeout, Consumer<DocumentInfo> callback) { public void getRootDocument(RootInfo root, int timeout, Consumer<DocumentInfo> callback) { GetRootDocumentTask task = new GetRootDocumentTask( GetRootDocumentTask task = new GetRootDocumentTask( Loading src/com/android/documentsui/ActionHandler.java +10 −0 Original line number Original line Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.documentsui; package com.android.documentsui; import android.annotation.IntDef; import android.annotation.IntDef; import android.app.PendingIntent; import android.content.ContentProvider; import android.content.ContentProvider; import android.content.Intent; import android.content.Intent; import android.content.pm.ResolveInfo; import android.content.pm.ResolveInfo; Loading Loading @@ -48,6 +49,8 @@ public interface ActionHandler { public static final int VIEW_TYPE_REGULAR = 1; public static final int VIEW_TYPE_REGULAR = 1; public static final int VIEW_TYPE_PREVIEW = 2; public static final int VIEW_TYPE_PREVIEW = 2; void onActivityResult(int requestCode, int resultCode, Intent data); void openSettings(RootInfo root); void openSettings(RootInfo root); /** /** Loading @@ -73,6 +76,13 @@ public interface ActionHandler { */ */ void refreshDocument(DocumentInfo doc, BooleanConsumer callback); void refreshDocument(DocumentInfo doc, BooleanConsumer callback); /** * Attempts to start the authentication process caused by * {@link android.app.AuthenticationRequiredException}. */ void startAuthentication(PendingIntent intent); void showAppDetails(ResolveInfo info); void showAppDetails(ResolveInfo info); void openRoot(RootInfo root); void openRoot(RootInfo root); Loading src/com/android/documentsui/BaseActivity.java +5 −2 Original line number Original line Diff line number Diff line Loading @@ -44,7 +44,6 @@ import android.widget.Toolbar; import com.android.documentsui.AbstractActionHandler.CommonAddons; import com.android.documentsui.AbstractActionHandler.CommonAddons; import com.android.documentsui.Injector.Injected; import com.android.documentsui.Injector.Injected; import com.android.documentsui.NavigationViewManager.Breadcrumb; import com.android.documentsui.NavigationViewManager.Breadcrumb; import com.android.documentsui.archives.ArchivesProvider; import com.android.documentsui.base.DocumentInfo; import com.android.documentsui.base.DocumentInfo; import com.android.documentsui.base.RootInfo; import com.android.documentsui.base.RootInfo; import com.android.documentsui.base.Shared; import com.android.documentsui.base.Shared; Loading @@ -65,7 +64,6 @@ import com.android.documentsui.sidebar.RootsFragment; import com.android.documentsui.sorting.SortController; import com.android.documentsui.sorting.SortController; import com.android.documentsui.sorting.SortModel; import com.android.documentsui.sorting.SortModel; import java.io.FileNotFoundException; import java.util.ArrayList; import java.util.ArrayList; import java.util.Date; import java.util.Date; import java.util.List; import java.util.List; Loading Loading @@ -584,6 +582,11 @@ public abstract class BaseActivity return super.dispatchKeyEvent(event); return super.dispatchKeyEvent(event); } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { mInjector.actions.onActivityResult(requestCode, resultCode, data); } /** /** * Pops the top entry off the directory stack, and returns the user to the previous directory. * Pops the top entry off the directory stack, and returns the user to the previous directory. * If the directory stack only contains one item, this method does nothing. * If the directory stack only contains one item, this method does nothing. Loading src/com/android/documentsui/dirlist/DirectoryFragment.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -1249,5 +1249,10 @@ public class DirectoryFragment extends Fragment public void onBindDocumentHolder(DocumentHolder holder, Cursor cursor) { public void onBindDocumentHolder(DocumentHolder holder, Cursor cursor) { setupDragAndDropOnDocumentView(holder.itemView, cursor); setupDragAndDropOnDocumentView(holder.itemView, cursor); } } @Override public ActionHandler getActionHandler() { return mActions; } } } } } src/com/android/documentsui/dirlist/DocumentsAdapter.java +2 −0 Original line number Original line Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.provider.DocumentsContract.Document; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView; import com.android.documentsui.ActionHandler; import com.android.documentsui.Model; import com.android.documentsui.Model; import com.android.documentsui.base.EventListener; import com.android.documentsui.base.EventListener; import com.android.documentsui.base.Features; import com.android.documentsui.base.Features; Loading Loading @@ -103,6 +104,7 @@ public abstract class DocumentsAdapter interface Environment { interface Environment { Context getContext(); Context getContext(); Features getFeatures(); Features getFeatures(); ActionHandler getActionHandler(); int getColumnCount(); int getColumnCount(); State getDisplayState(); State getDisplayState(); boolean isInSearchMode(); boolean isInSearchMode(); Loading Loading
src/com/android/documentsui/AbstractActionHandler.java +32 −0 Original line number Original line Diff line number Diff line Loading @@ -22,8 +22,10 @@ import static com.android.documentsui.base.Shared.DEBUG; import android.app.Activity; import android.app.Activity; import android.app.LoaderManager.LoaderCallbacks; import android.app.LoaderManager.LoaderCallbacks; import android.app.PendingIntent; import android.content.Context; import android.content.Context; import android.content.Intent; import android.content.Intent; import android.content.IntentSender; import android.content.Loader; import android.content.Loader; import android.content.pm.ResolveInfo; import android.content.pm.ResolveInfo; import android.database.Cursor; import android.database.Cursor; Loading Loading @@ -76,6 +78,10 @@ import javax.annotation.Nullable; public abstract class AbstractActionHandler<T extends Activity & CommonAddons> public abstract class AbstractActionHandler<T extends Activity & CommonAddons> implements ActionHandler { implements ActionHandler { @VisibleForTesting public static final int CODE_FORWARD = 42; public static final int CODE_AUTHENTICATION = 43; @VisibleForTesting @VisibleForTesting static final int LOADER_ID = 42; static final int LOADER_ID = 42; Loading Loading @@ -147,6 +153,32 @@ public abstract class AbstractActionHandler<T extends Activity & CommonAddons> listener).executeOnExecutor(ProviderExecutor.forAuthority(root.authority)); listener).executeOnExecutor(ProviderExecutor.forAuthority(root.authority)); } } @Override public void startAuthentication(PendingIntent intent) { try { mActivity.startIntentSenderForResult(intent.getIntentSender(), CODE_AUTHENTICATION, null, 0, 0, 0); } catch (IntentSender.SendIntentException cancelled) { Log.d(TAG, "Authentication Pending Intent either canceled or ignored."); } } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case CODE_AUTHENTICATION: onAuthenticationResult(resultCode); break; } } private void onAuthenticationResult(int resultCode) { if (resultCode == Activity.RESULT_OK) { Log.v(TAG, "Authentication was successful. Refreshing directory now."); mActivity.refreshCurrentRootAndDirectory(AnimationView.ANIM_NONE); } } @Override @Override public void getRootDocument(RootInfo root, int timeout, Consumer<DocumentInfo> callback) { public void getRootDocument(RootInfo root, int timeout, Consumer<DocumentInfo> callback) { GetRootDocumentTask task = new GetRootDocumentTask( GetRootDocumentTask task = new GetRootDocumentTask( Loading
src/com/android/documentsui/ActionHandler.java +10 −0 Original line number Original line Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.documentsui; package com.android.documentsui; import android.annotation.IntDef; import android.annotation.IntDef; import android.app.PendingIntent; import android.content.ContentProvider; import android.content.ContentProvider; import android.content.Intent; import android.content.Intent; import android.content.pm.ResolveInfo; import android.content.pm.ResolveInfo; Loading Loading @@ -48,6 +49,8 @@ public interface ActionHandler { public static final int VIEW_TYPE_REGULAR = 1; public static final int VIEW_TYPE_REGULAR = 1; public static final int VIEW_TYPE_PREVIEW = 2; public static final int VIEW_TYPE_PREVIEW = 2; void onActivityResult(int requestCode, int resultCode, Intent data); void openSettings(RootInfo root); void openSettings(RootInfo root); /** /** Loading @@ -73,6 +76,13 @@ public interface ActionHandler { */ */ void refreshDocument(DocumentInfo doc, BooleanConsumer callback); void refreshDocument(DocumentInfo doc, BooleanConsumer callback); /** * Attempts to start the authentication process caused by * {@link android.app.AuthenticationRequiredException}. */ void startAuthentication(PendingIntent intent); void showAppDetails(ResolveInfo info); void showAppDetails(ResolveInfo info); void openRoot(RootInfo root); void openRoot(RootInfo root); Loading
src/com/android/documentsui/BaseActivity.java +5 −2 Original line number Original line Diff line number Diff line Loading @@ -44,7 +44,6 @@ import android.widget.Toolbar; import com.android.documentsui.AbstractActionHandler.CommonAddons; import com.android.documentsui.AbstractActionHandler.CommonAddons; import com.android.documentsui.Injector.Injected; import com.android.documentsui.Injector.Injected; import com.android.documentsui.NavigationViewManager.Breadcrumb; import com.android.documentsui.NavigationViewManager.Breadcrumb; import com.android.documentsui.archives.ArchivesProvider; import com.android.documentsui.base.DocumentInfo; import com.android.documentsui.base.DocumentInfo; import com.android.documentsui.base.RootInfo; import com.android.documentsui.base.RootInfo; import com.android.documentsui.base.Shared; import com.android.documentsui.base.Shared; Loading @@ -65,7 +64,6 @@ import com.android.documentsui.sidebar.RootsFragment; import com.android.documentsui.sorting.SortController; import com.android.documentsui.sorting.SortController; import com.android.documentsui.sorting.SortModel; import com.android.documentsui.sorting.SortModel; import java.io.FileNotFoundException; import java.util.ArrayList; import java.util.ArrayList; import java.util.Date; import java.util.Date; import java.util.List; import java.util.List; Loading Loading @@ -584,6 +582,11 @@ public abstract class BaseActivity return super.dispatchKeyEvent(event); return super.dispatchKeyEvent(event); } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { mInjector.actions.onActivityResult(requestCode, resultCode, data); } /** /** * Pops the top entry off the directory stack, and returns the user to the previous directory. * Pops the top entry off the directory stack, and returns the user to the previous directory. * If the directory stack only contains one item, this method does nothing. * If the directory stack only contains one item, this method does nothing. Loading
src/com/android/documentsui/dirlist/DirectoryFragment.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -1249,5 +1249,10 @@ public class DirectoryFragment extends Fragment public void onBindDocumentHolder(DocumentHolder holder, Cursor cursor) { public void onBindDocumentHolder(DocumentHolder holder, Cursor cursor) { setupDragAndDropOnDocumentView(holder.itemView, cursor); setupDragAndDropOnDocumentView(holder.itemView, cursor); } } @Override public ActionHandler getActionHandler() { return mActions; } } } } }
src/com/android/documentsui/dirlist/DocumentsAdapter.java +2 −0 Original line number Original line Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.provider.DocumentsContract.Document; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView; import com.android.documentsui.ActionHandler; import com.android.documentsui.Model; import com.android.documentsui.Model; import com.android.documentsui.base.EventListener; import com.android.documentsui.base.EventListener; import com.android.documentsui.base.Features; import com.android.documentsui.base.Features; Loading Loading @@ -103,6 +104,7 @@ public abstract class DocumentsAdapter interface Environment { interface Environment { Context getContext(); Context getContext(); Features getFeatures(); Features getFeatures(); ActionHandler getActionHandler(); int getColumnCount(); int getColumnCount(); State getDisplayState(); State getDisplayState(); boolean isInSearchMode(); boolean isInSearchMode(); Loading