Addressing review suggestions

This commit is contained in:
Rodrigo Damazio
2011-05-26 09:58:29 -03:00
parent 412eed51cd
commit 9f3099ef2b
5 changed files with 20 additions and 13 deletions
+1 -1
View File
@@ -134,7 +134,7 @@ limitations under the License.
android:theme="@android:style/Theme.Translucent.NoTitleBar" android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:noHistory="true"> android:noHistory="true">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.SAVE" /> <action android:name="@string/save_intent_action" />
<data android:mimeType="vnd.android.cursor.item/vnd.google.track" /> <data android:mimeType="vnd.android.cursor.item/vnd.google.track" />
</intent-filter> </intent-filter>
</activity> </activity>
+3
View File
@@ -39,4 +39,7 @@ limitations under the License.
<string name="sendtogoogle_google_fusiontables_url">google.com/fusiontables</string> <string name="sendtogoogle_google_fusiontables_url">google.com/fusiontables</string>
<string name="sendtogoogle_google_mymaps_url">maps.google.com</string> <string name="sendtogoogle_google_mymaps_url">maps.google.com</string>
<string name="sendtogoogle_google_docs_url">docs.google.com</string> <string name="sendtogoogle_google_docs_url">docs.google.com</string>
<!-- Intent actions -->
<string name="save_intent_action">android.intent.action.SAVE</string>
</resources> </resources>
@@ -33,9 +33,6 @@ public abstract class Constants {
*/ */
public static final String SDCARD_TOP_DIR = "MyTracks"; public static final String SDCARD_TOP_DIR = "MyTracks";
// Intent actions
public static final String ACTION_SAVE = "android.intent.action.SAVE";
/* /*
* onActivityResult request codes: * onActivityResult request codes:
*/ */
@@ -15,7 +15,6 @@
*/ */
package com.google.android.apps.mytracks.io.file; package com.google.android.apps.mytracks.io.file;
import static com.google.android.apps.mytracks.Constants.ACTION_SAVE;
import static com.google.android.apps.mytracks.Constants.TAG; import static com.google.android.apps.mytracks.Constants.TAG;
import com.google.android.apps.mytracks.Constants; import com.google.android.apps.mytracks.Constants;
@@ -23,8 +22,8 @@ import com.google.android.apps.mytracks.DialogManager;
import com.google.android.apps.mytracks.content.MyTracksProviderUtils; import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
import com.google.android.apps.mytracks.content.TracksColumns; import com.google.android.apps.mytracks.content.TracksColumns;
import com.google.android.apps.mytracks.io.file.TrackWriterFactory.TrackFileFormat; import com.google.android.apps.mytracks.io.file.TrackWriterFactory.TrackFileFormat;
import com.google.android.apps.mytracks.util.UriUtils;
import com.google.android.apps.mytracks.util.FileUtils; import com.google.android.apps.mytracks.util.FileUtils;
import com.google.android.apps.mytracks.util.UriUtils;
import com.google.android.maps.mytracks.R; import com.google.android.maps.mytracks.R;
import android.app.Activity; import android.app.Activity;
@@ -69,7 +68,7 @@ public class SaveActivity extends Activity {
String action = intent.getAction(); String action = intent.getAction();
String type = intent.getType(); String type = intent.getType();
Uri data = intent.getData(); Uri data = intent.getData();
if (!ACTION_SAVE.equals(action) || if (!getString(R.string.save_intent_action).equals(action) ||
!TracksColumns.CONTENT_ITEMTYPE.equals(type) || !TracksColumns.CONTENT_ITEMTYPE.equals(type) ||
!UriUtils.matchesContentUri(data, TracksColumns.CONTENT_URI)) { !UriUtils.matchesContentUri(data, TracksColumns.CONTENT_URI)) {
Log.e(TAG, "Got bad save intent: " + intent); Log.e(TAG, "Got bad save intent: " + intent);
@@ -183,7 +182,7 @@ public class SaveActivity extends Activity {
Uri uri = ContentUris.withAppendedId(TracksColumns.CONTENT_URI, trackId); Uri uri = ContentUris.withAppendedId(TracksColumns.CONTENT_URI, trackId);
Intent intent = new Intent(ctx, SaveActivity.class); Intent intent = new Intent(ctx, SaveActivity.class);
intent.setAction(ACTION_SAVE); intent.setAction(ctx.getString(R.string.save_intent_action));
intent.setDataAndType(uri, TracksColumns.CONTENT_ITEMTYPE); intent.setDataAndType(uri, TracksColumns.CONTENT_ITEMTYPE);
intent.putExtra(EXTRA_FILE_FORMAT, exportFormat.ordinal()); intent.putExtra(EXTRA_FILE_FORMAT, exportFormat.ordinal());
intent.putExtra(EXTRA_SHARE_FILE, shareFile); intent.putExtra(EXTRA_SHARE_FILE, shareFile);
@@ -27,18 +27,26 @@ import java.util.List;
public class UriUtils { public class UriUtils {
public static boolean matchesContentUri(Uri uri, Uri baseContentUri) { public static boolean matchesContentUri(Uri uri, Uri baseContentUri) {
if (uri == null) return false; if (uri == null) {
return false;
}
// Check that scheme and authority are the same. // Check that scheme and authority are the same.
if (!uri.getScheme().equals(baseContentUri.getScheme())) return false; if (!uri.getScheme().equals(baseContentUri.getScheme()) ||
if (!uri.getAuthority().equals(baseContentUri.getAuthority())) return false; !uri.getAuthority().equals(baseContentUri.getAuthority())) {
return false;
}
// Checks that all the base path components are in the URI. // Checks that all the base path components are in the URI.
List<String> uriPathSegments = uri.getPathSegments(); List<String> uriPathSegments = uri.getPathSegments();
List<String> basePathSegments = baseContentUri.getPathSegments(); List<String> basePathSegments = baseContentUri.getPathSegments();
if (basePathSegments.size() > uriPathSegments.size()) return false; if (basePathSegments.size() > uriPathSegments.size()) {
return false;
}
for (int i = 0; i < basePathSegments.size(); i++) { for (int i = 0; i < basePathSegments.size(); i++) {
if (!uriPathSegments.get(i).equals(basePathSegments.get(i))) return false; if (!uriPathSegments.get(i).equals(basePathSegments.get(i))) {
return false;
}
} }
return true; return true;