blob: 1513fca957b3dbc9257ec5655ca8ffae5b644025 [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
Jose Pascoal6860a9d2014-12-16 11:58:16 +000019import java.util.HashMap;
20import java.util.Map;
Tiago Costa6d360e22014-12-15 14:32:51 +000021
22import android.text.TextUtils;
23import android.util.Log;
24
25public 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
Jose Pascoal40916302015-02-06 18:43:47 +000031 private int mNumber;
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 {
Jose Pascoalcfc2dd42015-02-09 18:00:05 +000049 mNumber = 0;
50 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 {
62 mNumber = other.mNumber;
63 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
Tiago Costa6d360e22014-12-15 14:32:51 +000073 public int getNumber()
74 {
75 return mNumber;
76 }
77
78 public void setNumber(String number)
79 {
80 try
81 {
82 this.mNumber = Integer.valueOf(number);
83 } catch (NumberFormatException e)
84 {
Jose Pascoalcfc2dd42015-02-09 18:00:05 +000085 Log.w(TAG, "Error decoding version number. Defaulting to 0: " + e.getLocalizedMessage());
Tiago Costa6d360e22014-12-15 14:32:51 +000086 this.mNumber = 0;
87 }
88 }
89
90 public void setNumber(int number)
91 {
92 this.mNumber = number;
93 }
94
95 public String getName()
96 {
97 return mName;
98 }
99
Jose Pascoal46fdb062015-02-05 18:59:32 +0000100 public void setName(String name)
Tiago Costa6d360e22014-12-15 14:32:51 +0000101 {
Jose Pascoal46fdb062015-02-05 18:59:32 +0000102 this.mName = name;
Tiago Costa6d360e22014-12-15 14:32:51 +0000103 }
104
105 public String getDownloadLink()
106 {
107 return mOTADownloadLink;
108 }
109
110 public void setDownloadLink(String mDownloadLink)
111 {
112 this.mOTADownloadLink = mDownloadLink;
113 }
114
115 public String getMd5Sum()
116 {
117 return mOTAMd5Sum;
118 }
119
120 public void setMd5Sum(String mMd5Sum)
121 {
122 this.mOTAMd5Sum = mMd5Sum;
123 }
124
125 public boolean isNewerVersionThan(DownloadableItem item)
126 {
127
128 boolean result = false;
129
130 if (item != null)
131 {
Jose Pascoalcfc2dd42015-02-09 18:00:05 +0000132 result = this.mNumber > item.mNumber;
Tiago Costa6d360e22014-12-15 14:32:51 +0000133 }
134 else
135 {
136 Log.e(TAG, "Invalid Number for Version");
137 }
138
139 return result;
140 }
141
142 public void setBuildNumber(String buildNumber)
143 {
144 mBuildNumber = buildNumber;
145 }
146
147 public String getBuildNumber()
148 {
149 return mBuildNumber;
150 }
151
152 public void setReleaseDate(String releaseDate)
153 {
154 mReleaseDate = releaseDate;
155 }
156
157 public String getReleaseDate()
158 {
159 return mReleaseDate;
160 }
161
162 public void setThumbnailLink(String thumbnailImageLink)
163 {
164 mThumbnailImageLink = thumbnailImageLink;
165 }
166
167 public String getThumbnailLink()
168 {
169 return mThumbnailImageLink;
170 }
171
Jose Pascoal6860a9d2014-12-16 11:58:16 +0000172 public void setReleaseNotes(String language, String releaseNotes)
173 {
174 mReleaseNotesMap.put(language.toLowerCase(), releaseNotes);
175 }
176
177 public String getReleaseNotes(String language)
178 {
179 String releaseNotes = "";
180
181 if (mReleaseNotesMap.containsKey(language))
182 {
183 releaseNotes = mReleaseNotesMap.get(language);
184 }
185 else if (mReleaseNotesMap.containsKey(DEFAULT_NOTES_LANG))
186 {
187 releaseNotes = mReleaseNotesMap.get(DEFAULT_NOTES_LANG);
188 }
189 return TextUtils.isEmpty(releaseNotes) ? "" : releaseNotes;
190 }
191
Jose Pascoal060ab282015-02-09 19:56:08 +0000192// --Commented out by Inspection START (09/02/2015 19:48):
193// Map<String, String> getReleaseNotes()
194// {
195// return mReleaseNotesMap;
196// }
197// --Commented out by Inspection STOP (09/02/2015 19:48)
198
Jose Pascoalcdd82042015-02-06 13:04:26 +0000199// --Commented out by Inspection START (06/02/2015 12:36):
200// void resetReleaseNotes()
201// {
202// mReleaseNotesMap.clear();
203// }
204// --Commented out by Inspection STOP (06/02/2015 12:36)
Tiago Costa6d360e22014-12-15 14:32:51 +0000205}