1 /* 2 * Copyright (C) 2015 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package com.android.messaging.ui.photoviewer; 17 18 import android.content.Intent; 19 import android.graphics.drawable.Drawable; 20 import android.support.rastermill.FrameSequenceDrawable; 21 import android.support.v4.content.Loader; 22 23 import com.android.ex.photo.PhotoViewCallbacks; 24 import com.android.ex.photo.fragments.PhotoViewFragment; 25 import com.android.ex.photo.loaders.PhotoBitmapLoaderInterface.BitmapResult; 26 27 public class BuglePhotoViewFragment extends PhotoViewFragment { 28 29 /** Public no-arg constructor for allowing the framework to handle orientation changes */ 30 public BuglePhotoViewFragment() { 31 // Do nothing. 32 } 33 34 public static PhotoViewFragment newInstance(Intent intent, int position, 35 boolean onlyShowSpinner) { 36 final PhotoViewFragment f = new BuglePhotoViewFragment(); 37 initializeArguments(intent, position, onlyShowSpinner, f); 38 return f; 39 } 40 41 @Override 42 public void onLoadFinished(Loader<BitmapResult> loader, BitmapResult result) { 43 super.onLoadFinished(loader, result); 44 // Need to check for the first time when we load the photos 45 if (PhotoViewCallbacks.BITMAP_LOADER_PHOTO == loader.getId() 46 && result.status == BitmapResult.STATUS_SUCCESS 47 && mCallback.isFragmentActive(this)) { 48 startGif(); 49 } 50 } 51 52 @Override 53 public void onResume() { 54 super.onResume(); 55 startGif(); 56 } 57 58 @Override 59 public void onPause() { 60 stopGif(); 61 super.onPause(); 62 } 63 64 @Override 65 public void onViewActivated() { 66 super.onViewActivated(); 67 startGif(); 68 } 69 70 @Override 71 public void resetViews() { 72 super.resetViews(); 73 stopGif(); 74 } 75 76 private void stopGif() { 77 final Drawable drawable = getDrawable(); 78 if (drawable != null && drawable instanceof FrameSequenceDrawable) { 79 ((FrameSequenceDrawable) drawable).stop(); 80 } 81 } 82 83 private void startGif() { 84 final Drawable drawable = getDrawable(); 85 if (drawable != null && drawable instanceof FrameSequenceDrawable) { 86 ((FrameSequenceDrawable) drawable).start(); 87 } 88 } 89 } 90