1 package com.android.ex.photo;
2 
3 import android.database.Cursor;
4 import android.os.Bundle;
5 import androidx.fragment.app.Fragment;
6 import androidx.loader.content.Loader;
7 
8 import com.android.ex.photo.adapters.PhotoPagerAdapter;
9 import com.android.ex.photo.fragments.PhotoViewFragment;
10 import com.android.ex.photo.loaders.PhotoBitmapLoaderInterface.BitmapResult;
11 
12 public interface PhotoViewCallbacks {
13 
14     public static final int BITMAP_LOADER_AVATAR = 1;
15     public static final int BITMAP_LOADER_THUMBNAIL = 2;
16     public static final int BITMAP_LOADER_PHOTO = 3;
17 
18     /**
19      * Listener to be invoked for screen events.
20      */
21     public static interface OnScreenListener {
22 
23         /**
24          * The full screen state has changed.
25          */
onFullScreenChanged(boolean fullScreen)26         public void onFullScreenChanged(boolean fullScreen);
27 
28         /**
29          * A new view has been activated and the previous view de-activated.
30          */
onViewActivated()31         public void onViewActivated();
32 
33         /**
34          * This view is a candidate for being the next view.
35          *
36          * This will be called when the view is focused completely on the view immediately before
37          * or after this one, so that this view can reset itself if nessecary.
38          */
onViewUpNext()39         public void onViewUpNext();
40 
41         /**
42          * Called when a right-to-left touch move intercept is about to occur.
43          *
44          * @param origX the raw x coordinate of the initial touch
45          * @param origY the raw y coordinate of the initial touch
46          * @return {@code true} if the touch should be intercepted.
47          */
onInterceptMoveLeft(float origX, float origY)48         public boolean onInterceptMoveLeft(float origX, float origY);
49 
50         /**
51          * Called when a left-to-right touch move intercept is about to occur.
52          *
53          * @param origX the raw x coordinate of the initial touch
54          * @param origY the raw y coordinate of the initial touch
55          * @return {@code true} if the touch should be intercepted.
56          */
onInterceptMoveRight(float origX, float origY)57         public boolean onInterceptMoveRight(float origX, float origY);
58     }
59 
60     public static interface CursorChangedListener {
61         /**
62          * Called when the cursor that contains the photo list data
63          * is updated. Note that there is no guarantee that the cursor
64          * will be at the proper position.
65          * @param cursor the cursor containing the photo list data
66          */
onCursorChanged(Cursor cursor)67         public void onCursorChanged(Cursor cursor);
68     }
69 
addScreenListener(int position, OnScreenListener listener)70     public void addScreenListener(int position, OnScreenListener listener);
71 
removeScreenListener(int position)72     public void removeScreenListener(int position);
73 
addCursorListener(CursorChangedListener listener)74     public void addCursorListener(CursorChangedListener listener);
75 
removeCursorListener(CursorChangedListener listener)76     public void removeCursorListener(CursorChangedListener listener);
77 
setViewActivated(int position)78     public void setViewActivated(int position);
79 
onNewPhotoLoaded(int position)80     public void onNewPhotoLoaded(int position);
81 
onFragmentPhotoLoadComplete(PhotoViewFragment fragment, boolean success)82     public void onFragmentPhotoLoadComplete(PhotoViewFragment fragment,
83             boolean success);
84 
toggleFullScreen()85     public void toggleFullScreen();
86 
isFragmentActive(Fragment fragment)87     public boolean isFragmentActive(Fragment fragment);
88 
onFragmentVisible(PhotoViewFragment fragment)89     public void onFragmentVisible(PhotoViewFragment fragment);
90 
isFragmentFullScreen(Fragment fragment)91     public boolean isFragmentFullScreen(Fragment fragment);
92 
onCursorChanged(PhotoViewFragment fragment, Cursor cursor)93     public void onCursorChanged(PhotoViewFragment fragment, Cursor cursor);
94 
onCreateBitmapLoader(int id, Bundle args, String uri)95     public Loader<BitmapResult> onCreateBitmapLoader(int id, Bundle args, String uri);
96 
97     /**
98      * Returns the adapter associated with this activity.
99      */
getAdapter()100     public PhotoPagerAdapter getAdapter();
101 }
102