com.connectsdk.core.ChannelInfo.java Source code

Java tutorial

Introduction

Here is the source code for com.connectsdk.core.ChannelInfo.java

Source

/*
 * ChannelInfo
 * Connect SDK
 * 
 * Copyright (c) 2014 LG Electronics.
 * Created by Hyun Kook Khang on 19 Jan 2014
 * 
 * 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.connectsdk.core;

import org.json.JSONException;
import org.json.JSONObject;

import android.util.Log;

/**
 * Normalized reference object for information about a TVs channels. This object is required to set the channel on a TV.
 */
public class ChannelInfo implements JSONSerializable {
    // @cond INTERNAL
    String channelName;
    String channelId;
    String channelNumber;
    int minorNumber;
    int majorNumber;

    JSONObject rawData;
    // @endcond

    /**
     * Default constructor method.
     */
    public ChannelInfo() {
    }

    /** Gets the raw data from the first screen device about the channel. In most cases, this is an NSDictionary. */
    public JSONObject getRawData() {
        return rawData;
    }

    /** Sets the raw data from the first screen device about the channel. In most cases, this is an NSDictionary. */
    public void setRawData(JSONObject rawData) {
        this.rawData = rawData;
    }

    /** Gets the user-friendly name of the channel */
    public String getName() {
        return channelName;
    }

    /** Sets the user-friendly name of the channel */
    public void setName(String channelName) {
        this.channelName = channelName;
    }

    /** Gets the TV's unique ID for the channel */
    public String getId() {
        return channelId;
    }

    /** Sets the TV's unique ID for the channel */
    public void setId(String channelId) {
        this.channelId = channelId;
    }

    /** Gets the TV channel's number (likely to be a combination of the major & minor numbers) */
    public String getNumber() {
        return channelNumber;
    }

    /** Sets the TV channel's number (likely to be a combination of the major & minor numbers) */
    public void setNumber(String channelNumber) {
        this.channelNumber = channelNumber;
    }

    /** Gets the TV channel's minor number */
    public int getMinorNumber() {
        return minorNumber;
    }

    /** Sets the TV channel's minor number */
    public void setMinorNumber(int minorNumber) {
        this.minorNumber = minorNumber;
    }

    /** Gets the TV channel's major number */
    public int getMajorNumber() {
        return majorNumber;
    }

    /** Sets the TV channel's major number */
    public void setMajorNumber(int majorNumber) {
        this.majorNumber = majorNumber;
    }

    /**
     * Compares two ChannelInfo objects.
     *
     * @param channelInfo ChannelInfo object to compare.
     *
     * @return YES if both ChannelInfo number & name values are equal
     */
    @Override
    public boolean equals(Object o) {
        if (o instanceof ChannelInfo) {
            ChannelInfo other = (ChannelInfo) o;

            if (this.channelId != null) {
                if (this.channelId.equals(other.channelId))
                    return true;
            } else if (this.channelName != null && this.channelNumber != null) {
                return this.channelName.equals(other.channelName) && this.channelNumber.equals(other.channelNumber)
                        && this.majorNumber == other.majorNumber && this.minorNumber == other.minorNumber;
            }

            Log.d(Util.T, "Could not compare channel values, no data to compare against");
            Log.d(Util.T, "This channel info: \n" + this.rawData.toString());
            Log.d(Util.T, "Other channel info: \n" + other.rawData.toString());

            return false;
        }

        return super.equals(o);
    }

    // @cond INTERNAL
    @Override
    public JSONObject toJSONObject() throws JSONException {
        JSONObject obj = new JSONObject();

        obj.put("name", channelName);
        obj.put("id", channelId);
        obj.put("number", channelNumber);
        obj.put("majorNumber", majorNumber);
        obj.put("minorNumber", minorNumber);
        obj.put("rawData", rawData);

        return obj;
    }
    // @endcond
}