/*
* Copyright (C) 2013 47 Degrees, LLC
* http://47deg.com
* hello@47deg.com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.fortysevendeg.android.swipelistview.sample.activities;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.widget.*;
import com.fortysevendeg.android.swipelistview.R;
import com.fortysevendeg.android.swipelistview.SwipeListView;
import com.fortysevendeg.android.swipelistview.sample.utils.SettingsManager;
public class SettingsActivity extends Activity {
private static int MAX_OFFSET = 200;
private SettingsManager settings;
private SeekBar sbOffsetLeft;
private TextView tvOffsetLeft;
private SeekBar sbOffsetRight;
private TextView tvOffsetRight;
CompoundButton.OnCheckedChangeListener radiosListener = new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
switch (buttonView.getId()) {
case R.id.mode_both:
settings.setSwipeMode(SwipeListView.SWIPE_MODE_BOTH);
break;
case R.id.mode_left:
settings.setSwipeMode(SwipeListView.SWIPE_MODE_LEFT);
break;
case R.id.mode_right:
settings.setSwipeMode(SwipeListView.SWIPE_MODE_RIGHT);
break;
case R.id.action_left_dismiss:
settings.setSwipeActionLeft(SwipeListView.SWIPE_ACTION_DISMISS);
break;
case R.id.action_left_reveal:
settings.setSwipeActionLeft(SwipeListView.SWIPE_ACTION_REVEAL);
break;
case R.id.action_right_dismiss:
settings.setSwipeActionRight(SwipeListView.SWIPE_ACTION_DISMISS);
break;
case R.id.action_right_reveal:
settings.setSwipeActionRight(SwipeListView.SWIPE_ACTION_REVEAL);
break;
}
}
}
};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.settings_activity);
settings = SettingsManager.getInstance();
RadioButton rbModeBoth = (RadioButton) findViewById(R.id.mode_both);
rbModeBoth.setOnCheckedChangeListener(radiosListener);
RadioButton rbModeLeft = (RadioButton) findViewById(R.id.mode_left);
rbModeLeft.setOnCheckedChangeListener(radiosListener);
RadioButton rbModeRight = (RadioButton) findViewById(R.id.mode_right);
rbModeRight.setOnCheckedChangeListener(radiosListener);
if (settings.getSwipeMode() == SwipeListView.SWIPE_MODE_BOTH) {
rbModeBoth.setChecked(true);
} else if (settings.getSwipeMode() == SwipeListView.SWIPE_MODE_LEFT) {
rbModeLeft.setChecked(true);
} else if (settings.getSwipeMode() == SwipeListView.SWIPE_MODE_RIGHT) {
rbModeRight.setChecked(true);
}
RadioButton rbActionLeftDismiss = (RadioButton) findViewById(R.id.action_left_dismiss);
rbActionLeftDismiss.setOnCheckedChangeListener(radiosListener);
RadioButton rbActionLeftReveal = (RadioButton) findViewById(R.id.action_left_reveal);
rbActionLeftReveal.setOnCheckedChangeListener(radiosListener);
if (settings.getSwipeActionLeft() == SwipeListView.SWIPE_ACTION_DISMISS) {
rbActionLeftDismiss.setChecked(true);
} else if (settings.getSwipeActionLeft() == SwipeListView.SWIPE_ACTION_REVEAL) {
rbActionLeftReveal.setChecked(true);
}
RadioButton rbActionRightDismiss = (RadioButton) findViewById(R.id.action_right_dismiss);
rbActionRightDismiss.setOnCheckedChangeListener(radiosListener);
RadioButton rbActionRightReveal = (RadioButton) findViewById(R.id.action_right_reveal);
rbActionRightReveal.setOnCheckedChangeListener(radiosListener);
if (settings.getSwipeActionRight() == SwipeListView.SWIPE_ACTION_DISMISS) {
rbActionRightDismiss.setChecked(true);
} else if (settings.getSwipeActionRight() == SwipeListView.SWIPE_ACTION_REVEAL) {
rbActionRightReveal.setChecked(true);
}
tvOffsetLeft = (TextView) findViewById(R.id.offset_label_left);
tvOffsetLeft.setText(SettingsActivity.this.getString(R.string.leftOffset, (int) settings.getSwipeOffsetLeft()));
sbOffsetLeft = (SeekBar) findViewById(R.id.offset_left);
sbOffsetLeft.setMax(MAX_OFFSET);
sbOffsetLeft.setProgress((int) settings.getSwipeOffsetLeft());
sbOffsetLeft.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
settings.setSwipeOffsetLeft(progress);
tvOffsetLeft.setText(SettingsActivity.this.getString(R.string.leftOffset, progress));
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
tvOffsetRight = (TextView) findViewById(R.id.offset_label_right);
sbOffsetRight = (SeekBar) findViewById(R.id.offset_right);
tvOffsetRight.setText(SettingsActivity.this.getString(R.string.rightOffset, (int) settings.getSwipeOffsetRight()));
sbOffsetRight.setMax(MAX_OFFSET);
sbOffsetRight.setProgress((int) settings.getSwipeOffsetRight());
sbOffsetRight.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
settings.setSwipeOffsetRight(progress);
tvOffsetRight.setText(SettingsActivity.this.getString(R.string.rightOffset, progress));
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
final EditText etAnimationTime = (EditText) findViewById(R.id.animation_time);
etAnimationTime.setText(String.format("%d", (int) settings.getSwipeAnimationTime()));
etAnimationTime.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (!TextUtils.isEmpty(s)) {
try {
settings.setSwipeAnimationTime(Integer.parseInt(s.toString()));
} catch (NumberFormatException e) {
etAnimationTime.setText("0");
}
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
CheckBox cbLongPress = (CheckBox) findViewById(R.id.open_long_press);
cbLongPress.setChecked(settings.isSwipeOpenOnLongPress());
cbLongPress.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
settings.setSwipeOpenOnLongPress(isChecked);
}
});
}
}