package com.sogouchat.ui; import com.sogouchat.R; import com.sogouchat.SogouChatApp; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.view.animation.TranslateAnimation; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.TextView; public class ContactListActivity extends Activity implements OnItemClickListener { private ContactListAdapter mAdapter; private ListView mListView; private SogouChatApp mApp; private ImageView mQuickSearchBar; private ImageView mQuickSearchThumb; private ImageView mQuickSearchIcon; private LinearLayout mQuickTip; private TextView mTipText; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_contact_list); mListView = (ListView) findViewById(R.id.contact_list); mApp = (SogouChatApp) getApplication(); mAdapter = new ContactListAdapter(this, mApp); mAdapter.setupList(); mListView.setOnItemClickListener(this); mListView.setAdapter(mAdapter); setupAlphaView(); } private void setupAlphaView() { // TODO Auto-generated method stub mQuickSearchBar = (ImageView) findViewById(R.id.quick_search_bar); mQuickSearchThumb = (ImageView) findViewById(R.id.quick_search_thumb); mQuickSearchIcon = (ImageView) findViewById(R.id.toast_image); mQuickTip = (LinearLayout) findViewById(R.id.toast_container); mTipText = (TextView) findViewById(R.id.toast_text); mQuickSearchBar.setClickable(true); mQuickSearchBar.setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub if (event.getAction() == MotionEvent.ACTION_DOWN || event.getAction() == MotionEvent.ACTION_MOVE) { TranslateAnimation animation = new TranslateAnimation(0, 0, event.getY(), event.getY()); animation.setFillAfter(false); animation.setDuration(1); animation.setFillBefore(false); mQuickSearchThumb.startAnimation(animation); int nTop = mQuickSearchBar.getTop(); int nBottom = mQuickSearchBar.getBottom(); float nBtw = (nBottom - nTop) / 30f; int nIndex = (int) ((event.getY() - nTop + nBtw / 2) / nBtw); // ViewGroup.LayoutParams para = mQuickSearchThumb.getLayoutParams(); // para.height = 300; // para.width = 300; // mQuickSearchThumb.setLayoutParams(para); // mQuickSearchThumb.setPadding( mQuickSearchThumb.getPaddingLeft(), (int) (mQuickSearchThumb.getPaddingTop()+event.getY()), // mQuickSearchThumb.getPaddingRight(), mQuickSearchThumb.getPaddingBottom()); // // mQuickSearchThumb.setVisibility(View.VISIBLE); mQuickTip.setVisibility(View.VISIBLE); nIndex--; String strText = ""; if (0 < nIndex && nIndex < 27) { // a-z strText = String.valueOf((char) ('A'+ nIndex) ); int alphaIndex1 = mAdapter.getAlphaIndex(nIndex); mListView.setSelection(alphaIndex1); mTipText.setText(strText); mQuickSearchIcon.setVisibility(View.GONE); mTipText.setVisibility(View.VISIBLE); } else if (nIndex == 0) { mListView.setSelection(0); mQuickSearchIcon.setVisibility(View.VISIBLE); mTipText.setVisibility(View.GONE); // search } else if (nIndex == 27) { // # strText = "#"; int alphaIndex = mAdapter.getAlphaIndex(26); mListView.setSelection(alphaIndex); // strText += (""+event.getY()); mTipText.setText(strText); mQuickSearchIcon.setVisibility(View.GONE); mTipText.setVisibility(View.VISIBLE); } } if (event.getAction() == MotionEvent.ACTION_CANCEL || event.getAction() == MotionEvent.ACTION_UP) { mQuickSearchThumb.setVisibility(View.GONE); mQuickTip.setVisibility(View.GONE); } return false; } }); } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub Log.i("FragmentComplexList", "Item clicked: " + id); Intent intent = new Intent(); intent.setClass(ContactListActivity.this, ChatListActivity.class); Bundle bundle = new Bundle(); String tel = (String) mAdapter.getData().get(position).mTel; String name = (String) mAdapter.getData().get(position).mName; bundle.putString("tel", tel); bundle.putString("name", name); intent.putExtras(bundle); this.startActivity(intent); } }