Skip to content

Commit e3ce7ec

Browse files
author
Roger Hu
committed
Move code to Android Studio
- Relocate directory structure. - Port MapDemoActivity to new Google Play API. - Add Google Play to Gradle file. Use Android naming convention.
1 parent e569329 commit e3ce7ec

25 files changed

+338
-57
lines changed

.gitignore

+9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
.DS_Store
2+
13
# built application files
24
*.apk
35
*.ap_
@@ -18,3 +20,10 @@ local.properties
1820
# Eclipse project files
1921
.classpath
2022
.project
23+
24+
# Android Studio project files
25+
*.iml
26+
.gradle
27+
.idea
28+
build
29+
import-summary.txt

app/build.gradle

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
apply plugin: 'com.android.application'
2+
3+
android {
4+
compileSdkVersion 19
5+
buildToolsVersion "21.1.2"
6+
7+
defaultConfig {
8+
applicationId "com.example.mapdemo"
9+
minSdkVersion 11
10+
targetSdkVersion 18
11+
}
12+
13+
buildTypes {
14+
release {
15+
minifyEnabled false
16+
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
17+
}
18+
}
19+
}
20+
21+
dependencies {
22+
compile 'com.android.support:support-v4:21.0.3'
23+
compile 'com.google.android.gms:play-services:6.5.+'
24+
}

app/lint.xml

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<lint>
3+
</lint>
File renamed without changes.

src/com/example/mapdemo/MapDemoActivity.java app/src/main/java/com/example/mapdemo/MapDemoActivity.java

+26-19
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,22 @@
1212
import android.widget.Toast;
1313

1414
import com.google.android.gms.common.ConnectionResult;
15-
import com.google.android.gms.common.GooglePlayServicesClient;
1615
import com.google.android.gms.common.GooglePlayServicesUtil;
17-
import com.google.android.gms.location.LocationClient;
16+
import com.google.android.gms.common.api.GoogleApiClient;
17+
import com.google.android.gms.location.LocationServices;
1818
import com.google.android.gms.maps.CameraUpdate;
1919
import com.google.android.gms.maps.CameraUpdateFactory;
2020
import com.google.android.gms.maps.GoogleMap;
2121
import com.google.android.gms.maps.SupportMapFragment;
2222
import com.google.android.gms.maps.model.LatLng;
2323

2424
public class MapDemoActivity extends FragmentActivity implements
25-
GooglePlayServicesClient.ConnectionCallbacks,
26-
GooglePlayServicesClient.OnConnectionFailedListener {
25+
GoogleApiClient.ConnectionCallbacks,
26+
GoogleApiClient.OnConnectionFailedListener {
2727

2828
private SupportMapFragment mapFragment;
2929
private GoogleMap map;
30-
private LocationClient mLocationClient;
30+
private GoogleApiClient mGoogleApiClient;
3131
/*
3232
* Define a request code to send to Google Play services This code is
3333
* returned in Activity.onActivityResult
@@ -38,7 +38,11 @@ public class MapDemoActivity extends FragmentActivity implements
3838
protected void onCreate(Bundle savedInstanceState) {
3939
super.onCreate(savedInstanceState);
4040
setContentView(R.layout.map_demo_activity);
41-
mLocationClient = new LocationClient(this, this, this);
41+
mGoogleApiClient = new GoogleApiClient.Builder(this)
42+
.addApi(LocationServices.API)
43+
.addConnectionCallbacks(this)
44+
.addOnConnectionFailedListener(this).build();
45+
4246
mapFragment = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map));
4347
if (mapFragment != null) {
4448
map = mapFragment.getMap();
@@ -62,7 +66,7 @@ protected void onStart() {
6266
super.onStart();
6367
// Connect the client.
6468
if (isGooglePlayServicesAvailable()) {
65-
mLocationClient.connect();
69+
mGoogleApiClient.connect();
6670
}
6771

6872
}
@@ -73,7 +77,7 @@ protected void onStart() {
7377
@Override
7478
protected void onStop() {
7579
// Disconnecting the client invalidates it.
76-
mLocationClient.disconnect();
80+
mGoogleApiClient.disconnect();
7781
super.onStop();
7882
}
7983

@@ -91,7 +95,7 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
9195
*/
9296
switch (resultCode) {
9397
case Activity.RESULT_OK:
94-
mLocationClient.connect();
98+
mGoogleApiClient.connect();
9599
break;
96100
}
97101

@@ -131,7 +135,7 @@ private boolean isGooglePlayServicesAvailable() {
131135
@Override
132136
public void onConnected(Bundle dataBundle) {
133137
// Display the connection status
134-
Location location = mLocationClient.getLastLocation();
138+
Location location = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
135139
if (location != null) {
136140
Toast.makeText(this, "GPS location was found!", Toast.LENGTH_SHORT).show();
137141
LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
@@ -142,15 +146,18 @@ public void onConnected(Bundle dataBundle) {
142146
}
143147
}
144148

145-
/*
146-
* Called by Location Services if the connection to the location client
147-
* drops because of an error.
148-
*/
149-
@Override
150-
public void onDisconnected() {
151-
// Display the connection status
152-
Toast.makeText(this, "Disconnected. Please re-connect.", Toast.LENGTH_SHORT).show();
153-
}
149+
/*
150+
* Called by Location Services if the connection to the location client
151+
* drops because of an error.
152+
*/
153+
@Override
154+
public void onConnectionSuspended(int i) {
155+
if (i == CAUSE_SERVICE_DISCONNECTED) {
156+
Toast.makeText(this, "Disconnected. Please re-connect.", Toast.LENGTH_SHORT).show();
157+
} else if (i == CAUSE_NETWORK_LOST) {
158+
Toast.makeText(this, "Network lost. Please re-connect.", Toast.LENGTH_SHORT).show();
159+
}
160+
}
154161

155162
/*
156163
* Called by Location Services if the attempt to Location Services fails.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

build.gradle

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// Top-level build file where you can add configuration options common to all sub-projects/modules.
2+
buildscript {
3+
repositories {
4+
jcenter()
5+
}
6+
dependencies {
7+
classpath 'com.android.tools.build:gradle:1.0.0'
8+
}
9+
}
10+
11+
allprojects {
12+
repositories {
13+
jcenter()
14+
}
15+
}

gradle/wrapper/gradle-wrapper.jar

48.7 KB
Binary file not shown.
+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#Wed Apr 10 15:27:10 PDT 2013
2+
distributionBase=GRADLE_USER_HOME
3+
distributionPath=wrapper/dists
4+
zipStoreBase=GRADLE_USER_HOME
5+
zipStorePath=wrapper/dists
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip

gradlew

+164
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,164 @@
1+
#!/usr/bin/env bash
2+
3+
##############################################################################
4+
##
5+
## Gradle start up script for UN*X
6+
##
7+
##############################################################################
8+
9+
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
10+
DEFAULT_JVM_OPTS=""
11+
12+
APP_NAME="Gradle"
13+
APP_BASE_NAME=`basename "$0"`
14+
15+
# Use the maximum available, or set MAX_FD != -1 to use that value.
16+
MAX_FD="maximum"
17+
18+
warn ( ) {
19+
echo "$*"
20+
}
21+
22+
die ( ) {
23+
echo
24+
echo "$*"
25+
echo
26+
exit 1
27+
}
28+
29+
# OS specific support (must be 'true' or 'false').
30+
cygwin=false
31+
msys=false
32+
darwin=false
33+
case "`uname`" in
34+
CYGWIN* )
35+
cygwin=true
36+
;;
37+
Darwin* )
38+
darwin=true
39+
;;
40+
MINGW* )
41+
msys=true
42+
;;
43+
esac
44+
45+
# For Cygwin, ensure paths are in UNIX format before anything is touched.
46+
if $cygwin ; then
47+
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
48+
fi
49+
50+
# Attempt to set APP_HOME
51+
# Resolve links: $0 may be a link
52+
PRG="$0"
53+
# Need this for relative symlinks.
54+
while [ -h "$PRG" ] ; do
55+
ls=`ls -ld "$PRG"`
56+
link=`expr "$ls" : '.*-> \(.*\)$'`
57+
if expr "$link" : '/.*' > /dev/null; then
58+
PRG="$link"
59+
else
60+
PRG=`dirname "$PRG"`"/$link"
61+
fi
62+
done
63+
SAVED="`pwd`"
64+
cd "`dirname \"$PRG\"`/" >&-
65+
APP_HOME="`pwd -P`"
66+
cd "$SAVED" >&-
67+
68+
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
69+
70+
# Determine the Java command to use to start the JVM.
71+
if [ -n "$JAVA_HOME" ] ; then
72+
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
73+
# IBM's JDK on AIX uses strange locations for the executables
74+
JAVACMD="$JAVA_HOME/jre/sh/java"
75+
else
76+
JAVACMD="$JAVA_HOME/bin/java"
77+
fi
78+
if [ ! -x "$JAVACMD" ] ; then
79+
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
80+
81+
Please set the JAVA_HOME variable in your environment to match the
82+
location of your Java installation."
83+
fi
84+
else
85+
JAVACMD="java"
86+
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
87+
88+
Please set the JAVA_HOME variable in your environment to match the
89+
location of your Java installation."
90+
fi
91+
92+
# Increase the maximum file descriptors if we can.
93+
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
94+
MAX_FD_LIMIT=`ulimit -H -n`
95+
if [ $? -eq 0 ] ; then
96+
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
97+
MAX_FD="$MAX_FD_LIMIT"
98+
fi
99+
ulimit -n $MAX_FD
100+
if [ $? -ne 0 ] ; then
101+
warn "Could not set maximum file descriptor limit: $MAX_FD"
102+
fi
103+
else
104+
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
105+
fi
106+
fi
107+
108+
# For Darwin, add options to specify how the application appears in the dock
109+
if $darwin; then
110+
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
111+
fi
112+
113+
# For Cygwin, switch paths to Windows format before running java
114+
if $cygwin ; then
115+
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
116+
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
117+
118+
# We build the pattern for arguments to be converted via cygpath
119+
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
120+
SEP=""
121+
for dir in $ROOTDIRSRAW ; do
122+
ROOTDIRS="$ROOTDIRS$SEP$dir"
123+
SEP="|"
124+
done
125+
OURCYGPATTERN="(^($ROOTDIRS))"
126+
# Add a user-defined pattern to the cygpath arguments
127+
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
128+
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
129+
fi
130+
# Now convert the arguments - kludge to limit ourselves to /bin/sh
131+
i=0
132+
for arg in "$@" ; do
133+
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
134+
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
135+
136+
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
137+
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
138+
else
139+
eval `echo args$i`="\"$arg\""
140+
fi
141+
i=$((i+1))
142+
done
143+
case $i in
144+
(0) set -- ;;
145+
(1) set -- "$args0" ;;
146+
(2) set -- "$args0" "$args1" ;;
147+
(3) set -- "$args0" "$args1" "$args2" ;;
148+
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
149+
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
150+
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
151+
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
152+
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
153+
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
154+
esac
155+
fi
156+
157+
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
158+
function splitJvmOpts() {
159+
JVM_OPTS=("$@")
160+
}
161+
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
162+
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
163+
164+
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"

0 commit comments

Comments
 (0)