summaryrefslogtreecommitdiffstats
path: root/src/com/android/messaging/ui/BasePagerViewHolder.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/messaging/ui/BasePagerViewHolder.java')
-rw-r--r--src/com/android/messaging/ui/BasePagerViewHolder.java106
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);
-}