package cgeo.geocaching;
import cgeo.geocaching.activity.AbstractActivity;
import cgeo.geocaching.activity.ActivityMixin;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.view.Window;
public class WaypointPopup extends AbstractActivity {
private int waypointId = 0;
private String geocode;
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
this.setTheme(ActivityMixin.getDialogTheme());
final Bundle extras = getIntent().getExtras();
if (extras != null) {
waypointId = extras.getInt(Intents.EXTRA_WAYPOINT_ID);
geocode = extras.getString(Intents.EXTRA_GEOCODE);
}
showDialog();
}
public static void startActivity(final Context context, final int waypointId, final String geocode) {
final Intent popupIntent = new Intent(context, WaypointPopup.class);
popupIntent.putExtra(Intents.EXTRA_WAYPOINT_ID, waypointId);
popupIntent.putExtra(Intents.EXTRA_GEOCODE, geocode);
context.startActivity(popupIntent);
}
public static void startActivityAllowTarget(final Activity activity, final int waypointId, final String geocode) {
final Intent popupIntent = new Intent(activity, WaypointPopup.class);
popupIntent.putExtra(Intents.EXTRA_WAYPOINT_ID, waypointId);
popupIntent.putExtra(Intents.EXTRA_GEOCODE, geocode);
activity.startActivityForResult(popupIntent, AbstractDialogFragment.REQUEST_CODE_TARGET_INFO);
}
void showDialog() {
// DialogFragment.show() will take care of adding the fragment
// in a transaction. We also want to remove any currently showing
// dialog, so make our own transaction and take care of that here.
final FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
final Fragment prev = getSupportFragmentManager().findFragmentByTag("dialog");
if (prev != null) {
ft.remove(prev);
}
ft.addToBackStack(null);
// Create and show the dialog.
final DialogFragment newFragment = WaypointPopupFragment.newInstance(geocode, waypointId);
newFragment.show(ft, "dialog");
}
}