Java tutorial
/* * Copyright 2015 - 2016 Hauke Oldsen * * 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 de.gebatzens.sia.fragment; import android.content.res.Configuration; import android.os.Bundle; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; import android.support.v4.view.ViewPager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.TextView; import java.util.Date; import java.util.List; import de.gebatzens.sia.SIAApp; import de.gebatzens.sia.MainActivity; import de.gebatzens.sia.R; import de.gebatzens.sia.data.Subst; public class SubstFragment extends RemoteDataFragment { public ViewPager mViewPager; public SubstAdapter substAdapter; public Bundle bundle; public TabLayout mTabLayout; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ((MainActivity) getActivity()).updateMenu(R.menu.toolbar_menu); return inflater.inflate(R.layout.fragment_subst, container, false); } private int toPixels(int dp) { float scale = getResources().getDisplayMetrics().density; return (int) (dp * scale + 0.5f); } public void updateTime(Date newTime) { List<Fragment> frags = getChildFragmentManager().getFragments(); if (frags != null) { for (Fragment fr : frags) { if (fr != null) { View v = fr.getView(); if (v != null) { v = v.findViewWithTag("gg_time"); if (v != null) { String diff = SubstPagerFragment.getTimeDiff(getActivity(), newTime); TextView tv = (TextView) v; tv.setText(diff); } } } } } } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); bundle = ((MainActivity) getActivity()).savedState; mViewPager = (ViewPager) view.findViewById(R.id.viewpager); substAdapter = new SubstAdapter(this, savedInstanceState, mViewPager); /*if(bundle != null) { for(int i = 0; i < substAdapter.fragments.size(); i++) substAdapter.fragments.get(i).spinnerPos = bundle.getInt("ggvp_frag_spinner_" + i); }*/ mViewPager.setAdapter(substAdapter); mViewPager.setOffscreenPageLimit(2); if (bundle != null) mViewPager.setCurrentItem(bundle.getInt("ggvp_tab")); mTabLayout = (TabLayout) view.findViewById(R.id.tab_layout); mTabLayout.setupWithViewPager(mViewPager); if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { mTabLayout.setPadding(toPixels(48), 0, toPixels(48), 0); mTabLayout.setTabMode(TabLayout.MODE_SCROLLABLE); } else if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { mTabLayout.setTabMode(TabLayout.MODE_FIXED); } FrameLayout contentFrame = (FrameLayout) getActivity().findViewById(R.id.content_fragment); contentFrame.setVisibility(View.VISIBLE); } @Override public void saveInstanceState(Bundle b) { /*for(int i = 0; i < substAdapter.fragments.size(); i++) b.putInt("ggvp_frag_spinner_" + i, substAdapter.fragments.get(i).spinnerPos);*/ b.putInt("ggvp_tab", mViewPager.getCurrentItem()); } @Override public void createView(LayoutInflater inflater, ViewGroup vg) { } @Override public ViewGroup getContentView() { return null; } @Override public void setFragmentLoading() { substAdapter.setFragmentsLoading(); } @Override public void updateFragment() { SIAApp.SIA_APP.activity.runOnUiThread(new Runnable() { @Override public void run() { if (substAdapter != null) { substAdapter.update((Subst.GGPlans) getFragment().getData()); mTabLayout.setupWithViewPager(mViewPager); } } }); } public void resetScrollPositions() { List<Fragment> frags = getChildFragmentManager().getFragments(); if (frags != null) { for (Fragment fr : frags) { if (fr != null) { View v = fr.getView(); if (v != null) { v = v.findViewWithTag("gg_scroll"); if (v != null) { v.setScrollY(0); } } } } } } }