/* * Copyright (C) 2012 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.motorola.studio.android.common.utilities; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.List; /** * Knows how to get activity, receiver and/or service actions information from a target */ public class TargetDataReader { //path inside <Android_SDK>\platforms\<Target>\data\activity_actions.txt private final File activityActionsFile; //path inside <Android_SDK>\platforms\<Target>\data\broadcast_actions.txt private final File broadCastActionsFile; //path inside <Android_SDK>\platforms\<Target>\data\service_actions.txt private final File serviceActionsFile; //path inside <Android_SDK>\platforms\<Target>\data\categories.txt private final File categoriesFile; /** * @param androidTarget path to <android_sdk_root>/platforms/<target_name> */ public TargetDataReader(File androidTarget) { File dataFolder = new File(androidTarget, "data"); //$NON-NLS-1$ this.activityActionsFile = new File(dataFolder, "activity_actions.txt"); //$NON-NLS-1$ this.broadCastActionsFile = new File(dataFolder, "broadcast_actions.txt"); //$NON-NLS-1$ this.serviceActionsFile = new File(dataFolder, "service_actions.txt"); //$NON-NLS-1$ this.categoriesFile = new File(dataFolder, "categories.txt"); //$NON-NLS-1$ } private List<String> readItems(File file) throws IOException { List<String> items = new ArrayList<String>(); BufferedReader bufferedReader = null; FileReader reader = null; try { reader = new FileReader(file); bufferedReader = new BufferedReader(reader); String line; while ((line = bufferedReader.readLine()) != null) { items.add(line.trim()); } } finally { if (reader != null) { reader.close(); } if (bufferedReader != null) { bufferedReader.close(); } } return items; } /** * Reads activity actions file and creates the list of activity actions * @return list of activityActions available * @throws IOException if file not found, or if there is any problem reading the activity_actions file */ public List<String> getActivityActions() throws IOException { return readItems(activityActionsFile); } /** * Reads service actions file and creates the list of service actions * @return list of serviceActions available * @throws IOException if file not found, or if there is any problem reading the service_actions file */ public List<String> getServiceActions() throws IOException { return readItems(serviceActionsFile); } /** * Reads broadcast receiver actions file and creates the list of broadcast receiver actions * @return list of broadcastReceiverActions available * @throws IOException if file not found, or if there is any problem reading the broadcast_actions file */ public List<String> getReceiverActions() throws IOException { return readItems(broadCastActionsFile); } /** * Reads categories file and creates the list of categories available in the target * @return list of Intent Filters Categories available * @throws IOException if file not found, or if there is any problem reading the broadcast_actions file */ public List<String> getIntentFilterCategories() throws IOException { return readItems(categoriesFile); } }