blob: 93a9f7bfe7a8b197adffda0c4d7841d44e4f5fa1 [file] [log] [blame]
/*
* Copyright (C) 2014 Fairphone Project
*
* 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.fairphone.updater.data;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import android.text.TextUtils;
import android.util.Log;
public abstract class DownloadableItem
{
private static final String TAG = Version.class.getSimpleName();
public static final String DEFAULT_NOTES_LANG = "en";
private static final String DEPENDENCY_SEPARATOR = ",";
int mNumber;
String mName;
String mOTADownloadLink;
String mOTAMd5Sum;
String mBuildNumber;
private final Map<String, String> mReleaseNotesMap;
String mReleaseDate;
String mThumbnailImageLink;
ArrayList<Integer> mDependencies;
DownloadableItem()
{
setNumber(0);
setName("");
setDownloadLink("");
setMd5Sum("");
setBuildNumber("");
setReleaseDate("");
setThumbnailLink("");
mReleaseNotesMap = new HashMap<>();
}
public int getNumber()
{
return mNumber;
}
public void setNumber(String number)
{
try
{
this.mNumber = Integer.valueOf(number);
} catch (NumberFormatException e)
{
this.mNumber = 0;
}
}
public void setNumber(int number)
{
this.mNumber = number;
}
public String getName()
{
return mName;
}
public void setName(String name)
{
this.mName = name;
}
public String getDownloadLink()
{
return mOTADownloadLink;
}
public void setDownloadLink(String mDownloadLink)
{
this.mOTADownloadLink = mDownloadLink;
}
public String getMd5Sum()
{
return mOTAMd5Sum;
}
public void setMd5Sum(String mMd5Sum)
{
this.mOTAMd5Sum = mMd5Sum;
}
public boolean isNewerVersionThan(DownloadableItem item)
{
boolean result = false;
if (item != null)
{
result = this.getNumber() > item.getNumber();
}
else
{
Log.e(TAG, "Invalid Number for Version");
}
return result;
}
public void setBuildNumber(String buildNumber)
{
mBuildNumber = buildNumber;
}
public String getBuildNumber()
{
return mBuildNumber;
}
public void setReleaseDate(String releaseDate)
{
mReleaseDate = releaseDate;
}
public String getReleaseDate()
{
return mReleaseDate;
}
public void setThumbnailLink(String thumbnailImageLink)
{
mThumbnailImageLink = thumbnailImageLink;
}
public String getThumbnailLink()
{
return mThumbnailImageLink;
}
public void setVersionDependencies(String dependencyList)
{
if (TextUtils.isEmpty(dependencyList))
{
mDependencies.clear();
}
else
{
String[] dependencies = dependencyList.split(DEPENDENCY_SEPARATOR);
for (String dependency : dependencies)
{
try
{
mDependencies.add(Integer.valueOf(dependency));
} catch (NumberFormatException e)
{
Log.e(TAG, "Invalid dependency");
}
}
}
}
// --Commented out by Inspection START (06/02/2015 12:36):
// public ArrayList<Integer> getVersionDependencies()
// {
// return mDependencies;
// }
// --Commented out by Inspection STOP (06/02/2015 12:36)
public void setReleaseNotes(String language, String releaseNotes)
{
mReleaseNotesMap.put(language.toLowerCase(), releaseNotes);
}
public String getReleaseNotes(String language)
{
String releaseNotes = "";
if (mReleaseNotesMap.containsKey(language))
{
releaseNotes = mReleaseNotesMap.get(language);
}
else if (mReleaseNotesMap.containsKey(DEFAULT_NOTES_LANG))
{
releaseNotes = mReleaseNotesMap.get(DEFAULT_NOTES_LANG);
}
return TextUtils.isEmpty(releaseNotes) ? "" : releaseNotes;
}
// --Commented out by Inspection START (06/02/2015 12:36):
// void resetReleaseNotes()
// {
// mReleaseNotesMap.clear();
// }
// --Commented out by Inspection STOP (06/02/2015 12:36)
}