"add contact" button for unknown contacts

Closes #1551
This commit is contained in:
Bastian Köcher
2014-06-04 01:24:44 +02:00
committed by Jake McGinty
parent b05967f2c9
commit 4a088410ae
11 changed files with 106 additions and 78 deletions

View File

@@ -23,6 +23,7 @@ import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.util.Log;
import android.provider.ContactsContract;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
@@ -104,6 +105,11 @@ public class AttachmentManager {
selectMediaType(activity, "audio/*", requestCode);
}
public static void selectContactInfo(Activity activity, int requestCode) {
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
activity.startActivityForResult(intent, requestCode);
}
private static void selectMediaType(Activity activity, String type, int requestCode) {
final Intent intent = new Intent();
intent.setType(type);

View File

@@ -32,86 +32,77 @@ import java.util.List;
public class AttachmentTypeSelectorAdapter extends ArrayAdapter<AttachmentTypeSelectorAdapter.IconListItem> {
public static final int ADD_IMAGE = 1;
// public static final int TAKE_PICTURE = 2;
public static final int ADD_VIDEO = 3;
// public static final int RECORD_VIDEO = 4;
public static final int ADD_SOUND = 5;
// public static final int RECORD_SOUND = 6;
public static final int ADD_IMAGE = 1;
public static final int ADD_VIDEO = 2;
public static final int ADD_SOUND = 3;
public static final int ADD_CONTACT_INFO = 4;
private final Context context;
private final Context context;
public AttachmentTypeSelectorAdapter(Context context) {
super(context, R.layout.icon_list_item, getItemList(context));
this.context = context;
}
public AttachmentTypeSelectorAdapter(Context context) {
super(context, R.layout.icon_list_item, getItemList(context));
this.context = context;
}
public int buttonToCommand(int position) {
return getItem(position).getCommand();
}
public int buttonToCommand(int position) {
return getItem(position).getCommand();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView text;
ImageView image;
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view;
View view;
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.icon_list_item, parent, false);
} else {
view = convertView;
}
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.icon_list_item, parent, false);
} else {
view = convertView;
}
text = (TextView) view.findViewById(R.id.text1);
text.setText(getItem(position).getTitle());
TextView text = (TextView) view.findViewById(R.id.text1);
ImageView image = (ImageView) view.findViewById(R.id.icon);
image = (ImageView) view.findViewById(R.id.icon);
image.setImageResource(getItem(position).getResource());
text.setText(getItem(position).getTitle());
image.setImageResource(getItem(position).getResource());
return view;
}
return view;
}
private static List<IconListItem> getItemList(Context context) {
List<IconListItem> data = new ArrayList<IconListItem>(7);
addItem(data, context.getString(R.string.AttachmentTypeSelectorAdapter_picture),
R.drawable.ic_attach_picture_holo_light, ADD_IMAGE);
// addItem(data, "Capture picture", R.drawable.ic_launcher_camera, TAKE_PICTURE);
addItem(data, context.getString(R.string.AttachmentTypeSelectorAdapter_video),
R.drawable.ic_attach_video_holo_light, ADD_VIDEO);
// addItem(data, "Capture video", R.drawable.ic_launcher_camera_record, RECORD_VIDEO);
addItem(data, context.getString(R.string.AttachmentTypeSelectorAdapter_audio),
R.drawable.ic_attach_audio_holo_light, ADD_SOUND);
// addItem(data, "Record audio", R.drawable.ic_launcher_record_audio, RECORD_SOUND);
private static List<IconListItem> getItemList(Context context) {
List<IconListItem> data = new ArrayList<>(4);
addItem(data, context.getString(R.string.AttachmentTypeSelectorAdapter_picture), R.drawable.ic_attach_picture_holo_light, ADD_IMAGE);
addItem(data, context.getString(R.string.AttachmentTypeSelectorAdapter_video), R.drawable.ic_attach_video_holo_light, ADD_VIDEO);
addItem(data, context.getString(R.string.AttachmentTypeSelectorAdapter_audio), R.drawable.ic_attach_audio_holo_light, ADD_SOUND);
addItem(data, context.getString(R.string.AttachmentTypeSelectorAdapter_contact), R.drawable.ic_action_person, ADD_CONTACT_INFO);
return data;
}
return data;
}
private static void addItem(List<IconListItem> list, String text, int resource, int id) {
list.add(new IconListItem(text, resource, id));
}
private static void addItem(List<IconListItem> list, String text, int resource, int id) {
list.add(new IconListItem(text, resource, id));
}
public static class IconListItem {
private final String mTitle;
private final int mResource;
private final int id;
public static class IconListItem {
private final String title;
private final int resource;
private final int id;
public IconListItem(String title, int resource, int id) {
mResource = resource;
mTitle = title;
this.id = id;
}
public IconListItem(String title, int resource, int id) {
this.resource = resource;
this.title = title;
this.id = id;
}
public int getCommand() {
return id;
}
public int getCommand() {
return id;
}
public String getTitle() {
return mTitle;
}
public String getTitle() {
return title;
}
public int getResource() {
return mResource;
}
}
public int getResource() {
return resource;
}
}
}