1ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi/* 2ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * Copyright (C) 2010 The Android Open Source Project 3ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * 4ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * Licensed under the Apache License, Version 2.0 (the "License"); 5ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * you may not use this file except in compliance with the License. 6ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * You may obtain a copy of the License at 7ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * 8ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * http://www.apache.org/licenses/LICENSE-2.0 9ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * 10ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * Unless required by applicable law or agreed to in writing, software 11ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * distributed under the License is distributed on an "AS IS" BASIS, 12ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * See the License for the specific language governing permissions and 14ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * limitations under the License. 15ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi */ 16ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 1781393d6dc5767f7784a00958095614a37bf1a91aGil Dobjanschipackage com.android.videoeditor.service; 18ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 19ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschiimport java.util.Map; 20ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 21ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschiimport android.media.videoeditor.Overlay; 22ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschiimport android.os.Bundle; 23ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 24ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 25ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi/** 26ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * The representation of an overlay in the user interface 27ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi */ 28ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschipublic class MovieOverlay { 29ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi // Overlay types 30194f8240bb71889b6a096eecda5601c969f6c21fGil Dobjanschi public static final int OVERLAY_TYPE_CENTER_1 = 0; 31194f8240bb71889b6a096eecda5601c969f6c21fGil Dobjanschi public static final int OVERLAY_TYPE_BOTTOM_1 = 1; 32194f8240bb71889b6a096eecda5601c969f6c21fGil Dobjanschi public static final int OVERLAY_TYPE_CENTER_2 = 2; 33194f8240bb71889b6a096eecda5601c969f6c21fGil Dobjanschi public static final int OVERLAY_TYPE_BOTTOM_2 = 3; 34ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 35ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi // User attribute keys 36ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi private static final String KEY_TYPE = "type"; 37ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi private static final String KEY_TITLE = "title"; 38ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi private static final String KEY_SUBTITLE = "subtitle"; 39ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 40ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi // Instance variables 41ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi private final String mUniqueId; 42ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi private long mStartTimeMs; 43ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi private long mDurationMs; 44ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi private String mTitle; 45ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi private String mSubtitle; 46ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi private int mType; 47ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 48ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi private long mAppStartTimeMs; 49ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi private long mAppDurationMs; 50ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 51ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi /** 52ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * Default constructor 53ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi */ 54ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi @SuppressWarnings("unused") 55ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi private MovieOverlay() { 56ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi this(null); 57ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi } 58ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 59ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi /** 60ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * Constructor 61ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * 62ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @param overlay The overlay 63ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi */ 64ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi MovieOverlay(Overlay overlay) { 65ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi mUniqueId = overlay.getId(); 66ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi mAppStartTimeMs = mStartTimeMs = overlay.getStartTime(); 67ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi mAppDurationMs = mDurationMs = overlay.getDuration(); 68ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 69ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi final Map<String, String> userAttributes = overlay.getUserAttributes(); 70ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi mTitle = userAttributes.get(KEY_TITLE); 71ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi mSubtitle = userAttributes.get(KEY_SUBTITLE); 72ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi mType = Integer.parseInt(userAttributes.get(KEY_TYPE)); 73ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi } 74ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 75ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi /** 76ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * Constructor 77ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * 78ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @param id The overlay id 79ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @param startTimeMs The start time 80ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @param durationMs The duration 81ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @param title The title 82ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @param subTitle The sub title 83ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @param type The title type 84ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi */ 85ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi MovieOverlay(String id, long startTimeMs, long durationMs, String title, 86ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi String subTitle, int type) { 87ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi mUniqueId = id; 88ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi mAppStartTimeMs = mStartTimeMs = startTimeMs; 89ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi mAppDurationMs = mDurationMs = durationMs; 90ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 91ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi mTitle = title; 92ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi mSubtitle = subTitle; 93ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi mType = type; 94ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi } 95ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 96ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi /** 9705be941a5cc0347e8b67deb0a91d70e91105ccafShih-chia Cheng * @return The id of this overlay 98ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi */ 99ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi public String getId() { 100ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi return mUniqueId; 101ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi } 102ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 103ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi /** 104ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * If a preview or export is in progress, then this change is effective for 105ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * next preview or export session. 106ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * 107ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @param durationMs The duration in milliseconds 108ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi */ 109ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi void setDuration(long durationMs) { 110ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi mDurationMs = durationMs; 111ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi } 112ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 113ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi /** 114ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @return The duration of the overlay effect 115ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi */ 116ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi long getDuration() { 117ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi return mDurationMs; 118ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi } 119ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 120ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi /** 121ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * If a preview or export is in progress, then this change is effective for 122ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * next preview or export session. 123ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * 124ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @param durationMs The duration in milliseconds 125ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi */ 126ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi public void setAppDuration(long durationMs) { 127ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi mAppDurationMs = durationMs; 128ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi } 129ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 130ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi /** 131ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @return The duration of the overlay effect 132ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi */ 133ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi public long getAppDuration() { 134ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi return mAppDurationMs; 135ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi } 136ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 137ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi /** 138ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * Set the start time for the overlay. If a preview or export is in 139ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * progress, then this change is effective for next preview or export 140ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * session. 141ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * 142ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @param startTimeMs start time in milliseconds 143ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi */ 144ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi void setStartTime(long startTimeMs) { 145ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi mStartTimeMs = startTimeMs; 146ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi } 147ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 148ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi /** 149ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @return the start time of the overlay 150ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi */ 151ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi long getStartTime() { 152ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi return mStartTimeMs; 153ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi } 154ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 155ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi /** 156ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * Set the start time of this audio track relative to the storyboard 157ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * timeline. Default value is 0. 158ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * 159ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @param startTimeMs the start time in milliseconds 160ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi */ 161ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi public void setAppStartTime(long startTimeMs) { 162ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi mAppStartTimeMs = startTimeMs; 163ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi } 164ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 165ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi /** 166ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * Get the start time of this audio track relative to the storyboard 167ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * timeline. 168ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * 169ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @return The start time in milliseconds 170ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi */ 171ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi public long getAppStartTime() { 172ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi return mAppStartTimeMs; 173ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi } 174ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 175ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi /** 176ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @return The title 177ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi */ 178ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi public String getTitle() { 179ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi return mTitle; 180ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi } 181ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 182ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi /** 183ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @return The subtitle 184ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi */ 185ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi public String getSubtitle() { 186ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi return mSubtitle; 187ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi } 188ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 189ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi /** 190ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @return The type 191ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi */ 192ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi public int getType() { 193ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi return mType; 194ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi } 195ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 196ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi /* 197ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * {@inheritDoc} 198ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi */ 199ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi @Override 200ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi public boolean equals(Object object) { 201ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi if (!(object instanceof MovieOverlay)) { 202ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi return false; 203ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi } 204ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi return mUniqueId.equals(((MovieOverlay)object).mUniqueId); 205ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi } 206ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 207ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi /* 208ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * {@inheritDoc} 209ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi */ 210ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi @Override 211ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi public int hashCode() { 212ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi return mUniqueId.hashCode(); 213ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi } 214ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 215ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi /** 216ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * Build the user attributes 217ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * 218ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @return The user attributes 219ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi */ 220ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi public Bundle buildUserAttributes() { 221ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi final Bundle userAttributes = new Bundle(4); 222ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi userAttributes.putInt(KEY_TYPE, mType); 223ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi userAttributes.putString(KEY_TITLE, mTitle); 224ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi userAttributes.putString(KEY_SUBTITLE, mSubtitle); 225ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi return userAttributes; 226ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi } 227ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 228ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi /** 229ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * Build the user attributes 230ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * 231ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @param type The overlay type 232ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @param title The overlay title 233ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @param subtitle The overlay subtitle 234ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * 235ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @return The user attributes 236ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi */ 237ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi public static Bundle buildUserAttributes(int type, String title, String subtitle) { 238ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi final Bundle userAttributes = new Bundle(4); 239ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi userAttributes.putInt(KEY_TYPE, type); 240ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi userAttributes.putString(KEY_TITLE, title); 241ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi userAttributes.putString(KEY_SUBTITLE, subtitle); 242ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi return userAttributes; 243ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi } 244ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 245ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi /** 246ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @param userAttributes The user attributes 247ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi */ 248ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi void updateUserAttributes(Bundle userAttributes) { 249ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi mType = userAttributes.getInt(KEY_TYPE); 250ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi mTitle = userAttributes.getString(KEY_TITLE); 251ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi mSubtitle = userAttributes.getString(KEY_SUBTITLE); 252ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi } 253ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 254ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi /** 255ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * Get the type of the value corresponding to the specified key 256ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * 257ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @param name The key name 258ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * 259ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @return The type 260ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi */ 261ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi public static Class<?> getAttributeType(String name) { 262ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi if (KEY_TYPE.equals(name)) { 263ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi return Integer.class; 264ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi } else { 265ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi return String.class; 266ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi } 267ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi } 268ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 269ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi /** 270ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @param userAttributes The user attributes 271ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * 272ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @return The type 273ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi */ 274ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi public static int getType(Bundle userAttributes) { 275ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi return userAttributes.getInt(KEY_TYPE); 276ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi } 277ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 278ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi /** 279ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @param userAttributes The user attributes 280ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * 281ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @return The title 282ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi */ 283ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi public static String getTitle(Bundle userAttributes) { 284ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi return userAttributes.getString(KEY_TITLE); 285ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi } 286ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi 287ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi /** 288ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @param userAttributes The user attributes 289ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * 290ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi * @return The subtitle 291ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi */ 292ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi public static String getSubtitle(Bundle userAttributes) { 293ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi return userAttributes.getString(KEY_SUBTITLE); 294ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi } 295ace3cdb462fef9563a0470223c62a7e80e6d587aGil Dobjanschi} 296