Inline hippo's glcomponents
* Replace android support with androidx as well
This commit is contained in:
1 parent
cf3769959f
commit
01daf4a63e
68 files changed
+16325
-7
No files matched your search
@@ -0,0 +1,163 @@
|
||||
/*
|
||||
* Copyright 2016 Hippo Seven
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.hippo.glgallery;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.hippo.glview.image.ImageTexture;
|
||||
import com.hippo.glview.image.ImageWrapper;
|
||||
import com.hippo.glview.view.GLRootView;
|
||||
|
||||
public class SimpleAdapter extends GalleryView.Adapter implements GalleryProvider.Listener {
|
||||
|
||||
private final GalleryProvider mProvider;
|
||||
private final ImageTexture.Uploader mUploader;
|
||||
private boolean mShowIndex = true;
|
||||
|
||||
public SimpleAdapter(@NonNull GLRootView glRootView, @NonNull GalleryProvider provider) {
|
||||
mProvider = provider;
|
||||
mUploader = new ImageTexture.Uploader(glRootView);
|
||||
}
|
||||
|
||||
public void clearUploader() {
|
||||
mUploader.clear();
|
||||
}
|
||||
|
||||
public void setShowIndex(boolean show) {
|
||||
mShowIndex = show;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBind(GalleryPageView view, int index) {
|
||||
mProvider.request(index);
|
||||
view.showInfo();
|
||||
view.setImage(null);
|
||||
if (mShowIndex) {
|
||||
view.setPage(index + 1);
|
||||
} else {
|
||||
view.hidePage();
|
||||
}
|
||||
view.setProgress(GalleryPageView.PROGRESS_INDETERMINATE);
|
||||
view.setError(null, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUnbind(GalleryPageView view, int index) {
|
||||
mProvider.cancelRequest(index);
|
||||
view.setImage(null);
|
||||
view.setError(null, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getError() {
|
||||
return mProvider.getError();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int size() {
|
||||
return mProvider.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDataChanged() {
|
||||
mGalleryView.onDataChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageWait(int index) {
|
||||
GalleryPageView page = findPageByIndex(index);
|
||||
if (page != null) {
|
||||
page.showInfo();
|
||||
page.setImage(null);
|
||||
if (mShowIndex) {
|
||||
page.setPage(index + 1);
|
||||
} else {
|
||||
page.hidePage();
|
||||
}
|
||||
page.setProgress(GalleryPageView.PROGRESS_INDETERMINATE);
|
||||
page.setError(null, null);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPagePercent(int index, float percent) {
|
||||
GalleryPageView page = findPageByIndex(index);
|
||||
if (page != null) {
|
||||
page.showInfo();
|
||||
page.setImage(null);
|
||||
if (mShowIndex) {
|
||||
page.setPage(index + 1);
|
||||
} else {
|
||||
page.hidePage();
|
||||
}
|
||||
page.setProgress(percent);
|
||||
page.setError(null, null);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageSucceed(int index, ImageWrapper image) {
|
||||
GalleryPageView page = findPageByIndex(index);
|
||||
if (page != null) {
|
||||
if (image.obtain()) {
|
||||
ImageTexture imageTexture = new ImageTexture(image);
|
||||
mUploader.addTexture(imageTexture);
|
||||
page.showImage();
|
||||
page.setImage(imageTexture);
|
||||
if (mShowIndex) {
|
||||
page.setPage(index + 1);
|
||||
} else {
|
||||
page.hidePage();
|
||||
}
|
||||
page.setProgress(GalleryPageView.PROGRESS_GONE);
|
||||
page.setError(null, null);
|
||||
} else {
|
||||
// The image is recycled, request again.
|
||||
// TODO request loop ?
|
||||
mProvider.request(index);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageFailed(int index, String error) {
|
||||
GalleryPageView page = findPageByIndex(index);
|
||||
if (page != null) {
|
||||
page.showInfo();
|
||||
page.setImage(null);
|
||||
if (mShowIndex) {
|
||||
page.setPage(index + 1);
|
||||
} else {
|
||||
page.hidePage();
|
||||
}
|
||||
page.setProgress(GalleryPageView.PROGRESS_GONE);
|
||||
page.setError(error, mGalleryView);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDataChanged(int index) {
|
||||
GalleryPageView page = findPageByIndex(index);
|
||||
if (page != null) {
|
||||
mProvider.request(index);
|
||||
}
|
||||
}
|
||||
|
||||
private GalleryPageView findPageByIndex(int index) {
|
||||
return mGalleryView != null ? mGalleryView.findPageByIndex(index) : null;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user