19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage com.android.dumprendertree; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.Intent; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Bundle; 21ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Projectimport android.util.Log; 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 23f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhuimport java.io.BufferedOutputStream; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.File; 25f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhuimport java.io.FileOutputStream; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class Menu extends FileList { 28f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu 29f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu private static final int MENU_START = 0x01; 30f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu private static String LOGTAG = "MenuActivity"; 31f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu static final String LAYOUT_TESTS_LIST_FILE = "/sdcard/android/layout_tests_list.txt"; 32f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu 33f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu public void onCreate(Bundle icicle) { 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.onCreate(icicle); 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 36f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean fileFilter(File f) { 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (f.getName().startsWith(".")) 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return false; 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (f.getName().equalsIgnoreCase("resources")) 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return false; 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (f.isDirectory()) 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (f.getPath().toLowerCase().endsWith("ml")) 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return false; 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 48f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu 49f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu void processFile(String filename, boolean selection) { 50ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project Intent intent = new Intent(Intent.ACTION_VIEW); 51ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project intent.setClass(this, TestShellActivity.class); 52ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 53ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project intent.putExtra(TestShellActivity.TEST_URL, "file://" + filename); 54ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project startActivity(intent); 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 56f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu 57f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu @Override 58f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu void processDirectory(String path, boolean selection) { 59f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu generateTestList(path); 60f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu Intent intent = new Intent(Intent.ACTION_VIEW); 61f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu intent.setClass(this, TestShellActivity.class); 62f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 63f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu intent.putExtra(TestShellActivity.UI_AUTO_TEST, LAYOUT_TESTS_LIST_FILE); 64f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu startActivity(intent); 65f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu } 66f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu 67f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu private void generateTestList(String path) { 68f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu try { 69f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu File tests_list = new File(LAYOUT_TESTS_LIST_FILE); 70f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(tests_list, false)); 71cf0fd7892b7208ebfa35809b63fc8e4d60e4d466Steve Block FsUtils.findLayoutTestsRecursively(bos, path, false); // Don't ignore results 72f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu bos.flush(); 73f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu bos.close(); 74f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu } catch (Exception e) { 75f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu Log.e(LOGTAG, "Error when creating test list: " + e.getMessage()); 76f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu } 77f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu } 78f92bd42a702af7047ac4bd7c95b4a82973b7a79dGuang Zhu 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 80