11af4b0280af406cfc7eb46810f6b76e57b983e11destradaa/*
21af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * Copyright (C) 2013 The Android Open Source Project
31af4b0280af406cfc7eb46810f6b76e57b983e11destradaa *
41af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * Licensed under the Apache License, Version 2.0 (the "License");
51af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * you may not use this file except in compliance with the License.
61af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * You may obtain a copy of the License at
71af4b0280af406cfc7eb46810f6b76e57b983e11destradaa *
81af4b0280af406cfc7eb46810f6b76e57b983e11destradaa *     http://www.apache.org/licenses/LICENSE-2.0
91af4b0280af406cfc7eb46810f6b76e57b983e11destradaa *
101af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * Unless required by applicable law or agreed to in writing, software
111af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * distributed under the License is distributed on an "AS IS" BASIS,
121af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
131af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * See the License for the specific language governing permissions and
141af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * limitations under the License.
151af4b0280af406cfc7eb46810f6b76e57b983e11destradaa */
161af4b0280af406cfc7eb46810f6b76e57b983e11destradaa
171af4b0280af406cfc7eb46810f6b76e57b983e11destradaapackage com.android.location.provider;
181af4b0280af406cfc7eb46810f6b76e57b983e11destradaa
191af4b0280af406cfc7eb46810f6b76e57b983e11destradaaimport android.hardware.location.IFusedLocationHardware;
201af4b0280af406cfc7eb46810f6b76e57b983e11destradaaimport android.location.IFusedProvider;
211af4b0280af406cfc7eb46810f6b76e57b983e11destradaaimport android.os.IBinder;
221af4b0280af406cfc7eb46810f6b76e57b983e11destradaa
231af4b0280af406cfc7eb46810f6b76e57b983e11destradaa/**
241af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * Base class for Fused providers implemented as unbundled services.
251af4b0280af406cfc7eb46810f6b76e57b983e11destradaa *
261af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * <p>Fused providers can be implemented as services and return the result of
271af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * {@link com.android.location.provider.FusedProvider#getBinder()} in its getBinder() method.
281af4b0280af406cfc7eb46810f6b76e57b983e11destradaa *
291af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * <p>IMPORTANT: This class is effectively a public API for unbundled applications, and must remain
301af4b0280af406cfc7eb46810f6b76e57b983e11destradaa * API stable. See README.txt in the root of this package for more information.
311af4b0280af406cfc7eb46810f6b76e57b983e11destradaa */
321af4b0280af406cfc7eb46810f6b76e57b983e11destradaapublic abstract class FusedProvider {
331af4b0280af406cfc7eb46810f6b76e57b983e11destradaa    private IFusedProvider.Stub mProvider = new IFusedProvider.Stub() {
341af4b0280af406cfc7eb46810f6b76e57b983e11destradaa        @Override
351af4b0280af406cfc7eb46810f6b76e57b983e11destradaa        public void onFusedLocationHardwareChange(IFusedLocationHardware instance) {
361af4b0280af406cfc7eb46810f6b76e57b983e11destradaa            setFusedLocationHardware(new FusedLocationHardware(instance));
371af4b0280af406cfc7eb46810f6b76e57b983e11destradaa        }
381af4b0280af406cfc7eb46810f6b76e57b983e11destradaa    };
391af4b0280af406cfc7eb46810f6b76e57b983e11destradaa
401af4b0280af406cfc7eb46810f6b76e57b983e11destradaa    /**
411af4b0280af406cfc7eb46810f6b76e57b983e11destradaa     * Gets the Binder associated with the provider.
421af4b0280af406cfc7eb46810f6b76e57b983e11destradaa     * This is intended to be used for the onBind() method of a service that implements a fused
431af4b0280af406cfc7eb46810f6b76e57b983e11destradaa     * service.
441af4b0280af406cfc7eb46810f6b76e57b983e11destradaa     *
451af4b0280af406cfc7eb46810f6b76e57b983e11destradaa     * @return The IBinder instance associated with the provider.
461af4b0280af406cfc7eb46810f6b76e57b983e11destradaa     */
471af4b0280af406cfc7eb46810f6b76e57b983e11destradaa    public IBinder getBinder() {
481af4b0280af406cfc7eb46810f6b76e57b983e11destradaa        return mProvider;
491af4b0280af406cfc7eb46810f6b76e57b983e11destradaa    }
501af4b0280af406cfc7eb46810f6b76e57b983e11destradaa
511af4b0280af406cfc7eb46810f6b76e57b983e11destradaa    /**
521af4b0280af406cfc7eb46810f6b76e57b983e11destradaa     * Sets the FusedLocationHardware instance in the provider..
531af4b0280af406cfc7eb46810f6b76e57b983e11destradaa     * @param value     The instance to set. This can be null in cases where the service connection
541af4b0280af406cfc7eb46810f6b76e57b983e11destradaa     *                  is disconnected.
551af4b0280af406cfc7eb46810f6b76e57b983e11destradaa     */
561af4b0280af406cfc7eb46810f6b76e57b983e11destradaa    public abstract void setFusedLocationHardware(FusedLocationHardware value);
571af4b0280af406cfc7eb46810f6b76e57b983e11destradaa}
58