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