package de.stephanlindauer.criticalmaps.fragments;
import android.animation.LayoutTransition;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import butterknife.Bind;
import butterknife.ButterKnife;
import de.stephanlindauer.criticalmaps.R;
import de.stephanlindauer.criticalmaps.utils.IntentUtil.URLOpenOnActivityOnClickListener;
public class AboutFragment extends Fragment {
private static final String KEY_SCROLLVIEW_POSITION = "scrollview_position";
@Bind(R.id.about_facebook)
ImageButton facebookButton;
@Bind(R.id.about_twitter)
ImageButton twitterButton;
@Bind(R.id.about_scrollview)
ScrollView scrollView;
@Bind(R.id.about_subcontainer)
LinearLayout linearLayout;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View view = inflater.inflate(R.layout.fragment_about, container, false);
ButterKnife.bind(this, view);
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (savedInstanceState != null) {
// pre KK ScrollViews don't automatically save/restore their scroll state
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.JELLY_BEAN_MR2) {
final int scrollviewPosition = savedInstanceState.getInt(KEY_SCROLLVIEW_POSITION, 0);
if (scrollviewPosition != 0) {
// needs to be put on the queue so it executes when the view becomes visible
scrollView.post(new Runnable() {
public void run() {
scrollView.scrollTo(0, scrollviewPosition);
}
});
}
}
}
LayoutTransition layoutTransition = linearLayout.getLayoutTransition();
if (layoutTransition != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
// make LicensePanelView animations look nice
layoutTransition.enableTransitionType(LayoutTransition.CHANGING);
// stop settings from bubbling up to ScrollView to prevent scroll animation
// on state restore and panel close
layoutTransition.setAnimateParentHierarchy(false);
linearLayout.setLayoutTransition(layoutTransition);
}
facebookButton.setOnClickListener(new URLOpenOnActivityOnClickListener("https://www.facebook.com/criticalmaps"));
twitterButton.setOnClickListener(new URLOpenOnActivityOnClickListener("https://twitter.com/CriticalMaps"));
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.JELLY_BEAN_MR2) {
outState.putInt(KEY_SCROLLVIEW_POSITION, scrollView.getScrollY());
}
}
@Override
public void onDestroyView() {
super.onDestroyView();
ButterKnife.unbind(this);
}
}