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