From 625339cb51bdd8e633e57c87cb7a2426021b160f Mon Sep 17 00:00:00 2001 From: YuviPanda Date: Mon, 11 Mar 2013 16:11:25 +0530 Subject: [PATCH] Append extension in code rather than leave it to the server This fixes problems where titles have a '.' in them --- .../java/org/wikimedia/commons/ShareActivity.java | 12 ++++++++---- .../contributions/ContributionsListFragment.java | 5 ++--- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/commons/src/main/java/org/wikimedia/commons/ShareActivity.java b/commons/src/main/java/org/wikimedia/commons/ShareActivity.java index 8d249de11..963be11d4 100644 --- a/commons/src/main/java/org/wikimedia/commons/ShareActivity.java +++ b/commons/src/main/java/org/wikimedia/commons/ShareActivity.java @@ -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); diff --git a/commons/src/main/java/org/wikimedia/commons/contributions/ContributionsListFragment.java b/commons/src/main/java/org/wikimedia/commons/contributions/ContributionsListFragment.java index 9e6ba2589..eeb596924 100644 --- a/commons/src/main/java/org/wikimedia/commons/contributions/ContributionsListFragment.java +++ b/commons/src/main/java/org/wikimedia/commons/contributions/ContributionsListFragment.java @@ -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);