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());
}
}