Thursday, 11 June 2015

Settings screen class

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