blob: e35f38c4c26103e8b2f717bac5817652d1e9051d [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 Derksbb287762015-10-12 17:22:45 +020031 private String 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 {
Maarten Derksbb287762015-10-12 17:22:45 +020049 mNumber = "";
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 {
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
Maarten Derksbb287762015-10-12 17:22:45 +020073 public String getNumber()
Tiago Costa6d360e22014-12-15 14:32:51 +000074 {
75 return mNumber;
76 }
77
78 public void setNumber(String number)
79 {
Tiago Costa6d360e22014-12-15 14:32:51 +000080 this.mNumber = number;
81 }
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 Derksbb287762015-10-12 17:22:45 +0200120 result = !this.mNumber.equals(item.mNumber);
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}