decouple activities that don't need google api client, give devicelocation its own google api client, preserve location across activity jumps, add misc folder for varios assets used in app promotion
This commit is contained in:
parent
c8e91cc9ef
commit
b06d80c9da
|
@ -18,7 +18,7 @@ import com.eleith.calchoochoo.utils.RxBusMessage.RxMessageKeys;
|
||||||
import com.eleith.calchoochoo.utils.RxBusMessage.RxMessageLocation;
|
import com.eleith.calchoochoo.utils.RxBusMessage.RxMessageLocation;
|
||||||
import com.eleith.calchoochoo.utils.RxBusMessage.RxMessageStops;
|
import com.eleith.calchoochoo.utils.RxBusMessage.RxMessageStops;
|
||||||
import com.eleith.calchoochoo.utils.StopUtils;
|
import com.eleith.calchoochoo.utils.StopUtils;
|
||||||
import com.google.android.gms.common.api.GoogleApiClient;
|
import com.google.android.gms.maps.model.LatLng;
|
||||||
|
|
||||||
import org.parceler.Parcels;
|
import org.parceler.Parcels;
|
||||||
|
|
||||||
|
@ -37,12 +37,11 @@ public class MapSearchActivity extends AppCompatActivity {
|
||||||
private ArrayList<Stop> stops;
|
private ArrayList<Stop> stops;
|
||||||
private Location location;
|
private Location location;
|
||||||
private ChooChooDrawer chooChooDrawer;
|
private ChooChooDrawer chooChooDrawer;
|
||||||
|
private LatLng myDefaultLatLng = new LatLng(37.3860517, -122.0838511);
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
RxBus rxBus;
|
RxBus rxBus;
|
||||||
@Inject
|
@Inject
|
||||||
GoogleApiClient googleApiClient;
|
|
||||||
@Inject
|
|
||||||
ChooChooRouterManager chooChooRouterManager;
|
ChooChooRouterManager chooChooRouterManager;
|
||||||
@Inject
|
@Inject
|
||||||
ChooChooLoader chooChooLoader;
|
ChooChooLoader chooChooLoader;
|
||||||
|
@ -71,16 +70,13 @@ public class MapSearchActivity extends AppCompatActivity {
|
||||||
if (stops == null) {
|
if (stops == null) {
|
||||||
chooChooLoader.loadParentStops();
|
chooChooLoader.loadParentStops();
|
||||||
}
|
}
|
||||||
|
|
||||||
deviceLocation.requestLocationUpdates();
|
|
||||||
deviceLocation.requestLocation();
|
deviceLocation.requestLocation();
|
||||||
|
deviceLocation.listenForLocationUpdates();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onStart() {
|
protected void onStart() {
|
||||||
super.onStart();
|
super.onStart();
|
||||||
googleApiClient.connect();
|
|
||||||
|
|
||||||
if (subscription.isUnsubscribed()) {
|
if (subscription.isUnsubscribed()) {
|
||||||
subscription = rxBus.observeEvents(RxMessage.class).subscribe(handleRxMessages());
|
subscription = rxBus.observeEvents(RxMessage.class).subscribe(handleRxMessages());
|
||||||
}
|
}
|
||||||
|
@ -88,14 +84,15 @@ public class MapSearchActivity extends AppCompatActivity {
|
||||||
if (subscriptionLocation.isUnsubscribed()) {
|
if (subscriptionLocation.isUnsubscribed()) {
|
||||||
subscriptionLocation = rxBus.observeEvents(RxMessageLocation.class).take(1).subscribe(handleRxLocationMessages());
|
subscriptionLocation = rxBus.observeEvents(RxMessageLocation.class).take(1).subscribe(handleRxLocationMessages());
|
||||||
}
|
}
|
||||||
|
deviceLocation.listenForLocationUpdates();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onStop() {
|
protected void onStop() {
|
||||||
super.onStop();
|
super.onStop();
|
||||||
googleApiClient.disconnect();
|
|
||||||
subscription.unsubscribe();
|
subscription.unsubscribe();
|
||||||
subscriptionLocation.unsubscribe();
|
subscriptionLocation.unsubscribe();
|
||||||
|
deviceLocation.stopListeningForLocationUpdates();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -106,7 +103,6 @@ public class MapSearchActivity extends AppCompatActivity {
|
||||||
@Override
|
@Override
|
||||||
protected void onResume() {
|
protected void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
googleApiClient.reconnect();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -172,6 +168,11 @@ public class MapSearchActivity extends AppCompatActivity {
|
||||||
@Override
|
@Override
|
||||||
public void call(RxMessageLocation rxMessage) {
|
public void call(RxMessageLocation rxMessage) {
|
||||||
location = rxMessage.getMessage();
|
location = rxMessage.getMessage();
|
||||||
|
if (location == null) {
|
||||||
|
location = new Location("default");
|
||||||
|
location.setLongitude(myDefaultLatLng.longitude);
|
||||||
|
location.setLatitude(myDefaultLatLng.latitude);
|
||||||
|
}
|
||||||
initializeFragments();
|
initializeFragments();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -42,8 +42,6 @@ public class StopActivity extends AppCompatActivity {
|
||||||
@Inject
|
@Inject
|
||||||
RxBus rxBus;
|
RxBus rxBus;
|
||||||
@Inject
|
@Inject
|
||||||
GoogleApiClient googleApiClient;
|
|
||||||
@Inject
|
|
||||||
ChooChooRouterManager chooChooRouterManager;
|
ChooChooRouterManager chooChooRouterManager;
|
||||||
@Inject
|
@Inject
|
||||||
ChooChooLoader chooChooLoader;
|
ChooChooLoader chooChooLoader;
|
||||||
|
@ -80,7 +78,6 @@ public class StopActivity extends AppCompatActivity {
|
||||||
@Override
|
@Override
|
||||||
protected void onStart() {
|
protected void onStart() {
|
||||||
super.onStart();
|
super.onStart();
|
||||||
googleApiClient.connect();
|
|
||||||
if (subscription.isUnsubscribed()) {
|
if (subscription.isUnsubscribed()) {
|
||||||
subscription = rxBus.observeEvents(RxMessage.class).subscribe(new HandleRxMessages());
|
subscription = rxBus.observeEvents(RxMessage.class).subscribe(new HandleRxMessages());
|
||||||
}
|
}
|
||||||
|
@ -89,7 +86,6 @@ public class StopActivity extends AppCompatActivity {
|
||||||
@Override
|
@Override
|
||||||
protected void onStop() {
|
protected void onStop() {
|
||||||
super.onStop();
|
super.onStop();
|
||||||
googleApiClient.disconnect();
|
|
||||||
subscription.unsubscribe();
|
subscription.unsubscribe();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -101,7 +97,6 @@ public class StopActivity extends AppCompatActivity {
|
||||||
@Override
|
@Override
|
||||||
protected void onResume() {
|
protected void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
googleApiClient.reconnect();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -39,8 +39,6 @@ public class StopSearchActivity extends AppCompatActivity {
|
||||||
@Inject
|
@Inject
|
||||||
RxBus rxBus;
|
RxBus rxBus;
|
||||||
@Inject
|
@Inject
|
||||||
GoogleApiClient googleApiClient;
|
|
||||||
@Inject
|
|
||||||
ChooChooRouterManager chooChooRouterManager;
|
ChooChooRouterManager chooChooRouterManager;
|
||||||
@Inject
|
@Inject
|
||||||
ChooChooLoader chooChooLoader;
|
ChooChooLoader chooChooLoader;
|
||||||
|
@ -66,13 +64,11 @@ public class StopSearchActivity extends AppCompatActivity {
|
||||||
@Override
|
@Override
|
||||||
protected void onStart() {
|
protected void onStart() {
|
||||||
super.onStart();
|
super.onStart();
|
||||||
googleApiClient.connect();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onStop() {
|
protected void onStop() {
|
||||||
super.onStop();
|
super.onStop();
|
||||||
googleApiClient.disconnect();
|
|
||||||
subscription.unsubscribe();
|
subscription.unsubscribe();
|
||||||
subscriptionLocation.unsubscribe();
|
subscriptionLocation.unsubscribe();
|
||||||
KeyboardUtils.hide(this);
|
KeyboardUtils.hide(this);
|
||||||
|
@ -86,7 +82,6 @@ public class StopSearchActivity extends AppCompatActivity {
|
||||||
@Override
|
@Override
|
||||||
protected void onResume() {
|
protected void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
googleApiClient.reconnect();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -61,8 +61,6 @@ public class TripActivity extends AppCompatActivity {
|
||||||
@Inject
|
@Inject
|
||||||
RxBus rxBus;
|
RxBus rxBus;
|
||||||
@Inject
|
@Inject
|
||||||
GoogleApiClient googleApiClient;
|
|
||||||
@Inject
|
|
||||||
ChooChooRouterManager chooChooRouterManager;
|
ChooChooRouterManager chooChooRouterManager;
|
||||||
@Inject
|
@Inject
|
||||||
ChooChooLoader chooChooLoader;
|
ChooChooLoader chooChooLoader;
|
||||||
|
@ -151,7 +149,6 @@ public class TripActivity extends AppCompatActivity {
|
||||||
@Override
|
@Override
|
||||||
protected void onStart() {
|
protected void onStart() {
|
||||||
super.onStart();
|
super.onStart();
|
||||||
googleApiClient.connect();
|
|
||||||
if (subscription.isUnsubscribed()) {
|
if (subscription.isUnsubscribed()) {
|
||||||
subscription = rxBus.observeEvents(RxMessage.class).subscribe(new HandleRxMessages());
|
subscription = rxBus.observeEvents(RxMessage.class).subscribe(new HandleRxMessages());
|
||||||
}
|
}
|
||||||
|
@ -160,7 +157,6 @@ public class TripActivity extends AppCompatActivity {
|
||||||
@Override
|
@Override
|
||||||
protected void onStop() {
|
protected void onStop() {
|
||||||
super.onStop();
|
super.onStop();
|
||||||
googleApiClient.disconnect();
|
|
||||||
subscription.unsubscribe();
|
subscription.unsubscribe();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -172,7 +168,6 @@ public class TripActivity extends AppCompatActivity {
|
||||||
@Override
|
@Override
|
||||||
protected void onResume() {
|
protected void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
googleApiClient.reconnect();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -47,8 +47,6 @@ public class TripFilterActivity extends AppCompatActivity {
|
||||||
@Inject
|
@Inject
|
||||||
RxBus rxBus;
|
RxBus rxBus;
|
||||||
@Inject
|
@Inject
|
||||||
GoogleApiClient googleApiClient;
|
|
||||||
@Inject
|
|
||||||
ChooChooRouterManager chooChooRouterManager;
|
ChooChooRouterManager chooChooRouterManager;
|
||||||
@Inject
|
@Inject
|
||||||
ChooChooLoader chooChooLoader;
|
ChooChooLoader chooChooLoader;
|
||||||
|
@ -99,14 +97,12 @@ public class TripFilterActivity extends AppCompatActivity {
|
||||||
@Override
|
@Override
|
||||||
protected void onStart() {
|
protected void onStart() {
|
||||||
super.onStart();
|
super.onStart();
|
||||||
googleApiClient.connect();
|
|
||||||
subscription = rxBus.observeEvents(RxMessage.class).subscribe(handleRxMessage());
|
subscription = rxBus.observeEvents(RxMessage.class).subscribe(handleRxMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onStop() {
|
protected void onStop() {
|
||||||
super.onStop();
|
super.onStop();
|
||||||
googleApiClient.disconnect();
|
|
||||||
fabShow();
|
fabShow();
|
||||||
if (subscriptionTrips != null) {
|
if (subscriptionTrips != null) {
|
||||||
subscriptionTrips.unsubscribe();
|
subscriptionTrips.unsubscribe();
|
||||||
|
@ -122,7 +118,6 @@ public class TripFilterActivity extends AppCompatActivity {
|
||||||
@Override
|
@Override
|
||||||
protected void onResume() {
|
protected void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
googleApiClient.reconnect();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -31,12 +31,4 @@ public class AppModule {
|
||||||
public Context provideApplicationContext() {
|
public Context provideApplicationContext() {
|
||||||
return application;
|
return application;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
GoogleApiClient providesGoogleApiClient(Context context) {
|
|
||||||
return new GoogleApiClient.Builder(context)
|
|
||||||
.addApi(LocationServices.API)
|
|
||||||
.build();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,7 +68,7 @@ public class ChooChooModule {
|
||||||
|
|
||||||
@ChooChooScope
|
@ChooChooScope
|
||||||
@Provides
|
@Provides
|
||||||
DeviceLocation providesDeviceLocation(RxBus rxBus, GoogleApiClient googleApiClient) {
|
DeviceLocation providesDeviceLocation(RxBus rxBus) {
|
||||||
return new DeviceLocation(rxBus, googleApiClient, activity);
|
return new DeviceLocation(rxBus, activity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,7 +31,7 @@ public class ChooChooWidgetConfigureModule {
|
||||||
|
|
||||||
@ChooChooWidgetConfigureScope
|
@ChooChooWidgetConfigureScope
|
||||||
@Provides
|
@Provides
|
||||||
DeviceLocation providesDeviceLocation(RxBus rxBus, GoogleApiClient googleApiClient) {
|
DeviceLocation providesDeviceLocation(RxBus rxBus) {
|
||||||
return new DeviceLocation(rxBus, googleApiClient, chooChooWidgetConfigure);
|
return new DeviceLocation(rxBus, chooChooWidgetConfigure);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,6 @@ import com.eleith.calchoochoo.R;
|
||||||
import com.eleith.calchoochoo.data.ChooChooLoader;
|
import com.eleith.calchoochoo.data.ChooChooLoader;
|
||||||
import com.eleith.calchoochoo.data.Stop;
|
import com.eleith.calchoochoo.data.Stop;
|
||||||
import com.eleith.calchoochoo.utils.BundleKeys;
|
import com.eleith.calchoochoo.utils.BundleKeys;
|
||||||
import com.eleith.calchoochoo.utils.DeviceLocation;
|
|
||||||
import com.eleith.calchoochoo.utils.DrawableUtils;
|
import com.eleith.calchoochoo.utils.DrawableUtils;
|
||||||
import com.eleith.calchoochoo.utils.MapUtils;
|
import com.eleith.calchoochoo.utils.MapUtils;
|
||||||
import com.eleith.calchoochoo.utils.RxBus;
|
import com.eleith.calchoochoo.utils.RxBus;
|
||||||
|
@ -54,7 +53,6 @@ public class MapSearchFragment extends Fragment implements OnMapReadyCallback {
|
||||||
private ArrayList<Stop> stops = null;
|
private ArrayList<Stop> stops = null;
|
||||||
private Location lastLocation;
|
private Location lastLocation;
|
||||||
private Marker locationMarker;
|
private Marker locationMarker;
|
||||||
private LatLng myDefaultLatLng = new LatLng(37.04, -121.6);
|
|
||||||
private Subscription subscriptionRxBus;
|
private Subscription subscriptionRxBus;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
|
@ -63,8 +61,6 @@ public class MapSearchFragment extends Fragment implements OnMapReadyCallback {
|
||||||
ChooChooRouterManager chooChooRouterManager;
|
ChooChooRouterManager chooChooRouterManager;
|
||||||
@Inject
|
@Inject
|
||||||
ChooChooLoader chooChooLoader;
|
ChooChooLoader chooChooLoader;
|
||||||
@Inject
|
|
||||||
DeviceLocation deviceLocation;
|
|
||||||
|
|
||||||
@BindView(R.id.map_search_input)
|
@BindView(R.id.map_search_input)
|
||||||
EditText mapSearchInput;
|
EditText mapSearchInput;
|
||||||
|
@ -132,12 +128,6 @@ public class MapSearchFragment extends Fragment implements OnMapReadyCallback {
|
||||||
|
|
||||||
MapUtils.moveMapToLocation(lastLocation, googleMap, new CameraPosition.Builder().zoom(13));
|
MapUtils.moveMapToLocation(lastLocation, googleMap, new CameraPosition.Builder().zoom(13));
|
||||||
setMyLocationMarker(lastLocation);
|
setMyLocationMarker(lastLocation);
|
||||||
} else {
|
|
||||||
myLatLng = myDefaultLatLng;
|
|
||||||
cameraBuilder.target(myLatLng);
|
|
||||||
CameraPosition cameraPosition = cameraBuilder.build();
|
|
||||||
googleMap.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
|
|
||||||
googleMap.setOnMarkerClickListener(new OnMarkerClickListener());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
subscriptionRxBus = rxBus.observeEvents(RxMessage.class).subscribe(handleRxMessages());
|
subscriptionRxBus = rxBus.observeEvents(RxMessage.class).subscribe(handleRxMessages());
|
||||||
|
@ -200,6 +190,9 @@ public class MapSearchFragment extends Fragment implements OnMapReadyCallback {
|
||||||
@Override
|
@Override
|
||||||
public void onStart() {
|
public void onStart() {
|
||||||
super.onStart();
|
super.onStart();
|
||||||
|
if (subscriptionRxBus != null && subscriptionRxBus.isUnsubscribed()) {
|
||||||
|
subscriptionRxBus = rxBus.observeEvents(RxMessage.class).subscribe(handleRxMessages());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -224,6 +217,10 @@ public class MapSearchFragment extends Fragment implements OnMapReadyCallback {
|
||||||
@Override
|
@Override
|
||||||
public void onSaveInstanceState(Bundle outState) {
|
public void onSaveInstanceState(Bundle outState) {
|
||||||
googleMapView.onSaveInstanceState(outState);
|
googleMapView.onSaveInstanceState(outState);
|
||||||
|
|
||||||
|
outState.putParcelable(BundleKeys.STOPS, Parcels.wrap(stops));
|
||||||
|
outState.putParcelable(BundleKeys.LOCATION, lastLocation);
|
||||||
|
|
||||||
super.onSaveInstanceState(outState);
|
super.onSaveInstanceState(outState);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -250,9 +247,11 @@ public class MapSearchFragment extends Fragment implements OnMapReadyCallback {
|
||||||
LatLng myLatLng = new LatLng(lastLocation.getLatitude(), lastLocation.getLongitude());
|
LatLng myLatLng = new LatLng(lastLocation.getLatitude(), lastLocation.getLongitude());
|
||||||
CameraPosition cameraPosition = new CameraPosition.Builder().zoom(13).target(myLatLng).build();
|
CameraPosition cameraPosition = new CameraPosition.Builder().zoom(13).target(myLatLng).build();
|
||||||
googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
|
googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
|
||||||
} else if (rxMessage.isMessageValidFor(RxMessageKeys.MY_LOCATION_UPDATE)) {
|
} else if (rxMessage.isMessageValidFor(RxMessageKeys.MY_LOCATION_UPDATE) || rxMessage.isMessageValidFor(RxMessageKeys.MY_LOCATION)) {
|
||||||
Location location = ((RxMessageLocation) rxMessage).getMessage();
|
Location location = ((RxMessageLocation) rxMessage).getMessage();
|
||||||
setMyLocationMarker(location);
|
if (location != null) {
|
||||||
|
setMyLocationMarker(location);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -15,7 +15,6 @@ import com.google.android.gms.common.ConnectionResult;
|
||||||
import com.google.android.gms.common.api.GoogleApiClient;
|
import com.google.android.gms.common.api.GoogleApiClient;
|
||||||
import com.google.android.gms.location.LocationRequest;
|
import com.google.android.gms.location.LocationRequest;
|
||||||
import com.google.android.gms.location.LocationServices;
|
import com.google.android.gms.location.LocationServices;
|
||||||
import com.google.android.gms.maps.model.LatLng;
|
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
@ -28,56 +27,46 @@ public class DeviceLocation
|
||||||
private RxBus rxBus;
|
private RxBus rxBus;
|
||||||
private GoogleApiClient googleApiClient;
|
private GoogleApiClient googleApiClient;
|
||||||
private Activity activity;
|
private Activity activity;
|
||||||
private Boolean googleApiClientReady = false;
|
|
||||||
private int requestedUpdates = 0;
|
private int requestedUpdates = 0;
|
||||||
private int requestedLocation = 0;
|
private int requestedLocation = 0;
|
||||||
private Boolean requestingUpdates = false;
|
private Boolean requestingUpdates = false;
|
||||||
private LatLng myDefaultLatLng = new LatLng(37.04, -121.6);
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public DeviceLocation(RxBus rxBus, GoogleApiClient googleApiClient, Activity activity) {
|
public DeviceLocation(RxBus rxBus, Activity activity) {
|
||||||
this.rxBus = rxBus;
|
this.rxBus = rxBus;
|
||||||
this.googleApiClient = googleApiClient;
|
|
||||||
this.activity = activity;
|
this.activity = activity;
|
||||||
|
googleApiClient = new GoogleApiClient.Builder(activity).addApi(LocationServices.API).build();
|
||||||
googleApiClient.registerConnectionFailedListener(this);
|
googleApiClient.registerConnectionFailedListener(this);
|
||||||
googleApiClient.registerConnectionCallbacks(this);
|
googleApiClient.registerConnectionCallbacks(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void connectGoogleApiClient() {
|
||||||
|
if (!googleApiClient.isConnected() && !googleApiClient.isConnecting()) {
|
||||||
|
googleApiClient.connect();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void requestLocation() {
|
public void requestLocation() {
|
||||||
if (googleApiClientReady) {
|
if (googleApiClient.isConnected()) {
|
||||||
if (android.os.Build.VERSION.SDK_INT >= 23) {
|
if (android.os.Build.VERSION.SDK_INT >= 23) {
|
||||||
if (activity.checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
|
if (activity.checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
|
||||||
Location location = LocationServices.FusedLocationApi.getLastLocation(googleApiClient);
|
Location location = LocationServices.FusedLocationApi.getLastLocation(googleApiClient);
|
||||||
if (location != null) {
|
sendLastLocation(location);
|
||||||
onLocationChanged(location);
|
|
||||||
} else {
|
|
||||||
location = new Location("default");
|
|
||||||
location.setLatitude(myDefaultLatLng.latitude);
|
|
||||||
location.setLongitude(myDefaultLatLng.longitude);
|
|
||||||
onLocationChanged(location);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
} else {
|
} else {
|
||||||
activity.requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, Permissions.READ_GPS);
|
activity.requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, Permissions.READ_GPS);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
Location location = LocationServices.FusedLocationApi.getLastLocation(googleApiClient);
|
||||||
|
sendLastLocation(location);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Location location = LocationServices.FusedLocationApi.getLastLocation(googleApiClient);
|
requestedLocation++;
|
||||||
if (location != null) {
|
connectGoogleApiClient();
|
||||||
onLocationChanged(location);
|
|
||||||
} else {
|
|
||||||
location = new Location("default");
|
|
||||||
location.setLatitude(myDefaultLatLng.latitude);
|
|
||||||
location.setLongitude(myDefaultLatLng.longitude);
|
|
||||||
onLocationChanged(location);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
requestedLocation++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void requestLocationUpdates() {
|
public void listenForLocationUpdates() {
|
||||||
if (googleApiClientReady) {
|
if (googleApiClient.isConnected()) {
|
||||||
if (android.os.Build.VERSION.SDK_INT >= 23) {
|
if (android.os.Build.VERSION.SDK_INT >= 23) {
|
||||||
if (activity.checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
|
if (activity.checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
|
||||||
if (!requestingUpdates) {
|
if (!requestingUpdates) {
|
||||||
|
@ -88,7 +77,6 @@ public class DeviceLocation
|
||||||
LocationServices.FusedLocationApi.requestLocationUpdates(googleApiClient, locationRequest, this);
|
LocationServices.FusedLocationApi.requestLocationUpdates(googleApiClient, locationRequest, this);
|
||||||
requestingUpdates = true;
|
requestingUpdates = true;
|
||||||
}
|
}
|
||||||
return;
|
|
||||||
} else {
|
} else {
|
||||||
activity.requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, Permissions.READ_GPS);
|
activity.requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, Permissions.READ_GPS);
|
||||||
}
|
}
|
||||||
|
@ -101,19 +89,22 @@ public class DeviceLocation
|
||||||
LocationServices.FusedLocationApi.requestLocationUpdates(googleApiClient, locationRequest, this);
|
LocationServices.FusedLocationApi.requestLocationUpdates(googleApiClient, locationRequest, this);
|
||||||
requestingUpdates = true;
|
requestingUpdates = true;
|
||||||
}
|
}
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
requestedUpdates++;
|
||||||
|
connectGoogleApiClient();
|
||||||
}
|
}
|
||||||
requestedUpdates++;
|
}
|
||||||
|
|
||||||
|
public void stopListeningForLocationUpdates() {
|
||||||
|
requestingUpdates = false;
|
||||||
|
googleApiClient.disconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onConnected(@Nullable Bundle bundle) {
|
public void onConnected(@Nullable Bundle bundle) {
|
||||||
googleApiClientReady = true;
|
|
||||||
requestingUpdates = false;
|
|
||||||
|
|
||||||
if (requestedUpdates > 0) {
|
if (requestedUpdates > 0) {
|
||||||
requestLocationUpdates();
|
listenForLocationUpdates();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (requestedLocation > 0) {
|
if (requestedLocation > 0) {
|
||||||
|
@ -123,19 +114,23 @@ public class DeviceLocation
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onConnectionSuspended(int i) {
|
public void onConnectionSuspended(int i) {
|
||||||
googleApiClientReady = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
|
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
|
||||||
googleApiClientReady = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLocationChanged(Location location) {
|
public void onLocationChanged(Location location) {
|
||||||
if (location != null) {
|
rxBus.send(new RxMessageLocation(RxMessageKeys.MY_LOCATION_UPDATE, location));
|
||||||
rxBus.send(new RxMessageLocation(RxMessageKeys.MY_LOCATION_UPDATE, location));
|
}
|
||||||
|
|
||||||
|
private void sendLastLocation(Location location) {
|
||||||
|
requestedLocation--;
|
||||||
|
if (requestedUpdates == 0 && !requestingUpdates && requestedLocation == 0) {
|
||||||
|
googleApiClient.disconnect();
|
||||||
}
|
}
|
||||||
|
rxBus.send(new RxMessageLocation(RxMessageKeys.MY_LOCATION, location));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -144,7 +139,7 @@ public class DeviceLocation
|
||||||
case Permissions.READ_GPS: {
|
case Permissions.READ_GPS: {
|
||||||
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
||||||
if (requestedUpdates > 0) {
|
if (requestedUpdates > 0) {
|
||||||
requestLocationUpdates();
|
listenForLocationUpdates();
|
||||||
} else if (requestedLocation > 0) {
|
} else if (requestedLocation > 0) {
|
||||||
requestLocation();
|
requestLocation();
|
||||||
}
|
}
|
||||||
|
@ -154,5 +149,4 @@ public class DeviceLocation
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
|
@ -0,0 +1,135 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
version="1.1"
|
||||||
|
id="レイヤー_1"
|
||||||
|
x="0px"
|
||||||
|
y="0px"
|
||||||
|
width="128px"
|
||||||
|
height="128px"
|
||||||
|
viewBox="0 0 128 128"
|
||||||
|
enable-background="new 0 0 128 128"
|
||||||
|
xml:space="preserve"><metadata
|
||||||
|
id="metadata4319"><rdf:RDF><cc:Work
|
||||||
|
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||||
|
id="defs4317"><filter
|
||||||
|
style="color-interpolation-filters:sRGB"
|
||||||
|
id="filter4730-3"><feFlood
|
||||||
|
flood-opacity="0.498039"
|
||||||
|
flood-color="rgb(0,0,0)"
|
||||||
|
result="flood"
|
||||||
|
id="feFlood4732-6" /><feComposite
|
||||||
|
in="flood"
|
||||||
|
in2="SourceGraphic"
|
||||||
|
operator="in"
|
||||||
|
result="composite1"
|
||||||
|
id="feComposite4734-7" /><feGaussianBlur
|
||||||
|
in="composite1"
|
||||||
|
stdDeviation="0.5"
|
||||||
|
result="blur"
|
||||||
|
id="feGaussianBlur4736-5" /><feOffset
|
||||||
|
dx="0.5"
|
||||||
|
dy="0.5"
|
||||||
|
result="offset"
|
||||||
|
id="feOffset4738-3" /><feComposite
|
||||||
|
in="SourceGraphic"
|
||||||
|
in2="offset"
|
||||||
|
operator="over"
|
||||||
|
result="composite2"
|
||||||
|
id="feComposite4740-5" /></filter></defs><path
|
||||||
|
style="fill:#ffc107;fill-opacity:1;filter:url(#filter4730-3)"
|
||||||
|
d="M 128.07891,63.710147 A 63.924564,63.924564 0 0 1 64.154345,127.63472 63.924564,63.924564 0 0 1 0.22978089,63.710147 63.924564,63.924564 0 0 1 64.154345,-0.21441708 63.924564,63.924564 0 0 1 128.07891,63.710147 Z"
|
||||||
|
id="path4321" /><g
|
||||||
|
id="g4247"
|
||||||
|
transform="matrix(0.80543844,0,0,0.83319532,13.416159,3.149781)"
|
||||||
|
clip-path="none"><path
|
||||||
|
d="m 64.35,72.12 c -3.31,0 -5.99,-2.23 -5.99,-4.98 l 0,-13.92 c 0,-2.74 2.68,-4.97 5.99,-4.97 3.3,0 5.99,2.22 5.99,4.97 l 0,13.92 c 0.01,2.74 -2.68,4.98 -5.99,4.98 z"
|
||||||
|
id="path4249"
|
||||||
|
style="fill:#ed6c30" /><path
|
||||||
|
d="m 49.29,75.75 c -3.31,0 -5.98,-2.23 -5.98,-4.97 l 0,-13.91 c 0,-2.75 2.67,-4.98 5.98,-4.98 3.31,0 6,2.22 6,4.98 l 0,13.92 c -0.01,2.73 -2.7,4.96 -6,4.96 z"
|
||||||
|
id="path4251"
|
||||||
|
style="fill:#ed6c30" /><path
|
||||||
|
style="fill:#2f2f2f"
|
||||||
|
d="m 26.440001,95.779999 95.409999,0 0,15.910001 -95.409999,0 z"
|
||||||
|
id="rect4253" /><path
|
||||||
|
style="fill:#ed6c30"
|
||||||
|
d="m 13.36,63.23 91.81,0 0,37.41 -91.81,0 z"
|
||||||
|
id="rect4255" /><path
|
||||||
|
style="fill:#ed6c30"
|
||||||
|
d="m 77.940002,39.580002 43.919998,0 0,61.059998 -43.919998,0 z"
|
||||||
|
id="rect4257" /><g
|
||||||
|
id="g4259"><path
|
||||||
|
d="m 35.04,63.24 c 4.26,0 7.72,8.38 7.72,18.71 0,10.33 -3.46,18.7 -7.72,18.7 -4.27,0 -7.73,-8.37 -7.73,-18.7 0.01,-10.33 3.47,-18.71 7.73,-18.71 z"
|
||||||
|
id="path4261"
|
||||||
|
style="fill:#2f2f2f" /><path
|
||||||
|
d="m 35.04,101.69 c -4.92,0 -8.77,-8.67 -8.77,-19.74 0,-11.07 3.85,-19.74 8.77,-19.74 4.91,0 8.76,8.67 8.76,19.74 0,11.07 -3.85,19.74 -8.76,19.74 z m 0,-37.41 c -3.16,0 -6.69,7.26 -6.69,17.67 0,10.41 3.53,17.66 6.69,17.66 3.16,0 6.68,-7.25 6.68,-17.66 0,-10.41 -3.52,-17.67 -6.68,-17.67 z"
|
||||||
|
id="path4263"
|
||||||
|
style="fill:#fcc21b" /></g><path
|
||||||
|
style="fill:#2f2f2f"
|
||||||
|
d="m 13.79,63.209999 21.780001,0 0,37.930001 -21.780001,0 z"
|
||||||
|
id="rect4265" /><path
|
||||||
|
clip-path="none"
|
||||||
|
style="fill:#2f2f2f"
|
||||||
|
d="m 71.959999,32.66 55.890001,0 0,6.93 -55.890001,0 z"
|
||||||
|
id="rect4267" /><path
|
||||||
|
style="fill:#2f2f2f"
|
||||||
|
d="m 44.49,33.93 -9.05,29.3 -14.52,0 -9.05,-29.3 z"
|
||||||
|
id="polygon4269" /><path
|
||||||
|
style="fill:#2f2f2f"
|
||||||
|
d="m 44.49,33.93 -4.65,-10.37 -23.53,0 -4.44,10.37 z"
|
||||||
|
id="polygon4271" /><path
|
||||||
|
style="fill:#2f2f2f"
|
||||||
|
d="m 13.36,100.64 -13.21,19.55 28.52,0 0,-19.55 z"
|
||||||
|
id="polygon4273" /><path
|
||||||
|
d="m 116.51,45.55 c 0,-1.54 -1.25,-2.8 -2.81,-2.8 l -12.51,0 c -1.56,0 -2.83,1.26 -2.83,2.8 l 0,21.64 c 0,1.55 1.27,2.8 2.83,2.8 l 12.51,0 c 1.56,0 2.81,-1.24 2.81,-2.8 l 0,-21.64 z"
|
||||||
|
id="path4275"
|
||||||
|
style="fill:#ffffff" /><path
|
||||||
|
style="fill:#2f2f2f"
|
||||||
|
d="m 0.15000001,114.26 28.51999999,0 0,5.93 -28.51999999,0 z"
|
||||||
|
id="rect4277" /><g
|
||||||
|
id="g4279"><path
|
||||||
|
d="m 82.79,105.02 c 0,8.53 -6.91,15.44 -15.42,15.44 -8.53,0 -15.45,-6.91 -15.45,-15.44 0,-8.53 6.92,-15.44 15.45,-15.44 8.52,0 15.42,6.91 15.42,15.44 z"
|
||||||
|
id="path4281"
|
||||||
|
style="fill:#78a3ad" /></g><g
|
||||||
|
id="g4283"><path
|
||||||
|
d="m 76.25,105.02 c 0,4.91 -3.98,8.9 -8.89,8.9 -4.92,0 -8.91,-3.98 -8.91,-8.9 0,-4.92 3.99,-8.89 8.91,-8.89 4.91,0 8.89,3.98 8.89,8.89 z"
|
||||||
|
id="path4285"
|
||||||
|
style="fill:#2f2f2f" /></g><g
|
||||||
|
id="g4287"><path
|
||||||
|
d="m 113.68,105.02 c 0,8.53 -6.91,15.44 -15.43,15.44 -8.53,0 -15.45,-6.91 -15.45,-15.44 0,-8.53 6.92,-15.44 15.45,-15.44 8.52,0 15.43,6.91 15.43,15.44 z"
|
||||||
|
id="path4289"
|
||||||
|
style="fill:#78a3ad" /></g><g
|
||||||
|
id="g4291"><path
|
||||||
|
d="m 107.13,105.02 c 0,4.91 -3.98,8.9 -8.9,8.9 -4.91,0 -8.9,-3.98 -8.9,-8.9 0,-4.92 3.99,-8.89 8.9,-8.89 4.92,0 8.9,3.98 8.9,8.89 z"
|
||||||
|
id="path4293"
|
||||||
|
style="fill:#2f2f2f" /></g><path
|
||||||
|
d="m 70.04,104.25 c -1.42,0 -2.58,-1.16 -2.58,-2.59 l 0,0 c 0,-1.42 1.16,-2.58 2.58,-2.58 l 25.54,0 c 1.42,0 2.57,1.15 2.57,2.58 l 0,0 c 0,1.43 -1.15,2.59 -2.57,2.59 l -25.54,0 z"
|
||||||
|
id="path4295"
|
||||||
|
style="fill:#ffffff" /><g
|
||||||
|
id="g4297"><g
|
||||||
|
id="g4299"><path
|
||||||
|
d="m 50.47,109.57 c 0,6.02 -4.88,10.89 -10.89,10.89 -6.03,0 -10.91,-4.87 -10.91,-10.89 0,-6.02 4.87,-10.88 10.91,-10.88 6.01,-0.01 10.89,4.86 10.89,10.88 z"
|
||||||
|
id="path4301"
|
||||||
|
style="fill:#78a3ad" /></g></g><path
|
||||||
|
style="fill:#78a3ad;fill-opacity:1"
|
||||||
|
d="m 58.330002,54.029999 12.01,0 0,7.69 -12.01,0 z"
|
||||||
|
id="rect4303" /><path
|
||||||
|
style="fill:#78a3ad;fill-opacity:1"
|
||||||
|
d="m 43.360001,56.799999 11.899999,0 0,5.03 -11.899999,0 z"
|
||||||
|
id="rect4305" /><g
|
||||||
|
id="g4307"
|
||||||
|
clip-path="none"><path
|
||||||
|
d="m 13.36,63.23 c 4.27,0 7.72,8.37 7.72,18.71 0,10.33 -3.45,18.7 -7.72,18.7 -4.26,0 -7.71,-8.38 -7.71,-18.7 0,-10.33 3.46,-18.71 7.71,-18.71 z"
|
||||||
|
id="path4309"
|
||||||
|
style="fill:#2f2f2f" /><path
|
||||||
|
d="M 13.36,101.68 C 8.45,101.68 4.61,93 4.61,81.94 4.61,70.87 8.46,62.2 13.36,62.2 c 4.92,0 8.76,8.67 8.76,19.74 0.01,11.07 -3.84,19.74 -8.76,19.74 z m 0,-37.41 c -3.15,0 -6.67,7.25 -6.67,17.67 0,10.41 3.52,17.66 6.67,17.66 3.16,0 6.68,-7.25 6.68,-17.66 0.01,-10.41 -3.51,-17.67 -6.68,-17.67 z"
|
||||||
|
id="path4311"
|
||||||
|
style="fill:#fcc21b" /></g><path
|
||||||
|
style="fill:#2f2f2f"
|
||||||
|
d="m 10.59,32.689999 35.18,0 0,2.63 -35.18,0 z"
|
||||||
|
id="rect4313" /></g></svg>
|
After Width: | Height: | Size: 6.7 KiB |
|
@ -0,0 +1,64 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" id="レイヤー_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
|
||||||
|
y="0px" width="128px" height="128px" viewBox="0 0 128 128" enable-background="new 0 0 128 128" xml:space="preserve">
|
||||||
|
<g>
|
||||||
|
<path fill="#ED6C30" d="M64.35,72.12c-3.31,0-5.99-2.23-5.99-4.98V53.22c0-2.74,2.68-4.97,5.99-4.97c3.3,0,5.99,2.22,5.99,4.97
|
||||||
|
v13.92C70.35,69.88,67.66,72.12,64.35,72.12z"/>
|
||||||
|
<path fill="#ED6C30" d="M49.29,75.75c-3.31,0-5.98-2.23-5.98-4.97V56.87c0-2.75,2.67-4.98,5.98-4.98s6,2.22,6,4.98v13.92
|
||||||
|
C55.28,73.52,52.59,75.75,49.29,75.75z"/>
|
||||||
|
<rect x="26.44" y="95.78" fill="#2F2F2F" width="95.41" height="15.91"/>
|
||||||
|
<rect x="13.36" y="63.23" fill="#ED6C30" width="91.81" height="37.41"/>
|
||||||
|
<rect x="77.94" y="39.58" fill="#ED6C30" width="43.92" height="61.06"/>
|
||||||
|
<g>
|
||||||
|
<path fill="#2F2F2F" d="M35.04,63.24c4.26,0,7.72,8.38,7.72,18.71c0,10.33-3.46,18.7-7.72,18.7c-4.27,0-7.73-8.37-7.73-18.7
|
||||||
|
C27.32,71.62,30.78,63.24,35.04,63.24z"/>
|
||||||
|
<path fill="#FCC21B" d="M35.04,101.69c-4.92,0-8.77-8.67-8.77-19.74c0-11.07,3.85-19.74,8.77-19.74c4.91,0,8.76,8.67,8.76,19.74
|
||||||
|
C43.8,93.02,39.95,101.69,35.04,101.69z M35.04,64.28c-3.16,0-6.69,7.26-6.69,17.67s3.53,17.66,6.69,17.66
|
||||||
|
c3.16,0,6.68-7.25,6.68-17.66S38.2,64.28,35.04,64.28z"/>
|
||||||
|
</g>
|
||||||
|
<rect x="13.79" y="63.21" fill="#2F2F2F" width="21.78" height="37.93"/>
|
||||||
|
<rect x="71.96" y="32.66" fill="#2F2F2F" width="55.89" height="6.93"/>
|
||||||
|
<polygon fill="#2F2F2F" points="35.44,63.23 20.92,63.23 11.87,33.93 44.49,33.93 "/>
|
||||||
|
<polygon fill="#2F2F2F" points="39.84,23.56 16.31,23.56 11.87,33.93 44.49,33.93 "/>
|
||||||
|
<polygon fill="#2F2F2F" points="0.15,120.19 28.67,120.19 28.67,100.64 13.36,100.64 "/>
|
||||||
|
<path fill="#FFFFFF" d="M116.51,45.55c0-1.54-1.25-2.8-2.81-2.8h-12.51c-1.56,0-2.83,1.26-2.83,2.8v21.64c0,1.55,1.27,2.8,2.83,2.8
|
||||||
|
h12.51c1.56,0,2.81-1.24,2.81-2.8V45.55z"/>
|
||||||
|
<rect x="0.15" y="114.26" fill="#2F2F2F" width="28.52" height="5.93"/>
|
||||||
|
<g>
|
||||||
|
<path fill="#78A3AD" d="M82.79,105.02c0,8.53-6.91,15.44-15.42,15.44c-8.53,0-15.45-6.91-15.45-15.44
|
||||||
|
c0-8.53,6.92-15.44,15.45-15.44C75.89,89.58,82.79,96.49,82.79,105.02z"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path fill="#2F2F2F" d="M76.25,105.02c0,4.91-3.98,8.9-8.89,8.9c-4.92,0-8.91-3.98-8.91-8.9c0-4.92,3.99-8.89,8.91-8.89
|
||||||
|
C72.27,96.13,76.25,100.11,76.25,105.02z"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path fill="#78A3AD" d="M113.68,105.02c0,8.53-6.91,15.44-15.43,15.44c-8.53,0-15.45-6.91-15.45-15.44
|
||||||
|
c0-8.53,6.92-15.44,15.45-15.44C106.77,89.58,113.68,96.49,113.68,105.02z"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path fill="#2F2F2F" d="M107.13,105.02c0,4.91-3.98,8.9-8.9,8.9c-4.91,0-8.9-3.98-8.9-8.9c0-4.92,3.99-8.89,8.9-8.89
|
||||||
|
C103.15,96.13,107.13,100.11,107.13,105.02z"/>
|
||||||
|
</g>
|
||||||
|
<path fill="#FFFFFF" d="M70.04,104.25c-1.42,0-2.58-1.16-2.58-2.59l0,0c0-1.42,1.16-2.58,2.58-2.58h25.54
|
||||||
|
c1.42,0,2.57,1.15,2.57,2.58l0,0c0,1.43-1.15,2.59-2.57,2.59H70.04z"/>
|
||||||
|
<g>
|
||||||
|
<g>
|
||||||
|
<path fill="#78A3AD" d="M50.47,109.57c0,6.02-4.88,10.89-10.89,10.89c-6.03,0-10.91-4.87-10.91-10.89
|
||||||
|
c0-6.02,4.87-10.88,10.91-10.88C45.59,98.68,50.47,103.55,50.47,109.57z"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<rect x="58.33" y="54.03" fill="#FCC21B" width="12.01" height="7.69"/>
|
||||||
|
<rect x="43.36" y="56.8" fill="#FCC21B" width="11.9" height="5.03"/>
|
||||||
|
<g>
|
||||||
|
<path fill="#2F2F2F" d="M13.36,63.23c4.27,0,7.72,8.37,7.72,18.71c0,10.33-3.45,18.7-7.72,18.7c-4.26,0-7.71-8.38-7.71-18.7
|
||||||
|
C5.65,71.61,9.11,63.23,13.36,63.23z"/>
|
||||||
|
<path fill="#FCC21B" d="M13.36,101.68c-4.91,0-8.75-8.68-8.75-19.74c0-11.07,3.85-19.74,8.75-19.74c4.92,0,8.76,8.67,8.76,19.74
|
||||||
|
C22.13,93.01,18.28,101.68,13.36,101.68z M13.36,64.27c-3.15,0-6.67,7.25-6.67,17.67c0,10.41,3.52,17.66,6.67,17.66
|
||||||
|
c3.16,0,6.68-7.25,6.68-17.66C20.05,71.53,16.53,64.27,13.36,64.27z"/>
|
||||||
|
</g>
|
||||||
|
<rect x="10.59" y="32.69" fill="#2F2F2F" width="35.18" height="2.63"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 4.0 KiB |
|
@ -0,0 +1,35 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" id="レイヤー_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
|
||||||
|
y="0px" width="128px" height="128px" viewBox="0 0 128 128" enable-background="new 0 0 128 128" xml:space="preserve">
|
||||||
|
<g>
|
||||||
|
<g>
|
||||||
|
<defs>
|
||||||
|
<path id="SVGID_1_" d="M127.38,51.82c0-7.55-4.09-14.64-22.55-14.64H75.7H52.3H23.27c-18.47,0-22.56,7.09-22.56,14.64
|
||||||
|
c0,5.69,0,11.81,0,15.57c0,0.04,0.02,0.06,0.02,0.1c-0.08,1.07-0.11,2.15-0.11,3.23c0,13.04,0,27.06,0,35.68
|
||||||
|
c0,1.81,1.45,3.26,3.26,3.26h120.24c1.8,0,3.26-1.45,3.26-3.26c0-8.62,0-22.65,0-35.68c0-0.96-0.03-1.91-0.09-2.86
|
||||||
|
c0.05-0.15,0.09-0.3,0.09-0.48C127.38,63.63,127.38,57.51,127.38,51.82z"/>
|
||||||
|
</defs>
|
||||||
|
<use xlink:href="#SVGID_1_" overflow="visible" fill="#FCC21B"/>
|
||||||
|
<clipPath id="SVGID_2_">
|
||||||
|
<use xlink:href="#SVGID_1_" overflow="visible"/>
|
||||||
|
</clipPath>
|
||||||
|
<rect x="-2.52" y="51.88" clip-path="url(#SVGID_2_)" fill="#F79329" width="133.89" height="30.46"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path fill="#2F2F2F" d="M39,108.81c0,6.62-5.37,11.97-11.98,11.97c-6.62,0-11.99-5.36-11.99-11.97c0-6.63,5.37-11.97,11.99-11.97
|
||||||
|
C33.63,96.84,39,102.19,39,108.81z"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path fill="#2F2F2F" d="M110.21,108.81c0,6.62-5.37,11.97-11.98,11.97c-6.62,0-11.99-5.36-11.99-11.97
|
||||||
|
c0-6.63,5.37-11.97,11.99-11.97C104.85,96.84,110.21,102.19,110.21,108.81z"/>
|
||||||
|
</g>
|
||||||
|
<path fill="#FFFFFF" d="M35.33,75.08c0,1.75-1.41,3.16-3.17,3.16h-10.3c-1.75,0-3.17-1.41-3.17-3.16V58.29
|
||||||
|
c0-1.75,1.42-3.17,3.17-3.17h10.3c1.75,0,3.17,1.42,3.17,3.17V75.08z M63.78,58.29c0-1.75-1.42-3.17-3.18-3.17H50.3
|
||||||
|
c-1.75,0-3.16,1.42-3.16,3.17v16.79c0,1.75,1.41,3.16,3.16,3.16H60.6c1.75,0,3.18-1.41,3.18-3.16V58.29z M86.83,58.29
|
||||||
|
c0-1.75-1.43-3.17-3.18-3.17H73.35c-1.75,0-3.17,1.42-3.17,3.17v16.79c0,1.75,1.42,3.16,3.17,3.16h10.31
|
||||||
|
c1.75,0,3.18-1.41,3.18-3.16V58.29z M109.15,58.29c0-1.75-1.41-3.17-3.18-3.17H95.67c-1.75,0-3.17,1.42-3.17,3.17v16.79
|
||||||
|
c0,1.75,1.42,3.16,3.17,3.16h10.29c1.77,0,3.18-1.41,3.18-3.16V58.29z"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.2 KiB |
Reference in New Issue