1cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root/* 2cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root * Copyright (C) 2011 The Android Open Source Project 3cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root * 4cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root * Licensed under the Apache License, Version 2.0 (the "License"); 5cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root * you may not use this file except in compliance with the License. 6cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root * You may obtain a copy of the License at 7cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root * 8cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root * http://www.apache.org/licenses/LICENSE-2.0 9cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root * 10cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root * Unless required by applicable law or agreed to in writing, software 11cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root * distributed under the License is distributed on an "AS IS" BASIS, 12cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root * See the License for the specific language governing permissions and 14cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root * limitations under the License. 15cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root */ 16cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root 17cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Rootpackage com.android.server.pm; 18cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root 19cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Rootimport com.android.internal.util.XmlUtils; 20cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Rootimport com.android.server.PreferredComponent; 21cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root 22cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Rootimport org.xmlpull.v1.XmlPullParser; 23cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Rootimport org.xmlpull.v1.XmlPullParserException; 24cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Rootimport org.xmlpull.v1.XmlSerializer; 25cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root 26cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Rootimport android.content.ComponentName; 27cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Rootimport android.content.IntentFilter; 28cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Rootimport android.util.Log; 29cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root 30cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Rootimport java.io.IOException; 31cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root 32cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Rootclass PreferredActivity extends IntentFilter implements PreferredComponent.Callbacks { 33cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root private static final String TAG = "PreferredActivity"; 34cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root 35cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root private static final boolean DEBUG_FILTERS = false; 36a3f133afe885f9e005dfc0584cb7b3b90f75f665Amith Yamasani static final String ATTR_USER_ID = "userId"; 37cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root 38cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root final PreferredComponent mPref; 39cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root 40cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root PreferredActivity(IntentFilter filter, int match, ComponentName[] set, ComponentName activity) { 41cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root super(filter); 42cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root mPref = new PreferredComponent(this, match, set, activity); 43cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root } 44cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root 45cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root PreferredActivity(XmlPullParser parser) throws XmlPullParserException, IOException { 46cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root mPref = new PreferredComponent(this, parser); 47cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root } 48cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root 49cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root public void writeToXml(XmlSerializer serializer) throws IOException { 50cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root mPref.writeToXml(serializer); 51cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root serializer.startTag(null, "filter"); 52a3f133afe885f9e005dfc0584cb7b3b90f75f665Amith Yamasani super.writeToXml(serializer); 53cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root serializer.endTag(null, "filter"); 54cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root } 55cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root 56cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root public boolean onReadTag(String tagName, XmlPullParser parser) throws XmlPullParserException, 57cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root IOException { 58cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root if (tagName.equals("filter")) { 59cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root if (DEBUG_FILTERS) { 60cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root Log.i(TAG, "Starting to parse filter..."); 61cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root } 62cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root readFromXml(parser); 63cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root if (DEBUG_FILTERS) { 64cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root Log.i(TAG, "Finished filter: depth=" + parser.getDepth() + " tag=" 65cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root + parser.getName()); 66cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root } 67cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root } else { 68cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root PackageManagerService.reportSettingsProblem(Log.WARN, 69cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root "Unknown element under <preferred-activities>: " + parser.getName()); 70cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root XmlUtils.skipCurrentTag(parser); 71cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root } 72cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root return true; 73cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root } 74cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root} 75