[Android] Use interface for Audio click handler
Geoffrey Métais
git at videolan.org
Thu Sep 3 17:45:44 CEST 2015
vlc-ports/android | branch: data-binding | Geoffrey Métais <geoffrey.metais at gmail.com> | Thu Sep 3 17:36:19 2015 +0200| [819b732425320824beb4f114eaf0deee8f4362b4] | committer: Geoffrey Métais
Use interface for Audio click handler
> http://git.videolan.org/gitweb.cgi/vlc-ports/android.git/?a=commit;h=819b732425320824beb4f114eaf0deee8f4362b4
---
vlc-android/res/layout/audio_browser_item.xml | 4 +--
.../vlc/gui/audio/AudioBrowserListAdapter.java | 15 +++++-----
.../vlc/interfaces/IAudioClickHandler.java | 30 ++++++++++++++++++++
3 files changed, 39 insertions(+), 10 deletions(-)
diff --git a/vlc-android/res/layout/audio_browser_item.xml b/vlc-android/res/layout/audio_browser_item.xml
index 0608924..79d3f65 100644
--- a/vlc-android/res/layout/audio_browser_item.xml
+++ b/vlc-android/res/layout/audio_browser_item.xml
@@ -13,7 +13,7 @@
type="boolean"/>
<variable
name="handler"
- type="org.videolan.vlc.gui.audio.AudioBrowserListAdapter.ClickHandler"/>
+ type="org.videolan.vlc.interfaces.IAudioClickHandler"/>
<variable
name="clickable"
type="boolean"/>
@@ -81,7 +81,7 @@
android:background="@drawable/ic_more"
android:contentDescription="@string/more_actions"
android:visibility="@{clickable ? View.VISIBLE : View.GONE}"
- android:onClick="@{handler.onClick}"
+ android:onClick="@{handler.onMoreClick}"
android:clickable="@{clickable}" />
</RelativeLayout>
diff --git a/vlc-android/src/org/videolan/vlc/gui/audio/AudioBrowserListAdapter.java b/vlc-android/src/org/videolan/vlc/gui/audio/AudioBrowserListAdapter.java
index 17f6216..878b703 100644
--- a/vlc-android/src/org/videolan/vlc/gui/audio/AudioBrowserListAdapter.java
+++ b/vlc-android/src/org/videolan/vlc/gui/audio/AudioBrowserListAdapter.java
@@ -42,6 +42,7 @@ import android.widget.TextView;
import org.videolan.vlc.BR;
import org.videolan.vlc.MediaWrapper;
import org.videolan.vlc.R;
+import org.videolan.vlc.interfaces.IAudioClickHandler;
import org.videolan.vlc.util.BitmapCache;
import org.videolan.vlc.util.Util;
@@ -53,7 +54,7 @@ import java.util.List;
import java.util.Locale;
import java.util.Map;
-public class AudioBrowserListAdapter extends BaseAdapter implements SectionIndexer {
+public class AudioBrowserListAdapter extends BaseAdapter implements SectionIndexer, IAudioClickHandler {
public final static String TAG = "VLC/AudioBrowserListAdapter";
public final static int TYPE_ARTISTS = 0;
@@ -347,7 +348,7 @@ public class AudioBrowserListAdapter extends BaseAdapter implements SectionIndex
holder.binding.setVariable(BR.footer, !isMediaItemAboveASeparator(position));
holder.binding.setVariable(BR.clickable, mContextPopupMenuListener != null);
- holder.binding.setVariable(BR.handler, mClickHandler);
+ holder.binding.setVariable(BR.handler, this);
holder.binding.executePendingBindings();
return v;
@@ -561,11 +562,9 @@ public class AudioBrowserListAdapter extends BaseAdapter implements SectionIndex
}
};
- public ClickHandler mClickHandler = new ClickHandler();
- public class ClickHandler {
- public void onClick(View v){
- if (mContextPopupMenuListener != null)
- mContextPopupMenuListener.onPopupMenu(v, ((ViewHolder) ((LinearLayout)v.getParent().getParent()).getTag()).position);
- }
+ @Override
+ public void onMoreClick(View v) {
+ if (mContextPopupMenuListener != null)
+ mContextPopupMenuListener.onPopupMenu(v, ((ViewHolder) ((LinearLayout)v.getParent().getParent()).getTag()).position);
}
}
diff --git a/vlc-android/src/org/videolan/vlc/interfaces/IAudioClickHandler.java b/vlc-android/src/org/videolan/vlc/interfaces/IAudioClickHandler.java
new file mode 100644
index 0000000..742ece1
--- /dev/null
+++ b/vlc-android/src/org/videolan/vlc/interfaces/IAudioClickHandler.java
@@ -0,0 +1,30 @@
+/*
+ * *************************************************************************
+ * IAudioClickHandler.java
+ * **************************************************************************
+ * Copyright © 2015 VLC authors and VideoLAN
+ * Author: Geoffrey Métais
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ * ***************************************************************************
+ */
+
+package org.videolan.vlc.interfaces;
+
+import android.view.View;
+
+public interface IAudioClickHandler {
+ void onMoreClick(View v);
+}
More information about the Android
mailing list