1ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan/*
2ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan * Copyright (C) 2013 The Android Open Source Project
3ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan *
4ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan * Licensed under the Apache License, Version 2.0 (the "License");
5ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan * you may not use this file except in compliance with the License.
6ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan * You may obtain a copy of the License at
7ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan *
8ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan *      http://www.apache.org/licenses/LICENSE-2.0
9ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan *
10ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan * Unless required by applicable law or agreed to in writing, software
11ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan * distributed under the License is distributed on an "AS IS" BASIS,
12ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan * See the License for the specific language governing permissions and
14ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan * limitations under the License.
15ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan */
16ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan
17ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayanpackage com.android.camera.app;
18ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan
19ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayanimport android.location.Location;
20ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan
21ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan/**
22ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan * A generic interface for a location provider {Fused, GPS, Network}.
23ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan */
24ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayanpublic interface LocationProvider {
254d49016bde526681e100c9b66c842380dfc007ccKevin Gabayan
264d49016bde526681e100c9b66c842380dfc007ccKevin Gabayan    /**
274d49016bde526681e100c9b66c842380dfc007ccKevin Gabayan     * Report when connection fails so another location provider may be used.
284d49016bde526681e100c9b66c842380dfc007ccKevin Gabayan     */
294d49016bde526681e100c9b66c842380dfc007ccKevin Gabayan    public interface OnConnectionFailedListener {
304d49016bde526681e100c9b66c842380dfc007ccKevin Gabayan        /**
314d49016bde526681e100c9b66c842380dfc007ccKevin Gabayan         * Report connection failure.
324d49016bde526681e100c9b66c842380dfc007ccKevin Gabayan         */
334d49016bde526681e100c9b66c842380dfc007ccKevin Gabayan        public void onConnectionFailed();
344d49016bde526681e100c9b66c842380dfc007ccKevin Gabayan    }
354d49016bde526681e100c9b66c842380dfc007ccKevin Gabayan
36ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan    /**
37ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan     * Get the current location.
38ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan     */
39ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan    public Location getCurrentLocation();
40ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan
41ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan    /**
42ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan     * Turn on/off recording of location.
43ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan     *
44ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan     * @param recordLocation Whether or not to record location.
45ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan     */
46ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan    public void recordLocation(boolean recordLocation);
47ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan
48ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan    /**
49ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan     * Disconnect the location provider after use. The location provider can no longer acquire
50ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan     * locations after this has been called.
51ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan     */
52ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan    public void disconnect();
53ffbc43c3dd3c94a968a41431fb07645a13696c4aKevin Gabayan}