package com.siliconicpro.admin.ialarm;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.media.Ringtone;
import android.media.RingtoneManager;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.NavUtils;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
public class Settings extends ActionBarActivity implements View.OnClickListener{
private static TextView ringToneSelect;
private String saved_uri = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.settings);
ActionBar ab = getSupportActionBar();
ColorDrawable colorDrawable = new ColorDrawable(Color.parseColor("#ff156514"));
ab.setBackgroundDrawable(colorDrawable);
// initializing all variables
RelativeLayout ringTone = (RelativeLayout)findViewById(R.id.ringtone);
ringToneSelect = (TextView)findViewById(R.id.ring_tone_select);
// showing all data of SETTINGS_TABLE from DATABASE
showSettingsData();
// setting On Click Listener
ringTone.setOnClickListener(this);
}
public void showSettingsData(){
Cursor c = SettingsTable.getSettingsData(Home.getDop());
String uri = c.getString(c.getColumnIndex(SettingsTable.RINGTONE));
Ringtone ringtone = RingtoneManager.getRingtone(this, Uri.parse(uri));
String title = ringtone.getTitle(this);
ringToneSelect.setText(title);
c.close();
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.ringtone:
// Showing Popup of System Built-in RingTones
Intent tone_intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
tone_intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_ALL);
tone_intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false);
tone_intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, false);
tone_intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select Alarm Tone");
// Showing Current Selection in Popup
if (saved_uri != null) {
// if Popup Opens 2nd+ Time
tone_intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, Uri.parse(saved_uri));
} else {
// if Popup Opens 1st Time
tone_intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, SettingsTable.getUri(Home.getDop()));
}
startActivityForResult(tone_intent, 0);
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == RESULT_OK){
//sends the ringtone that is picked in the Ringtone Picker Dialog
Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
saved_uri = uri.toString();
Ringtone ringtone = RingtoneManager.getRingtone(this, uri);
String title = ringtone.getTitle(this);
ringToneSelect.setText(title);
try
{
// Storing in Database
SettingsTable.updateRingTone(String.valueOf(uri), Home.getDop());
}
catch (Exception localException)
{
Toast.makeText(this, "error", Toast.LENGTH_SHORT).show();
}
}
}
@Override
protected void onSaveInstanceState(Bundle savedInstanceState){
// Save the state before orientation change
savedInstanceState.putString("ringTone", ringToneSelect.getText().toString());
savedInstanceState.putString("savedUri", saved_uri);
super.onSaveInstanceState(savedInstanceState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState){
super.onRestoreInstanceState(savedInstanceState);
// Restore the state after orientation change
ringToneSelect.setText(savedInstanceState.getString("ringTone"));
saved_uri = savedInstanceState.getString("savedUri");
}
}
No comments:
Post a Comment