package net.qiujuer.tips.view.activity; import android.content.Context; import android.content.Intent; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.support.v7.widget.RecyclerView; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.TextView; import android.widget.Toast; import net.qiujuer.genius.ui.widget.FloatActionButton; import net.qiujuer.tips.R; import net.qiujuer.tips.common.drawable.AnimJagDrawable; import net.qiujuer.tips.factory.presenter.ContactDetailPresenter; import net.qiujuer.tips.factory.view.ContactDetailView; import net.qiujuer.tips.view.adapter.AdapterSelectCallback; import net.qiujuer.tips.view.adapter.ContactRecordsAdapter; import java.util.UUID; public class ContactDetailActivity extends BlurActivity implements ContactDetailView, View.OnClickListener, AdapterSelectCallback { private UUID mId; private ContactDetailPresenter mPresenter; private TextView mContactsName; private TextView mContactsPhone; private TextView mContactsQq; private TextView mContactsRelation; private String[] mRelationStr; private FloatActionButton mFltAtnBtn; private ContactRecordsAdapter mAdapter; private int mGender; private View mTop; public static void actionStart(Context context, UUID id) { Intent intent = new Intent(context, ContactDetailActivity.class); if (id != null) intent.putExtra("Id", id.toString()); context.startActivity(intent); } @Override protected void onResume() { mPresenter.refresh(); mAdapter.refresh(); super.onResume(); } @Override protected int getContentView() { return R.layout.activity_contacts_detail; } @Override protected void onInitToolBar() { // } @Override protected void onInit(Bundle savedInstanceState) { Intent intent = getIntent(); if (intent != null) { String id = intent.getStringExtra("Id"); mId = UUID.fromString(id); } mPresenter = new ContactDetailPresenter(this); mRelationStr = getResources().getStringArray(R.array.array_contacts_relations); // InitList RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_records); View view = findViewById(R.id.text_status); mAdapter = new ContactRecordsAdapter(mId, recyclerView, view, this); // FindId mContactsName = (TextView) findViewById(R.id.contacts_detail_txt_brief_name); mContactsPhone = (TextView) findViewById(R.id.contacts_detail_txt_phone); mContactsQq = (TextView) findViewById(R.id.contacts_detail_txt_QQ); mContactsRelation = (TextView) findViewById(R.id.contacts_detail_txt_relation); mFltAtnBtn = (FloatActionButton) findViewById(R.id.contacts_Detail_btn_to_edit); mTop = findViewById(R.id.lay_top); // Set onClick mFltAtnBtn.setOnClickListener(this); AnimJagDrawable drawable = new AnimJagDrawable(); drawable.setFluCount(new Rect(0, 0, 0, 36)); mTop.setLayerType(View.LAYER_TYPE_SOFTWARE, null); mTop.setBackgroundDrawable(drawable); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_contacts_detail, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } @Override protected void onStart() { super.onStart(); // Refresh if (!mPresenter.refresh()) finish(); else { mAdapter.refresh(); } } @Override protected void onDestroy() { super.onDestroy(); mAdapter.destroy(); mAdapter = null; } @Override public void setNameStr(String name) { mContactsName.setText(name); } @Override public void setPhoneNumber(String phoneNumber) { String phone = getResources().getString(R.string.txt_contacts_detail_phone); phone = String.format(phone, phoneNumber); mContactsPhone.setText(phone); } @Override public void setQQ(String qq) { String qqNumber = getResources().getString(R.string.txt_contacts_detail_qq); qqNumber = String.format(qqNumber, qq); mContactsQq.setText(qqNumber); } @Override public void setSex(int isMan) { mGender = isMan; Drawable drawable; int id; if (isMan == 1) { id = R.mipmap.ic_contact_gender_man; } else { id = R.mipmap.ic_contact_gender_woman; } drawable = getResources().getDrawable(id); drawable.setBounds(0, 0, 3 * drawable.getMinimumWidth() / 2, 3 * drawable.getMinimumHeight() / 2); mContactsName.setCompoundDrawables(null, null, drawable, null); } @Override public void setRelation(int relation) { // "1" is man int mark; if (mGender == 1) { mark = relation + 6; } else { if (relation > 6) { mark = relation + 6; } else { mark = relation; } } String rlt = getResources().getString(R.string.txt_contacts_detail_relation); rlt = String.format(rlt, mRelationStr[mark]); mContactsRelation.setText(rlt); } @Override public UUID getId() { return mId; } @Override public void setDetailStatus(boolean status) { if (status) { Toast.makeText(this, R.string.status_opt_delete_ok, Toast.LENGTH_SHORT).show(); finish(); } else { Toast.makeText(this, R.string.status_opt_delete_error, Toast.LENGTH_SHORT).show(); } } @Override public void setColor(int color) { AnimJagDrawable drawable = (AnimJagDrawable) mTop.getBackground(); if (color != drawable.getColor()) { drawable.setColorUnInvalidate(color); drawable.setAlpha(164); drawable.startAnim(); } } @Override public void onClick(View v) { final int viewID = v.getId(); if (viewID == R.id.contacts_Detail_btn_to_edit) { ContactEditActivity.actionStart(ContactDetailActivity.this, mId); setBlur(ContactDetailActivity.this); } } @Override public void onItemSelected(UUID id) { RecordDetailActivity.actionStart(this, id); this.setBlur(this); } @Override public void setLoading(boolean isLoad) { } }