package com.victorvieux.livedroid.activities;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.preference.EditTextPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceManager;
import android.text.method.LinkMovementMethod;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import com.actionbarsherlock.app.SherlockPreferenceActivity;
import com.actionbarsherlock.view.MenuItem;
import com.victorvieux.livedroid.R;
public class SettingsActivity extends SherlockPreferenceActivity implements OnPreferenceClickListener {
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
addPreferencesFromResource(R.xml.settings);
((EditTextPreference) findPreference("gamertag")).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
Toast.makeText(getApplicationContext(), R.string.restart, Toast.LENGTH_SHORT).show();
Intent i = new Intent(getApplicationContext(), SplashActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplicationContext().startActivity(i);
return true;
}
});
findPreference("license").setOnPreferenceClickListener(this);
findPreference("github").setOnPreferenceClickListener(this);
findPreference("credits").setOnPreferenceClickListener(this);
findPreference("api_limit").setSummary(PreferenceManager.getDefaultSharedPreferences(this).getString("API_LIMIT", ""));
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
public boolean onPreferenceClick(Preference preference) {
if (preference.getKey().equals("license")) {
String license = null;
try {
InputStream input = getAssets().open("LICENSE");
int size = input.available();
byte[] buffer = new byte[size];
input.read(buffer);
input.close();
license = new String(buffer);
} catch (UnsupportedEncodingException e) {
} catch (IOException e) {
}
AlertDialog.Builder b = new Builder(this);
b.setMessage(license)
.setCancelable(true)
.setPositiveButton(getString(android.R.string.cancel), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
b.create().show();
return true;
} else if (preference.getKey().equals("github")) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://github.com/vieux/LiveDroid")));
}else if (preference.getKey().equals("credits")) {
final View layout = View.inflate(SettingsActivity.this, R.layout.credits, null);
TextView ossTextView = (TextView) layout.findViewById(R.id.credits_oss_items);
ossTextView.setMovementMethod(LinkMovementMethod.getInstance());
TextView artTextView = (TextView) layout.findViewById(R.id.credits_art_items);
artTextView.setMovementMethod(LinkMovementMethod.getInstance());
AlertDialog.Builder builder = new AlertDialog.Builder(
SettingsActivity.this);
builder.setIcon(0);
builder.setNegativeButton(android.R.string.ok, null);
builder.setView(layout);
builder.setTitle(R.string.credits);
AlertDialog alertDialog = builder.create();
alertDialog.show();
return true;
}
return false;
}
}