1858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedy/* 2858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedy * Copyright (C) 2013 The Android Open Source Project 3858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedy * 4858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedy * Licensed under the Apache License, Version 2.0 (the "License"); 5858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedy * you may not use this file except in compliance with the License. 6858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedy * You may obtain a copy of the License at 7858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedy * 8858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedy * http://www.apache.org/licenses/LICENSE-2.0 9858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedy * 10858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedy * Unless required by applicable law or agreed to in writing, software 11858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedy * distributed under the License is distributed on an "AS IS" BASIS, 12858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedy * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedy * See the License for the specific language governing permissions and 14858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedy * limitations under the License. 15858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedy */ 16858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedypackage com.android.ex.chips.sample; 17858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedy 18858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedyimport android.os.Bundle; 19858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedyimport android.text.util.Rfc822Tokenizer; 20858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedyimport android.widget.MultiAutoCompleteTextView; 21858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedyimport android.app.Activity; 22c4da98ae5163692b343b3f4c034a79840b1f3995Borys Boykoimport android.util.Log; 23858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedy 24858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedyimport com.android.ex.chips.BaseRecipientAdapter; 25858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedyimport com.android.ex.chips.RecipientEditTextView; 26f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovicimport com.android.ex.chips.RecipientEditTextView.PermissionsRequestItemClickedListener; 27ae2cd1536163c0166679e6b4d64ba2df28588ff3Ekin Oguzimport com.android.ex.chips.RecipientEditTextView.RecipientChipAddedListener; 28c4da98ae5163692b343b3f4c034a79840b1f3995Borys Boykoimport com.android.ex.chips.RecipientEditTextView.RecipientChipDeletedListener; 29c4da98ae5163692b343b3f4c034a79840b1f3995Borys Boykoimport com.android.ex.chips.RecipientEntry; 30858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedy 31c4da98ae5163692b343b3f4c034a79840b1f3995Borys Boykopublic class MainActivity extends Activity 32ae2cd1536163c0166679e6b4d64ba2df28588ff3Ekin Oguz implements PermissionsRequestItemClickedListener, RecipientChipDeletedListener, 33ae2cd1536163c0166679e6b4d64ba2df28588ff3Ekin Oguz RecipientChipAddedListener { 34f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovic 35f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovic private RecipientEditTextView mEmailRetv; 36f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovic private RecipientEditTextView mPhoneRetv; 37858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedy 38858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedy @Override 39858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedy protected void onCreate(final Bundle savedInstanceState) { 40858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedy super.onCreate(savedInstanceState); 41858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedy setContentView(R.layout.activity_main); 42858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedy 43f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovic mEmailRetv = (RecipientEditTextView) findViewById(R.id.email_retv); 44f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovic mEmailRetv.setTokenizer(new Rfc822Tokenizer()); 45f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovic final BaseRecipientAdapter emailAdapter = new BaseRecipientAdapter(this); 46f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovic emailAdapter.setShowRequestPermissionsItem(true); 47f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovic mEmailRetv.setAdapter(emailAdapter); 48f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovic mEmailRetv.setPermissionsRequestItemClickedListener(this); 49f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovic 50858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedy 51f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovic mPhoneRetv = (RecipientEditTextView) findViewById(R.id.phone_retv); 52f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovic mPhoneRetv.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); 53f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovic final BaseRecipientAdapter phoneAdapter = 54f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovic new BaseRecipientAdapter(BaseRecipientAdapter.QUERY_TYPE_PHONE, this); 55f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovic phoneAdapter.setShowRequestPermissionsItem(true); 56f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovic mPhoneRetv.setAdapter(phoneAdapter); 57f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovic mPhoneRetv.setPermissionsRequestItemClickedListener(this); 58ae2cd1536163c0166679e6b4d64ba2df28588ff3Ekin Oguz mEmailRetv.setRecipientChipAddedListener(this); 59c4da98ae5163692b343b3f4c034a79840b1f3995Borys Boyko mEmailRetv.setRecipientChipDeletedListener(this); 60858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedy } 61858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedy 62f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovic @Override 63f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovic public void onPermissionsRequestItemClicked( 64f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovic RecipientEditTextView view, String[] permissions) { 65f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovic requestPermissions(permissions, 0 /* requestCode */); 66f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovic } 67f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovic 68f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovic @Override 69f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovic public void onPermissionRequestDismissed() { 70f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovic mEmailRetv.getAdapter().setShowRequestPermissionsItem(false); 71f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovic mPhoneRetv.getAdapter().setShowRequestPermissionsItem(false); 72f1ad4f6dba7c6ea28f529736b8662faa6fb498f8Milos Stankovic } 73c4da98ae5163692b343b3f4c034a79840b1f3995Borys Boyko 74c4da98ae5163692b343b3f4c034a79840b1f3995Borys Boyko @Override 75ae2cd1536163c0166679e6b4d64ba2df28588ff3Ekin Oguz public void onRecipientChipAdded(RecipientEntry entry) { 76ae2cd1536163c0166679e6b4d64ba2df28588ff3Ekin Oguz Log.i("ChipsSample", entry.getDisplayName() + " recipient chip added"); 77ae2cd1536163c0166679e6b4d64ba2df28588ff3Ekin Oguz } 78ae2cd1536163c0166679e6b4d64ba2df28588ff3Ekin Oguz 79ae2cd1536163c0166679e6b4d64ba2df28588ff3Ekin Oguz @Override 80c4da98ae5163692b343b3f4c034a79840b1f3995Borys Boyko public void onRecipientChipDeleted(RecipientEntry entry) { 81c4da98ae5163692b343b3f4c034a79840b1f3995Borys Boyko Log.i("ChipsSample", entry.getDisplayName() + " recipient chip removed"); 82c4da98ae5163692b343b3f4c034a79840b1f3995Borys Boyko } 83858e094f1c695aefdf6a23f522c0f16d81bd79f7Scott Kennedy} 84