package com.ideabag.playtunes.dialog; import android.app.Activity; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.net.Uri; import android.os.Bundle; import android.support.v4.app.DialogFragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.Window; import com.ideabag.playtunes.R; public class RateAppDialogFragment extends DialogFragment { SharedPreferences prefs; public RateAppDialogFragment() { setStyle( STYLE_NORMAL, 0 ); } @Override public void onAttach( Activity activity ) { super.onAttach( activity ); prefs = activity.getSharedPreferences( getString( R.string.prefs_file) , Context.MODE_PRIVATE ); } @Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate( R.layout.dialog_fragment_rateapp, container); getDialog().requestWindowFeature( Window.FEATURE_NO_TITLE ); view.findViewById( R.id.DialogCancel ).setOnClickListener( buttonClickListener ); view.findViewById( R.id.DialogConfirm ).setOnClickListener( buttonClickListener ); return view; } // // Set the app open count to 100, so we don't bother the user about ratings again // @Override public void onDismiss(DialogInterface dialog) { try { SharedPreferences.Editor edit = prefs.edit(); edit.putInt( getString( R.string.pref_key_appopen ), 100 ); edit.commit(); } catch ( Exception e ) { //IllegalStateException (@RateAppDialogFragment:onDismiss:50) {main} } super.onDismiss(dialog); } @Override public void onStart() { super.onStart(); if ( android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.HONEYCOMB ) { getDialog().getWindow().setBackgroundDrawableResource( R.drawable.gb_dialog_background ); } } private View.OnClickListener buttonClickListener = new View.OnClickListener() { @Override public void onClick(View v) { int id = v.getId(); if ( id == R.id.DialogCancel ) { dismiss(); } else if ( id == R.id.DialogConfirm ) { final String appPackageName = getActivity().getPackageName(); // getPackageName() from Context or Activity object try { getActivity().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName))); } catch (android.content.ActivityNotFoundException anfe) { getActivity().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=" + appPackageName))); } } } }; }