forked from upstream-mirrors/OpenTracks
Addressing review suggestions
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user