Loading proguard.flags +4 −0 Original line number Diff line number Diff line Loading @@ -16,3 +16,7 @@ -keep public class android.support.v4.view.accessibility.AccessibilityNodeInfoCompat { public static android.support.v4.view.accessibility.AccessibilityNodeInfoCompat obtain(); } -keepclassmembers public class com.android.documentsui.inspector.InspectorController { *; } No newline at end of file src/com/android/documentsui/inspector/DetailsView.java +9 −7 Original line number Diff line number Diff line Loading @@ -25,11 +25,12 @@ import android.widget.TextView; import com.android.documentsui.base.DocumentInfo; import com.android.documentsui.R; import java.util.function.Consumer; /** * Organizes and Displays the basic details about a file */ public class DetailsView extends LinearLayout { public class DetailsView extends LinearLayout implements Consumer<DocumentInfo> { private final LayoutInflater mInflater; Loading @@ -46,12 +47,6 @@ public class DetailsView extends LinearLayout { mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } public void update(DocumentInfo info) { addRow(R.string.sort_dimension_file_type, info.mimeType); addRow(R.string.sort_dimension_size, formatSize(info.size)); addRow(R.string.sort_dimension_date, String.valueOf(info.lastModified)); } private void addRow(@StringRes int StringId, String value) { View row = mInflater.inflate(R.layout.table_row, null); TextView title = (TextView) row.findViewById(R.id.key); Loading Loading @@ -80,4 +75,11 @@ public class DetailsView extends LinearLayout { } return docSize; } @Override public void accept(DocumentInfo info) { addRow(R.string.sort_dimension_file_type, info.mimeType); addRow(R.string.sort_dimension_size, formatSize(info.size)); addRow(R.string.sort_dimension_date, String.valueOf(info.lastModified)); } } src/com/android/documentsui/inspector/DocumentInspectorFragment.java +1 −2 Original line number Diff line number Diff line Loading @@ -24,7 +24,6 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; import com.android.documentsui.R; import com.android.documentsui.inspector.InspectorController.Loader; Loading Loading @@ -52,7 +51,7 @@ public class DocumentInspectorFragment extends Fragment { container, false); mHeader = (HeaderView) mView.findViewById(R.id.inspector_header_view); mDetails = (DetailsView) mView.findViewById(R.id.inspector_details_view); mController = new InspectorController(loader, mView); mController = new InspectorController(getActivity(), loader, mView); return mView; } Loading src/com/android/documentsui/inspector/HeaderView.java +4 −2 Original line number Diff line number Diff line Loading @@ -24,11 +24,12 @@ import android.widget.TextView; import com.android.documentsui.base.DocumentInfo; import com.android.documentsui.R; import java.util.function.Consumer; /** * Organizes and displays the title and thumbnail for a given document */ public class HeaderView extends RelativeLayout { public class HeaderView extends RelativeLayout implements Consumer<DocumentInfo> { private View mHeader; private TextView mTitle; Loading @@ -49,7 +50,8 @@ public class HeaderView extends RelativeLayout { mTitle = (TextView) mHeader.findViewById(R.id.inspector_file_title); } public void update(DocumentInfo info) { @Override public void accept(DocumentInfo info) { mTitle.setText(info.displayName); this.addView(mHeader); } Loading src/com/android/documentsui/inspector/InspectorController.java +49 −17 Original line number Diff line number Diff line Loading @@ -15,41 +15,59 @@ */ package com.android.documentsui.inspector; import static android.provider.DocumentsContract.Document.FLAG_SUPPORTS_SETTINGS; import static com.android.internal.util.Preconditions.checkArgument; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.provider.DocumentsContract; import android.support.annotation.Nullable; import android.support.annotation.VisibleForTesting; import android.widget.LinearLayout; import com.android.documentsui.DocumentsApplication; import com.android.documentsui.R; import com.android.documentsui.base.DocumentInfo; import com.android.internal.util.Preconditions; import com.android.documentsui.roots.ProvidersAccess; import java.util.function.Consumer; import com.android.documentsui.R; /** * A controller that coordinates retrieving document information and sending it to the view. */ public final class InspectorController { private final Loader mLoader; private @Nullable LinearLayout mLayout; private @Nullable HeaderView mHeader; private @Nullable DetailsView mDetails; private final Consumer<DocumentInfo> mHeader; private final Consumer<DocumentInfo> mDetails; private final Context mContext; private final ProvidersAccess mProviders; /** * InspectorControllerTest relies on this controller. */ @VisibleForTesting public InspectorController(Loader loader) { public InspectorController(Context context, Loader loader, ProvidersAccess providers, Consumer<DocumentInfo> header, Consumer<DocumentInfo> details) { checkArgument(context != null); checkArgument(loader != null); checkArgument(providers != null); checkArgument(header != null); checkArgument(details != null); mContext = context; mLoader = loader; mProviders = providers; mHeader = header; mDetails = details; } public InspectorController(Loader loader, LinearLayout layout) { checkArgument(loader != null); checkArgument(layout != null); mLoader = loader; mLayout = layout; mHeader = (HeaderView) mLayout.findViewById(R.id.inspector_header_view); mDetails = (DetailsView) mLayout.findViewById(R.id.inspector_details_view); public InspectorController(Context context, Loader loader, LinearLayout layout) { this(context, loader, DocumentsApplication.getProvidersCache (context), (HeaderView) layout.findViewById(R.id.inspector_header_view), (DetailsView) layout.findViewById(R.id.inspector_details_view)); } public void reset() { Loading @@ -68,8 +86,22 @@ public final class InspectorController { if (docInfo == null) { return; } mHeader.update(docInfo); mDetails.update(docInfo); mHeader.accept(docInfo); mDetails.accept(docInfo); } /** * Shows the selected document in it's content provider. * * @param DocumentInfo whose flag FLAG_SUPPORTS_SETTINGS is set. */ public void showInProvider(Uri uri) { Intent intent = new Intent(DocumentsContract.ACTION_DOCUMENT_SETTINGS); intent.setPackage(mProviders.getPackageName(uri.getAuthority())); intent.addCategory(Intent.CATEGORY_DEFAULT); intent.setData(uri); mContext.startActivity(intent); } /** Loading Loading
proguard.flags +4 −0 Original line number Diff line number Diff line Loading @@ -16,3 +16,7 @@ -keep public class android.support.v4.view.accessibility.AccessibilityNodeInfoCompat { public static android.support.v4.view.accessibility.AccessibilityNodeInfoCompat obtain(); } -keepclassmembers public class com.android.documentsui.inspector.InspectorController { *; } No newline at end of file
src/com/android/documentsui/inspector/DetailsView.java +9 −7 Original line number Diff line number Diff line Loading @@ -25,11 +25,12 @@ import android.widget.TextView; import com.android.documentsui.base.DocumentInfo; import com.android.documentsui.R; import java.util.function.Consumer; /** * Organizes and Displays the basic details about a file */ public class DetailsView extends LinearLayout { public class DetailsView extends LinearLayout implements Consumer<DocumentInfo> { private final LayoutInflater mInflater; Loading @@ -46,12 +47,6 @@ public class DetailsView extends LinearLayout { mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } public void update(DocumentInfo info) { addRow(R.string.sort_dimension_file_type, info.mimeType); addRow(R.string.sort_dimension_size, formatSize(info.size)); addRow(R.string.sort_dimension_date, String.valueOf(info.lastModified)); } private void addRow(@StringRes int StringId, String value) { View row = mInflater.inflate(R.layout.table_row, null); TextView title = (TextView) row.findViewById(R.id.key); Loading Loading @@ -80,4 +75,11 @@ public class DetailsView extends LinearLayout { } return docSize; } @Override public void accept(DocumentInfo info) { addRow(R.string.sort_dimension_file_type, info.mimeType); addRow(R.string.sort_dimension_size, formatSize(info.size)); addRow(R.string.sort_dimension_date, String.valueOf(info.lastModified)); } }
src/com/android/documentsui/inspector/DocumentInspectorFragment.java +1 −2 Original line number Diff line number Diff line Loading @@ -24,7 +24,6 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; import com.android.documentsui.R; import com.android.documentsui.inspector.InspectorController.Loader; Loading Loading @@ -52,7 +51,7 @@ public class DocumentInspectorFragment extends Fragment { container, false); mHeader = (HeaderView) mView.findViewById(R.id.inspector_header_view); mDetails = (DetailsView) mView.findViewById(R.id.inspector_details_view); mController = new InspectorController(loader, mView); mController = new InspectorController(getActivity(), loader, mView); return mView; } Loading
src/com/android/documentsui/inspector/HeaderView.java +4 −2 Original line number Diff line number Diff line Loading @@ -24,11 +24,12 @@ import android.widget.TextView; import com.android.documentsui.base.DocumentInfo; import com.android.documentsui.R; import java.util.function.Consumer; /** * Organizes and displays the title and thumbnail for a given document */ public class HeaderView extends RelativeLayout { public class HeaderView extends RelativeLayout implements Consumer<DocumentInfo> { private View mHeader; private TextView mTitle; Loading @@ -49,7 +50,8 @@ public class HeaderView extends RelativeLayout { mTitle = (TextView) mHeader.findViewById(R.id.inspector_file_title); } public void update(DocumentInfo info) { @Override public void accept(DocumentInfo info) { mTitle.setText(info.displayName); this.addView(mHeader); } Loading
src/com/android/documentsui/inspector/InspectorController.java +49 −17 Original line number Diff line number Diff line Loading @@ -15,41 +15,59 @@ */ package com.android.documentsui.inspector; import static android.provider.DocumentsContract.Document.FLAG_SUPPORTS_SETTINGS; import static com.android.internal.util.Preconditions.checkArgument; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.provider.DocumentsContract; import android.support.annotation.Nullable; import android.support.annotation.VisibleForTesting; import android.widget.LinearLayout; import com.android.documentsui.DocumentsApplication; import com.android.documentsui.R; import com.android.documentsui.base.DocumentInfo; import com.android.internal.util.Preconditions; import com.android.documentsui.roots.ProvidersAccess; import java.util.function.Consumer; import com.android.documentsui.R; /** * A controller that coordinates retrieving document information and sending it to the view. */ public final class InspectorController { private final Loader mLoader; private @Nullable LinearLayout mLayout; private @Nullable HeaderView mHeader; private @Nullable DetailsView mDetails; private final Consumer<DocumentInfo> mHeader; private final Consumer<DocumentInfo> mDetails; private final Context mContext; private final ProvidersAccess mProviders; /** * InspectorControllerTest relies on this controller. */ @VisibleForTesting public InspectorController(Loader loader) { public InspectorController(Context context, Loader loader, ProvidersAccess providers, Consumer<DocumentInfo> header, Consumer<DocumentInfo> details) { checkArgument(context != null); checkArgument(loader != null); checkArgument(providers != null); checkArgument(header != null); checkArgument(details != null); mContext = context; mLoader = loader; mProviders = providers; mHeader = header; mDetails = details; } public InspectorController(Loader loader, LinearLayout layout) { checkArgument(loader != null); checkArgument(layout != null); mLoader = loader; mLayout = layout; mHeader = (HeaderView) mLayout.findViewById(R.id.inspector_header_view); mDetails = (DetailsView) mLayout.findViewById(R.id.inspector_details_view); public InspectorController(Context context, Loader loader, LinearLayout layout) { this(context, loader, DocumentsApplication.getProvidersCache (context), (HeaderView) layout.findViewById(R.id.inspector_header_view), (DetailsView) layout.findViewById(R.id.inspector_details_view)); } public void reset() { Loading @@ -68,8 +86,22 @@ public final class InspectorController { if (docInfo == null) { return; } mHeader.update(docInfo); mDetails.update(docInfo); mHeader.accept(docInfo); mDetails.accept(docInfo); } /** * Shows the selected document in it's content provider. * * @param DocumentInfo whose flag FLAG_SUPPORTS_SETTINGS is set. */ public void showInProvider(Uri uri) { Intent intent = new Intent(DocumentsContract.ACTION_DOCUMENT_SETTINGS); intent.setPackage(mProviders.getPackageName(uri.getAuthority())); intent.addCategory(Intent.CATEGORY_DEFAULT); intent.setData(uri); mContext.startActivity(intent); } /** Loading