MockProvider.java revision 7e9f4eb2608148436cef36c9969bf8a599b39e72
17ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood/* 27ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood * Copyright (C) 2009 The Android Open Source Project 37ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood * 47ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood * Licensed under the Apache License, Version 2.0 (the "License"); 57ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood * you may not use this file except in compliance with the License. 67ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood * You may obtain a copy of the License at 77ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood * 87ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood * http://www.apache.org/licenses/LICENSE-2.0 97ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood * 107ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood * Unless required by applicable law or agreed to in writing, software 117ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood * distributed under the License is distributed on an "AS IS" BASIS, 127ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood * See the License for the specific language governing permissions and 147ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood * limitations under the License. 157ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood */ 167ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood 1700b74270c9f136a8727c5f6cda0997a3a905f385Mike Lockwoodpackage com.android.server.location; 187ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood 1903ca216ac19ea4e7afcb183c20c7c780f0d97756Mike Lockwoodimport android.location.Criteria; 204e50b78bda9cd58be61581d2886c88ff6348a1c1Mike Lockwoodimport android.location.ILocationManager; 217ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwoodimport android.location.Location; 2215e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwoodimport android.location.LocationProvider; 2303d246779ea65fc2bd10d0b4f32620f45211133aMike Lockwoodimport android.net.NetworkInfo; 247ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwoodimport android.os.Bundle; 2515e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwoodimport android.os.RemoteException; 267e9f4eb2608148436cef36c9969bf8a599b39e72Dianne Hackbornimport android.os.WorkSource; 2715e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwoodimport android.util.Log; 287ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwoodimport android.util.PrintWriterPrinter; 297ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood 307ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwoodimport java.io.PrintWriter; 317ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood 327ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood/** 337ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood * A mock location provider used by LocationManagerService to implement test providers. 347ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood * 357ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood * {@hide} 367ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood */ 37d03ff94fe58045b5bd1dd783fb98026778a4265dMike Lockwoodpublic class MockProvider implements LocationProviderInterface { 3815e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood private final String mName; 3915e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood private final ILocationManager mLocationManager; 407ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood private final boolean mRequiresNetwork; 417ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood private final boolean mRequiresSatellite; 427ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood private final boolean mRequiresCell; 437ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood private final boolean mHasMonetaryCost; 447ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood private final boolean mSupportsAltitude; 457ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood private final boolean mSupportsSpeed; 467ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood private final boolean mSupportsBearing; 477ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood private final int mPowerRequirement; 487ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood private final int mAccuracy; 497ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood private final Location mLocation; 507ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood private int mStatus; 517ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood private long mStatusUpdateTime; 527ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood private final Bundle mExtras = new Bundle(); 537ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood private boolean mHasLocation; 547ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood private boolean mHasStatus; 557ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood private boolean mEnabled; 567ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood 5715e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood private static final String TAG = "MockProvider"; 5815e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood 594e50b78bda9cd58be61581d2886c88ff6348a1c1Mike Lockwood public MockProvider(String name, ILocationManager locationManager, 604e50b78bda9cd58be61581d2886c88ff6348a1c1Mike Lockwood boolean requiresNetwork, boolean requiresSatellite, 617ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood boolean requiresCell, boolean hasMonetaryCost, boolean supportsAltitude, 627ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood boolean supportsSpeed, boolean supportsBearing, int powerRequirement, int accuracy) { 6315e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood mName = name; 6415e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood mLocationManager = locationManager; 657ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood mRequiresNetwork = requiresNetwork; 667ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood mRequiresSatellite = requiresSatellite; 677ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood mRequiresCell = requiresCell; 687ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood mHasMonetaryCost = hasMonetaryCost; 697ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood mSupportsAltitude = supportsAltitude; 707ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood mSupportsBearing = supportsBearing; 717ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood mSupportsSpeed = supportsSpeed; 727ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood mPowerRequirement = powerRequirement; 737ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood mAccuracy = accuracy; 747ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood mLocation = new Location(name); 757ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood } 767ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood 77d03ff94fe58045b5bd1dd783fb98026778a4265dMike Lockwood public String getName() { 78d03ff94fe58045b5bd1dd783fb98026778a4265dMike Lockwood return mName; 79d03ff94fe58045b5bd1dd783fb98026778a4265dMike Lockwood } 80d03ff94fe58045b5bd1dd783fb98026778a4265dMike Lockwood 817ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood public void disable() { 827ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood mEnabled = false; 837ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood } 847ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood 857ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood public void enable() { 867ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood mEnabled = true; 877ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood } 887ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood 89d03ff94fe58045b5bd1dd783fb98026778a4265dMike Lockwood public boolean isEnabled() { 90d03ff94fe58045b5bd1dd783fb98026778a4265dMike Lockwood return mEnabled; 91d03ff94fe58045b5bd1dd783fb98026778a4265dMike Lockwood } 92d03ff94fe58045b5bd1dd783fb98026778a4265dMike Lockwood 937ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood public int getStatus(Bundle extras) { 947ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood if (mHasStatus) { 957ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood extras.clear(); 967ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood extras.putAll(mExtras); 977ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood return mStatus; 987ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood } else { 9915e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood return LocationProvider.AVAILABLE; 1007ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood } 1017ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood } 1027ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood 1034e50b78bda9cd58be61581d2886c88ff6348a1c1Mike Lockwood public long getStatusUpdateTime() { 1044e50b78bda9cd58be61581d2886c88ff6348a1c1Mike Lockwood return mStatusUpdateTime; 1054e50b78bda9cd58be61581d2886c88ff6348a1c1Mike Lockwood } 1064e50b78bda9cd58be61581d2886c88ff6348a1c1Mike Lockwood 1077ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood public int getAccuracy() { 1087ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood return mAccuracy; 1097ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood } 1107ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood 1117ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood public int getPowerRequirement() { 1127ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood return mPowerRequirement; 1137ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood } 1147ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood 1157ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood public boolean hasMonetaryCost() { 1167ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood return mHasMonetaryCost; 1177ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood } 1187ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood 1197ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood public boolean requiresCell() { 1207ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood return mRequiresCell; 1217ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood } 1227ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood 1237ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood public boolean requiresNetwork() { 1247ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood return mRequiresNetwork; 1257ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood } 1267ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood 1277ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood public boolean requiresSatellite() { 1287ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood return mRequiresSatellite; 1297ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood } 1307ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood 1317ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood public boolean supportsAltitude() { 1327ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood return mSupportsAltitude; 1337ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood } 1347ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood 1357ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood public boolean supportsBearing() { 1367ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood return mSupportsBearing; 1377ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood } 1387ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood 1397ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood public boolean supportsSpeed() { 1407ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood return mSupportsSpeed; 1417ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood } 1427ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood 14303ca216ac19ea4e7afcb183c20c7c780f0d97756Mike Lockwood public boolean meetsCriteria(Criteria criteria) { 14403ca216ac19ea4e7afcb183c20c7c780f0d97756Mike Lockwood if ((criteria.getAccuracy() != Criteria.NO_REQUIREMENT) && 14503ca216ac19ea4e7afcb183c20c7c780f0d97756Mike Lockwood (criteria.getAccuracy() < mAccuracy)) { 14603ca216ac19ea4e7afcb183c20c7c780f0d97756Mike Lockwood return false; 14703ca216ac19ea4e7afcb183c20c7c780f0d97756Mike Lockwood } 14803ca216ac19ea4e7afcb183c20c7c780f0d97756Mike Lockwood int criteriaPower = criteria.getPowerRequirement(); 14903ca216ac19ea4e7afcb183c20c7c780f0d97756Mike Lockwood if ((criteriaPower != Criteria.NO_REQUIREMENT) && 15003ca216ac19ea4e7afcb183c20c7c780f0d97756Mike Lockwood (criteriaPower < mPowerRequirement)) { 15103ca216ac19ea4e7afcb183c20c7c780f0d97756Mike Lockwood return false; 15203ca216ac19ea4e7afcb183c20c7c780f0d97756Mike Lockwood } 15303ca216ac19ea4e7afcb183c20c7c780f0d97756Mike Lockwood if (criteria.isAltitudeRequired() && !mSupportsAltitude) { 15403ca216ac19ea4e7afcb183c20c7c780f0d97756Mike Lockwood return false; 15503ca216ac19ea4e7afcb183c20c7c780f0d97756Mike Lockwood } 15603ca216ac19ea4e7afcb183c20c7c780f0d97756Mike Lockwood if (criteria.isSpeedRequired() && !mSupportsSpeed) { 15703ca216ac19ea4e7afcb183c20c7c780f0d97756Mike Lockwood return false; 15803ca216ac19ea4e7afcb183c20c7c780f0d97756Mike Lockwood } 15903ca216ac19ea4e7afcb183c20c7c780f0d97756Mike Lockwood if (criteria.isBearingRequired() && !mSupportsBearing) { 16003ca216ac19ea4e7afcb183c20c7c780f0d97756Mike Lockwood return false; 16103ca216ac19ea4e7afcb183c20c7c780f0d97756Mike Lockwood } 16203ca216ac19ea4e7afcb183c20c7c780f0d97756Mike Lockwood return true; 16303ca216ac19ea4e7afcb183c20c7c780f0d97756Mike Lockwood } 16403ca216ac19ea4e7afcb183c20c7c780f0d97756Mike Lockwood 1657ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood public void setLocation(Location l) { 1667ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood mLocation.set(l); 1677ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood mHasLocation = true; 16815e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood try { 169a4903f254b4711c8fc0ac5f7e3d605f4dce34f35Mike Lockwood mLocationManager.reportLocation(mLocation, false); 17015e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood } catch (RemoteException e) { 17115e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood Log.e(TAG, "RemoteException calling reportLocation"); 17215e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood } 1737ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood } 1747ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood 1757ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood public void clearLocation() { 1767ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood mHasLocation = false; 1777ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood } 1787ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood 1797ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood public void setStatus(int status, Bundle extras, long updateTime) { 1807ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood mStatus = status; 1817ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood mStatusUpdateTime = updateTime; 1827ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood mExtras.clear(); 1837ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood if (extras != null) { 1847ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood mExtras.putAll(extras); 1857ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood } 1867ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood mHasStatus = true; 1877ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood } 1887ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood 1897ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood public void clearStatus() { 1907ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood mHasStatus = false; 1914e50b78bda9cd58be61581d2886c88ff6348a1c1Mike Lockwood mStatusUpdateTime = 0; 1927ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood } 1937ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood 1943c8fbdf5dd19fad0b3006557716ee1026d7d5899Fred Fettinger public String getInternalState() { 1953c8fbdf5dd19fad0b3006557716ee1026d7d5899Fred Fettinger return null; 1963c8fbdf5dd19fad0b3006557716ee1026d7d5899Fred Fettinger } 1973c8fbdf5dd19fad0b3006557716ee1026d7d5899Fred Fettinger 19815e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood public void enableLocationTracking(boolean enable) { 19915e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood } 20015e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood 20103ca216ac19ea4e7afcb183c20c7c780f0d97756Mike Lockwood public boolean requestSingleShotFix() { 20203ca216ac19ea4e7afcb183c20c7c780f0d97756Mike Lockwood return false; 20303ca216ac19ea4e7afcb183c20c7c780f0d97756Mike Lockwood } 20403ca216ac19ea4e7afcb183c20c7c780f0d97756Mike Lockwood 2057e9f4eb2608148436cef36c9969bf8a599b39e72Dianne Hackborn public void setMinTime(long minTime, WorkSource ws) { 20615e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood } 20715e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood 20803d246779ea65fc2bd10d0b4f32620f45211133aMike Lockwood public void updateNetworkState(int state, NetworkInfo info) { 20915e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood } 21015e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood 211fd6e5f0dda50e113db4ccc55338b6c4f09da37a4Mike Lockwood public void updateLocation(Location location) { 212fd6e5f0dda50e113db4ccc55338b6c4f09da37a4Mike Lockwood } 213fd6e5f0dda50e113db4ccc55338b6c4f09da37a4Mike Lockwood 21415e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood public boolean sendExtraCommand(String command, Bundle extras) { 21515e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood return false; 21615e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood } 21715e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood 21815e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood public void addListener(int uid) { 21915e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood } 22015e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood 22115e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood public void removeListener(int uid) { 22215e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood } 22315e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood 2247ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood public void dump(PrintWriter pw, String prefix) { 22515e3d0f082d551f8819fbe4b0d502cc108627876Mike Lockwood pw.println(prefix + mName); 2267ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood pw.println(prefix + "mHasLocation=" + mHasLocation); 2277ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood pw.println(prefix + "mLocation:"); 2287ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood mLocation.dump(new PrintWriterPrinter(pw), prefix + " "); 2297ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood pw.println(prefix + "mHasStatus=" + mHasStatus); 2307ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood pw.println(prefix + "mStatus=" + mStatus); 2317ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood pw.println(prefix + "mStatusUpdateTime=" + mStatusUpdateTime); 2327ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood pw.println(prefix + "mExtras=" + mExtras); 2337ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood } 2347ec434e2e179776d75c8a4da66dcfd2ee630c5d8Mike Lockwood} 235