package com.mercandalli.android.apps.files.file;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.StringRes;
import com.mercandalli.android.apps.files.R;
/**
* Created by Jonathan on 24/10/2015.
*/
public class FileTypeModel {
@StringRes
private int mTitleId = R.string.file_model_type_unknown;
@Nullable
private String mTitle;
@NonNull
private final String[] mExtensions;
public FileTypeModel(@NonNull final String value) {
mExtensions = new String[]{value.toLowerCase()};
label:
for (FileTypeModelENUM t : FileTypeModelENUM.values()) {
for (String ext : t.type.getExtensions()) {
if (value.equals(ext)) {
mTitleId = t.type.getTitleId();
break label;
}
}
}
}
public FileTypeModel(@StringRes int title, @NonNull final String... value) {
mTitleId = title;
mExtensions = value;
}
@Override
public String toString() {
return getFirstExtension();
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof FileTypeModel)) {
return false;
}
String[] objExtensions = ((FileTypeModel) o).getExtensions();
if (this.mExtensions.length == 0 || objExtensions == null) {
return false;
}
for (String myExt : this.mExtensions) {
for (String objExt : objExtensions) {
if (myExt.equals(objExt)) {
return true;
}
}
}
return false;
}
@Override
public int hashCode() {
return mTitleId;
}
public String getTitle(final Context context) {
if (mTitle != null) {
return mTitle;
}
return mTitle = context.getString(mTitleId);
}
@StringRes
public int getTitleId() {
return mTitleId;
}
public String[] getExtensions() {
return mExtensions;
}
public String getFirstExtension() {
return (mExtensions.length > 0) ? mExtensions[0] : "";
}
}