package com.sregg.android.tv.spotifyPlayer.settings;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.sregg.android.tv.spotifyPlayer.R;
import com.sregg.android.tv.spotifyPlayer.SpotifyTvApplication;
import com.sregg.android.tv.spotifyPlayer.controllers.LastFmApi;
/**
* Created by simonreggiani on 15-05-25.
*/
public class LastFmSetting extends Setting {
public LastFmSetting() {
super("{fa-lastfm}", SpotifyTvApplication.getInstance().getString(R.string.settings_lastfm));
}
@Override
public void onClick(final Activity activity) {
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
View inputView = LayoutInflater.from(activity).inflate(R.layout.setting_dialog_lastfm, null, false);
final EditText usernameET = (EditText) inputView.findViewById(R.id.lastfm_username);
final EditText passwordET = (EditText) inputView.findViewById(R.id.lastfm_password);
final UserPreferences prefs = UserPreferences.getInstance(SpotifyTvApplication.getInstance().getApplicationContext());
usernameET.setText(prefs.getLastFmUsername());
passwordET.setText(prefs.getLastFmPassword());
builder.setTitle(R.string.settings_lastfm_dialog)
.setView(inputView)
.setPositiveButton(android.R.string.ok, null)
.setNegativeButton(android.R.string.cancel, null);
final AlertDialog alertDialog = builder.create();
alertDialog.show();
Button okBtn = alertDialog.getButton(DialogInterface.BUTTON_POSITIVE);
okBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final Context context = SpotifyTvApplication.getInstance().getApplicationContext();
final String username = usernameET.getText().toString();
final String password = passwordET.getText().toString();
if (username.isEmpty()) {
usernameET.setError(context.getString(R.string.settings_lastfm_error_username_empty));
return;
}
if (password.isEmpty()) {
passwordET.setError(context.getString(R.string.settings_lastfm_error_password_empty));
return;
}
new Thread(new Runnable() {
@Override
public void run() {
boolean success = LastFmApi.getInstance().startLastFmSession(username, password);
if (!success) {
passwordET.post(new Runnable() {
@Override
public void run() {
passwordET.setError(context.getString(R.string.settings_lastfm_error_invalid));
}
});
return;
}
// if login successful, save username/password in prefs
prefs.setLastFmUsername(username);
prefs.setLastFmPassword(password);
// and close dialog
alertDialog.dismiss();
}
}).start();
}
});
}
}