/*
* GlowNotifier Application for Android
* Copyright (C) 2013 Youngbin Han<sukso96100@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.hybdms.glownotifier;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.os.Build;
import android.widget.EditText;
import android.widget.SeekBar;
import android.widget.Spinner;
import android.widget.TextView;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Load Preference Value
SharedPreferences pref = getSharedPreferences("pref", Activity.MODE_PRIVATE);
Spinner posentry = (Spinner) findViewById(R.id.posentry); //posentry spinner
SeekBar sizesekkbar = (SeekBar)findViewById(R.id.sizeseekbar);
Spinner shapentry = (Spinner) findViewById(R.id.shapentry); //heightentry spinner
EditText glowdelay = (EditText) findViewById(R.id.delaytime); //delaytime Edittext
final TextView showsize = (TextView) findViewById(R.id.showsize);
int posentry_int = pref.getInt("posentry",0);
int sizesekkbar_int = pref.getInt("ratiovalue", 50);
int shapentry_int = pref.getInt("shapentry", 0);
String delaytime_String = pref.getString("delaytime", "5000");
posentry.setSelection(posentry_int);
sizesekkbar.setProgress(sizesekkbar_int);
shapentry.setSelection(shapentry_int);
glowdelay.setText(delaytime_String);
showsize.setText(String.valueOf(sizesekkbar_int) + "%");
//Launch Tutorial Activity If user new to this app
Boolean firstrun = pref.getBoolean("firstrun", true);
if (firstrun) {
Intent guide = new Intent(MainActivity.this, Tutorial.class);
startActivity(guide);
SharedPreferences.Editor editor = pref.edit(); // Load Editor
editor.putBoolean("firstrun", false); //put value
editor.commit(); // Save value
}
else{
//Do Nothing
}
TextView accessibility = (TextView)findViewById(R.id.accessibility);
accessibility.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2){
Intent accessibility = new Intent(android.provider.Settings.ACTION_ACCESSIBILITY_SETTINGS);
startActivity(accessibility);
}
else{
Intent notiintent = new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS");
startActivity(notiintent);
}
}
});
TextView appinfo = (TextView)findViewById(R.id.appinfo);
appinfo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent appinfo = new Intent(MainActivity.this, Appinfo.class);
startActivity(appinfo);
}
});
TextView blacklist = (TextView)findViewById(R.id.blacklist);
blacklist.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent blacklist = new Intent(MainActivity.this, Blacklist.class);
startActivity(blacklist);
}
});
TextView colorpicker = (TextView)findViewById(R.id.colorpicker);
colorpicker.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent ColorSet = new Intent(MainActivity.this, ColorSettings.class);
startActivity(ColorSet);
}
});
TextView glowscreen = (TextView)findViewById(R.id.glowscreen);
glowscreen.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent glowscreen = new Intent(MainActivity.this, GlowScreenSettings.class);
startActivity(glowscreen);
}
});
sizesekkbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
showsize.setText(String.valueOf(progress) + "%");
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {}
});
}
public void onStop(){
super.onStop();
//Save Preference Value
SharedPreferences pref = getSharedPreferences("pref", Activity.MODE_PRIVATE); // Save UI State
SharedPreferences.Editor editor = pref.edit(); // Load Editor
Spinner posentry = (Spinner) findViewById(R.id.posentry);
SeekBar sizeseekbar = (SeekBar) findViewById(R.id.sizeseekbar);
Spinner shapentry = (Spinner) findViewById(R.id.shapentry);
EditText glowdelay = (EditText) findViewById(R.id.delaytime);
// Input values
int posentry_selected_value = posentry.getSelectedItemPosition();
int sizeseekbar_progress_value = sizeseekbar.getProgress();
int shapentry_selected_value = shapentry.getSelectedItemPosition();
String delaytime_edited_value = glowdelay.getText().toString();
editor.putInt("posentry", posentry_selected_value);
editor.putInt("ratiovalue", sizeseekbar_progress_value);
editor.putInt("shapentry", shapentry_selected_value);
editor.putString("delaytime", delaytime_edited_value);
editor.commit(); // Save values
}
//ActionBar Action Menu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
switch (item.getItemId()) {
case R.id.action_preview:
//Stop GlowOverlay First
stopService(new Intent(this, GlowOverlay.class));
//Save Preference Value
SharedPreferences pref = getSharedPreferences("pref", Activity.MODE_PRIVATE); // Save UI State
SharedPreferences.Editor editor = pref.edit(); // Load Editor
Spinner posentry = (Spinner) findViewById(R.id.posentry);
SeekBar sizeseekbar = (SeekBar) findViewById(R.id.sizeseekbar);
Spinner shapentry = (Spinner) findViewById(R.id.shapentry);
EditText glowdelay = (EditText) findViewById(R.id.delaytime);
// Input values
int posentry_selected_value = posentry.getSelectedItemPosition();
int sizeseekbar_progress_value = sizeseekbar.getProgress();
int shapentry_selected_value = shapentry.getSelectedItemPosition();
String delaytime_edited_value = glowdelay.getText().toString();
editor.putInt("posentry", posentry_selected_value);
editor.putInt("ratiovalue", sizeseekbar_progress_value);
editor.putInt("shapentry", shapentry_selected_value);
editor.putString("delaytime", delaytime_edited_value);
editor.commit(); // Save values
//Show GlowOverlay
startService(new Intent(this, GlowOverlay.class));
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private void showColorPickerDialog() {
SharedPreferences pref = getSharedPreferences("pref", Activity.MODE_PRIVATE); //Load Preference
int initialColor = pref.getInt("colorvalue", Color.WHITE); //Load Color Value from Preference
ColorPickerDialog colorPickerDialog = new ColorPickerDialog(this, initialColor, new ColorPickerDialog.OnColorSelectedListener() {
@Override
public void onColorSelected(int color) {
SharedPreferences pref = getSharedPreferences("pref", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit(); //Load Editor
editor.putInt("colorvalue", color); //Save Selected Color
editor.commit();
}
});
colorPickerDialog.show();
}
}