Cleaned up the Ringtone Fragment UI
closes #56 Signed-off-by: Ricky Barrette <rickbarrette@gmail.com>
This commit is contained in:
@@ -13,29 +13,6 @@
|
|||||||
android:text="@string/ringtone_options"
|
android:text="@string/ringtone_options"
|
||||||
android:textColor="#FFFFFF" />
|
android:textColor="#FFFFFF" />
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="horizontal" >
|
|
||||||
|
|
||||||
<ToggleButton
|
|
||||||
android:id="@+id/ringtone_silent_toggle"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:textOff="@string/silent_disabled"
|
|
||||||
android:textOn="@string/silent_enabled" />
|
|
||||||
|
|
||||||
<Button
|
|
||||||
android:id="@+id/ringtone_button"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:text="@string/select_tone" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/ringtone"
|
android:id="@+id/ringtone"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|||||||
@@ -23,17 +23,13 @@ import android.view.LayoutInflater;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.Button;
|
|
||||||
import android.widget.CompoundButton;
|
|
||||||
import android.widget.CompoundButton.OnCheckedChangeListener;
|
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.SeekBar;
|
import android.widget.SeekBar;
|
||||||
import android.widget.SeekBar.OnSeekBarChangeListener;
|
import android.widget.SeekBar.OnSeekBarChangeListener;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.ToggleButton;
|
|
||||||
|
|
||||||
import com.TwentyCodes.android.LocationRinger.R;
|
|
||||||
import com.TwentyCodes.android.LocationRinger.OnContentChangedListener;
|
import com.TwentyCodes.android.LocationRinger.OnContentChangedListener;
|
||||||
|
import com.TwentyCodes.android.LocationRinger.R;
|
||||||
import com.TwentyCodes.android.LocationRinger.db.RingerDatabase;
|
import com.TwentyCodes.android.LocationRinger.db.RingerDatabase;
|
||||||
import com.TwentyCodes.android.LocationRinger.debug.Debug;
|
import com.TwentyCodes.android.LocationRinger.debug.Debug;
|
||||||
|
|
||||||
@@ -41,22 +37,21 @@ import com.TwentyCodes.android.LocationRinger.debug.Debug;
|
|||||||
* This fragment will be for ringtone settings
|
* This fragment will be for ringtone settings
|
||||||
* @author ricky
|
* @author ricky
|
||||||
*/
|
*/
|
||||||
public class RingtoneFragment extends Fragment implements OnClickListener, OnCheckedChangeListener, OnSeekBarChangeListener {
|
public class RingtoneFragment extends Fragment implements OnClickListener, OnSeekBarChangeListener {
|
||||||
|
|
||||||
private static final String TAG = "RingtoneFragment";
|
private static final String TAG = "RingtoneFragment";
|
||||||
private ToggleButton mRingtoneToggle;
|
private final int mStream;
|
||||||
private String mRingtoneURI;
|
private final int mType;
|
||||||
|
private final OnContentChangedListener mListener;
|
||||||
|
private final String mKeyEnabled;
|
||||||
|
private final String mKeyUri;
|
||||||
|
private final String mKeyRingtone;
|
||||||
|
private final String mKeyVolume;
|
||||||
|
private final ContentValues mInfo;
|
||||||
|
private final int mLabel;
|
||||||
private EditText mRingtone;
|
private EditText mRingtone;
|
||||||
private SeekBar mRingtonVolume;
|
private String mRingtoneURI;
|
||||||
private Button mRingtoneButton;
|
private SeekBar mVolume;
|
||||||
private int mStream;
|
|
||||||
private int mType;
|
|
||||||
private OnContentChangedListener mListener;
|
|
||||||
private String mKeyEnabled;
|
|
||||||
private String mKeyUri;
|
|
||||||
private String mKeyRingtone;
|
|
||||||
private String mKeyVolume;
|
|
||||||
private ContentValues mInfo;
|
|
||||||
|
|
||||||
public RingtoneFragment(ContentValues info, OnContentChangedListener listener, int stream){
|
public RingtoneFragment(ContentValues info, OnContentChangedListener listener, int stream){
|
||||||
super();
|
super();
|
||||||
@@ -65,19 +60,26 @@ public class RingtoneFragment extends Fragment implements OnClickListener, OnChe
|
|||||||
this.mInfo = info;
|
this.mInfo = info;
|
||||||
|
|
||||||
switch(stream){
|
switch(stream){
|
||||||
case AudioManager.STREAM_RING:
|
|
||||||
mKeyEnabled = RingerDatabase.KEY_RINGTONE_IS_SILENT;
|
|
||||||
mKeyUri = RingerDatabase.KEY_RINGTONE_URI;
|
|
||||||
mKeyRingtone = RingerDatabase.KEY_RINGTONE;
|
|
||||||
mKeyVolume = RingerDatabase.KEY_RINGTONE_VOLUME;
|
|
||||||
break;
|
|
||||||
case AudioManager.STREAM_NOTIFICATION:
|
case AudioManager.STREAM_NOTIFICATION:
|
||||||
mKeyEnabled = RingerDatabase.KEY_NOTIFICATION_IS_SILENT;
|
mKeyEnabled = RingerDatabase.KEY_NOTIFICATION_IS_SILENT;
|
||||||
mKeyUri = RingerDatabase.KEY_NOTIFICATION_RINGTONE_URI;
|
mKeyUri = RingerDatabase.KEY_NOTIFICATION_RINGTONE_URI;
|
||||||
mKeyRingtone = RingerDatabase.KEY_NOTIFICATION_RINGTONE;
|
mKeyRingtone = RingerDatabase.KEY_NOTIFICATION_RINGTONE;
|
||||||
mKeyVolume = RingerDatabase.KEY_NOTIFICATION_RINGTONE_VOLUME;
|
mKeyVolume = RingerDatabase.KEY_NOTIFICATION_RINGTONE_VOLUME;
|
||||||
|
mLabel = R.string.notification_ringtone;
|
||||||
|
mType = RingtoneManager.TYPE_NOTIFICATION;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case AudioManager.STREAM_RING:
|
||||||
|
default:
|
||||||
|
mKeyEnabled = RingerDatabase.KEY_RINGTONE_IS_SILENT;
|
||||||
|
mKeyUri = RingerDatabase.KEY_RINGTONE_URI;
|
||||||
|
mKeyRingtone = RingerDatabase.KEY_RINGTONE;
|
||||||
|
mKeyVolume = RingerDatabase.KEY_RINGTONE_VOLUME;
|
||||||
|
mLabel = R.string.ringtone;
|
||||||
|
mType = RingtoneManager.TYPE_RINGTONE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -88,9 +90,10 @@ public class RingtoneFragment extends Fragment implements OnClickListener, OnChe
|
|||||||
*/
|
*/
|
||||||
private void getRingtoneURI(int ringtoneCode, String uri){
|
private void getRingtoneURI(int ringtoneCode, String uri){
|
||||||
Intent intent = new Intent( RingtoneManager.ACTION_RINGTONE_PICKER);
|
Intent intent = new Intent( RingtoneManager.ACTION_RINGTONE_PICKER);
|
||||||
intent.putExtra( RingtoneManager.EXTRA_RINGTONE_TYPE, ringtoneCode);
|
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, ringtoneCode);
|
||||||
intent.putExtra( RingtoneManager.EXTRA_RINGTONE_TITLE, "Select Tone");
|
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select Tone");
|
||||||
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false);
|
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, true);
|
||||||
|
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, false);
|
||||||
if( uri == null)
|
if( uri == null)
|
||||||
try {
|
try {
|
||||||
uri = RingtoneManager.getActualDefaultRingtoneUri(this.getActivity(), ringtoneCode).toString();
|
uri = RingtoneManager.getActualDefaultRingtoneUri(this.getActivity(), ringtoneCode).toString();
|
||||||
@@ -111,7 +114,9 @@ public class RingtoneFragment extends Fragment implements OnClickListener, OnChe
|
|||||||
Uri tone = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
|
Uri tone = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
|
||||||
if(tone == null){
|
if(tone == null){
|
||||||
this.mRingtone.setText(R.string.silent);
|
this.mRingtone.setText(R.string.silent);
|
||||||
|
mVolume.setEnabled(false);
|
||||||
} else {
|
} else {
|
||||||
|
mVolume.setEnabled(true);
|
||||||
Ringtone ringtone = RingtoneManager.getRingtone(this.getActivity(), Uri.parse(tone.toString()));
|
Ringtone ringtone = RingtoneManager.getRingtone(this.getActivity(), Uri.parse(tone.toString()));
|
||||||
this.mRingtone.setText(ringtone.getTitle(this.getActivity()));
|
this.mRingtone.setText(ringtone.getTitle(this.getActivity()));
|
||||||
}
|
}
|
||||||
@@ -120,27 +125,12 @@ public class RingtoneFragment extends Fragment implements OnClickListener, OnChe
|
|||||||
ContentValues info = new ContentValues();
|
ContentValues info = new ContentValues();
|
||||||
info.put(this.mKeyRingtone, this.mRingtone.getText().toString());
|
info.put(this.mKeyRingtone, this.mRingtone.getText().toString());
|
||||||
info.put(this.mKeyUri, tone != null ? tone.toString() : null);
|
info.put(this.mKeyUri, tone != null ? tone.toString() : null);
|
||||||
|
info.put(mKeyEnabled, tone != null);
|
||||||
this.mListener.onInfoContentChanged(info);
|
this.mListener.onInfoContentChanged(info);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Called when a toggle button's state is changed
|
|
||||||
* @author ricky barrette
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
|
||||||
this.mRingtone.setEnabled(!isChecked);
|
|
||||||
this.mRingtoneButton.setEnabled(!isChecked);
|
|
||||||
this.mRingtonVolume.setEnabled(!isChecked);
|
|
||||||
if(this.mListener != null){
|
|
||||||
ContentValues info = new ContentValues();
|
|
||||||
info.put(this.mKeyEnabled, isChecked);
|
|
||||||
this.mListener.onInfoContentChanged(info);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when a view is clicked
|
* Called when a view is clicked
|
||||||
* @author ricky barrette
|
* @author ricky barrette
|
||||||
@@ -163,24 +153,13 @@ public class RingtoneFragment extends Fragment implements OnClickListener, OnChe
|
|||||||
* initialize the views
|
* initialize the views
|
||||||
*/
|
*/
|
||||||
TextView label = (TextView) view.findViewById(R.id.label);
|
TextView label = (TextView) view.findViewById(R.id.label);
|
||||||
|
label.setText(mLabel);
|
||||||
|
|
||||||
this.mRingtone = (EditText) view.findViewById(R.id.ringtone);
|
this.mRingtone = (EditText) view.findViewById(R.id.ringtone);
|
||||||
this.mRingtoneToggle = (ToggleButton) view.findViewById(R.id.ringtone_silent_toggle);
|
mVolume = (SeekBar) view.findViewById(R.id.ringtone_volume);
|
||||||
this.mRingtonVolume = (SeekBar) view.findViewById(R.id.ringtone_volume);
|
|
||||||
this.mRingtoneButton = (Button) view.findViewById(R.id.ringtone_button);
|
|
||||||
|
|
||||||
this.mRingtoneButton.setOnClickListener(this);
|
this.mRingtone.setOnClickListener(this);
|
||||||
this.mRingtonVolume.setMax(mAudioManager.getStreamMaxVolume(mStream));
|
mVolume.setMax(mAudioManager.getStreamMaxVolume(mStream));
|
||||||
|
|
||||||
switch(this.mStream){
|
|
||||||
case AudioManager.STREAM_RING:
|
|
||||||
label.setText(R.string.ringtone);
|
|
||||||
mType = RingtoneManager.TYPE_RINGTONE;
|
|
||||||
break;
|
|
||||||
case AudioManager.STREAM_NOTIFICATION:
|
|
||||||
label.setText(R.string.notification_ringtone);
|
|
||||||
mType = RingtoneManager.TYPE_NOTIFICATION;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ringtone & uri
|
* ringtone & uri
|
||||||
@@ -188,38 +167,25 @@ public class RingtoneFragment extends Fragment implements OnClickListener, OnChe
|
|||||||
if(this.mInfo.containsKey(this.mKeyUri) && this.mInfo.containsKey(this.mKeyRingtone)){
|
if(this.mInfo.containsKey(this.mKeyUri) && this.mInfo.containsKey(this.mKeyRingtone)){
|
||||||
this.mRingtone.setText(this.mInfo.getAsString(this.mKeyRingtone));
|
this.mRingtone.setText(this.mInfo.getAsString(this.mKeyRingtone));
|
||||||
this.mRingtoneURI = this.mInfo.getAsString(this.mKeyUri);
|
this.mRingtoneURI = this.mInfo.getAsString(this.mKeyUri);
|
||||||
|
this.mVolume.setEnabled(this.mInfo.getAsString(this.mKeyUri) != null);
|
||||||
} else
|
} else
|
||||||
try {
|
try {
|
||||||
this.mRingtoneURI = RingtoneManager.getActualDefaultRingtoneUri(this.getActivity(), mType).toString();
|
this.mRingtoneURI = RingtoneManager.getActualDefaultRingtoneUri(this.getActivity(), mType).toString();
|
||||||
this.mRingtone.setText(RingtoneManager.getRingtone(this.getActivity(), Uri.parse(mRingtoneURI)).getTitle(this.getActivity()));
|
this.mRingtone.setText(RingtoneManager.getRingtone(this.getActivity(), Uri.parse(mRingtoneURI)).getTitle(this.getActivity()));
|
||||||
} catch (NullPointerException e) {
|
} catch (NullPointerException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
this.mRingtoneToggle.setChecked(true);
|
mVolume.setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* volume
|
* volume
|
||||||
*/
|
*/
|
||||||
if(this.mInfo.containsKey(this.mKeyVolume))
|
if(this.mInfo.containsKey(this.mKeyVolume))
|
||||||
this.mRingtonVolume.setProgress(Integer.parseInt(this.mInfo.getAsString(this.mKeyVolume)));
|
mVolume.setProgress(Integer.parseInt(this.mInfo.getAsString(this.mKeyVolume)));
|
||||||
else
|
else
|
||||||
this.mRingtonVolume.setProgress(mAudioManager.getStreamVolume(mStream));
|
mVolume.setProgress(mAudioManager.getStreamVolume(mStream));
|
||||||
|
|
||||||
/*
|
mVolume.setOnSeekBarChangeListener(this);
|
||||||
* silent toggle
|
|
||||||
*/
|
|
||||||
if(this.mInfo.containsKey(this.mKeyEnabled))
|
|
||||||
this.mRingtoneToggle.setChecked(!this.mInfo.getAsBoolean(this.mKeyEnabled));
|
|
||||||
else
|
|
||||||
this.mRingtoneToggle.setChecked(mAudioManager.getRingerMode() == AudioManager.RINGER_MODE_SILENT ? true : false);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* disable views if need be
|
|
||||||
*/
|
|
||||||
this.mRingtoneToggle.setOnCheckedChangeListener(this);
|
|
||||||
this.mRingtone.setEnabled(! mRingtoneToggle.isChecked());
|
|
||||||
this.mRingtonVolume.setEnabled(! mRingtoneToggle.isChecked());
|
|
||||||
this.mRingtonVolume.setOnSeekBarChangeListener(this);
|
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user