1bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang/*
2bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang * Copyright (C) 2012 The Android Open Source Project
3bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang *
4bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang * Licensed under the Apache License, Version 2.0 (the "License");
5bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang * you may not use this file except in compliance with the License.
6bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang * You may obtain a copy of the License at
7bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang *
8bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang *      http://www.apache.org/licenses/LICENSE-2.0
9bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang *
10bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang * Unless required by applicable law or agreed to in writing, software
11bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang * distributed under the License is distributed on an "AS IS" BASIS,
12bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang * See the License for the specific language governing permissions and
14bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang * limitations under the License.
15bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang */
16bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Changpackage com.android.gallery3d.app;
17bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang
18bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Changimport android.graphics.Rect;
19bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Changimport android.os.Parcel;
20bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Changimport android.os.Parcelable;
21bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang
22bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Changimport com.android.gallery3d.ui.ScreenNail;
23bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang
24bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang// This is the bridge to connect a PhotoPage to the external environment.
25bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Changpublic abstract class AppBridge implements Parcelable {
267817979db0c52ffeacb951625b1e821eba303285Ahbong Chang    @Override
27bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang    public int describeContents() {
28bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang        return 0;
29bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang    }
30bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang
317817979db0c52ffeacb951625b1e821eba303285Ahbong Chang    @Override
32bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang    public void writeToParcel(Parcel dest, int flags) {
33bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang    }
34bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang
35bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang    //////////////////////////////////////////////////////////////////////////
36bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang    //  These are requests sent from PhotoPage to the app
37bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang    //////////////////////////////////////////////////////////////////////////
38bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang
3943a80fd806247cb50e81bacda3ad21d210e9ae88Angus Kong    public abstract boolean isPanorama();
40dbb6acc204ba6f095eb0e49e1298e9ceda2c3096Wu-cheng Li    public abstract boolean isStaticCamera();
41bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang    public abstract ScreenNail attachScreenNail();
42bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang    public abstract void detachScreenNail();
43bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang
44bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang    // Return true if the tap is consumed.
45bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang    public abstract boolean onSingleTapUp(int x, int y);
46bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang
47bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang    // This is used to notify that the screen nail will be drawn in full screen
48bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang    // or not in next draw() call.
49bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang    public abstract void onFullScreenChanged(boolean full);
50bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang
51bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang    //////////////////////////////////////////////////////////////////////////
52bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang    //  These are requests send from app to PhotoPage
53bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang    //////////////////////////////////////////////////////////////////////////
54bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang
55bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang    public interface Server {
56bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang        // Set the camera frame relative to GLRootView.
572ef46ed28b28b355d7f3f1432c7b1196b832a859Chih-Chung Chang        public void setCameraRelativeFrame(Rect frame);
58bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang        // Switch to the previous or next picture using the capture animation.
59bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang        // The offset is -1 to switch to the previous picture, 1 to switch to
60bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang        // the next picture.
61bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang        public boolean switchWithCaptureAnimation(int offset);
626575794a9c09f22d5721e212c093e0a2df376d0cChih-Chung Chang        // Enable or disable the swiping gestures (the default is enabled).
636575794a9c09f22d5721e212c093e0a2df376d0cChih-Chung Chang        public void setSwipingEnabled(boolean enabled);
643b4a8aeb0353fa18a2b5267b3952a80a6c6d4d13Chih-Chung Chang        // Notify that the ScreenNail is changed.
653b4a8aeb0353fa18a2b5267b3952a80a6c6d4d13Chih-Chung Chang        public void notifyScreenNailChanged();
66a0ce682e40c39ce046c48d8a7f989fff01bb9f2cWu-cheng Li        // Add a new media item to the secure album.
67a0ce682e40c39ce046c48d8a7f989fff01bb9f2cWu-cheng Li        public void addSecureAlbumItem(boolean isVideo, int id);
68bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang    }
69bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang
70bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang    // If server is null, the services are not available.
71bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang    public abstract void setServer(Server server);
72bd141b5a51c96f6fcaddfa547f0928ce69cf0755Chih-Chung Chang}
73