Skip to content

Commit

Permalink
[android] checkboxs work. finished breaking dependency on SearchResul…
Browse files Browse the repository at this point in the history
…t for ConfirmListDialog.
  • Loading branch information
gubatron committed Mar 23, 2016
1 parent a7b0909 commit 33356fc
Show file tree
Hide file tree
Showing 6 changed files with 49 additions and 43 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -220,14 +220,12 @@ private void precheckCheckboxes(Bundle bundle) {
final boolean[] checkedOffsets = bundle.getBooleanArray("checkedOffsets");
for (int i=0; i < checkedOffsets.length; i++) {
adapter.setChecked(i, checkedOffsets[i]);
LOGGER.info(" adapter.setChecked");
}
}
}

@Override
public void onSaveInstanceState(Bundle outState) {
LOGGER.info("onSaveInstanceState()");
if (adapter != null) {
final Set checked = adapter.getChecked();
if (outState != null && checked != null && !checked.isEmpty()) {
Expand Down Expand Up @@ -293,7 +291,6 @@ public void updateSelectedCount() {
return;
}

LOGGER.info("AbstractConfirmListDialog.updateSelectedCount()");
if (adapter == null) {
return;
}
Expand Down Expand Up @@ -327,8 +324,7 @@ private void autoToggleSelectAllCheckbox(int selected) {

// AbstractListAdapter.OnItemCheckedListener
@Override
public void onItemChecked(View v, boolean checked) {
LOGGER.info("AbstractConfirmListDialog.onItemChecked(checked = "+checked+")");
public void onItemChecked(CompoundButton v, boolean checked) {
updateSelectedCount();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
package com.frostwire.android.gui.dialogs;

import android.content.Context;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.view.View;
import android.view.ViewGroup;
Expand Down Expand Up @@ -83,6 +84,7 @@ public abstract class ConfirmListDialogDefaultAdapter<T> extends AbstractListAda
public ConfirmListDialogDefaultAdapter(Context context, List<T> list, SelectionMode selectionMode) {
super(context, selectionModeToLayoutId.get(selectionMode).intValue(), list);
this.selectionMode = selectionMode;
setCheckboxesVisibility(selectionMode != SelectionMode.NO_SELECTION);
}

@Override
Expand Down Expand Up @@ -118,21 +120,31 @@ public View getView(int position, View view, ViewGroup parent) {

@Override
protected void populateView(View view, Object data) {
if (data instanceof SearchResult) {
SearchResult sr = (SearchResult) data;
TextView trackTitle = (TextView) findView(view, layoutMapping.get(selectionMode).get(ITEM_TITLE));
trackTitle.setText(sr.getDisplayName());

TextView trackSizeInHuman = (TextView) findView(view, layoutMapping.get(selectionMode).get(ITEM_SIZE));
if (sr instanceof FileSearchResult){
trackSizeInHuman.setText(UIUtils.getBytesInHuman(((FileSearchResult) sr).getSize()));
} else {
trackSizeInHuman.setVisibility(View.GONE);
}
T item = (T) data;

TextView trackTitle = (TextView) findView(view, layoutMapping.get(selectionMode).get(ITEM_TITLE));
trackTitle.setText(getItemTitle(item));

final long itemSize = getItemSize(item);
TextView trackSizeInHuman = (TextView) findView(view, layoutMapping.get(selectionMode).get(ITEM_SIZE));
if (itemSize != -1) {
trackSizeInHuman.setText(UIUtils.getBytesInHuman(itemSize));
trackSizeInHuman.setVisibility(View.VISIBLE);
} else {
trackSizeInHuman.setVisibility(View.GONE);
}

ImageView imageView = (ImageView) findView(view, layoutMapping.get(selectionMode).get(ITEM_ART));
final CharSequence itemThumbnailUrl = getItemThumbnailUrl(item);
if (itemThumbnailUrl != null && itemThumbnailUrl.length() != 0) {
ImageLoader.getInstance(getContext()).load(Uri.parse((String) itemThumbnailUrl), imageView);
}

if (!StringUtils.isNullOrEmpty(sr.getThumbnailUrl())) {
ImageView imageView = (ImageView) findView(view, layoutMapping.get(selectionMode).get(ITEM_ART));
ImageLoader.getInstance(getContext()).load(Uri.parse(sr.getThumbnailUrl()), imageView);
final int itemThumbnailResourceId = getItemThumbnailResourceId(item);
if (itemThumbnailResourceId != -1) {
Drawable thumbnail = getContext().getResources().getDrawable(itemThumbnailResourceId);
if (thumbnail != null) {
imageView.setImageDrawable(thumbnail);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -393,7 +393,7 @@ private void updateFiles(Object[] data) {
adapter = new FileListAdapter(getActivity(), items, fileType) {

@Override
protected void onItemChecked(View v, boolean isChecked) {
protected void onItemChecked(CompoundButton v, boolean isChecked) {
if (!isChecked) {
filesBar.clearCheckAll();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -233,10 +233,5 @@ protected OnStartDownloadsClickListener createOnYesListener(final AbstractConfir
listener.setDialog(this);
return listener;
}

@Override
public void onItemChecked(CompoundButton v, boolean checked) {

}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -360,7 +360,6 @@ protected boolean onItemKeyMaster(View v) {

protected void onItemChecked(CompoundButton v, boolean isChecked) {
if (onItemCheckedListener != null) {
LOG.info("AbstractListAdapter.onItemChecked("+isChecked+")");
onItemCheckedListener.onItemChecked(v, isChecked);
}
}
Expand Down Expand Up @@ -423,10 +422,13 @@ protected void initCheckBox(View view, ItemTag itemTag) {
CheckBox checkbox = findView(view, R.id.view_selectable_list_item_checkbox);
if (checkbox != null) {
checkbox.setVisibility((checkboxesVisibility) ? View.VISIBLE : View.GONE);
checkbox.setOnCheckedChangeListener(null);
checkbox.setChecked(checkboxesVisibility && checked.contains(itemTag.item));
checkbox.setTag(itemTag);
checkbox.setOnCheckedChangeListener(checkboxOnCheckedChangeListener);
if (checkbox.getVisibility() == View.VISIBLE) {
printCheckedItems();
checkbox.setOnCheckedChangeListener(null);
checkbox.setChecked(checked.contains(itemTag.item));
checkbox.setTag(itemTag);
checkbox.setOnCheckedChangeListener(checkboxOnCheckedChangeListener);
}
}
}

Expand Down Expand Up @@ -514,14 +516,14 @@ public boolean onKey(View v, int keyCode, KeyEvent event) {
private final class CheckboxOnCheckedChangeListener implements OnCheckedChangeListener {
@SuppressWarnings("unchecked")
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
LOG.info("AbstractListAdapter.CheckboxOnCheckedChangeListener.onCheckedChanged(isChecked = "+isChecked+")");
T item = (T) buttonView.getTag();
printCheckedItems();
Object tag = buttonView.getTag();
T item = (T) tag;
if (tag.getClass().equals(ItemTag.class)) {
item = ((ItemTag) tag).item;
}
if (buttonView.isChecked() && !checked.contains(item)) {
LOG.info("Didn't have item: ["+item.toString()+"]");
checked.add(item);
} else {
LOG.info("Removing item: ["+item.toString()+"]");
checked.remove(item);
}
onItemChecked(buttonView, isChecked);
Expand All @@ -535,11 +537,14 @@ private void printCheckedItems() {
}

LOG.info(checked.size() + " checked items:");
int i=0;
for (T c : checked) {
LOG.info(i + ". " + c.toString());
if (c.getClass().equals(ItemTag.class)) {
ItemTag itemTag = (ItemTag) c;
LOG.info(itemTag.position + " -> [" + itemTag.item.toString() + "]");
} else {
LOG.info("[checked] -> [" + c.toString() + "]");
}
}
LOG.info("================================");
}

private final class AbstractListAdapterFilter extends Filter {
Expand Down Expand Up @@ -584,15 +589,13 @@ protected void publishResults(CharSequence constraint, FilterResults results) {
adapter.visualList = (List<T>) results.values;
notifyDataSetInvalidated();
}

}

private final class RadioButtonOnCheckedChangeListener implements OnCheckedChangeListener {
private WeakReference<RadioButton> lastRadioButtonChecked = null;

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
LOG.info("AbstractListAdapter.RadioButtonOnCheckedChangeListener.onCheckedChanged()");
if (buttonView instanceof RadioButton && isChecked){
RadioButton radioButton = (RadioButton) buttonView;
ItemTag tag = (ItemTag) radioButton.getTag();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@

package com.frostwire.search.soundcloud;

import com.frostwire.logging.Logger;
import com.frostwire.search.AbstractFileSearchResult;
import com.frostwire.search.HttpSearchResult;
import com.frostwire.search.SearchResult;
import com.frostwire.search.StreamableSearchResult;

import java.text.ParseException;
Expand All @@ -32,7 +32,7 @@
* @author aldenml
*/
public final class SoundcloudSearchResult extends AbstractFileSearchResult implements HttpSearchResult, StreamableSearchResult {

private static Logger LOGGER = Logger.getLogger(SoundcloudSearchResult.class);
private static final String DATE_FORMAT = "yyyy/mm/dd HH:mm:ss Z";

private final String displayName;
Expand Down Expand Up @@ -172,7 +172,7 @@ private String buildDownloadUrl(SoundcloudItem item, String clientId, String app

@Override
public String toString() {
return "SoundcloudSearchResult.downloadUrl: " + getDownloadUrl();
return "SoundcloudSearchResult.getDisplayName(): " + getDisplayName();
}

@Override
Expand Down

0 comments on commit 33356fc

Please sign in to comment.