@Override public void onSaveInstanceState(Bundle state) { super.onSaveInstanceState(state); if (chartGallery != null && myAdapter != null) { state.putInt(SELECTED_CHART_PAGE, myAdapter.getCurrentPage()); state.putInt(SELECTED_CHART_COLUMN, myAdapter.getCurrentColumn()); } }
protected final void updateChartHeadline() { String subHeadlineText = ""; String title = myAdapter.getCurrentChartTitle(); String ret = myAdapter.getCurrentSubHeadLine(); if (ret != null) subHeadlineText = ret; updateTitleTextSwitcher(title); if (Preferences.getShowChartHint(getActivity())) { timeframeText.setText(Html.fromHtml(getChartHint())); } else { if (timetext != null) { timeframeText.setText(Html.fromHtml(timetext + ": <b>" + subHeadlineText + "</b>")); } } }
public void updateCharts(List<?> statsForApp) { Chart chart = new Chart(); int page = myAdapter.getCurrentPage(); int column = myAdapter.getCurrentColumn(); int position = -1; List<View> charts = new ArrayList<View>(); int pos = 0; for (int i = 0; i < myAdapter.getNumPages(); i++) for (int j = 1; j < myAdapter.getNumCharts(i); j++) { int pageColumn[] = new int[3]; View chartView = myAdapter.buildChart(getActivity(), chart, statsForApp, i, j); /* * if(chartView==null) { * Log.i(LOG_TAG,"Ignoring chart p="+i+" c="+j+"for class=" * +this.getClass().toString()); continue; } */ Gallery.LayoutParams params = new Gallery.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); chartView.setLayoutParams(params); pageColumn[0] = i; pageColumn[1] = j; pageColumn[2] = myAdapter.getNumCharts(i); if (i == page && j == column) position = pos; pos++; chartView.setTag(pageColumn); charts.add(chartView); } chartGallery.setIgnoreLayoutCalls(false); chartGalleryAdapter.setViews(charts); if (position >= 0) chartGallery.setSelection(position); chartGalleryAdapter.notifyDataSetChanged(); chartGallery.invalidate(); }
public void setCurrentChart(int page, int column) { if (chartGalleryAdapter.getViews().isEmpty()) { // chart not initialized yet return; } int pos = 0; for (View view : chartGalleryAdapter.getViews()) { int pageColumn[] = (int[]) view.getTag(); if (page == pageColumn[0] && column == pageColumn[1]) { chartGallery.setSelection(pos, false); myAdapter.setCurrentChart(page, column); return; } pos++; } throw new IndexOutOfBoundsException("page=" + page + " column=" + column); }