/*
* Copyright (c) 2015 PocketHub
*
* 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.github.pockethub.android.ui;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v7.widget.Toolbar;
import com.github.pockethub.android.R;
import com.github.pockethub.android.ui.view.DotPageIndicator;
public abstract class DotPagerActivity<V extends PagerAdapter>
extends PagerActivity{
private ViewPager pager;
protected DotPageIndicator dotPageIndicator;
/**
* Pager adapter
*/
protected V adapter;
/**
* Create pager adapter
*
* @return pager adapter
*/
protected abstract V createAdapter();
/**
* Creates the adapter and passes it to the {@link ViewPager}
*/
private void createPager() {
adapter = createAdapter();
invalidateOptionsMenu();
pager.setAdapter(adapter);
}
/**
* Creates the pager and passes it to the {@link DotPageIndicator}
*/
protected void configureDotPager() {
if (adapter == null) {
createPager();
dotPageIndicator.setViewPager(pager);
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getContentView());
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
if(toolbar != null) {
setSupportActionBar(toolbar);
// On Lollipop, the action bar shadow is provided by default, so have to remove it explicitly
getSupportActionBar().setElevation(0);
}
pager = (ViewPager) findViewById(R.id.vp_pages);
pager.addOnPageChangeListener(this);
dotPageIndicator = (DotPageIndicator) findViewById(R.id.dot_page_indicator);
}
@Override
protected void onDestroy() {
super.onDestroy();
pager.removeOnPageChangeListener(this);
}
@Override
protected FragmentProvider getProvider() {
return null;
}
public int getContentView() {
return R.layout.pager_with_dots;
}
public ViewPager getViewPager(){
return pager;
}
}