/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.ui.fragments; import java.io.Serializable; import java.util.ArrayList; import android.app.Activity; import android.app.Dialog; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.os.Bundle; import android.view.ContextThemeWrapper; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.ListView; import com.galaxy.meetup.client.android.R; import com.galaxy.meetup.client.android.ui.view.CircleListItemView; /** * * @author sihai * */ public class SimpleAudiencePickerDialog extends AlertFragmentDialog implements OnClickListener, OnItemClickListener { private ArrayList mOptions; private ContextThemeWrapper mThemeContext; public SimpleAudiencePickerDialog() { mOptions = new ArrayList(); } public static SimpleAudiencePickerDialog newInstance(String s, String s1, boolean flag) { SimpleAudiencePickerDialog simpleaudiencepickerdialog = new SimpleAudiencePickerDialog(); Bundle bundle = new Bundle(); bundle.putString("domain_name", s); bundle.putString("domain_id", s1); bundle.putBoolean("has_public_circle", flag); simpleaudiencepickerdialog.setArguments(bundle); return simpleaudiencepickerdialog; } public final void onAttach(Activity activity) { super.onAttach(activity); mThemeContext = new ContextThemeWrapper(activity, R.style.CircleSubscriptionList); } public void onCancel(DialogInterface dialoginterface) { dialoginterface.dismiss(); } public void onClick(DialogInterface dialoginterface, int i) { if(-2 == i) { dialoginterface.dismiss(); } } public final Dialog onCreateDialog(Bundle bundle) { Bundle bundle1 = getArguments(); String s = bundle1.getString("domain_name"); String s1 = bundle1.getString("domain_id"); boolean flag = bundle1.getBoolean("has_public_circle"); View view = LayoutInflater.from(mThemeContext).inflate(R.layout.simple_audience_picker_dialog, null); mOptions.add(new CircleInfo("1f", 7, getString(R.string.acl_extended_network))); if(s != null) mOptions.add(new CircleInfo(s1, 8, s)); if(flag) mOptions.add(new CircleInfo("0", 9, getString(R.string.acl_public))); mOptions.add(new CircleInfo("1c", 5, getString(R.string.acl_your_circles))); mOptions.add(new CircleInfo("v.private", 101, getString(R.string.acl_private))); mOptions.add(new CircleInfo("v.custom", -3, getString(R.string.post_create_custom_acl))); ListView listview = (ListView)view.findViewById(R.id.list); listview.setOnItemClickListener(this); listview.setAdapter(new ArrayAdapter(mThemeContext, 0, mOptions) { public final int getItemViewType(int i) { return 0; } public final View getView(int i, View view1, ViewGroup viewgroup) { CircleListItemView circlelistitemview = new CircleListItemView(mThemeContext); circlelistitemview.setAvatarStripVisible(false); circlelistitemview.setCheckBoxVisible(false); circlelistitemview.setMemberCountVisible(false); circlelistitemview.updateContentDescription(); CircleInfo circleinfo = (CircleInfo)getItem(i); circlelistitemview.setTag(circleinfo); circlelistitemview.setCircle(circleinfo.getId(), circleinfo.getType(), circleinfo.getName(), 0, false); return circlelistitemview; } public final int getViewTypeCount() { return 1; } }); android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(mThemeContext); builder.setTitle(R.string.profile_edit_item_visibility); builder.setNegativeButton(0x1040000, this); builder.setCancelable(true); builder.setView(view); return builder.create(); } public void onItemClick(AdapterView adapterview, View view, int i, long l) { CircleInfo circleinfo = (CircleInfo)view.getTag(); ((ProfileEditFragment)getTargetFragment()).onSetSimpleAudience(circleinfo.getId(), circleinfo.getType(), circleinfo.getName()); getDialog().dismiss(); } //================================================================================================================== // Inner class //================================================================================================================== public static final class CircleInfo implements Serializable { private String mId; private String mName; private int mType; public CircleInfo(String s, int i, String s1) { mId = s; mName = s1; mType = i; } public final String getId() { return mId; } public final String getName() { return mName; } public final int getType() { return mType; } } }