Skip to content
This repository has been archived by the owner on Mar 27, 2022. It is now read-only.

Commit

Permalink
setOnPositionChanged listener is now fired if there is any change in …
Browse files Browse the repository at this point in the history
…position
  • Loading branch information
EGE committed Apr 15, 2017
1 parent c21234c commit e28ce96
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 22 deletions.
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -180,25 +180,25 @@ final RadioRealButton button2 = (RadioRealButton) findViewById(R.id.button2);

RadioRealButtonGroup group = (RadioRealButtonGroup) findViewById(R.id.group);

// onClickButton listener detects position changes only by touch
// onClickButton listener detects any click performed on buttons by touch
group.setOnClickedButtonListener(new RadioRealButtonGroup.OnClickedButtonListener() {
@Override
public void onClickedButton(RadioRealButton button, int position) {
Toast.makeText(MainActivity.this, "Clicked! Position: " + position, Toast.LENGTH_SHORT).show();
}
});

// onPositionChanged listener detects position change in every way by touch or calling setPosition method
// onPositionChanged listener detects if there is any change in position
group.setOnPositionChangedListener(new RadioRealButtonGroup.OnPositionChangedListener() {
@Override
public void onPositionChanged(RadioRealButton button, int position) {
Toast.makeText(MainActivity.this, "Position Changed! Position: " + position, Toast.LENGTH_SHORT).show();
}
});

// onLongClickedButton listener has a boolean return
// true: use it if you only want to detect long click, nothing else
// false: use it if you want to detect long click and change position when you release
// onLongClickedButton detects long clicks which are made on any button in group.
// return true if you only want to detect long click, nothing else
// return false if you want to detect long click and change position when you release
group.setOnLongClickedButtonListener(new RadioRealButtonGroup.OnLongClickedButtonListener() {
@Override
public boolean onLongClickedButton(RadioRealButton button, int position) {
Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ buildscript {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0'
classpath 'com.android.tools.build:gradle:2.3.1'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'

// NOTE: Do not place your application dependencies here; they belong
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -478,12 +478,6 @@ private void makeSelection(int position, boolean isToggledByTouch, boolean hasAn
if ((buttonIn == null || !buttonIn.isClickable() || !buttonIn.isEnabled()))
return;

if (null != onClickedButtonListener && isToggledByTouch)
onClickedButtonListener.onClickedButton(buttonIn, position);
if (null != onPositionChangedListener) {
onPositionChangedListener.onPositionChanged(buttonIn, position);
}

moveSelector(position, hasAnimation, enableDeselection);
animateTextAndImage(position, hasAnimation, buttonIn, buttonOut, enableDeselection);

Expand All @@ -497,6 +491,13 @@ private void makeSelection(int position, boolean isToggledByTouch, boolean hasAn
else
buttonIn.setChecked(true);
}

if (null != onClickedButtonListener && isToggledByTouch)
onClickedButtonListener.onClickedButton(buttonIn, position);
if (null != onPositionChangedListener && (lastPosition != position || enableDeselection)) {
onPositionChangedListener.onPositionChanged(buttonIn, position);
}

this.lastPosition = position;
}

Expand Down Expand Up @@ -530,7 +531,7 @@ private void animateEnter(RadioRealButton button, boolean hasAnimation) {
if (hasAnimateTexts)
button.bounceText(animateTextsScale, animateTextsDuration, interpolatorText, hasAnimation);
if (hasAnimateImages)
button.bounceDrawable( animateImagesScale, animateImagesDuration, interpolatorImage, hasAnimation);
button.bounceDrawable(animateImagesScale, animateImagesDuration, interpolatorImage, hasAnimation);
}
/* DRAWABLE AND TEXT ANIMATION ENDS */

Expand Down
24 changes: 16 additions & 8 deletions sample/src/main/java/co/ceryle/radiorealbutton/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,27 +27,27 @@
public class MainActivity extends AppCompatActivity {

private Button button;
private RadioRealButtonGroup rrbg;
private RadioRealButtonGroup group1;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

button = (Button) findViewById(R.id.button);
rrbg = (RadioRealButtonGroup) findViewById(R.id.radioRealButtonGroup_1);
group1 = (RadioRealButtonGroup) findViewById(R.id.radioRealButtonGroup_1);

button.setTransformationMethod(null);
updateText(rrbg.getPosition());
updateText(group1.getPosition());

rrbg.setOnClickedButtonListener(new RadioRealButtonGroup.OnClickedButtonListener() {
group1.setOnClickedButtonListener(new RadioRealButtonGroup.OnClickedButtonListener() {
@Override
public void onClickedButton(RadioRealButton button, int position) {
updateText(position);
}
});

rrbg.setOnLongClickedButtonListener(new RadioRealButtonGroup.OnLongClickedButtonListener() {
group1.setOnLongClickedButtonListener(new RadioRealButtonGroup.OnLongClickedButtonListener() {
@Override
public boolean onLongClickedButton(RadioRealButton button, int position) {
Toast.makeText(MainActivity.this, "Long Clicked! Position: " + position, Toast.LENGTH_SHORT).show();
Expand All @@ -58,13 +58,21 @@ public boolean onLongClickedButton(RadioRealButton button, int position) {
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position = rrbg.getPosition();
position = ++position % rrbg.getNumberOfButtons();
rrbg.setPosition(position);
int position = group1.getPosition();
position = ++position % group1.getNumberOfButtons();
group1.setPosition(position);

updateText(position);
}
});

RadioRealButtonGroup group2 = (RadioRealButtonGroup) findViewById(R.id.radioRealButtonGroup_2);
group2.setOnPositionChangedListener(new RadioRealButtonGroup.OnPositionChangedListener() {
@Override
public void onPositionChanged(RadioRealButton button, int position) {
Toast.makeText(MainActivity.this, "Id: " + position, Toast.LENGTH_SHORT).show();
}
});
}

private void updateText(int position) {
Expand Down
3 changes: 2 additions & 1 deletion sample/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -239,11 +239,11 @@
android:layout_margin="4dp"
android:layout_weight="1"
android:elevation="2dp"
app:rrbg_backgroundColor="@android:color/transparent"
app:rrbg_borderColor="@color/teal_300"
app:rrbg_borderSize="1dp"
app:rrbg_checkedPosition="0"
app:rrbg_radius="28dp"
app:rrbg_backgroundColor="@android:color/transparent"
app:rrbg_selectorColor="@color/teal_300"
app:rrbg_selectorFullSize="true"
app:rrbg_selectorRadius="28dp">
Expand Down Expand Up @@ -303,6 +303,7 @@


<co.ceryle.radiorealbutton.library.RadioRealButtonGroup
android:id="@+id/radioRealButtonGroup_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="4dp"
Expand Down

0 comments on commit e28ce96

Please sign in to comment.