Files
android-hypergames/app/src/main/java/com/hyperling/apps/games/OptionsActivity.java

138 lines
4.5 KiB
Java
Executable File

package com.hyperling.apps.games;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.RelativeLayout;
/**
* Created by ling on 12/22/16.
*/
public class OptionsActivity extends AppCompatActivity {
private String sharedPreferencesKey, higherQualityKey, fpsKey;
private SharedPreferences sharedPreferences;
private RelativeLayout layoutHigherQuality, layoutFPS;
private CheckBox cbHigherQuality, cbFPS;
private boolean higherQualityEnabled, fpsEnabled;
private Button btnDeletePreferences, btnConfirmDeletePreferences;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_options);
// Prevent the keyboard from popping up automatically
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
// Get SharedPreferences
sharedPreferencesKey = getString(R.string.sharedPreferencesKey);
sharedPreferences = getSharedPreferences(sharedPreferencesKey, MODE_PRIVATE);
// Higher Quality Content
higherQualityKey = getString(R.string.higherQualityKey);
layoutHigherQuality = (RelativeLayout) findViewById(R.id.optionHigherQualityLayout);
cbHigherQuality = (CheckBox) findViewById(R.id.optionHigherQualityCheckBox);
layoutHigherQuality.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
flipOption(higherQualityKey);
}
});
cbHigherQuality.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
flipOption(higherQualityKey);
}
});
setHigherQuality();
// In-Game FPS
fpsKey = getString(R.string.fpsKey);
layoutFPS = (RelativeLayout) findViewById(R.id.optionFPSLayout);
cbFPS = (CheckBox) findViewById(R.id.fpsCheckBox);
layoutFPS.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
flipOption(fpsKey);
}
});
cbFPS.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
flipOption(fpsKey);
}
});
setFPS();
// Reset buttons
btnDeletePreferences = (Button) findViewById(R.id.btnDeletePreferences);
btnConfirmDeletePreferences = (Button) findViewById(R.id.btnConfirmDeletePreferences);
btnDeletePreferences.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showConfirmDeletePreferencesButton((Button) v);
}
});
btnConfirmDeletePreferences.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
deletePreferences();
}
});
}
private void flipOption(String key){
boolean option = sharedPreferences.getBoolean(key, false);
// Save the setting
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean(key, !option);
editor.apply();
// Change the box
if (key.equals(higherQualityKey)){
setHigherQuality();
}
else if (key.equals(fpsKey)){
setFPS();
}
}
public void setHigherQuality() {
higherQualityEnabled = sharedPreferences.getBoolean(higherQualityKey, false);
cbHigherQuality.setChecked(higherQualityEnabled);
}
public void setFPS() {
fpsEnabled = sharedPreferences.getBoolean(fpsKey, false);
cbFPS.setChecked(fpsEnabled);
}
private void showConfirmDeletePreferencesButton(Button callButton){
callButton.setEnabled(false);
btnConfirmDeletePreferences.setVisibility(View.VISIBLE);
btnConfirmDeletePreferences.setEnabled(true);
}
private void deletePreferences(){
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.clear();
editor.apply();
Intent resetScreen = new Intent(OptionsActivity.this, OptionsActivity.class);
startActivity(resetScreen);
finish();
}
}