/**
* galaxy inc.
* meetup client for android
*/
package com.galaxy.meetup.client.android.ui.activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import com.galaxy.meetup.client.android.Intents;
import com.galaxy.meetup.client.android.R;
import com.galaxy.meetup.client.android.ShakeDetector;
import com.galaxy.meetup.client.android.analytics.OzViews;
import com.galaxy.meetup.client.android.content.AudienceData;
import com.galaxy.meetup.client.android.content.CircleData;
import com.galaxy.meetup.client.android.content.EsAccount;
import com.galaxy.meetup.client.android.content.PersonData;
import com.galaxy.meetup.client.android.ui.fragments.EditAudienceFragment;
import com.galaxy.meetup.client.android.ui.fragments.EsFragmentActivity;
import com.galaxy.meetup.client.android.ui.fragments.EditAudienceFragment.OnAudienceChangeListener;
/**
*
* @author sihai
*
*/
public class EditAudienceActivity extends EsFragmentActivity implements
OnClickListener, OnAudienceChangeListener {
private EditAudienceFragment mEditAudienceFragment;
private View mPositiveButton;
private boolean mShakeDetectorWasRunning;
public EditAudienceActivity()
{
}
protected final EsAccount getAccount()
{
return (EsAccount)getIntent().getParcelableExtra("account");
}
public final OzViews getViewForLogging()
{
return OzViews.PEOPLE_PICKER;
}
protected void onActivityResult(int i, int j, Intent intent)
{
if(i == 0 && j == -1 && mEditAudienceFragment != null)
{
String s = intent.getStringExtra("person_id");
if(s != null)
{
PersonData persondata = (PersonData)intent.getParcelableExtra("person_data");
mEditAudienceFragment.addSelectedPerson(s, persondata);
}
String s1 = intent.getStringExtra("circle_id");
if(s1 != null)
{
CircleData circledata = (CircleData)intent.getParcelableExtra("circle_data");
mEditAudienceFragment.addSelectedCircle(s1, circledata);
}
}
}
public final void onAttachFragment(Fragment fragment)
{
if(fragment instanceof EditAudienceFragment)
{
mEditAudienceFragment = (EditAudienceFragment)fragment;
mEditAudienceFragment.setOnSelectionChangeListener(this);
mEditAudienceFragment.setCircleSelectionEnabled(true);
mEditAudienceFragment.setCircleUsageType(getIntent().getIntExtra("circle_usage_type", 0));
mEditAudienceFragment.setIncludePlusPages(getIntent().getBooleanExtra("search_plus_pages_enabled", true));
mEditAudienceFragment.setFilterNullGaiaIds(getIntent().getBooleanExtra("filter_null_gaia_ids", false));
mEditAudienceFragment.setIncomingAudienceIsReadOnly(getIntent().getBooleanExtra("audience_is_read_only", false));
}
}
public final void onAudienceChanged(String s)
{
if(mPositiveButton != null && mEditAudienceFragment != null)
mPositiveButton.setEnabled(mEditAudienceFragment.isSelectionValid());
}
public void onClick(View view)
{
int i = view.getId();
if(i != R.id.ok) {
if(i == R.id.cancel)
finish();
} else {
Intent intent = new Intent();
intent.putExtra("audience", mEditAudienceFragment.getAudience());
setResult(-1, intent);
finish();
}
}
protected void onCreate(Bundle bundle)
{
super.onCreate(bundle);
setContentView(R.layout.edit_audience_activity);
String s = getIntent().getStringExtra("title");
showTitlebar(true, false);
setTitlebarTitle(s);
createTitlebarButtons(R.menu.edit_audience_menu);
mPositiveButton = findViewById(R.id.ok);
if(mEditAudienceFragment != null)
mPositiveButton.setEnabled(mEditAudienceFragment.isSelectionValid());
mPositiveButton.setOnClickListener(this);
findViewById(R.id.cancel).setOnClickListener(this);
ShakeDetector shakedetector = ShakeDetector.getInstance(getApplicationContext());
if(shakedetector != null)
mShakeDetectorWasRunning = shakedetector.stop();
}
public boolean onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.edit_audience_menu, menu);
return true;
}
protected void onDestroy()
{
super.onDestroy();
if(mShakeDetectorWasRunning)
{
ShakeDetector shakedetector = ShakeDetector.getInstance(getApplicationContext());
if(shakedetector != null)
shakedetector.start();
}
}
public boolean onOptionsItemSelected(MenuItem menuitem)
{
boolean flag = true;
int i = menuitem.getItemId();
if(i == 0x102002c)
goHome(getAccount());
else
if(i == R.id.search)
onSearchRequested();
else
flag = false;
return flag;
}
public boolean onPrepareOptionsMenu(Menu menu)
{
menu.findItem(R.id.search).setVisible(false);
return menu.hasVisibleItems();
}
protected void onResume()
{
super.onResume();
if(isIntentAccountActive())
{
if(!mEditAudienceFragment.hasAudience())
{
AudienceData audiencedata = (AudienceData)getIntent().getParcelableExtra("audience");
if(audiencedata != null)
mEditAudienceFragment.setAudience(audiencedata);
}
} else
{
finish();
}
}
public boolean onSearchRequested()
{
boolean flag = getIntent().getBooleanExtra("search_phones_enabled", false);
boolean flag1 = getIntent().getBooleanExtra("search_plus_pages_enabled", false);
boolean flag2 = getIntent().getBooleanExtra("search_pub_profiles_enabled", false);
int i = getIntent().getIntExtra("circle_usage_type", -1);
startActivityForResult(Intents.getPeopleSearchActivityIntent(this, getAccount(), true, i, flag2, flag, flag1, true, getIntent().getBooleanExtra("filter_null_gaia_ids", false)), 0);
return true;
}
protected final void onTitlebarLabelClick()
{
goHome(getAccount());
}
}