1ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay/* 2ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay * Copyright (C) 2015 The Android Open Source Project 3ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay * 4ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay * Licensed under the Apache License, Version 2.0 (the "License"); 5ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay * you may not use this file except in compliance with the License. 6ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay * You may obtain a copy of the License at 7ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay * 8ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay * http://www.apache.org/licenses/LICENSE-2.0 9ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay * 10ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay * Unless required by applicable law or agreed to in writing, software 11ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay * distributed under the License is distributed on an "AS IS" BASIS, 12ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay * See the License for the specific language governing permissions and 14ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay * limitations under the License. 15ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay */ 16ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay 17ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKaypackage com.android.documentsui.dirlist; 18ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay 19ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKayimport android.database.MatrixCursor; 20ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKayimport android.provider.DocumentsContract.Document; 21ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay 22ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKayimport com.android.documentsui.DirectoryResult; 23ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKayimport com.android.documentsui.RootCursorWrapper; 24ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay 25ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKayimport java.util.Random; 26ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay 27ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKaypublic class TestModel extends Model { 28ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay 29f5ce1035d41b590c5a25074242baed9dbd48ef3fBen Kwa static final String[] COLUMNS = new String[]{ 30ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay RootCursorWrapper.COLUMN_AUTHORITY, 31ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay Document.COLUMN_DOCUMENT_ID, 32ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay Document.COLUMN_FLAGS, 33ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay Document.COLUMN_DISPLAY_NAME, 34ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay Document.COLUMN_SIZE, 35ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay Document.COLUMN_MIME_TYPE 36ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay }; 37ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay 38ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay private final String mAuthority; 39ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay 403564543e1ece2211a2d5b729fbbf8dd7ac94944cSteve McKay public TestModel(String authority) { 413564543e1ece2211a2d5b729fbbf8dd7ac94944cSteve McKay super(); 42ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay mAuthority = authority; 43ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay } 44ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay 45ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay void update(String... names) { 46ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay Random rand = new Random(); 47ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay 48ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay MatrixCursor c = new MatrixCursor(COLUMNS); 49ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay for (int i = 0; i < names.length; i++) { 50ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay MatrixCursor.RowBuilder row = c.newRow(); 51ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay row.add(RootCursorWrapper.COLUMN_AUTHORITY, mAuthority); 52ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay row.add(Document.COLUMN_DOCUMENT_ID, Integer.toString(i)); 53ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay row.add(Document.COLUMN_FLAGS, Document.FLAG_SUPPORTS_DELETE); 54ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay // Generate random document names and sizes. This forces the model's internal sort code 55ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay // to actually do something. 56ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay row.add(Document.COLUMN_DISPLAY_NAME, names[i]); 57ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay row.add(Document.COLUMN_SIZE, rand.nextInt()); 58ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay } 59ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay 60ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay DirectoryResult r = new DirectoryResult(); 61ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay r.cursor = c; 62ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay update(r); 63ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay } 64ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay 65955e46d004cf484267aef6181722ac19ffaf073dSteve McKay String idForPosition(int p) { 66007151a90d2a97ad17772a3c9e6be249261a5365Tomasz Mikolajewski return Integer.toString(p); 67955e46d004cf484267aef6181722ac19ffaf073dSteve McKay } 68ef16f5f41106eaa89e5fdf0958e408a6faf7a5f4Steve McKay} 69