diff options
Diffstat (limited to 'src/com/android/messaging/ui/BasePagerViewHolder.java')
-rw-r--r-- | src/com/android/messaging/ui/BasePagerViewHolder.java | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/src/com/android/messaging/ui/BasePagerViewHolder.java b/src/com/android/messaging/ui/BasePagerViewHolder.java deleted file mode 100644 index a82ecce..0000000 --- a/src/com/android/messaging/ui/BasePagerViewHolder.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * 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.android.messaging.ui; - -import android.os.Parcelable; -import android.view.View; -import android.view.ViewGroup; - -/** - * The base pager view holder implementation that handles basic view creation/destruction logic, - * as well as logic to save/restore instance state that's persisted not only for activity - * reconstruction (e.g. during a configuration change), but also cases where the individual - * page view gets destroyed and recreated. - * - * To opt into saving/restoring instance state behavior for a particular page view, let the - * PageView implement PersistentInstanceState to save and restore instance states to/from a - * Parcelable. - */ -public abstract class BasePagerViewHolder implements PagerViewHolder { - protected View mView; - protected Parcelable mSavedState; - - /** - * This is called when the entire view pager is being torn down (due to configuration change - * for example) that will be restored later. - */ - @Override - public Parcelable saveState() { - savePendingState(); - return mSavedState; - } - - /** - * This is called when the view pager is being restored. - */ - @Override - public void restoreState(final Parcelable restoredState) { - if (restoredState != null) { - mSavedState = restoredState; - // If the view is already there, let it restore the state. Otherwise, it will be - // restored the next time the view gets created. - restorePendingState(); - } - } - - @Override - public void resetState() { - mSavedState = null; - if (mView != null && (mView instanceof PersistentInstanceState)) { - ((PersistentInstanceState) mView).resetState(); - } - } - - /** - * This is called when the view itself is being torn down. This may happen when the user - * has flipped to another page in the view pager, so we want to save the current state if - * possible. - */ - @Override - public View destroyView() { - savePendingState(); - final View retView = mView; - mView = null; - return retView; - } - - @Override - public View getView(ViewGroup container) { - if (mView == null) { - mView = createView(container); - // When initially created, check if the view has any saved state. If so restore it. - restorePendingState(); - } - return mView; - } - - private void savePendingState() { - if (mView != null && (mView instanceof PersistentInstanceState)) { - mSavedState = ((PersistentInstanceState) mView).saveState(); - } - } - - private void restorePendingState() { - if (mView != null && (mView instanceof PersistentInstanceState) && (mSavedState != null)) { - ((PersistentInstanceState) mView).restoreState(mSavedState); - } - } - - /** - * Create and initialize a new page view. - */ - protected abstract View createView(ViewGroup container); -} |