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"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
android:orientation="vertical"
android:id="@+id/ringtone_fragment">
<include
android:id="@+id/title_bar"

View File

@@ -6,19 +6,6 @@
*/
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.app.Activity;
import android.app.ProgressDialog;
@@ -34,10 +21,18 @@ import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.inputmethod.InputMethodManager;
import com.TwentyCodes.android.exception.ExceptionHandler;
import com.jakewharton.android.viewpagerindicator.TitlePageIndicator;
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
@@ -52,6 +47,7 @@ public class RingerInformationActivity extends FragmentActivity implements OnCon
private Intent mData;
private ViewPager mPager;
private LocationInformationFragment mLocationInfomationFragment;
private Fragment mFragmentCallBack;
/**
* Logs the content values
@@ -274,4 +270,26 @@ public class RingerInformationActivity extends FragmentActivity implements OnCon
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;
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.app.Activity;
import android.content.ContentValues;
@@ -24,6 +16,7 @@ import android.media.Ringtone;
import android.media.RingtoneManager;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
@@ -32,6 +25,11 @@ import android.widget.EditText;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
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
@@ -52,9 +50,10 @@ public class RingtoneFragment extends BaseFeatureFragment implements OnClickList
private EditText mRingtone;
private Uri mRingtoneURI;
private SeekBar mVolume;
private Activity mActivity;
private String mTone;
public RingtoneFragment(final ContentValues info, final OnContentChangedListener changedListener, final FeatureRemovedListener removedListener, final int stream,
final int id) {
public RingtoneFragment(final ContentValues info, final OnContentChangedListener changedListener, final FeatureRemovedListener removedListener, final int stream, final int id) {
super(id, R.layout.ringtone_fragment, removedListener);
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_DEFAULT, false);
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
public void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
if (Constraints.DEBUG)
Log.d(TAG, "onActivityResult");
if (resultCode == Activity.RESULT_OK) {
final Uri tone = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
if (tone == null) {
@@ -148,8 +158,9 @@ public class RingtoneFragment extends BaseFeatureFragment implements OnClickList
notifyVolumeChanged(0);
} else {
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);
@@ -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);
mVolume.setOnSeekBarChangeListener(this);
return view;
}
@@ -251,4 +263,19 @@ public class RingtoneFragment extends BaseFeatureFragment implements OnClickList
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();
}
}