1/* 2 * Copyright (C) 2010 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package com.android.contacts.tests.quickcontact; 18 19import com.android.contacts.tests.R; 20 21import android.app.Activity; 22import android.content.Intent; 23import android.content.SharedPreferences; 24import android.content.SharedPreferences.Editor; 25import android.net.Uri; 26import android.os.Bundle; 27import android.provider.ContactsContract.Contacts; 28import android.view.View; 29import android.view.View.OnClickListener; 30import android.view.Window; 31import android.widget.Button; 32import android.widget.QuickContactBadge; 33import android.widget.TextView; 34 35public class QuickContactTestsActivity extends Activity { 36 private static final int REQUEST_CODE_PICK = 1; 37 private static final String PREF_NAME = "quick_contact_prefs"; 38 private static final String PREF_SETTING_URI = "uri"; 39 40 private Button mPickContact; 41 private TextView mUriTextView; 42 private QuickContactBadge mSmallBadge1; 43 private QuickContactBadge mSmallBadge2; 44 private QuickContactBadge mMediumBadge1; 45 private QuickContactBadge mMediumBadge2; 46 private QuickContactBadge mLargeBadge1; 47 private QuickContactBadge mLargeBadge2; 48 49 private Uri mContactUri; 50 51 @Override 52 protected void onCreate(Bundle savedInstanceState) { 53 super.onCreate(savedInstanceState); 54 55 getWindow().requestFeature(Window.FEATURE_NO_TITLE); 56 setContentView(R.layout.quick_contact_tests); 57 58 mPickContact = (Button) findViewById(R.id.pick_contact); 59 mUriTextView = (TextView) findViewById(R.id.uri); 60 mSmallBadge1 = (QuickContactBadge) findViewById(R.id.small_badge1); 61 mSmallBadge2 = (QuickContactBadge) findViewById(R.id.small_badge2); 62 mMediumBadge1 = (QuickContactBadge) findViewById(R.id.medium_badge1); 63 mMediumBadge2 = (QuickContactBadge) findViewById(R.id.medium_badge2); 64 mLargeBadge1 = (QuickContactBadge) findViewById(R.id.large_badge1); 65 mLargeBadge2 = (QuickContactBadge) findViewById(R.id.large_badge2); 66 67 mPickContact.setOnClickListener(new OnClickListener() { 68 @Override 69 public void onClick(View v) { 70 final Intent intent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI); 71 startActivityForResult(intent , REQUEST_CODE_PICK); 72 } 73 }); 74 75 // Load Uri if known 76 final SharedPreferences sharedPreferences = getSharedPreferences(PREF_NAME, MODE_PRIVATE); 77 final String uriString = sharedPreferences.getString(PREF_SETTING_URI, null); 78 if (uriString != null) { 79 mContactUri = Uri.parse(uriString); 80 assignUri(); 81 } 82 } 83 84 @Override 85 protected void onActivityResult(int requestCode, int resultCode, Intent data) { 86 super.onActivityResult(requestCode, resultCode, data); 87 if (resultCode == Activity.RESULT_CANCELED) return; 88 switch (requestCode) { 89 case REQUEST_CODE_PICK: { 90 mContactUri = data.getData(); 91 assignUri(); 92 break; 93 } 94 } 95 } 96 97 @Override 98 protected void onDestroy() { 99 super.onDestroy(); 100 101 final SharedPreferences sharedPreferences = getSharedPreferences(PREF_NAME, MODE_PRIVATE); 102 final Editor editor = sharedPreferences.edit(); 103 editor.putString(PREF_SETTING_URI, mContactUri == null ? null : mContactUri.toString()); 104 editor.apply(); 105 } 106 107 private void assignUri() { 108 mUriTextView.setText(mContactUri.toString()); 109 mSmallBadge1.assignContactUri(mContactUri); 110 mSmallBadge2.assignContactUri(mContactUri); 111 mMediumBadge1.assignContactUri(mContactUri); 112 mMediumBadge2.assignContactUri(mContactUri); 113 mLargeBadge1.assignContactUri(mContactUri); 114 mLargeBadge2.assignContactUri(mContactUri); 115 } 116} 117