Fixed ringtone fragment!

This commit is contained in:
2014-09-01 23:04:57 -04:00
parent 29c8cb61e4
commit b2e1d24aa0
3 changed files with 74 additions and 28 deletions

View File

@@ -2,7 +2,8 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" > android:orientation="vertical"
android:id="@+id/ringtone_fragment">
<include <include
android:id="@+id/title_bar" android:id="@+id/title_bar"

View File

@@ -6,19 +6,6 @@
*/ */
package org.RickBarrette.android.LocationRinger.ui; package org.RickBarrette.android.LocationRinger.ui;
import java.util.ArrayList;
import java.util.Map.Entry;
import org.RickBarrette.android.LocationRinger.Constraints;
import org.RickBarrette.android.LocationRinger.EnableScrollingListener;
import org.RickBarrette.android.LocationRinger.Log;
import org.RickBarrette.android.LocationRinger.OnContentChangedListener;
import org.RickBarrette.android.LocationRinger.R;
import org.RickBarrette.android.LocationRinger.db.RingerDatabase;
import org.RickBarrette.android.LocationRinger.ui.fragments.AboutRingerFragment;
import org.RickBarrette.android.LocationRinger.ui.fragments.FeatureListFragment;
import org.RickBarrette.android.LocationRinger.ui.fragments.LocationInformationFragment;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.Activity; import android.app.Activity;
import android.app.ProgressDialog; import android.app.ProgressDialog;
@@ -34,10 +21,18 @@ import android.view.Menu;
import android.view.MenuInflater; import android.view.MenuInflater;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager;
import com.TwentyCodes.android.exception.ExceptionHandler; import com.TwentyCodes.android.exception.ExceptionHandler;
import com.jakewharton.android.viewpagerindicator.TitlePageIndicator; import com.jakewharton.android.viewpagerindicator.TitlePageIndicator;
import com.jakewharton.android.viewpagerindicator.TitledFragmentAdapter; import com.jakewharton.android.viewpagerindicator.TitledFragmentAdapter;
import org.RickBarrette.android.LocationRinger.*;
import org.RickBarrette.android.LocationRinger.db.RingerDatabase;
import org.RickBarrette.android.LocationRinger.ui.fragments.AboutRingerFragment;
import org.RickBarrette.android.LocationRinger.ui.fragments.FeatureListFragment;
import org.RickBarrette.android.LocationRinger.ui.fragments.LocationInformationFragment;
import org.RickBarrette.android.LocationRinger.ui.fragments.RingtoneFragment;
import java.util.ArrayList;
import java.util.Map.Entry;
/** /**
* This activity will handle displaying ringer options * This activity will handle displaying ringer options
@@ -52,6 +47,7 @@ public class RingerInformationActivity extends FragmentActivity implements OnCon
private Intent mData; private Intent mData;
private ViewPager mPager; private ViewPager mPager;
private LocationInformationFragment mLocationInfomationFragment; private LocationInformationFragment mLocationInfomationFragment;
private Fragment mFragmentCallBack;
/** /**
* Logs the content values * Logs the content values
@@ -274,4 +270,26 @@ public class RingerInformationActivity extends FragmentActivity implements OnCon
mPager.setScrollEnabled(enabled); mPager.setScrollEnabled(enabled);
} }
/**
* Handles results from activities. checks for a call back
* @param requestCode
* @param resultCode
* @param data
*/
@Override
public void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
if(mFragmentCallBack != null) {
mFragmentCallBack.onActivityResult(requestCode, resultCode, data);
mFragmentCallBack = null;
} else
super.onActivityResult(requestCode, resultCode, data);
}
/**
* Sets up a call back for a fragment
* @param fragmentCallBack
*/
public void setFragmentCallBack(RingtoneFragment fragmentCallBack) {
mFragmentCallBack = fragmentCallBack;
}
} }

View File

@@ -6,14 +6,6 @@
*/ */
package org.RickBarrette.android.LocationRinger.ui.fragments; package org.RickBarrette.android.LocationRinger.ui.fragments;
import java.util.Map.Entry;
import org.RickBarrette.android.LocationRinger.FeatureRemovedListener;
import org.RickBarrette.android.LocationRinger.Log;
import org.RickBarrette.android.LocationRinger.OnContentChangedListener;
import org.RickBarrette.android.LocationRinger.R;
import org.RickBarrette.android.LocationRinger.db.RingerDatabase;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.Activity; import android.app.Activity;
import android.content.ContentValues; import android.content.ContentValues;
@@ -24,6 +16,7 @@ import android.media.Ringtone;
import android.media.RingtoneManager; import android.media.RingtoneManager;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
@@ -32,6 +25,11 @@ 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 org.RickBarrette.android.LocationRinger.*;
import org.RickBarrette.android.LocationRinger.db.RingerDatabase;
import org.RickBarrette.android.LocationRinger.ui.RingerInformationActivity;
import java.util.Map.Entry;
/** /**
* This fragment will be for ringtone settings * This fragment will be for ringtone settings
@@ -52,9 +50,10 @@ public class RingtoneFragment extends BaseFeatureFragment implements OnClickList
private EditText mRingtone; private EditText mRingtone;
private Uri mRingtoneURI; private Uri mRingtoneURI;
private SeekBar mVolume; private SeekBar mVolume;
private Activity mActivity;
private String mTone;
public RingtoneFragment(final ContentValues info, final OnContentChangedListener changedListener, final FeatureRemovedListener removedListener, final int stream, public RingtoneFragment(final ContentValues info, final OnContentChangedListener changedListener, final FeatureRemovedListener removedListener, final int stream, final int id) {
final int id) {
super(id, R.layout.ringtone_fragment, removedListener); super(id, R.layout.ringtone_fragment, removedListener);
if (info == null) if (info == null)
@@ -100,7 +99,15 @@ public class RingtoneFragment extends BaseFeatureFragment implements OnClickList
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, true); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, true);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, false); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, false);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, uri); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, uri);
startActivityForResult(intent, ringtoneCode);
if (Constraints.DEBUG)
Log.d(TAG, TAG + ".getRingtoneURI " + this.getFragmentId());
FragmentActivity activity = this.getActivity();
if ( activity instanceof RingerInformationActivity)
((RingerInformationActivity) activity).setFragmentCallBack(this);
mActivity.startActivityForResult(intent, ringtoneCode);
} }
/** /**
@@ -139,6 +146,9 @@ public class RingtoneFragment extends BaseFeatureFragment implements OnClickList
*/ */
@Override @Override
public void onActivityResult(final int requestCode, final int resultCode, final Intent data) { public void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
if (Constraints.DEBUG)
Log.d(TAG, "onActivityResult");
if (resultCode == Activity.RESULT_OK) { if (resultCode == Activity.RESULT_OK) {
final Uri tone = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); final Uri tone = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
if (tone == null) { if (tone == null) {
@@ -148,8 +158,9 @@ public class RingtoneFragment extends BaseFeatureFragment implements OnClickList
notifyVolumeChanged(0); notifyVolumeChanged(0);
} else { } else {
mVolume.setEnabled(true); mVolume.setEnabled(true);
final Ringtone ringtone = RingtoneManager.getRingtone(getActivity(), Uri.parse(tone.toString()));
mRingtone.setText(ringtone.getTitle(getActivity())); final Ringtone ringtone = RingtoneManager.getRingtone(mActivity, Uri.parse(tone.toString()));
mTone = ringtone.getTitle(mActivity);
} }
notifyRingtoneChanged(tone); notifyRingtoneChanged(tone);
@@ -234,6 +245,7 @@ public class RingtoneFragment extends BaseFeatureFragment implements OnClickList
setIcon(mVolume.getProgress() == 0 ? R.drawable.ic_action_silent : R.drawable.ic_action_volume); setIcon(mVolume.getProgress() == 0 ? R.drawable.ic_action_silent : R.drawable.ic_action_volume);
mVolume.setOnSeekBarChangeListener(this); mVolume.setOnSeekBarChangeListener(this);
return view; return view;
} }
@@ -251,4 +263,19 @@ public class RingtoneFragment extends BaseFeatureFragment implements OnClickList
public void onStopTrackingTouch(final SeekBar seekBar) { public void onStopTrackingTouch(final SeekBar seekBar) {
} }
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
mActivity = activity;
}
@Override
public void onResume(){
if(mTone != null){
mRingtone.setText(mTone);
mTone = null;
}
super.onResume();
}
} }