コード例 #1
0
 @Override
 public int getItemViewType(int position) {
   if (isHaveMore && position == getCount() - 1) {
     return TYPE_FOOTER;
   }
   if (mAdapter != null) {
     return mAdapter.getItemViewType(position);
   }
   return TYPE_NORMAL;
 }
コード例 #2
0
  private void setupAdapterView(FoldableItemLayout layout, int position) {
    // Binding layout to new data
    int type = adapter.getItemViewType(position);

    View recycledView = null;
    if (type != Adapter.IGNORE_ITEM_VIEW_TYPE) {
      Queue<View> cache = recycledViews.get(type);
      recycledView = cache == null ? null : cache.poll();
    }

    View view = adapter.getView(position, recycledView, layout.getBaseLayout());

    if (type != Adapter.IGNORE_ITEM_VIEW_TYPE) {
      viewsTypesMap.put(view, type);
    }

    layout.getBaseLayout().addView(view, PARAMS);
  }
コード例 #3
0
 @Override
 public int getItemViewType(final int position) {
   return mDecoratedBaseAdapter.getItemViewType(position);
 }
コード例 #4
0
 @Override
 public int getItemViewType(int position) {
   return mAdapter.getItemViewType(position);
 }
コード例 #5
0
  @Override
  public void onItemClick(AdapterView<?> listView, View view, int position, long id) {
    if (position == 0) return;
    // startActivity(new Intent(getActivity(), VisFragment_akt.class).putExtras(getArguments())  //
    // Kanalkode + slug
    //    .putExtra(VisFragment_akt.KLASSE,
    // Programserie_frag.class.getName()).putExtra(DRJson.SeriesSlug.name(),
    // udsendelse.programserieSlug));

    int type = adapter.getItemViewType(position);

    if (type == PLAYLISTEELEM || type == PLAYLISTEELEM_NU) {
      if (!udsendelse.streamsKlar() || !udsendelse.kanHøres) return;
      // Det må være et playlisteelement
      final Playlisteelement pl = (Playlisteelement) liste.get(position);
      if (udsendelse.equals(afspiller.getLydkilde())
          && afspiller.getAfspillerstatus() == Status.SPILLER) {
        afspiller.seekTo(pl.offsetMs);
      } else {
        DRData.instans.senestLyttede.registrérLytning(udsendelse);
        DRData.instans.senestLyttede.sætStartposition(udsendelse, pl.offsetMs);
        afspiller.setLydkilde(udsendelse);
        afspiller.startAfspilning();
      }
      playlisteElemDerSpillerNu = pl;
      playlisteElemDerSpillerNuIndex = udsendelse.playliste.indexOf(pl);
      adapter.notifyDataSetChanged();
      Log.registrérTestet("Valg af playlisteelement", "ja");
    } else if (type == INDSLAGLISTEELEM) {
      if (!udsendelse.streamsKlar()) return;
      final Indslaglisteelement pl = (Indslaglisteelement) liste.get(position);
      if (udsendelse.equals(afspiller.getLydkilde())
          && afspiller.getAfspillerstatus() == Status.SPILLER) {
        afspiller.seekTo(pl.offsetMs);
      } else {
        afspiller.setLydkilde(udsendelse);
        afspiller.startAfspilning();
        afspiller.observatører.add(
            new Runnable() {
              @Override
              public void run() {
                if (afspiller.getLydkilde() == udsendelse) {
                  if (afspiller.getAfspillerstatus() != Status.SPILLER) return;
                  afspiller.seekTo(pl.offsetMs);
                }
                afspiller.observatører.remove(this); // afregistrér
              }
            });
      }
      Log.registrérTestet("Valg af indslag", "ja");
    } else if (type == ALLE_UDSENDELSER) {

      Fragment f = new Programserie_frag();
      f.setArguments(
          new Intent()
              .putExtra(P_kode, kanal.kode)
              .putExtra(DRJson.Slug.name(), udsendelse.slug)
              .putExtra(DRJson.SeriesSlug.name(), udsendelse.programserieSlug)
              .getExtras());
      getActivity()
          .getSupportFragmentManager()
          .beginTransaction()
          .replace(R.id.indhold_frag, f)
          .addToBackStack(null)
          .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
          .commit();
      Sidevisning.vist(Programserie_frag.class, udsendelse.programserieSlug);
    }
  }
コード例 #6
0
        @Override
        public View getView(int position, View v, ViewGroup parent) {
          if (parent != listView) { // Set i abetest 18 nov 2014
            Log.rapporterFejl(new IllegalStateException(listView + " " + parent));
          }
          Viewholder vh;
          AQuery aq;
          int type = getItemViewType(position);
          if (type == TOP) {
            if (topView == null) {
              topView = opretTopView();
            }
            opdaterTop();
            return topView;
          }

          if (v == null) {
            v = getLayoutInflater(null).inflate(layoutFraType[type], parent, false);
            vh = new Viewholder();
            vh.itemViewType = type;
            aq = vh.aq = new AQuery(v);
            v.setTag(vh);
            vh.startid = aq.id(R.id.starttid).typeface(App.skrift_gibson).getTextView();
            if (type == OVERSKRIFT_PLAYLISTE_INFO || type == OVERSKRIFT_INDSLAG_INFO) {
              aq.id(R.id.playliste).clicked(Udsendelse_frag.this).typeface(App.skrift_gibson);
              aq.id(R.id.info).clicked(Udsendelse_frag.this).typeface(App.skrift_gibson);
            } else if (type == INFOTEKST) {
              aq.id(R.id.titel).typeface(App.skrift_georgia);
              String forkortInfoStr = udsendelse.beskrivelse;
              if (udsendelse.beskrivelse.length() > 110) {
                forkortInfoStr = forkortInfoStr.substring(0, 110);
                String vis_mere = getString(R.string.___vis_mere_);
                forkortInfoStr += vis_mere;
                SpannableString spannable = new SpannableString(forkortInfoStr);
                spannable.setSpan(
                    new ForegroundColorSpan(App.color.blå),
                    forkortInfoStr.length() - vis_mere.length(),
                    forkortInfoStr.length(),
                    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
                aq.clicked(Udsendelse_frag.this).text(spannable /*forkortInfoStr*/);
              } else {
                aq.text(forkortInfoStr);
                Linkify.addLinks(aq.getTextView(), Linkify.WEB_URLS);
              }
              aq.getView().setContentDescription(udsendelse.beskrivelse);
            } else if (type == PLAYLISTEELEM_NU || type == PLAYLISTEELEM) {
              vh.titel = aq.id(R.id.titel_og_kunstner).typeface(App.skrift_gibson).getTextView();
            } else if (type == INDSLAGLISTEELEM) {
              vh.titel = aq.id(R.id.titel).typeface(App.skrift_gibson_fed).getTextView();
              aq.id(R.id.beskrivelse).typeface(App.skrift_gibson).getTextView();
            } else if (type == VIS_HELE_PLAYLISTEN_KNAP) {
              aq.id(R.id.vis_hele_playlisten)
                  .clicked(Udsendelse_frag.this)
                  .typeface(App.skrift_gibson);
            } else if (type == ALLE_UDSENDELSER) {
              aq.id(R.id.titel).typeface(App.skrift_gibson_fed);
            } else if (type == BERIGTIGELSE) {
              aq.id(R.id.titel)
                  .visible()
                  .typeface(App.skrift_gibson)
                  .getTextView()
                  .setText(
                      lavFedSkriftTil(
                          udsendelse.berigtigelseTitel + "\n" + udsendelse.berigtigelseTekst,
                          udsendelse.berigtigelseTitel.length()));
              //          .setText(lavFedSkriftTil("BEKLAGER\nDenne udsendelse er desværre ikke
              // tilgængelig. For yderligere oplysninger se dr.dk/programetik", 8));
            }
          } else {
            vh = (Viewholder) v.getTag();
            aq = vh.aq;
            if (!App.PRODUKTION && vh.itemViewType != type)
              throw new IllegalStateException(
                  "Liste ej konsistent, der er nok sket ændringer i den fra f.eks. getView()");
          }

          // Opdatér viewholderens data
          if (type == PLAYLISTEELEM_NU || type == PLAYLISTEELEM) {
            Playlisteelement ple = (Playlisteelement) liste.get(position);
            vh.titel.setText(lavFedSkriftTil(ple.titel + " | " + ple.kunstner, ple.titel.length()));
            vh.titel.setContentDescription(ple.titel + " af " + ple.kunstner);
            vh.startid.setText(ple.startTidKl);
            if (type == PLAYLISTEELEM_NU) {
              ImageView im = aq.id(R.id.senest_spillet_kunstnerbillede).getImageView();
              aq.image(skalérDiscoBilledeUrl(ple.billedeUrl, im.getWidth(), im.getHeight()));
            } else {
              boolean topseparator = (adapter.getItemViewType(position - 1) == PLAYLISTEELEM_NU);
              vh.aq.id(R.id.stiplet_linje).visibility(topseparator ? View.INVISIBLE : View.VISIBLE);
            }
            aq.id(R.id.hør)
                .visibility(udsendelse.kanHøres && ple.offsetMs >= 0 ? View.VISIBLE : View.GONE);
          } else if (type == INDSLAGLISTEELEM) {
            Indslaglisteelement ple = (Indslaglisteelement) liste.get(position);
            vh.titel.setText(ple.titel);
            aq.id(R.id.beskrivelse).text(ple.beskrivelse);
            // v.setBackgroundResource(R.drawable.elem_hvid_bg);
            aq.id(R.id.hør)
                .visibility(udsendelse.kanHøres && ple.offsetMs >= 0 ? View.VISIBLE : View.GONE);
          } else if (type == OVERSKRIFT_PLAYLISTE_INFO || type == OVERSKRIFT_INDSLAG_INFO) {
            aq.id(R.id.playliste)
                .background(visInfo ? R.drawable.knap_graa40_bg : R.drawable.knap_sort_bg);
            aq.id(R.id.info)
                .background(visInfo ? R.drawable.knap_sort_bg : R.drawable.knap_graa40_bg);
          }
          udvikling_checkDrSkrifter(v, this + " position " + position);
          return v;
        }