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