package interdroid.swan.util; import android.content.Context; import android.preference.DialogPreference; import android.util.AttributeSet; import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.TimePicker; public class TimePreference extends DialogPreference implements TimePicker.OnTimeChangedListener { private static final String androidns = "http://schemas.android.com/apk/res/android"; private TimePicker mTimePicker; private TextView mSplashText; private Context mContext; private String mDialogMessage; public TimePreference(Context context, AttributeSet attrs) { super(context, attrs); mContext = context; mDialogMessage = attrs.getAttributeValue(androidns, "dialogMessage"); } @Override protected View onCreateDialogView() { LinearLayout layout = new LinearLayout(mContext); layout.setOrientation(LinearLayout.VERTICAL); layout.setPadding(6, 6, 6, 6); mSplashText = new TextView(mContext); if (mDialogMessage != null) mSplashText.setText(mDialogMessage); layout.addView(mSplashText); mTimePicker = new TimePicker(mContext); mTimePicker.setIs24HourView(true); mTimePicker.setOnTimeChangedListener(this); layout.addView(mTimePicker, new LinearLayout.LayoutParams( LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT)); return layout; } @Override protected void onBindDialogView(View v) { super.onBindDialogView(v); } @Override protected void onSetInitialValue(boolean restore, Object defaultValue) { super.onSetInitialValue(restore, defaultValue); } @Override public void onTimeChanged(TimePicker view, int hourOfDay, int minute) { String timeString = view.getCurrentHour() + ":" + view.getCurrentMinute(); if (shouldPersist()) persistString(timeString); callChangeListener(timeString); } }