aboutsummaryrefslogtreecommitdiffstats
path: root/libraries/pinned-section-listview/example/src/com/hb/examples/PinnedSectionListActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/pinned-section-listview/example/src/com/hb/examples/PinnedSectionListActivity.java')
-rw-r--r--libraries/pinned-section-listview/example/src/com/hb/examples/PinnedSectionListActivity.java285
1 files changed, 0 insertions, 285 deletions
diff --git a/libraries/pinned-section-listview/example/src/com/hb/examples/PinnedSectionListActivity.java b/libraries/pinned-section-listview/example/src/com/hb/examples/PinnedSectionListActivity.java
deleted file mode 100644
index 223718a06..000000000
--- a/libraries/pinned-section-listview/example/src/com/hb/examples/PinnedSectionListActivity.java
+++ /dev/null
@@ -1,285 +0,0 @@
-/*
- * Copyright (C) 2013 Sergej Shafarenka, halfbit.de
- *
- * 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 com.hb.examples;
-
-import java.util.Locale;
-
-import android.annotation.SuppressLint;
-import android.app.ListActivity;
-import android.content.Context;
-import android.graphics.Color;
-import android.os.Build;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.ViewGroup;
-import android.widget.ArrayAdapter;
-import android.widget.ListView;
-import android.widget.SectionIndexer;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import com.hb.examples.pinnedsection.R;
-import com.hb.views.PinnedSectionListView;
-import com.hb.views.PinnedSectionListView.PinnedSectionListAdapter;
-
-public class PinnedSectionListActivity extends ListActivity implements OnClickListener {
-
- static class SimpleAdapter extends ArrayAdapter<Item> implements PinnedSectionListAdapter {
-
- private static final int[] COLORS = new int[] {
- R.color.green_light, R.color.orange_light,
- R.color.blue_light, R.color.red_light };
-
- public SimpleAdapter(Context context, int resource, int textViewResourceId) {
- super(context, resource, textViewResourceId);
-
- final int sectionsNumber = 'Z' - 'A' + 1;
- prepareSections(sectionsNumber);
-
- int sectionPosition = 0, listPosition = 0;
- for (char i=0; i<sectionsNumber; i++) {
- Item section = new Item(Item.SECTION, String.valueOf((char)('A' + i)));
- section.sectionPosition = sectionPosition;
- section.listPosition = listPosition++;
- onSectionAdded(section, sectionPosition);
- add(section);
-
- final int itemsNumber = (int) Math.abs((Math.cos(2f*Math.PI/3f * sectionsNumber / (i+1f)) * 25f));
- for (int j=0;j<itemsNumber;j++) {
- Item item = new Item(Item.ITEM, section.text.toUpperCase(Locale.ENGLISH) + " - " + j);
- item.sectionPosition = sectionPosition;
- item.listPosition = listPosition++;
- add(item);
- }
-
- sectionPosition++;
- }
- }
-
- protected void prepareSections(int sectionsNumber) { }
- protected void onSectionAdded(Item section, int sectionPosition) { }
-
- @Override public View getView(int position, View convertView, ViewGroup parent) {
- TextView view = (TextView) super.getView(position, convertView, parent);
- view.setTextColor(Color.DKGRAY);
- view.setTag("" + position);
- Item item = getItem(position);
- if (item.type == Item.SECTION) {
- //view.setOnClickListener(PinnedSectionListActivity.this);
- view.setBackgroundColor(parent.getResources().getColor(COLORS[item.sectionPosition % COLORS.length]));
- }
- return view;
- }
-
- @Override public int getViewTypeCount() {
- return 2;
- }
-
- @Override public int getItemViewType(int position) {
- return getItem(position).type;
- }
-
- @Override
- public boolean isItemViewTypePinned(int viewType) {
- return viewType == Item.SECTION;
- }
-
- }
-
- static class FastScrollAdapter extends SimpleAdapter implements SectionIndexer {
-
- private Item[] sections;
-
- public FastScrollAdapter(Context context, int resource, int textViewResourceId) {
- super(context, resource, textViewResourceId);
- }
-
- @Override protected void prepareSections(int sectionsNumber) {
- sections = new Item[sectionsNumber];
- }
-
- @Override protected void onSectionAdded(Item section, int sectionPosition) {
- sections[sectionPosition] = section;
- }
-
- @Override public Item[] getSections() {
- return sections;
- }
-
- @Override public int getPositionForSection(int section) {
- if (section >= sections.length) {
- section = sections.length - 1;
- }
- return sections[section].listPosition;
- }
-
- @Override public int getSectionForPosition(int position) {
- if (position >= getCount()) {
- position = getCount() - 1;
- }
- return getItem(position).sectionPosition;
- }
-
- }
-
- static class Item {
-
- public static final int ITEM = 0;
- public static final int SECTION = 1;
-
- public final int type;
- public final String text;
-
- public int sectionPosition;
- public int listPosition;
-
- public Item(int type, String text) {
- this.type = type;
- this.text = text;
- }
-
- @Override public String toString() {
- return text;
- }
-
- }
-
- private boolean hasHeaderAndFooter;
- private boolean isFastScroll;
- private boolean addPadding;
- private boolean isShadowVisible = true;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- if (savedInstanceState != null) {
- isFastScroll = savedInstanceState.getBoolean("isFastScroll");
- addPadding = savedInstanceState.getBoolean("addPadding");
- isShadowVisible = savedInstanceState.getBoolean("isShadowVisible");
- hasHeaderAndFooter = savedInstanceState.getBoolean("hasHeaderAndFooter");
- }
- initializeHeaderAndFooter();
- initializeAdapter();
- initializePadding();
- }
-
- @Override
- protected void onSaveInstanceState(Bundle outState) {
- super.onSaveInstanceState(outState);
- outState.putBoolean("isFastScroll", isFastScroll);
- outState.putBoolean("addPadding", addPadding);
- outState.putBoolean("isShadowVisible", isShadowVisible);
- outState.putBoolean("hasHeaderAndFooter", hasHeaderAndFooter);
- }
-
- @Override
- protected void onListItemClick(ListView l, View v, int position, long id) {
- Item item = (Item) getListView().getAdapter().getItem(position);
- if (item != null) {
- Toast.makeText(this, "Item " + position + ": " + item.text, Toast.LENGTH_SHORT).show();
- } else {
- Toast.makeText(this, "Item " + position, Toast.LENGTH_SHORT).show();
- }
- }
-
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- getMenuInflater().inflate(R.menu.main, menu);
- menu.getItem(0).setChecked(isFastScroll);
- menu.getItem(1).setChecked(addPadding);
- menu.getItem(2).setChecked(isShadowVisible);
- return true;
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case R.id.action_fastscroll:
- isFastScroll = !isFastScroll;
- item.setChecked(isFastScroll);
- initializeAdapter();
- break;
- case R.id.action_addpadding:
- addPadding = !addPadding;
- item.setChecked(addPadding);
- initializePadding();
- break;
- case R.id.action_showShadow:
- isShadowVisible = !isShadowVisible;
- item.setChecked(isShadowVisible);
- ((PinnedSectionListView)getListView()).setShadowVisible(isShadowVisible);
- break;
- case R.id.action_showHeaderAndFooter:
- hasHeaderAndFooter = !hasHeaderAndFooter;
- item.setChecked(hasHeaderAndFooter);
- initializeHeaderAndFooter();
- break;
- }
- return true;
- }
-
- private void initializePadding() {
- float density = getResources().getDisplayMetrics().density;
- int padding = addPadding ? (int) (16 * density) : 0;
- getListView().setPadding(padding, padding, padding, padding);
- }
-
- private void initializeHeaderAndFooter() {
- setListAdapter(null);
- if (hasHeaderAndFooter) {
- ListView list = getListView();
-
- LayoutInflater inflater = LayoutInflater.from(this);
- TextView header1 = (TextView) inflater.inflate(android.R.layout.simple_list_item_1, list, false);
- header1.setText("First header");
- list.addHeaderView(header1);
-
- TextView header2 = (TextView) inflater.inflate(android.R.layout.simple_list_item_1, list, false);
- header2.setText("Second header");
- list.addHeaderView(header2);
-
- TextView footer = (TextView) inflater.inflate(android.R.layout.simple_list_item_1, list, false);
- footer.setText("Single footer");
- list.addFooterView(footer);
- }
- initializeAdapter();
- }
-
- @SuppressLint("NewApi")
- private void initializeAdapter() {
- getListView().setFastScrollEnabled(isFastScroll);
- if (isFastScroll) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
- getListView().setFastScrollAlwaysVisible(true);
- }
- setListAdapter(new FastScrollAdapter(this, android.R.layout.simple_list_item_1, android.R.id.text1));
- } else {
- setListAdapter(new SimpleAdapter(this, android.R.layout.simple_list_item_1, android.R.id.text1));
- }
- }
-
- @Override
- public void onClick(View v) {
- Toast.makeText(this, "Item: " + v.getTag() , Toast.LENGTH_SHORT).show();
- }
-
-} \ No newline at end of file