package com.nightonke.blurlockviewsample;
import android.content.Intent;
import android.net.Uri;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;
public class SettingsActivity extends AppCompatActivity {
private SeekBar showDuration;
private TextView showDurationTextView;
private SeekBar hideDuration;
private TextView hideDurationTextView;
private RadioButton[] showDirections = new RadioButton[5];
private RadioButton[] hideDirections = new RadioButton[5];
private RadioButton[] showEaseTypes = new RadioButton[31];
private RadioButton[] hideEaseTypes = new RadioButton[31];
private FloatingActionButton go;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
showDuration = (SeekBar)findViewById(R.id.show_duration);
showDurationTextView = (TextView)findViewById(R.id.show_duration_text);
showDurationTextView.setText((showDuration.getProgress() * 500) + "ms");
showDuration.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
showDurationTextView.setText((progress * 500) + "ms");
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
hideDuration = (SeekBar)findViewById(R.id.hide_duration);
hideDurationTextView = (TextView)findViewById(R.id.hide_duration_text);
hideDurationTextView.setText((hideDuration.getProgress() * 500) + "ms");
hideDuration.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
hideDurationTextView.setText((progress * 500) + "ms");
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
String[] showDirectionsArray = getResources().getStringArray(R.array.show_direction);
for (int i = 0; i < 5; i++) {
showDirections[i] = new RadioButton(this);
showDirections[i].setText(showDirectionsArray[i]);
showDirections[i].setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
((ViewGroup) findViewById(R.id.group_show_direction)).addView(showDirections[i]);
}
showDirections[0].setChecked(true);
String[] hideDirectionsArray = getResources().getStringArray(R.array.hide_direction);
for (int i = 0; i < 5; i++) {
hideDirections[i] = new RadioButton(this);
hideDirections[i].setText(hideDirectionsArray[i]);
hideDirections[i].setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
((ViewGroup) findViewById(R.id.group_hide_direction)).addView(hideDirections[i]);
}
hideDirections[0].setChecked(true);
String[] showEaseTypesArray = getResources().getStringArray(R.array.ease_type);
for (int i = 0; i < 31; i++) {
showEaseTypes[i] = new RadioButton(this);
showEaseTypes[i].setText(showEaseTypesArray[i]);
showEaseTypes[i].setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
((ViewGroup) findViewById(R.id.show_ease_type)).addView(showEaseTypes[i]);
}
showEaseTypes[30].setChecked(true);
String[] hideEaseTypesArray = getResources().getStringArray(R.array.ease_type);
for (int i = 0; i < 31; i++) {
hideEaseTypes[i] = new RadioButton(this);
hideEaseTypes[i].setText(hideEaseTypesArray[i]);
hideEaseTypes[i].setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
((ViewGroup) findViewById(R.id.hide_ease_type)).addView(hideEaseTypes[i]);
}
hideEaseTypes[30].setChecked(true);
go = (FloatingActionButton)findViewById(R.id.go);
go.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if ("".equals(((EditText)findViewById(R.id.password)).getText().toString())) {
Toast.makeText(SettingsActivity.this,
R.string.password_is_empty,
Toast.LENGTH_SHORT).show();
return;
} else if (((EditText)findViewById(R.id.password)).getText().toString().length()
> 10) {
Toast.makeText(SettingsActivity.this,
R.string.password_too_long,
Toast.LENGTH_SHORT).show();
return;
}
Intent intent = new Intent(SettingsActivity.this, ShowActivity.class);
intent.putExtra("PASSWORD_TYPE", getPasswordType());
intent.putExtra("SHOW_DURATION", showDuration.getProgress() * 500);
intent.putExtra("HIDE_DURATION", hideDuration.getProgress() * 500);
intent.putExtra("SHOW_DIRECTION", getShowDirection());
intent.putExtra("HIDE_DIRECTION", getHideDirection());
intent.putExtra("SHOW_EASE_TYPE", getShowEaseType());
intent.putExtra("HIDE_EASE_TYPE", getHideEaseType());
intent.putExtra("PASSWORD",
((EditText)findViewById(R.id.password)).getText().toString());
intent.putExtra("TITLE",
((EditText)findViewById(R.id.title)).getText().toString());
intent.putExtra("LEFT_BUTTON",
((EditText)findViewById(R.id.left_button)).getText().toString());
intent.putExtra("RIGHT_BUTTON",
((EditText)findViewById(R.id.right_button)).getText().toString());
intent.putExtra("TYPEFACE", getTypeface());
startActivity(intent);
}
});
}
private String getPasswordType() {
switch (((RadioGroup)findViewById(R.id.group_password_type)).getCheckedRadioButtonId()) {
case R.id.password_number: return "PASSWORD_NUMBER";
case R.id.password_text: return "PASSWORD_TEXT";
}
return "";
}
private String getTypeface() {
switch (((RadioGroup)findViewById(R.id.group_typeface)).getCheckedRadioButtonId()) {
case R.id.san: return "SAN";
case R.id.default_typeface: return "DEFAULT";
}
return "";
}
private int getShowDirection() {
for (int i = 0; i < showDirections.length; i++)
if (showDirections[i].isChecked()) return i;
return 0;
}
private int getHideDirection() {
for (int i = 0; i < hideDirections.length; i++)
if (hideDirections[i].isChecked()) return i;
return 0;
}
private int getShowEaseType() {
for (int i = 0; i < 31; i++) if (showEaseTypes[i].isChecked()) return i;
return 0;
}
private int getHideEaseType() {
for (int i = 0; i < 31; i++) if (hideEaseTypes[i].isChecked()) return i;
return 0;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_github:
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(
"https://github.com/Nightonke/BlurLockView")));
return true;
case R.id.action_developer:
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(
"https://github.com/Nightonke")));
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}