Android Open Source - TuentiTV Recommendation Builder






From Project

Back to project page TuentiTV.

License

The source code is released under:

Apache License

If you think the Android project TuentiTV listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright (C) 2014 Pedro Vicente Gmez Snchez.
 *//from www .j  a v  a2 s. c om
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.github.pedrovgs.tuentitv.recommendation.builder;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.support.v4.app.NotificationCompat;
import com.github.pedrovgs.tuentitv.R;
import com.squareup.picasso.Picasso;
import java.io.IOException;
import javax.inject.Inject;

/**
 * Builder created to show Android TV notifications. Main collaborator of this class is
 * NotificationManager and NotificationCompat notifications configured in recommendation mode to
 * show notifications in the Android TV dashboard.
 */
public class RecommendationBuilder {

  private Context context;
  private NotificationManager notificationManager;

  private int id;
  private int priority;
  private int smallIcon;
  private String title;
  private String description;
  private String imageUri;
  private String backgroundUri;
  private PendingIntent pendingIntent;

  @Inject public RecommendationBuilder() {
    //Empty
  }

  public RecommendationBuilder setContext(Context context) {
    this.context = context;
    return this;
  }

  public RecommendationBuilder setId(int id) {
    this.id = id;
    return this;
  }

  public RecommendationBuilder setPriority(int priority) {
    this.priority = priority;
    return this;
  }

  public RecommendationBuilder setTitle(String title) {
    this.title = title;
    return this;
  }

  public RecommendationBuilder setDescription(String description) {
    this.description = description;
    return this;
  }

  public RecommendationBuilder setImage(String uri) {
    imageUri = uri;
    return this;
  }

  public RecommendationBuilder setBackground(String uri) {
    backgroundUri = uri;
    return this;
  }

  public RecommendationBuilder setIntent(PendingIntent intent) {
    pendingIntent = intent;
    return this;
  }

  public RecommendationBuilder setSmallIcon(int resourceId) {
    smallIcon = resourceId;
    return this;
  }

  public Notification build() throws IOException {
    if (notificationManager == null) {
      notificationManager =
          (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    }

    Bundle extras = new Bundle();
    if (backgroundUri != null) {
      extras.putString(Notification.EXTRA_BACKGROUND_IMAGE_URI, backgroundUri);
    }

    Bitmap image = Picasso.with(context).load(imageUri).get();

    Notification notification = new NotificationCompat.BigPictureStyle(
        new NotificationCompat.Builder(context).setContentTitle(title)
            .setContentText(description)
            .setPriority(priority)
            .setLocalOnly(true)
            .setOngoing(true)
            .setColor(context.getResources().getColor(R.color.primary_color))
            .setCategory(Notification.CATEGORY_RECOMMENDATION)
            .setLargeIcon(image)
            .setSmallIcon(smallIcon)
            .setContentIntent(pendingIntent)
            .setExtras(extras)).build();

    notificationManager.notify(id, notification);
    notificationManager = null;
    return notification;
  }
}




Java Source Code List

com.github.pedrovgs.tuentitv.TuentiTvApplication.java
com.github.pedrovgs.tuentitv.di.ActivityContext.java
com.github.pedrovgs.tuentitv.di.ActivityModule.java
com.github.pedrovgs.tuentitv.di.ApplicationContext.java
com.github.pedrovgs.tuentitv.di.RootModule.java
com.github.pedrovgs.tuentitv.di.TuentiTvApplicationModule.java
com.github.pedrovgs.tuentitv.model.Account.java
com.github.pedrovgs.tuentitv.model.Accounts.java
com.github.pedrovgs.tuentitv.model.Agenda.java
com.github.pedrovgs.tuentitv.model.Chat.java
com.github.pedrovgs.tuentitv.model.Contact.java
com.github.pedrovgs.tuentitv.model.ConversationSummary.java
com.github.pedrovgs.tuentitv.model.MediaElement.java
com.github.pedrovgs.tuentitv.model.MediaGallery.java
com.github.pedrovgs.tuentitv.presenter.DetailPresenter.java
com.github.pedrovgs.tuentitv.presenter.EnterPasswordPresenter.java
com.github.pedrovgs.tuentitv.presenter.LoginPresenter.java
com.github.pedrovgs.tuentitv.presenter.MainPresenter.java
com.github.pedrovgs.tuentitv.presenter.SearchPresenter.java
com.github.pedrovgs.tuentitv.recommendation.builder.RecommendationBuilder.java
com.github.pedrovgs.tuentitv.recommendation.service.BaseIntentService.java
com.github.pedrovgs.tuentitv.recommendation.service.RecommendationService.java
com.github.pedrovgs.tuentitv.ui.activity.BaseActivity.java
com.github.pedrovgs.tuentitv.ui.activity.DetailActivity.java
com.github.pedrovgs.tuentitv.ui.activity.EnterPasswordActivity.java
com.github.pedrovgs.tuentitv.ui.activity.LoadingActivity.java
com.github.pedrovgs.tuentitv.ui.activity.LoginActivity.java
com.github.pedrovgs.tuentitv.ui.activity.MainActivity.java
com.github.pedrovgs.tuentitv.ui.activity.SearchActivity.java
com.github.pedrovgs.tuentitv.ui.activity.ShowImageActivity.java
com.github.pedrovgs.tuentitv.ui.data.CardInfo.java
com.github.pedrovgs.tuentitv.ui.data.IconInfo.java
com.github.pedrovgs.tuentitv.ui.data.ImageInfo.java
com.github.pedrovgs.tuentitv.ui.fragment.BrowseBaseFragment.java
com.github.pedrovgs.tuentitv.ui.fragment.DetailBaseFragment.java
com.github.pedrovgs.tuentitv.ui.fragment.DetailFragment.java
com.github.pedrovgs.tuentitv.ui.fragment.MainFragment.java
com.github.pedrovgs.tuentitv.ui.fragment.SearchBaseFragment.java
com.github.pedrovgs.tuentitv.ui.fragment.SearchFragment.java
com.github.pedrovgs.tuentitv.ui.navigator.Navigator.java
com.github.pedrovgs.tuentitv.ui.picasso.PicassoBackgroundManagerTarget.java
com.github.pedrovgs.tuentitv.ui.picasso.PicassoImageCardViewTarget.java
com.github.pedrovgs.tuentitv.ui.picasso.transformation.BlurTransformation.java
com.github.pedrovgs.tuentitv.ui.picasso.transformation.CircleTransform.java
com.github.pedrovgs.tuentitv.ui.picasso.transformation.GrayScaleTransformation.java
com.github.pedrovgs.tuentitv.ui.util.Util.java
com.github.pedrovgs.tuentitv.ui.viewpresenter.CardPresenter.java
com.github.pedrovgs.tuentitv.ui.viewpresenter.DetailsDescriptionPresenter.java
com.github.pedrovgs.tuentitv.ui.viewpresenter.IconPresenter.java
com.github.pedrovgs.tuentitv.ui.viewpresenter.ImagePresenter.java