// Copyright 2013 Google Inc. All Rights Reserved.
package us.nineworlds.serenity.ui.activity;
import us.nineworlds.serenity.R;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
public class OverscanSetupActivity extends Activity implements
View.OnKeyListener, View.OnClickListener {
private View centerView;
private boolean topLeft = true;
private SharedPreferences prefs;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
prefs = PreferenceManager.getDefaultSharedPreferences(this);
setContentView(R.layout.overscan_setup);
centerView = findViewById(R.id.center);
final View swapView = findViewById(R.id.swap);
final ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams) centerView
.getLayoutParams();
layoutParams.setMargins(prefs.getInt("overscan_left", 50),
prefs.getInt("overscan_top", 50),
prefs.getInt("overscan_right", 50),
prefs.getInt("overscan_bottom", 50));
centerView.requestLayout();
swapView.setOnKeyListener(this);
swapView.setOnClickListener(this);
}
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() != KeyEvent.ACTION_DOWN) {
return false;
}
final ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams) centerView
.getLayoutParams();
int top = layoutParams.topMargin;
int bottom = layoutParams.bottomMargin;
int left = layoutParams.leftMargin;
int right = layoutParams.rightMargin;
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_UP:
if (topLeft) {
top--;
} else {
bottom++;
}
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
if (topLeft) {
top++;
} else {
bottom--;
}
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
if (topLeft) {
left--;
} else {
right++;
}
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
if (topLeft) {
left++;
} else {
right--;
}
break;
default:
return false;
}
prefs.edit().putInt("overscan_top", top).putInt("overscan_left", left)
.putInt("overscan_bottom", bottom)
.putInt("overscan_right", right).apply();
layoutParams.setMargins(left, top, right, bottom);
centerView.requestLayout();
return true;
}
@Override
public void onClick(View v) {
topLeft = !topLeft;
}
}