/**
*
*/
package org.orange.familylink.fragment.dialog;
import org.orange.familylink.R;
import org.orange.familylink.data.Settings;
import org.orange.familylink.location.LocationService;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.preference.PreferenceManager;
/**
* 定位频率设置{@link DialogFragment}
* @author Team Orange
*/
public class LocateFrequencyDialogFragment extends DialogFragment {
private String[] values;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
values = getResources().getStringArray(R.array.pref_location_frequency_values);
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
String currentValue = PreferenceManager.getDefaultSharedPreferences(getActivity())
.getString(Settings.PREF_KEY_LOCATE_FREQUENCY, null);
int currentPosition = getItemPosition(currentValue);
builder
.setTitle(R.string.pref_title_location_frequency)
.setSingleChoiceItems(R.array.pref_location_frequency_titles, currentPosition,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String value = values[which];
Settings.setLocateFrequency(getActivity(), value);
Intent intent = new Intent(getActivity(), LocationService.class);
getActivity().stopService(intent);
getActivity().startService(intent);
dismiss();
}
})
.setPositiveButton(android.R.string.cancel, null);
return builder.create();
}
/**
* 取得LocateFrequency值在其选择列表中的位置
* @param value 待查LocateFrequency值
* @return 如果查到了指定值,返回其位置;如果查不到,返回-1
*/
private int getItemPosition(String value) {
for(int i = 0 ; i < values.length ; i++)
if(values[i].equals(value))
return i;
return -1;
}
}