Bug 1321981 - [RTL] ViewPager Support - part 2. Notify dataset change with calling super, r=sebastian
MozReview-Commit-ID: LUvWH3Sq8IJ
--- a/mobile/android/thirdparty/com/booking/rtlviewpager/PagerAdapterWrapper.java
+++ b/mobile/android/thirdparty/com/booking/rtlviewpager/PagerAdapterWrapper.java
@@ -10,33 +10,48 @@
* 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.booking.rtlviewpager;
+import android.database.DataSetObservable;
import android.database.DataSetObserver;
import android.os.Parcelable;
import android.support.annotation.NonNull;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
/**
* PagerAdapter decorator.
*/
class PagerAdapterWrapper extends PagerAdapter {
@NonNull
private final PagerAdapter adapter;
+ private final DataSetObservable dataSetObservable = new DataSetObservable();
+
protected PagerAdapterWrapper(@NonNull PagerAdapter adapter) {
this.adapter = adapter;
+ this.adapter.registerDataSetObserver(new DataSetObserver() {
+ @Override
+ public void onChanged() {
+ PagerAdapterWrapper.super.notifyDataSetChanged();
+ dataSetObservable.notifyChanged();
+ }
+
+ @Override
+ public void onInvalidated() {
+ dataSetObservable.notifyInvalidated();
+ }
+ });
}
@NonNull
public PagerAdapter getInnerAdapter() {
return adapter;
}
@Override
@@ -81,22 +96,22 @@ class PagerAdapterWrapper extends PagerA
@Override
public void notifyDataSetChanged() {
adapter.notifyDataSetChanged();
}
@Override
public void registerDataSetObserver(DataSetObserver observer) {
- adapter.registerDataSetObserver(observer);
+ dataSetObservable.registerObserver(observer);
}
@Override
public void unregisterDataSetObserver(DataSetObserver observer) {
- adapter.unregisterDataSetObserver(observer);
+ dataSetObservable.unregisterObserver(observer);
}
@Override
public Parcelable saveState() {
return adapter.saveState();
}
@Override