mirror of
git://xwords.git.sourceforge.net/gitroot/xwords/xwords
synced 2025-01-07 05:24:46 +01:00
make tap on whole line toggle expander
This commit is contained in:
parent
574e50f235
commit
2f849efe2a
5 changed files with 64 additions and 17 deletions
|
@ -352,7 +352,7 @@ public class DictsDelegate extends ListDelegateBase
|
||||||
|
|
||||||
protected DictsDelegate( Delegator delegator, Bundle savedInstanceState )
|
protected DictsDelegate( Delegator delegator, Bundle savedInstanceState )
|
||||||
{
|
{
|
||||||
super( delegator, savedInstanceState, R.layout.dict_browse,
|
super( delegator, savedInstanceState, R.layout.dicts_browse,
|
||||||
R.menu.dicts_menu );
|
R.menu.dicts_menu );
|
||||||
m_activity = delegator.getActivity();
|
m_activity = delegator.getActivity();
|
||||||
}
|
}
|
||||||
|
@ -374,6 +374,7 @@ public class DictsDelegate extends ListDelegateBase
|
||||||
|
|
||||||
OnClickListener newSelLstnr =
|
OnClickListener newSelLstnr =
|
||||||
new OnClickListener() {
|
new OnClickListener() {
|
||||||
|
@Override
|
||||||
public void onClick( DialogInterface dlgi, int item ) {
|
public void onClick( DialogInterface dlgi, int item ) {
|
||||||
moveTo[0] = item;
|
moveTo[0] = item;
|
||||||
AlertDialog dlg = (AlertDialog)dlgi;
|
AlertDialog dlg = (AlertDialog)dlgi;
|
||||||
|
@ -390,6 +391,7 @@ public class DictsDelegate extends ListDelegateBase
|
||||||
};
|
};
|
||||||
|
|
||||||
lstnr = new OnClickListener() {
|
lstnr = new OnClickListener() {
|
||||||
|
@Override
|
||||||
public void onClick( DialogInterface dlg, int item ) {
|
public void onClick( DialogInterface dlg, int item ) {
|
||||||
DictLoc toLoc = itemToRealLoc( moveTo[0] );
|
DictLoc toLoc = itemToRealLoc( moveTo[0] );
|
||||||
moveDicts( selNames, toLoc );
|
moveDicts( selNames, toLoc );
|
||||||
|
@ -409,6 +411,7 @@ public class DictsDelegate extends ListDelegateBase
|
||||||
case SET_DEFAULT: {
|
case SET_DEFAULT: {
|
||||||
final String name = m_selDicts.keySet().iterator().next();
|
final String name = m_selDicts.keySet().iterator().next();
|
||||||
lstnr = new OnClickListener() {
|
lstnr = new OnClickListener() {
|
||||||
|
@Override
|
||||||
public void onClick( DialogInterface dlg, int item ) {
|
public void onClick( DialogInterface dlg, int item ) {
|
||||||
if ( DialogInterface.BUTTON_NEGATIVE == item
|
if ( DialogInterface.BUTTON_NEGATIVE == item
|
||||||
|| DialogInterface.BUTTON_POSITIVE == item ) {
|
|| DialogInterface.BUTTON_POSITIVE == item ) {
|
||||||
|
@ -437,6 +440,7 @@ public class DictsDelegate extends ListDelegateBase
|
||||||
|
|
||||||
case DICT_OR_DECLINE: {
|
case DICT_OR_DECLINE: {
|
||||||
lstnr = new OnClickListener() {
|
lstnr = new OnClickListener() {
|
||||||
|
@Override
|
||||||
public void onClick( DialogInterface dlg, int item ) {
|
public void onClick( DialogInterface dlg, int item ) {
|
||||||
Intent intent = getIntent();
|
Intent intent = getIntent();
|
||||||
int lang = intent.getIntExtra( MultiService.LANG, -1 );
|
int lang = intent.getIntExtra( MultiService.LANG, -1 );
|
||||||
|
@ -448,6 +452,7 @@ public class DictsDelegate extends ListDelegateBase
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
lstnr2 = new OnClickListener() {
|
lstnr2 = new OnClickListener() {
|
||||||
|
@Override
|
||||||
public void onClick( DialogInterface dlg, int item ) {
|
public void onClick( DialogInterface dlg, int item ) {
|
||||||
curThis().finish();
|
curThis().finish();
|
||||||
}
|
}
|
||||||
|
@ -563,6 +568,7 @@ public class DictsDelegate extends ListDelegateBase
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void onClick( View view )
|
public void onClick( View view )
|
||||||
{
|
{
|
||||||
if ( view == m_checkbox ) {
|
if ( view == m_checkbox ) {
|
||||||
|
@ -773,6 +779,7 @@ public class DictsDelegate extends ListDelegateBase
|
||||||
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
||||||
// GroupStateListener interface
|
// GroupStateListener interface
|
||||||
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
||||||
|
@Override
|
||||||
public void onGroupExpandedChanged( Object groupObj, boolean expanded )
|
public void onGroupExpandedChanged( Object groupObj, boolean expanded )
|
||||||
{
|
{
|
||||||
ListGroup lg = (ListGroup)groupObj;
|
ListGroup lg = (ListGroup)groupObj;
|
||||||
|
@ -790,6 +797,7 @@ public class DictsDelegate extends ListDelegateBase
|
||||||
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
||||||
// OnItemLongClickListener interface
|
// OnItemLongClickListener interface
|
||||||
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
||||||
|
@Override
|
||||||
public boolean onItemLongClick( AdapterView<?> parent, View view,
|
public boolean onItemLongClick( AdapterView<?> parent, View view,
|
||||||
int position, long id ) {
|
int position, long id ) {
|
||||||
boolean success = view instanceof SelectableItem.LongClickHandler;
|
boolean success = view instanceof SelectableItem.LongClickHandler;
|
||||||
|
@ -1132,6 +1140,7 @@ public class DictsDelegate extends ListDelegateBase
|
||||||
(LinearLayout)inflate( R.layout.remote_dict_details );
|
(LinearLayout)inflate( R.layout.remote_dict_details );
|
||||||
Button button = (Button)view.findViewById( R.id.download_button );
|
Button button = (Button)view.findViewById( R.id.download_button );
|
||||||
button.setOnClickListener( new View.OnClickListener() {
|
button.setOnClickListener( new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
public void onClick( View view ) {
|
public void onClick( View view ) {
|
||||||
DwnldDelegate.
|
DwnldDelegate.
|
||||||
downloadDictInBack( m_activity, info.m_lang,
|
downloadDictInBack( m_activity, info.m_lang,
|
||||||
|
|
|
@ -25,8 +25,13 @@ import android.util.AttributeSet;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.ImageButton;
|
import android.widget.ImageButton;
|
||||||
|
|
||||||
public class ExpandImageButton extends ImageButton {
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
public class ExpandImageButton extends ImageButton
|
||||||
|
implements View.OnClickListener {
|
||||||
private boolean m_expanded;
|
private boolean m_expanded;
|
||||||
|
private Set<ExpandChangeListener> mListeners = new HashSet<>();
|
||||||
|
|
||||||
public interface ExpandChangeListener {
|
public interface ExpandChangeListener {
|
||||||
public void expandedChanged( boolean nowExpanded );
|
public void expandedChanged( boolean nowExpanded );
|
||||||
|
@ -37,27 +42,51 @@ public class ExpandImageButton extends ImageButton {
|
||||||
super( context, as );
|
super( context, as );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onFinishInflate()
|
||||||
|
{
|
||||||
|
super.onFinishInflate();
|
||||||
|
setOnClickListener( this );
|
||||||
|
|
||||||
|
setImageResource();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClick( View view )
|
||||||
|
{
|
||||||
|
toggle();
|
||||||
|
}
|
||||||
|
|
||||||
public ExpandImageButton setExpanded( boolean expanded )
|
public ExpandImageButton setExpanded( boolean expanded )
|
||||||
{
|
{
|
||||||
m_expanded = expanded;
|
boolean changed = m_expanded != expanded;
|
||||||
|
if ( changed ) {
|
||||||
|
m_expanded = expanded;
|
||||||
|
|
||||||
setImageResource( expanded ?
|
setImageResource();
|
||||||
R.drawable.expander_ic_maximized :
|
|
||||||
R.drawable.expander_ic_minimized);
|
for ( ExpandChangeListener proc : mListeners ) {
|
||||||
|
proc.expandedChanged( m_expanded );
|
||||||
|
}
|
||||||
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExpandImageButton setOnExpandChangedListener( final ExpandChangeListener listener )
|
public ExpandImageButton setOnExpandChangedListener( final ExpandChangeListener listener )
|
||||||
{
|
{
|
||||||
setOnClickListener( new View.OnClickListener() {
|
mListeners.add( listener );
|
||||||
@Override
|
|
||||||
public void onClick( View view )
|
|
||||||
{
|
|
||||||
m_expanded = ! m_expanded;
|
|
||||||
setExpanded( m_expanded );
|
|
||||||
listener.expandedChanged( m_expanded );
|
|
||||||
}
|
|
||||||
} );
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void toggle()
|
||||||
|
{
|
||||||
|
setExpanded( ! m_expanded );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setImageResource()
|
||||||
|
{
|
||||||
|
setImageResource( m_expanded ?
|
||||||
|
R.drawable.expander_ic_maximized :
|
||||||
|
R.drawable.expander_ic_minimized);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -214,7 +214,7 @@ public class KnownPlayersDelegate extends DelegateBase {
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
|
|
||||||
ExpandImageButton eib = (ExpandImageButton)item.findViewById( R.id.expander );
|
final ExpandImageButton eib = (ExpandImageButton)item.findViewById( R.id.expander );
|
||||||
eib.setOnExpandChangedListener( new ExpandChangeListener() {
|
eib.setOnExpandChangedListener( new ExpandChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public void expandedChanged( boolean nowExpanded )
|
public void expandedChanged( boolean nowExpanded )
|
||||||
|
@ -224,6 +224,13 @@ public class KnownPlayersDelegate extends DelegateBase {
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
|
|
||||||
|
item.findViewById( R.id.player_line )
|
||||||
|
.setOnClickListener( new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick( View view ) {
|
||||||
|
eib.toggle();
|
||||||
|
}
|
||||||
|
} );
|
||||||
}
|
}
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,8 @@
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
>
|
>
|
||||||
|
|
||||||
<LinearLayout android:orientation="horizontal"
|
<LinearLayout android:id="@+id/player_line"
|
||||||
|
android:orientation="horizontal"
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:background="#FF7F7F7F"
|
android:background="#FF7F7F7F"
|
||||||
|
@ -43,6 +44,7 @@
|
||||||
<LinearLayout android:orientation="horizontal"
|
<LinearLayout android:orientation="horizontal"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center"
|
||||||
>
|
>
|
||||||
<Button android:id="@+id/player_edit_name"
|
<Button android:id="@+id/player_edit_name"
|
||||||
android:text="@string/player_edit_name"
|
android:text="@string/player_edit_name"
|
||||||
|
|
Loading…
Reference in a new issue