Append extension in code rather than leave it to the server

This fixes problems where titles have a '.' in them
This commit is contained in:
YuviPanda 2013-03-11 16:11:25 +05:30
parent 636978c1be
commit 625339cb51
2 changed files with 10 additions and 7 deletions

View file

@ -9,6 +9,7 @@ import android.provider.MediaStore;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.webkit.MimeTypeMap;
import com.nostra13.universalimageloader.core.ImageLoader;
import org.wikimedia.commons.auth.AuthenticatedActivity;
import org.wikimedia.commons.auth.WikiAccountAuthenticator;
@ -89,6 +90,13 @@ public class ShareActivity extends AuthenticatedActivity {
throw new RuntimeException(e);
}
String extension = MimeTypeMap.getSingleton().getExtensionFromMimeType(mimeType);
if(!title.toLowerCase().endsWith(extension.toLowerCase())) {
title += "." + extension;
}
Log.d("Commons", "Title is " + title + " mimetype is " + mimeType);
if(mimeType.startsWith("image/")) {
Cursor cursor = getContentResolver().query(mediaUri,
@ -97,10 +105,6 @@ public class ShareActivity extends AuthenticatedActivity {
cursor.moveToFirst();
dateCreated = new Date(cursor.getLong(0));
} // FIXME: Alternate way of setting dateCreated if this data is not found
} else if (mimeType.equals("audio/ogg")) {
if(!title.endsWith(".ogg") || !title.endsWith(".oga")) {
title += ".oga";
}
}
Contribution contribution = new Contribution(mediaUri, null, title, description, length, dateCreated, null, app.getCurrentAccount().name, CommonsApplication.DEFAULT_EDIT_SUMMARY);
contribution.setSource(source);

View file

@ -11,7 +11,6 @@ import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.support.v4.widget.CursorAdapter;
import android.text.AndroidCharacter;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
@ -176,8 +175,8 @@ public class ContributionsListFragment extends SherlockFragment {
if(resultCode == Activity.RESULT_OK) {
Intent shareIntent = new Intent(getActivity(), ShareActivity.class);
shareIntent.setAction(Intent.ACTION_SEND);
Log.d("Commons", "Type is " + data.getType() + " Uri is " + data.getData());
shareIntent.setType("image/*"); //FIXME: Find out appropriate mime type
shareIntent.setType(getActivity().getContentResolver().getType(data.getData()));
shareIntent.putExtra(Intent.EXTRA_STREAM, data.getData());
shareIntent.putExtra(UploadService.EXTRA_SOURCE, Contribution.SOURCE_GALLERY);
startActivity(shareIntent);