示例#1
0
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

      ViewHolder holder;

      if (convertView == null) {
        convertView =
            inflater.inflate(
                (getItemViewType(position) == 0
                    ? R.layout.item_youtube_search
                    : R.layout.item_twitter_search),
                parent,
                false);
        holder = new ViewHolder();
        holder.image_iv = (ImageView) convertView.findViewById(R.id.thumbnail_iv);
        holder.name_tv = (TextView) convertView.findViewById(R.id.name_tv);
        holder.screenName_tv = (TextView) convertView.findViewById(R.id.screen_name_tv);
        convertView.setTag(holder);
      } else {
        holder = (ViewHolder) convertView.getTag();
      }

      if (searchMode == Var.SEARCH_YOUTUBE) {
        YoutubeChannel feed = (YoutubeChannel) getItem(position);
        holder.image_iv.setImageResource(R.drawable.ic_youtube_icon);
        if (feed.getThumbnail() != null)
          imageLoader.DisplayImage(feed.getThumbnail(), holder.image_iv);

        holder.name_tv.setText(feed.getName());
      }

      if (searchMode == Var.SEARCH_TWITTER) {
        TwitterFeed feed = (TwitterFeed) getItem(position);
        holder.image_iv.setImageResource(R.drawable.ic_twitter_icon);
        if (feed.getThumbnail() != null)
          imageLoader.DisplayImage(feed.getThumbnail(), holder.image_iv);

        holder.name_tv.setText(feed.getDisplayName());
        holder.screenName_tv.setText(feed.getName());
      }

      if (searchMode == Var.SEARCH_YT_CHANNEL) {
        YoutubeFeed feed = (YoutubeFeed) getItem(position);
        holder.image_iv.setImageResource(R.drawable.ic_youtube_icon);
        if (feed.getThumbnail() != null)
          imageLoader.DisplayImage(feed.getThumbnail(), holder.image_iv);

        holder.name_tv.setText(feed.getName());
      }

      return convertView;
    }
示例#2
0
  @Override
  public void onClick(View v) {
    Log.d(TAG, "onclick " + (v == action_fab) + ", " + searchMode);
    if (v == search_fab) {
      if (searchMode == Var.SEARCH_NONE) toggleSearch(Var.SEARCH_OPTIONS);
      else if (searchMode == Var.SEARCH_OPTIONS) toggleSearch(Var.SEARCH_NONE);
    }

    if (v == action_fab) {
      if (searchMode == Var.SEARCH_YT_CHANNEL) {
        SparseBooleanArray checked = search_lv.getCheckedItemPositions();
        for (int i = 0; i < checked.size(); i++) {
          if (checked.valueAt(i) == true) {
            YoutubeFeed youtubeFeed = (YoutubeFeed) search_lv.getItemAtPosition(checked.keyAt(i));
            youtubeFeed.setChannelHandle(searchChannel.getFeedId());
            editUser.getMediaFeed().add(youtubeFeed);
          }
        }

        feedAdapter.notifyDataSetChanged();
        clearSearchOptions();

        toggleSearch(Var.SEARCH_NONE);
      } else if (searchMode == Var.SEARCH_NONE) {

        editUser.setName(userName_edt.getText().toString().trim());
        editUser.setNotification(notification_sw.isChecked());
        editUser.setThumbnail((String) userPicture_sp.getSelectedItem());

        UserORM.saveUser(this, editUser);

        finish();
      }
    }
    if (v == youtube_ll) toggleSearch(Var.SEARCH_YOUTUBE);
    if (v == twitter_ll) toggleSearch(Var.SEARCH_TWITTER);
    if (v == search_v) toggleSearch(Var.SEARCH_NONE);
    if (v == searchTwitterLogin_tv) {
      twitter.resetAccessToken();
      if (!twitter.hasAccessToken()) twitter.authorize();
      // Hide the signin
      searchTwitter_v.setVisibility(View.GONE);
      searchDiv_v.setVisibility(View.GONE);
    }
    if (v == clearSearch_iv) search_edt.getText().clear();
  }
示例#3
0
    @Override
    protected String doInBackground(Void... params) {
      searchBusy = true;
      try {

        searchChannel.getYoutubeFeeds().clear();

        // TODO check the internet connection here
        String channelUrl =
            "https://www.googleapis.com/youtube/v3/channels?part=contentDetails&id="
                + searchChannel.getFeedId()
                + "&fields=items%2FcontentDetails&key="
                + Var.DEVELOPER_KEY;
        String playlists = "";
        String channel = Var.HTTPGet(channelUrl);

        JSONObject res = new JSONObject(channel);
        if (Var.isJsonArray(res, "items")) {
          JSONArray items = res.getJSONArray("items");
          if (items.length() > 0) {
            JSONObject item = items.getJSONObject(0);
            if (Var.isJsonObject(item, "contentDetails")) {
              JSONObject contentDetails = item.getJSONObject(("contentDetails"));
              if (Var.isJsonObject(contentDetails, "relatedPlaylists")) { // Channel Name
                JSONObject relatedPlaylists = contentDetails.getJSONObject("relatedPlaylists");
                if (Var.isJsonString(relatedPlaylists, "uploads"))
                  playlists +=
                      (Var.isEmpty(playlists) ? "" : ",") + relatedPlaylists.getString("uploads");
                if (Var.isJsonString(relatedPlaylists, "likes"))
                  playlists +=
                      (Var.isEmpty(playlists) ? "" : ",") + relatedPlaylists.getString("likes");
                if (Var.isJsonString(relatedPlaylists, "favorites"))
                  playlists +=
                      (Var.isEmpty(playlists) ? "" : ",") + relatedPlaylists.getString("favorites");
              }
            }
          }
        }

        String playlistUrl =
            "https://www.googleapis.com/youtube/v3/playlists?part=snippet&id="
                + URLEncoder.encode(playlists, "UTF-8")
                + "&fields=items(id%2Csnippet)&key="
                + Var.DEVELOPER_KEY;
        String playlist = Var.HTTPGet(playlistUrl);

        JSONObject play = new JSONObject(playlist);
        if (Var.isJsonArray(play, "items")) {
          JSONArray items = play.getJSONArray("items");
          for (int i = 0; i < items.length(); i++) {
            JSONObject item = items.getJSONObject(i);

            if (Var.isJsonString(item, "id")) { // Feed Id
              YoutubeFeed feed = new YoutubeFeed(item.getString("id"));
              feed.setType(Var.TYPE_YOUTUBE_PLAYLIST);
              feed.setChannelHandle(searchChannel.getFeedId());

              if (Var.isJsonObject(item, "snippet")) { // Feed Name
                JSONObject snippet = item.getJSONObject("snippet");
                if (Var.isJsonString(snippet, "title")) {
                  if (snippet.getString("title").startsWith("Upload")) feed.setName("Uploads");
                  else feed.setName(snippet.getString("title"));
                }

                if (Var.isJsonObject(snippet, "thumbnails")) { // Feed Thumbnail
                  JSONObject thumbnails = snippet.getJSONObject("thumbnails");
                  if (Var.isJsonObject(thumbnails, "default")) {
                    JSONObject def = thumbnails.getJSONObject("default");
                    if (Var.isJsonString(def, "url")) {
                      feed.setThumbnail(def.getString("url"));
                    }
                  }
                }
              }

              searchChannel.getYoutubeFeeds().add(feed);

              Log.d(TAG, "youtube feed added " + feed.getName());
            }
          }

          YoutubeFeed activityFeed = new YoutubeFeed();
          activityFeed.setChannelHandle(searchChannel.getFeedId());
          searchChannel.getYoutubeFeeds().add(activityFeed); // Activity
        }

      } catch (Throwable t) {
        t.printStackTrace();
      }
      return null;
    }