blob: f6318090b96907eee0c101e09f29e9eb490509bb [file] [log] [blame]
Tiago Costa6d360e22014-12-15 14:32:51 +00001/*
2 * Copyright (C) 2014 Fairphone Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.fairphone.updater.data;
18
Tiago Costa6d360e22014-12-15 14:32:51 +000019import android.text.TextUtils;
20import android.util.Log;
21
Maarten Derksbb287762015-10-12 17:22:45 +020022import java.util.HashMap;
23import java.util.Map;
24
Tiago Costa6d360e22014-12-15 14:32:51 +000025public abstract class DownloadableItem
26{
Jose Pascoal40916302015-02-06 18:43:47 +000027 private static final String TAG = DownloadableItem.class.getSimpleName();
Tiago Costa6d360e22014-12-15 14:32:51 +000028
29 public static final String DEFAULT_NOTES_LANG = "en";
30
Maarten Derksf17e6db2016-02-09 15:10:53 +010031 private String mId;
Tiago Costa6d360e22014-12-15 14:32:51 +000032
Jose Pascoal40916302015-02-06 18:43:47 +000033 private String mName;
Tiago Costa6d360e22014-12-15 14:32:51 +000034
Jose Pascoal40916302015-02-06 18:43:47 +000035 private String mOTADownloadLink;
Tiago Costa6d360e22014-12-15 14:32:51 +000036
Jose Pascoal40916302015-02-06 18:43:47 +000037 private String mOTAMd5Sum;
Tiago Costa6d360e22014-12-15 14:32:51 +000038
Jose Pascoal40916302015-02-06 18:43:47 +000039 private String mBuildNumber;
Jose Pascoal6860a9d2014-12-16 11:58:16 +000040
Filipe Gonçalvesb31d5862015-02-04 17:28:58 +000041 private final Map<String, String> mReleaseNotesMap;
Tiago Costa6d360e22014-12-15 14:32:51 +000042
Jose Pascoal40916302015-02-06 18:43:47 +000043 private String mReleaseDate;
Tiago Costa6d360e22014-12-15 14:32:51 +000044
Jose Pascoal40916302015-02-06 18:43:47 +000045 private String mThumbnailImageLink;
Tiago Costa6d360e22014-12-15 14:32:51 +000046
Filipe Gonçalvesb31d5862015-02-04 17:28:58 +000047 DownloadableItem()
Tiago Costa6d360e22014-12-15 14:32:51 +000048 {
Maarten Derksf17e6db2016-02-09 15:10:53 +010049 mId = "";
Jose Pascoalcfc2dd42015-02-09 18:00:05 +000050 mName = "";
51 mOTADownloadLink = "";
52 mOTAMd5Sum = "";
53 mBuildNumber = "";
54 mReleaseDate = "";
55 mThumbnailImageLink = "";
Jose Pascoal6860a9d2014-12-16 11:58:16 +000056
Filipe Gonçalvesb31d5862015-02-04 17:28:58 +000057 mReleaseNotesMap = new HashMap<>();
Tiago Costa6d360e22014-12-15 14:32:51 +000058 }
59
Jose Pascoal060ab282015-02-09 19:56:08 +000060 DownloadableItem(DownloadableItem other)
61 {
Maarten Derksf17e6db2016-02-09 15:10:53 +010062 mId = other.mId;
Jose Pascoal060ab282015-02-09 19:56:08 +000063 mName = other.mName;
64 mOTADownloadLink = other.mOTADownloadLink;
65 mOTAMd5Sum = other.mOTAMd5Sum;
66 mBuildNumber = other.mBuildNumber;
67 mReleaseDate = other.mReleaseDate;
68 mThumbnailImageLink = other.mThumbnailImageLink;
69
70 mReleaseNotesMap = other.mReleaseNotesMap;
71 }
72
Maarten Derksf17e6db2016-02-09 15:10:53 +010073 public String getId()
Tiago Costa6d360e22014-12-15 14:32:51 +000074 {
Maarten Derksf17e6db2016-02-09 15:10:53 +010075 return mId;
Tiago Costa6d360e22014-12-15 14:32:51 +000076 }
77
Maarten Derksf17e6db2016-02-09 15:10:53 +010078 public void setId(String id)
Tiago Costa6d360e22014-12-15 14:32:51 +000079 {
Maarten Derksf17e6db2016-02-09 15:10:53 +010080 this.mId = id;
Tiago Costa6d360e22014-12-15 14:32:51 +000081 }
82
83 public String getName()
84 {
85 return mName;
86 }
87
Jose Pascoal46fdb062015-02-05 18:59:32 +000088 public void setName(String name)
Tiago Costa6d360e22014-12-15 14:32:51 +000089 {
Jose Pascoal46fdb062015-02-05 18:59:32 +000090 this.mName = name;
Tiago Costa6d360e22014-12-15 14:32:51 +000091 }
92
93 public String getDownloadLink()
94 {
95 return mOTADownloadLink;
96 }
97
98 public void setDownloadLink(String mDownloadLink)
99 {
100 this.mOTADownloadLink = mDownloadLink;
101 }
102
103 public String getMd5Sum()
104 {
105 return mOTAMd5Sum;
106 }
107
108 public void setMd5Sum(String mMd5Sum)
109 {
110 this.mOTAMd5Sum = mMd5Sum;
111 }
112
113 public boolean isNewerVersionThan(DownloadableItem item)
114 {
115
116 boolean result = false;
117
118 if (item != null)
119 {
Maarten Derksf17e6db2016-02-09 15:10:53 +0100120 result = !this.mId.equals(item.mId);
Tiago Costa6d360e22014-12-15 14:32:51 +0000121 }
122 else
123 {
124 Log.e(TAG, "Invalid Number for Version");
125 }
126
127 return result;
128 }
129
130 public void setBuildNumber(String buildNumber)
131 {
132 mBuildNumber = buildNumber;
133 }
134
135 public String getBuildNumber()
136 {
137 return mBuildNumber;
138 }
139
140 public void setReleaseDate(String releaseDate)
141 {
142 mReleaseDate = releaseDate;
143 }
144
145 public String getReleaseDate()
146 {
147 return mReleaseDate;
148 }
149
150 public void setThumbnailLink(String thumbnailImageLink)
151 {
152 mThumbnailImageLink = thumbnailImageLink;
153 }
154
155 public String getThumbnailLink()
156 {
157 return mThumbnailImageLink;
158 }
159
Jose Pascoal6860a9d2014-12-16 11:58:16 +0000160 public void setReleaseNotes(String language, String releaseNotes)
161 {
162 mReleaseNotesMap.put(language.toLowerCase(), releaseNotes);
163 }
164
165 public String getReleaseNotes(String language)
166 {
167 String releaseNotes = "";
168
169 if (mReleaseNotesMap.containsKey(language))
170 {
171 releaseNotes = mReleaseNotesMap.get(language);
172 }
173 else if (mReleaseNotesMap.containsKey(DEFAULT_NOTES_LANG))
174 {
175 releaseNotes = mReleaseNotesMap.get(DEFAULT_NOTES_LANG);
176 }
177 return TextUtils.isEmpty(releaseNotes) ? "" : releaseNotes;
178 }
179
Jose Pascoal060ab282015-02-09 19:56:08 +0000180// --Commented out by Inspection START (09/02/2015 19:48):
181// Map<String, String> getReleaseNotes()
182// {
183// return mReleaseNotesMap;
184// }
185// --Commented out by Inspection STOP (09/02/2015 19:48)
186
Jose Pascoalcdd82042015-02-06 13:04:26 +0000187// --Commented out by Inspection START (06/02/2015 12:36):
188// void resetReleaseNotes()
189// {
190// mReleaseNotesMap.clear();
191// }
192// --Commented out by Inspection STOP (06/02/2015 12:36)
Tiago Costa6d360e22014-12-15 14:32:51 +0000193}