package au.id.teda.broadband.usage.fragments; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.view.ViewTreeObserver; import android.view.ViewTreeObserver.OnGlobalLayoutListener; import android.widget.LinearLayout; import android.widget.TextView; import au.id.teda.broadband.usage.R; import au.id.teda.broadband.usage.chart.CustomDonughtChart; public class UsageAnyTimeDoughnutFragment extends BaseFragment { // BaseFragment used to load the standard methods // View inflated by fragment private View mFragmentView; /** * Called 3rd in the fragment life cycle */ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Set fragment layout to be inflated mFragmentView = inflater.inflate(R.layout.fragment_usage_anytime_doughnut, container, false); return mFragmentView; } @Override protected void loadFragmentView() { loadDonughtChart(); loadChartText(); } private void loadDonughtChart() { // Set layout container for chart final LinearLayout mContainerLayout = (LinearLayout) mFragmentView.findViewById(R.id.fragment_usage_donught); final TextView mLayoutUsed = (TextView) mFragmentView.findViewById(R.id.fragment_usage_donught_size); // Listen for view being inflated ViewTreeObserver mViewTreeObserver = mContainerLayout.getViewTreeObserver(); mViewTreeObserver.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { // Get layout parameters for container LayoutParams parms = mContainerLayout.getLayoutParams(); // Get reference to layout view View layout = getView(); // Get height of layout int iHeight = layout.getHeight(); // Get width of layout int iWidth = layout.getWidth(); if (mLayoutHelper.isLayout_w1024dp(mLayoutUsed) || mLayoutHelper.isLayout_w800dp(mLayoutUsed)){ // Set wdith equal to height parms.width = iHeight; // Add padding to center chart int padding = ((iWidth - iHeight) / 2); layout.setPadding(padding, 0, padding, 0); } else { // Set height equal to width parms.height = iWidth; } } }); /** Log.d(DEBUG_TAG, "DaysSofFar: " + mAccountStatus.getDaysSoFar() + " | DaysToGo: " + mAccountStatus.getDaysToGo()); Log.d(DEBUG_TAG, "getAnytimeDataUsed: " + mAccountStatus.getAnytimeDataUsed() + " | getAnyTimeQuota: " + mAccountInfo.getAnyTimeQuota()); **/ // Initialize chart class CustomDonughtChart mChart = new CustomDonughtChart(mContext); mChart.setDays(mAccountStatus.getDaysSoFar(), mAccountStatus.getDaysToGo()); mChart.setUsage(mAccountStatus.getAnytimeDataUsed(), mAccountInfo.getAnyTimeQuota()); // Set layout parameters for chart view LayoutParams mChartViewParams = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); // Add chart view to layout view mContainerLayout.removeAllViews(); mContainerLayout.addView(mChart, mChartViewParams); } private void loadChartText() { // Set layout container for chart final LinearLayout mContainerLayout = (LinearLayout) mFragmentView.findViewById(R.id.fragment_usage_donught_text_container); // Listen for view being inflated ViewTreeObserver mViewTreeObserver = mContainerLayout.getViewTreeObserver(); mViewTreeObserver.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { // Get layout parameters LayoutParams parms = mContainerLayout.getLayoutParams(); // Set height equal to parent layout width parms.height = getView().getWidth(); } }); // Set TextView references final TextView anyTextView = (TextView) mFragmentView.findViewById(R.id.fragment_usage_donught_anytime_percent); // final TextView daysTextView = (TextView) mFragmentView.findViewById(R.id.fragment_usage_anytime_donught_days); // Set TextView values anyTextView.setText(mAccountStatus.getAnytimeDataUsedPercentString()); // daysTextView.setText(mAccountStatus.getOffpeakDataUsedPercentString()); } }