package net.rdrei.android.scdl2.ui; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; import android.support.v4.app.DialogFragment; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.view.LayoutInflater; import net.rdrei.android.scdl2.R; import it.gmariotti.changelibs.library.view.ChangeLogListView; import roboguice.util.Ln; public class ChangelogDialog extends DialogFragment { public static final String FRAGMENT_TAG = "changelog_about"; public ChangelogDialog() { super(); } public static void showDialogForActivity(FragmentActivity activity) { FragmentManager fm = activity.getSupportFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); Fragment prev = fm.findFragmentByTag(FRAGMENT_TAG); if (prev != null) { ft.remove(prev); } ft.addToBackStack(null); new ChangelogDialog().show(ft, FRAGMENT_TAG); } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { final Activity activity = getActivity(); if (activity == null) { Ln.w("Cannot create dialog, activity is null."); return super.onCreateDialog(savedInstanceState); } final LayoutInflater layoutInflater = (LayoutInflater) activity.getSystemService( Context.LAYOUT_INFLATER_SERVICE); final ChangeLogListView changelogView = (ChangeLogListView) layoutInflater.inflate( R.layout.changelog_view, null); return new AlertDialog.Builder(activity).setTitle(R.string.changelog_full_title) .setView(changelogView) .setPositiveButton(R.string.changelog_ok_button, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }) .create(); } }