public void updateMovieDetails(
        final Handler handler,
        final TextView numVotesView,
        final TextView studioView,
        final TextView plotView,
        final TextView parentalView,
        final Button trailerButton,
        final LinearLayout dataLayout) {
      mVideoManager.updateMovieDetails(
          new DataResponse<Movie>() {
            public void run() {
              final Movie movie = value;
              if (movie == null) {
                Log.w(TAG, "updateMovieDetails: value is null.");
                return;
              }
              numVotesView.setText(movie.numVotes > 0 ? " (" + movie.numVotes + " votes)" : "");
              studioView.setText(
                  movie.studio.size() == 0 ? NO_DATA : StringUtil.join(", ", movie.studio));
              plotView.setText(movie.plot.equals("") ? NO_DATA : movie.plot);
              parentalView.setText(movie.rated.equals("") ? NO_DATA : movie.rated);
              if (movie.trailerUrl != null && !movie.trailerUrl.equals("")) {
                trailerButton.setEnabled(true);
                trailerButton.setOnClickListener(
                    new OnClickListener() {
                      public void onClick(View v) {
                        mControlManager.playFile(
                            new DataResponse<Boolean>() {
                              public void run() {
                                if (value) {
                                  Toast toast =
                                      Toast.makeText(
                                          mActivity,
                                          "Playing trailer for \"" + movie.getName() + "\"...",
                                          Toast.LENGTH_LONG);
                                  toast.show();
                                }
                              }
                            },
                            movie.trailerUrl,
                            mActivity.getApplicationContext());
                      }
                    });
              }

              if (movie.actors != null) {
                final LayoutInflater inflater = mActivity.getLayoutInflater();
                // int n = 0;
                for (Actor actor : movie.actors) {
                  final View view = inflater.inflate(R.layout.actor_item, null);

                  ((TextView) view.findViewById(R.id.actor_name)).setText(actor.name);
                  ((TextView) view.findViewById(R.id.actor_role)).setText("as " + actor.role);
                  ImageButton img = ((ImageButton) view.findViewById(R.id.actor_image));
                  mVideoManager.getCover(
                      new DataResponse<Bitmap>() {
                        public void run() {
                          if (value != null) {
                            handler.post(
                                new Runnable() {
                                  public void run() {
                                    ((ImageButton) view.findViewById(R.id.actor_image))
                                        .setImageBitmap(value);
                                  }
                                });
                          }
                        }
                      },
                      actor,
                      ThumbSize.SMALL,
                      null,
                      mActivity.getApplicationContext(),
                      false);

                  img.setTag(actor);
                  img.setOnClickListener(
                      new OnClickListener() {
                        public void onClick(View v) {
                          Intent nextActivity;
                          Actor actor = (Actor) v.getTag();
                          nextActivity = new Intent(view.getContext(), ListActivity.class);
                          nextActivity.putExtra(
                              ListController.EXTRA_LIST_CONTROLLER, new MovieListController());
                          nextActivity.putExtra(ListController.EXTRA_ACTOR, actor);
                          mActivity.startActivity(nextActivity);
                        }
                      });
                  img.setOnCreateContextMenuListener(
                      new OnCreateContextMenuListener() {
                        public void onCreateContextMenu(
                            ContextMenu menu, View v, ContextMenuInfo menuInfo) {

                          selectedAcotr = (Actor) v.getTag();
                          selectedView = v;

                          menu.setHeaderTitle(selectedAcotr.getShortName());
                          menu.add(0, CAST_CONTEXT_IMDB, 1, "Open IMDb")
                              .setOnMenuItemClickListener(
                                  new OnMenuItemClickListener() {
                                    public boolean onMenuItemClick(MenuItem item) {
                                      Intent intentIMDb =
                                          new Intent(
                                              Intent.ACTION_VIEW,
                                              Uri.parse(
                                                  "imdb:///find?s=nm&q="
                                                      + selectedAcotr.getName()));
                                      if (selectedView
                                              .getContext()
                                              .getPackageManager()
                                              .resolveActivity(
                                                  intentIMDb, PackageManager.MATCH_DEFAULT_ONLY)
                                          == null) {
                                        intentIMDb =
                                            new Intent(
                                                Intent.ACTION_VIEW,
                                                Uri.parse(
                                                    "http://www.imdb.com/find?s=nm&q="
                                                        + selectedAcotr.getName()));
                                      }
                                      selectedView.getContext().startActivity(intentIMDb);

                                      return false;
                                    }
                                  });
                        }
                      });

                  dataLayout.addView(view);
                  // n++;
                }
              }
            }
          },
          mMovie,
          mActivity.getApplicationContext());
    }