Deleted files, added files, fixed for android v6
|
@ -0,0 +1,79 @@
|
|||
|
||||
|
||||
# Created by https://www.gitignore.io/api/android,linux
|
||||
|
||||
### Android ###
|
||||
# Built application files
|
||||
*.apk
|
||||
*.ap_
|
||||
|
||||
# Files for the ART/Dalvik VM
|
||||
*.dex
|
||||
|
||||
# Java class files
|
||||
*.class
|
||||
|
||||
# Generated files
|
||||
bin/
|
||||
gen/
|
||||
out/
|
||||
|
||||
# Gradle files
|
||||
.gradle/
|
||||
build/
|
||||
|
||||
# Local configuration file (sdk path, etc)
|
||||
local.properties
|
||||
|
||||
# Proguard folder generated by Eclipse
|
||||
proguard/
|
||||
|
||||
# Log Files
|
||||
*.log
|
||||
|
||||
# Android Studio Navigation editor temp files
|
||||
.navigation/
|
||||
|
||||
# Android Studio captures folder
|
||||
captures/
|
||||
|
||||
# Intellij
|
||||
*.iml
|
||||
.idea/workspace.xml
|
||||
.idea/tasks.xml
|
||||
.idea/gradle.xml
|
||||
.idea/libraries
|
||||
|
||||
# Keystore files
|
||||
*.jks
|
||||
|
||||
# External native build folder generated in Android Studio 2.2 and later
|
||||
.externalNativeBuild
|
||||
|
||||
# Google Services (e.g. APIs or Firebase)
|
||||
google-services.json
|
||||
|
||||
# Freeline
|
||||
freeline.py
|
||||
freeline/
|
||||
freeline_project_description.json
|
||||
|
||||
### Android Patch ###
|
||||
gen-external-apklibs
|
||||
|
||||
### Linux ###
|
||||
*~
|
||||
|
||||
# temporary files which can be created if a process still has a handle open of a deleted file
|
||||
.fuse_hidden*
|
||||
|
||||
# KDE directory preferences
|
||||
.directory
|
||||
|
||||
# Linux trash folder which might appear on any partition or disk
|
||||
.Trash-*
|
||||
|
||||
# .nfs files are created when an open file is removed but is still being accessed
|
||||
.nfs*
|
||||
|
||||
# End of https://www.gitignore.io/api/android,linux
|
|
@ -0,0 +1,231 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectCodeStyleSettingsManager">
|
||||
<option name="PER_PROJECT_SETTINGS">
|
||||
<value>
|
||||
<option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="99" />
|
||||
<option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="99" />
|
||||
<option name="PACKAGES_TO_USE_IMPORT_ON_DEMAND">
|
||||
<value />
|
||||
</option>
|
||||
<option name="IMPORT_LAYOUT_TABLE">
|
||||
<value>
|
||||
<package name="android" withSubpackages="true" static="false" />
|
||||
<emptyLine />
|
||||
<package name="com" withSubpackages="true" static="false" />
|
||||
<emptyLine />
|
||||
<package name="junit" withSubpackages="true" static="false" />
|
||||
<emptyLine />
|
||||
<package name="net" withSubpackages="true" static="false" />
|
||||
<emptyLine />
|
||||
<package name="org" withSubpackages="true" static="false" />
|
||||
<emptyLine />
|
||||
<package name="java" withSubpackages="true" static="false" />
|
||||
<emptyLine />
|
||||
<package name="javax" withSubpackages="true" static="false" />
|
||||
<emptyLine />
|
||||
<package name="" withSubpackages="true" static="false" />
|
||||
<emptyLine />
|
||||
<package name="" withSubpackages="true" static="true" />
|
||||
<emptyLine />
|
||||
</value>
|
||||
</option>
|
||||
<option name="RIGHT_MARGIN" value="100" />
|
||||
<AndroidXmlCodeStyleSettings>
|
||||
<option name="USE_CUSTOM_SETTINGS" value="true" />
|
||||
</AndroidXmlCodeStyleSettings>
|
||||
<Objective-C-extensions>
|
||||
<option name="GENERATE_INSTANCE_VARIABLES_FOR_PROPERTIES" value="ASK" />
|
||||
<option name="RELEASE_STYLE" value="IVAR" />
|
||||
<option name="TYPE_QUALIFIERS_PLACEMENT" value="BEFORE" />
|
||||
<file>
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Import" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Macro" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Typedef" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Enum" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Constant" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Global" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Struct" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="FunctionPredecl" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Function" />
|
||||
</file>
|
||||
<class>
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Property" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Synthesize" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InitMethod" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="StaticMethod" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InstanceMethod" />
|
||||
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="DeallocMethod" />
|
||||
</class>
|
||||
<extensions>
|
||||
<pair source="cpp" header="h" />
|
||||
<pair source="c" header="h" />
|
||||
</extensions>
|
||||
</Objective-C-extensions>
|
||||
<XML>
|
||||
<option name="XML_KEEP_LINE_BREAKS" value="false" />
|
||||
<option name="XML_ALIGN_ATTRIBUTES" value="false" />
|
||||
<option name="XML_SPACE_INSIDE_EMPTY_TAG" value="true" />
|
||||
</XML>
|
||||
<codeStyleSettings language="XML">
|
||||
<option name="FORCE_REARRANGE_MODE" value="1" />
|
||||
<indentOptions>
|
||||
<option name="CONTINUATION_INDENT_SIZE" value="4" />
|
||||
</indentOptions>
|
||||
<arrangement>
|
||||
<rules>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>xmlns:android</NAME>
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>xmlns:.*</NAME>
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:id</NAME>
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:name</NAME>
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>name</NAME>
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>style</NAME>
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*</NAME>
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:layout_width</NAME>
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:layout_height</NAME>
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:layout_.*</NAME>
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:width</NAME>
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:height</NAME>
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*</NAME>
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*</NAME>
|
||||
<XML_NAMESPACE>.*</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
</rules>
|
||||
</arrangement>
|
||||
</codeStyleSettings>
|
||||
</value>
|
||||
</option>
|
||||
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default (1)" />
|
||||
</component>
|
||||
</project>
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CompilerConfiguration">
|
||||
<resourceExtensions />
|
||||
<wildcardResourcePatterns>
|
||||
<entry name="!?*.java" />
|
||||
<entry name="!?*.form" />
|
||||
<entry name="!?*.class" />
|
||||
<entry name="!?*.groovy" />
|
||||
<entry name="!?*.scala" />
|
||||
<entry name="!?*.flex" />
|
||||
<entry name="!?*.kt" />
|
||||
<entry name="!?*.clj" />
|
||||
<entry name="!?*.aj" />
|
||||
</wildcardResourcePatterns>
|
||||
<annotationProcessing>
|
||||
<profile default="true" name="Default" enabled="false">
|
||||
<processorPath useClasspath="true" />
|
||||
</profile>
|
||||
</annotationProcessing>
|
||||
</component>
|
||||
</project>
|
|
@ -0,0 +1,3 @@
|
|||
<component name="CopyrightManager">
|
||||
<settings default="" />
|
||||
</component>
|
|
@ -0,0 +1,46 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="EntryPointsManager">
|
||||
<entry_points version="2.0" />
|
||||
</component>
|
||||
<component name="NullableNotNullManager">
|
||||
<option name="myDefaultNullable" value="android.support.annotation.Nullable" />
|
||||
<option name="myDefaultNotNull" value="android.support.annotation.NonNull" />
|
||||
<option name="myNullables">
|
||||
<value>
|
||||
<list size="4">
|
||||
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
|
||||
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
|
||||
<item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" />
|
||||
<item index="3" class="java.lang.String" itemvalue="android.support.annotation.Nullable" />
|
||||
</list>
|
||||
</value>
|
||||
</option>
|
||||
<option name="myNotNulls">
|
||||
<value>
|
||||
<list size="4">
|
||||
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
|
||||
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
|
||||
<item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
|
||||
<item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" />
|
||||
</list>
|
||||
</value>
|
||||
</option>
|
||||
</component>
|
||||
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
|
||||
<OptionsSetting value="true" id="Add" />
|
||||
<OptionsSetting value="true" id="Remove" />
|
||||
<OptionsSetting value="true" id="Checkout" />
|
||||
<OptionsSetting value="true" id="Update" />
|
||||
<OptionsSetting value="true" id="Status" />
|
||||
<OptionsSetting value="true" id="Edit" />
|
||||
<ConfirmationsSetting value="0" id="Add" />
|
||||
<ConfirmationsSetting value="0" id="Remove" />
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||
</component>
|
||||
<component name="ProjectType">
|
||||
<option name="id" value="Android" />
|
||||
</component>
|
||||
</project>
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/Tracman.iml" filepath="$PROJECT_DIR$/Tracman.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="RunConfigurationProducerService">
|
||||
<option name="ignoredProducers">
|
||||
<set>
|
||||
<option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
|
||||
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
|
||||
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
|
||||
</set>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
|
@ -1 +0,0 @@
|
|||
/build
|
|
@ -0,0 +1,46 @@
|
|||
apply plugin: 'com.android.application'
|
||||
|
||||
android {
|
||||
signingConfigs {
|
||||
config {
|
||||
keyAlias 'TracmanKey'
|
||||
keyPassword 'Gyt223qw!'
|
||||
storeFile file('/home/keith/code/Android/Tracman/app/keystore.jks')
|
||||
storePassword 'Gyt223qw!'
|
||||
}
|
||||
}
|
||||
compileSdkVersion 23
|
||||
buildToolsVersion "23.0.3"
|
||||
defaultConfig {
|
||||
applicationId "us.keithirwin.tracman"
|
||||
minSdkVersion 14
|
||||
targetSdkVersion 23
|
||||
versionCode 9
|
||||
versionName "0.1.8"
|
||||
}
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||
signingConfig signingConfigs.config
|
||||
zipAlignEnabled true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compile fileTree(dir: 'libs', include: ['*.jar'])
|
||||
testCompile 'junit:junit:4.12'
|
||||
compile 'com.android.support:appcompat-v7:23.2.0'
|
||||
compile 'com.android.support:support-v4:23.2.0'
|
||||
compile 'com.android.support:design:23.2.0'
|
||||
compile 'com.google.android.gms:play-services-location:9.8.0'
|
||||
compile 'com.google.android.gms:play-services-auth:9.8.0'
|
||||
compile ('com.github.nkzawa:socket.io-client:0.4.1'){
|
||||
exclude group: 'org.json', module: 'json'
|
||||
}
|
||||
compile 'com.squareup.retrofit2:retrofit:2.0.0-beta3'
|
||||
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta3'
|
||||
}
|
||||
|
||||
apply plugin: 'com.google.gms.google-services'
|
|
@ -16,6 +16,7 @@
|
|||
android:label="@string/app_name"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/AppTheme">
|
||||
|
||||
<activity android:name=".LoginActivity">
|
||||
<intent-filter android:label="@string/app_name">
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
|
@ -23,21 +24,14 @@
|
|||
<category android:name="android.intent.category.LAUNCHER"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:label="@string/app_name"
|
||||
android:parentActivityName=".LoginActivity">
|
||||
<meta-data
|
||||
android:name="android.support.PARENT_ACTIVITY"
|
||||
android:value="us.keithirwin.tracman.LoginActivity"/>
|
||||
</activity>
|
||||
|
||||
<activity
|
||||
android:name=".SettingsActivity"
|
||||
android:label="@string/settings_name"
|
||||
android:parentActivityName=".MainActivity">
|
||||
android:parentActivityName=".LoginActivity">
|
||||
<meta-data
|
||||
android:name="android.support.PARENT_ACTIVITY"
|
||||
android:value=".MainActivity"/>
|
||||
android:value=".LoginActivity"/>
|
||||
</activity>
|
||||
|
||||
<service
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package us.keithirwin.tracman;
|
||||
|
||||
import android.Manifest;
|
||||
|
||||
import android.app.NotificationManager;
|
||||
import android.app.PendingIntent;
|
||||
import android.app.Service;
|
||||
|
@ -8,13 +10,18 @@ import android.content.Context;
|
|||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.SharedPreferences;
|
||||
import android.graphics.BitmapFactory;
|
||||
//import android.content.pm.PackageManager;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.location.Location;
|
||||
import android.os.Bundle;
|
||||
import android.os.IBinder;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.support.annotation.Nullable;
|
||||
//import android.support.v4.app.ActivityCompat;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.support.v4.app.NotificationCompat;
|
||||
//import android.support.v4.content.ContextCompat;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
import android.util.Log;
|
||||
|
||||
import com.google.android.gms.common.ConnectionResult;
|
||||
|
@ -32,6 +39,7 @@ import org.json.JSONObject;
|
|||
|
||||
import java.net.URISyntaxException;
|
||||
|
||||
|
||||
public class LocationService extends Service implements GoogleApiClient.ConnectionCallbacks,
|
||||
GoogleApiClient.OnConnectionFailedListener, LocationListener {
|
||||
public LocationService() {}
|
||||
|
@ -44,6 +52,7 @@ public class LocationService extends Service implements GoogleApiClient.Connecti
|
|||
Location mLastLocation;
|
||||
private GoogleApiClient mGoogleApiClient;
|
||||
private LocationRequest mLocationRequest;
|
||||
|
||||
synchronized void buildGoogleApiClient() {
|
||||
mGoogleApiClient = new GoogleApiClient.Builder(this)
|
||||
.addConnectionCallbacks(this)
|
||||
|
@ -139,14 +148,19 @@ public class LocationService extends Service implements GoogleApiClient.Connecti
|
|||
private int getPrioritySetting() {
|
||||
return Integer.parseInt(sharedPref.getString("broadcast_priority", "100"));
|
||||
}
|
||||
|
||||
private int getIntervalSetting() {
|
||||
return Integer.parseInt(
|
||||
sharedPref.getString("broadcast_frequency",
|
||||
getResources().getString(R.string.pref_default_broadcast_frequency)));
|
||||
}
|
||||
|
||||
public static boolean checkLocationPermission(final Context context) {
|
||||
return ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED;
|
||||
}
|
||||
|
||||
void connectLocationUpdates(Integer interval, Integer priority) {
|
||||
|
||||
// Set update parameters
|
||||
if (mLocationRequest != null) {
|
||||
mLocationRequest.setPriority(priority);
|
||||
mLocationRequest.setInterval(interval * 1000); // 1000 = 1 second
|
||||
|
@ -155,19 +169,41 @@ public class LocationService extends Service implements GoogleApiClient.Connecti
|
|||
connectLocationUpdates(getIntervalSetting(), getPrioritySetting());
|
||||
}
|
||||
|
||||
if (mGoogleApiClient.isConnected()) {
|
||||
LocationServices.FusedLocationApi.requestLocationUpdates(
|
||||
mGoogleApiClient,
|
||||
mLocationRequest,
|
||||
this);
|
||||
} else {
|
||||
mGoogleApiClient.connect();
|
||||
}
|
||||
mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
|
||||
// Get permission
|
||||
if (!checkLocationPermission(this)) {
|
||||
Log.d(TAG, "Location permission denied");
|
||||
|
||||
} else {
|
||||
Log.d(TAG, "Location permission granted");
|
||||
|
||||
// Request location updates
|
||||
if (mGoogleApiClient.isConnected()) {
|
||||
LocationServices.FusedLocationApi.requestLocationUpdates(
|
||||
mGoogleApiClient,
|
||||
mLocationRequest,
|
||||
this);
|
||||
} else {
|
||||
mGoogleApiClient.connect();
|
||||
}
|
||||
|
||||
// Get last location
|
||||
mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
|
||||
|
||||
}
|
||||
// if ( ContextCompat.checkSelfPermission( this, android.Manifest.permission.ACCESS_FINE_LOCATION ) != PackageManager.PERMISSION_GRANTED ) {
|
||||
// ActivityCompat.requestPermissions( this, new String[] { android.Manifest.permission.ACCESS_FINE_LOCATION },
|
||||
// LocationService.MY_FINE_LOCATION_PERMISSION );
|
||||
// } else {
|
||||
//
|
||||
//
|
||||
//
|
||||
// }
|
||||
|
||||
// Set location if there is one
|
||||
if (mLastLocation != null) {
|
||||
onLocationChanged(mLastLocation);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -56,12 +56,9 @@ public class LoginActivity extends AppCompatActivity implements
|
|||
// Configure sign-in to request the user's ID and basic profile, included in DEFAULT_SIGN_IN.
|
||||
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
|
||||
.requestIdToken(GOOGLE_WEB_CLIENT_ID)
|
||||
.requestEmail()
|
||||
.build();
|
||||
|
||||
// Set up buttons
|
||||
SignInButton signInButton = (SignInButton) findViewById(R.id.google_sign_in_button);
|
||||
signInButton.setStyle(SignInButton.SIZE_WIDE, SignInButton.COLOR_DARK, gso.getScopeArray());
|
||||
|
||||
// Build a GoogleApiClient with access to the Google Sign-In API and the
|
||||
// options specified by gso.
|
||||
mGoogleApiClient = new GoogleApiClient.Builder(this)
|
||||
|
@ -69,6 +66,10 @@ public class LoginActivity extends AppCompatActivity implements
|
|||
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
|
||||
.build();
|
||||
|
||||
// Set up buttons
|
||||
SignInButton signInButton = (SignInButton) findViewById(R.id.google_sign_in_button);
|
||||
signInButton.setStyle(SignInButton.SIZE_WIDE, SignInButton.COLOR_AUTO);
|
||||
|
||||
// Button listeners
|
||||
findViewById(R.id.google_sign_in_button).setOnClickListener(this);
|
||||
}
|
||||
|
@ -127,6 +128,7 @@ public class LoginActivity extends AppCompatActivity implements
|
|||
.url(SERVER_ADDRESS+"auth/google/idtoken?id_token="+token)
|
||||
.build();
|
||||
|
||||
Log.d(TAG, "Attempting Tracman signin with token: " + token);
|
||||
client.newCall(request).enqueue(new Callback() {
|
||||
@Override
|
||||
public void onFailure(Request request, IOException throwable) {
|
||||
|
@ -140,7 +142,7 @@ public class LoginActivity extends AppCompatActivity implements
|
|||
if (!res.isSuccessful()) {
|
||||
showError(R.string.login_no_user_error);
|
||||
res.body().close();
|
||||
throw new IOException("Unexpected code " + res);
|
||||
throw new IOException("Unexpected code: " + res);
|
||||
} else {
|
||||
Log.d(TAG, "Response code: " + res.code());
|
||||
String userString = res.body().string();
|
||||
|
@ -170,7 +172,7 @@ public class LoginActivity extends AppCompatActivity implements
|
|||
editor.putString("loggedInUserSk", userSK);
|
||||
editor.commit();
|
||||
|
||||
startActivity(new Intent(getBaseContext(), MainActivity.class));
|
||||
startActivity(new Intent(getBaseContext(), SettingsActivity.class));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -195,7 +197,7 @@ public class LoginActivity extends AppCompatActivity implements
|
|||
}
|
||||
}
|
||||
|
||||
private void googleSignIn() {
|
||||
private void signIn() {
|
||||
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
|
||||
startActivityForResult(signInIntent, RC_SIGN_IN);
|
||||
}
|
||||
|
@ -235,7 +237,7 @@ public class LoginActivity extends AppCompatActivity implements
|
|||
public void onClick(View v) {
|
||||
switch (v.getId()) {
|
||||
case R.id.google_sign_in_button:
|
||||
googleSignIn();
|
||||
signIn();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,186 +0,0 @@
|
|||
package us.keithirwin.tracman;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.net.Uri;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentManager;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.support.v4.widget.DrawerLayout;
|
||||
|
||||
import values.AboutFragment;
|
||||
import values.MainFragment;
|
||||
|
||||
public class MainActivity extends AppCompatActivity implements
|
||||
NavigationDrawerFragment.NavigationDrawerCallbacks,
|
||||
MainFragment.OnMapButtonPressedListener,
|
||||
AboutFragment.OnBackButtonPressedListener {
|
||||
|
||||
private static final String TAG = "MainActivity";
|
||||
// private CharSequence mTitle;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
if (BuildConfig.DEBUG){ Log.d(TAG, "Created in debug mode"); }
|
||||
setContentView(R.layout.activity_main);
|
||||
|
||||
NavigationDrawerFragment mNavigationDrawerFragment = (NavigationDrawerFragment)
|
||||
getSupportFragmentManager().findFragmentById(R.id.navigation_drawer);
|
||||
// mTitle = getTitle();
|
||||
|
||||
// Set up the drawer.
|
||||
Log.d(TAG, "Setting up drawer");
|
||||
mNavigationDrawerFragment.setUp(
|
||||
R.id.navigation_drawer,
|
||||
(DrawerLayout) findViewById(R.id.drawer_layout)
|
||||
);
|
||||
|
||||
// Check if gps enabled and start location service
|
||||
Log.d(TAG, "Checking if gps enabled");
|
||||
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
if (sharedPref.getBoolean("gps_switch", false)) {
|
||||
Log.d(TAG, "Starting LocationService");
|
||||
this.startService(new Intent(this, LocationService.class));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNavigationDrawerItemSelected(int position) {
|
||||
// update the main content by replacing fragments
|
||||
Log.v(TAG, "onNavigationDrawerItemSelected() called");
|
||||
|
||||
Fragment fragment;
|
||||
FragmentManager fragmentManager = getSupportFragmentManager();
|
||||
|
||||
switch(position) {
|
||||
default:
|
||||
case 0:
|
||||
Log.d(TAG, "Sending intent to go to main fragment");
|
||||
|
||||
// Get user ID and name
|
||||
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
final String mUserID = sharedPref.getString("loggedInUserId", null);
|
||||
final String mUserName = sharedPref.getString("loggedInUserName", null);
|
||||
if (mUserID == null) {
|
||||
startActivity(new Intent(this, LoginActivity.class)
|
||||
.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP));
|
||||
}
|
||||
|
||||
fragment = MainFragment.newInstance(mUserName, mUserID);
|
||||
break;
|
||||
case 1:
|
||||
Log.v(TAG, "Sending intent to go to Settings Activity");
|
||||
fragment = null;
|
||||
startActivity(new Intent(this, SettingsActivity.class)
|
||||
.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP));
|
||||
break;
|
||||
case 2:
|
||||
Log.v(TAG, "Sending intent to go to about fragment");
|
||||
fragment = AboutFragment.newInstance();
|
||||
break;
|
||||
case 3:
|
||||
Log.v(TAG, "Sending intent to go to logout fragment");
|
||||
fragment = null;
|
||||
Log.d(TAG, "Sending intent to log out");
|
||||
|
||||
// Stop LocationService
|
||||
stopService(new Intent(this, LocationService.class));
|
||||
|
||||
// Send back to login screen
|
||||
startActivity(new Intent(this, LoginActivity.class)
|
||||
.putExtra("method", "signOut")
|
||||
.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP));
|
||||
break;
|
||||
}
|
||||
|
||||
if (fragment!=null) {
|
||||
fragmentManager.beginTransaction()
|
||||
.replace(R.id.container, fragment)
|
||||
.commit();
|
||||
}
|
||||
}
|
||||
|
||||
public void onSectionAttached(int number) {
|
||||
switch (number) {
|
||||
case 0:
|
||||
// mTitle = getString(R.string.main_name);
|
||||
// Toast.makeText(this, "main", Toast.LENGTH_SHORT).show();
|
||||
break;
|
||||
case 1:
|
||||
// mTitle = getString(R.string.settings_name);
|
||||
// Log.d(TAG, "Sending intent to go to settings");
|
||||
// startActivity(new Intent(this, SettingsActivity.class)
|
||||
// .setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP));
|
||||
break;
|
||||
case 2:
|
||||
// mTitle = getString(R.string.about_name);
|
||||
break;
|
||||
// case 3:
|
||||
// break;
|
||||
}
|
||||
}
|
||||
|
||||
public void goBack() {
|
||||
onNavigationDrawerItemSelected(0);
|
||||
}
|
||||
|
||||
public void showMap(String UserId) {
|
||||
String url = "https://tracman.org/trac/id/" + UserId;
|
||||
Intent i = new Intent(Intent.ACTION_VIEW);
|
||||
i.setData(Uri.parse(url));
|
||||
startActivity(i);
|
||||
}
|
||||
|
||||
// public void restoreActionBar() {
|
||||
// ActionBar actionBar = getActionBar();
|
||||
// actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
|
||||
// actionBar.setDisplayShowTitleEnabled(true);
|
||||
// actionBar.setTitle(mTitle);
|
||||
// }
|
||||
|
||||
/**
|
||||
* A placeholder fragment containing a simple view.
|
||||
*/
|
||||
public static class PlaceholderFragment extends Fragment {
|
||||
/**
|
||||
* The fragment argument representing the section number for this
|
||||
* fragment.
|
||||
*/
|
||||
private static final String ARG_SECTION_NUMBER = "section_number";
|
||||
|
||||
public PlaceholderFragment() {}
|
||||
|
||||
/**
|
||||
* Returns a new instance of this fragment for the given section
|
||||
* number.
|
||||
*/
|
||||
public static PlaceholderFragment newInstance(int sectionNumber) {
|
||||
PlaceholderFragment fragment = new PlaceholderFragment();
|
||||
Bundle args = new Bundle();
|
||||
args.putInt(ARG_SECTION_NUMBER, sectionNumber);
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
return inflater.inflate(R.layout.fragment_main, container, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
super.onAttach(context);
|
||||
((MainActivity) context).onSectionAttached(getArguments().getInt(ARG_SECTION_NUMBER));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -1,265 +0,0 @@
|
|||
package us.keithirwin.tracman;
|
||||
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.support.v7.app.ActionBar;
|
||||
import android.support.v7.app.ActionBarDrawerToggle;
|
||||
import android.support.v4.view.GravityCompat;
|
||||
import android.support.v4.widget.DrawerLayout;
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.ListView;
|
||||
import android.widget.Toast;
|
||||
|
||||
/**
|
||||
* Fragment used for managing interactions for and presentation of a navigation drawer.
|
||||
* See the <a href="https://developer.android.com/design/patterns/navigation-drawer.html#Interaction">
|
||||
* design guidelines</a> for a complete explanation of the behaviors implemented here.
|
||||
*/
|
||||
public class NavigationDrawerFragment extends Fragment {
|
||||
private static final String TAG = "NavDrawerFrag";
|
||||
|
||||
/**
|
||||
* Remember the position of the selected item.
|
||||
*/
|
||||
private static final String STATE_SELECTED_POSITION = "selected_navigation_drawer_position";
|
||||
|
||||
/**
|
||||
* A pointer to the current callbacks instance (the Activity).
|
||||
*/
|
||||
private NavigationDrawerCallbacks mCallbacks;
|
||||
|
||||
/**
|
||||
* Helper component that ties the action bar to the navigation drawer.
|
||||
*/
|
||||
private ActionBarDrawerToggle mDrawerToggle;
|
||||
|
||||
private DrawerLayout mDrawerLayout;
|
||||
private ListView mDrawerListView;
|
||||
private View mFragmentContainerView;
|
||||
|
||||
private int mCurrentSelectedPosition = 0;
|
||||
|
||||
// public NavigationDrawerFragment() {}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
if (savedInstanceState != null) {
|
||||
mCurrentSelectedPosition = savedInstanceState.getInt(STATE_SELECTED_POSITION);
|
||||
}
|
||||
|
||||
// Select either the default item (0) or the last selected item.
|
||||
selectItem(mCurrentSelectedPosition);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
// Indicate that this fragment would like to influence the set of actions in the action bar.
|
||||
setHasOptionsMenu(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
mDrawerListView = (ListView) inflater.inflate(
|
||||
R.layout.drawer, container, false);
|
||||
mDrawerListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||
selectItem(position);
|
||||
}
|
||||
});
|
||||
mDrawerListView.setAdapter(new ArrayAdapter<>(
|
||||
getActionBar().getThemedContext(),
|
||||
android.R.layout.simple_list_item_activated_1,
|
||||
// android.R.id.text1,
|
||||
new String[]{
|
||||
getString(R.string.main_name),
|
||||
getString(R.string.settings_name),
|
||||
getString(R.string.about_name),
|
||||
getString(R.string.logout_name)
|
||||
}));
|
||||
mDrawerListView.setItemChecked(mCurrentSelectedPosition, true);
|
||||
return mDrawerListView;
|
||||
}
|
||||
|
||||
// public boolean isDrawerOpen() {
|
||||
// return mDrawerLayout != null && mDrawerLayout.isDrawerOpen(mFragmentContainerView);
|
||||
// }
|
||||
|
||||
/**
|
||||
* Users of this fragment must call this method to set up the navigation drawer interactions.
|
||||
*
|
||||
* @param fragmentId The android:id of this fragment in its activity's layout.
|
||||
* @param drawerLayout The DrawerLayout containing this fragment's UI.
|
||||
*/
|
||||
public void setUp(int fragmentId, DrawerLayout drawerLayout) {
|
||||
mFragmentContainerView = getActivity().findViewById(fragmentId);
|
||||
mDrawerLayout = drawerLayout;
|
||||
|
||||
// set a custom shadow that overlays the main content when the drawer opens
|
||||
mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
|
||||
// set up the drawer's list view with items and click listener
|
||||
|
||||
ActionBar actionBar = getActionBar();
|
||||
actionBar.setDisplayHomeAsUpEnabled(true);
|
||||
actionBar.setHomeButtonEnabled(true);
|
||||
|
||||
// ActionBarDrawerToggle ties together the the proper interactions
|
||||
// between the navigation drawer and the action bar app icon.
|
||||
mDrawerToggle = new ActionBarDrawerToggle(
|
||||
getActivity(), /* host Activity */
|
||||
mDrawerLayout, /* DrawerLayout object */
|
||||
R.string.navigation_drawer_open, /* "open drawer" description for accessibility */
|
||||
R.string.navigation_drawer_close /* "close drawer" description for accessibility */
|
||||
) {
|
||||
@Override
|
||||
public void onDrawerClosed(View drawerView) {
|
||||
super.onDrawerClosed(drawerView);
|
||||
if (!isAdded()) {
|
||||
return;
|
||||
}
|
||||
getActivity().invalidateOptionsMenu(); // calls onPrepareOptionsMenu()
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDrawerOpened(View drawerView) {
|
||||
super.onDrawerOpened(drawerView);
|
||||
if (!isAdded()) {
|
||||
return;
|
||||
}
|
||||
getActivity().invalidateOptionsMenu(); // calls onPrepareOptionsMenu()
|
||||
}
|
||||
};
|
||||
|
||||
// Defer code dependent on restoration of previous instance state.
|
||||
mDrawerLayout.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
mDrawerToggle.syncState();
|
||||
}
|
||||
});
|
||||
|
||||
mDrawerLayout.addDrawerListener(mDrawerToggle);
|
||||
}
|
||||
|
||||
private void selectItem(int position) {
|
||||
Log.v(TAG, "selectItem() called");
|
||||
mCurrentSelectedPosition = position;
|
||||
if (mDrawerListView != null) {
|
||||
Log.v(TAG, "mDrawerListView != null"); //
|
||||
mDrawerListView.setItemChecked(position, true);
|
||||
}
|
||||
if (mDrawerLayout != null) {
|
||||
Log.v(TAG, "mDrawerLayout != null"); //
|
||||
mDrawerLayout.closeDrawer(mFragmentContainerView);
|
||||
}
|
||||
if (mCallbacks != null) {
|
||||
Log.v(TAG, "mCallbacks != null");
|
||||
mCallbacks.onNavigationDrawerItemSelected(position);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
super.onAttach(context);
|
||||
try {
|
||||
mCallbacks = (NavigationDrawerCallbacks) context;
|
||||
} catch (ClassCastException e) {
|
||||
throw new ClassCastException("Activity must implement NavigationDrawerCallbacks.");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDetach() {
|
||||
super.onDetach();
|
||||
mCallbacks = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSaveInstanceState(Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
outState.putInt(STATE_SELECTED_POSITION, mCurrentSelectedPosition);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
// Forward the new configuration the drawer toggle component.
|
||||
mDrawerToggle.onConfigurationChanged(newConfig);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||
// Show the global app actions in the action bar. See also
|
||||
// showGlobalContextActionBar, which controls the top-left area of the action bar.
|
||||
inflater.inflate(R.menu.global, menu);
|
||||
showGlobalContextActionBar();
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
if (mDrawerToggle.onOptionsItemSelected(item)) {
|
||||
return true;
|
||||
}
|
||||
if (item.getItemId() == R.id.help_action) {
|
||||
Toast.makeText(getActivity(), "Help is on the way! ", Toast.LENGTH_SHORT).show();
|
||||
// TODO: help activity
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.suggestions_action) {
|
||||
String url = "https://tracman.org/suggestion";
|
||||
Intent i = new Intent(Intent.ACTION_VIEW);
|
||||
i.setData(Uri.parse(url));
|
||||
startActivity(i);
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.bugs_action) {
|
||||
String url = "https://tracman.org/bug?source=android";
|
||||
Intent i = new Intent(Intent.ACTION_VIEW);
|
||||
i.setData(Uri.parse(url));
|
||||
startActivity(i);
|
||||
return true;
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
/**
|
||||
* Per the navigation drawer design guidelines, updates the action bar to show the global app
|
||||
* 'context', rather than just what's in the current screen.
|
||||
*/
|
||||
private void showGlobalContextActionBar() {
|
||||
ActionBar actionBar = getActionBar();
|
||||
actionBar.setDisplayShowTitleEnabled(true);
|
||||
actionBar.setTitle(R.string.app_name);
|
||||
}
|
||||
|
||||
private ActionBar getActionBar() {
|
||||
return ((AppCompatActivity) getActivity()).getSupportActionBar();
|
||||
}
|
||||
|
||||
/**
|
||||
* Callbacks interface that all activities using this fragment must implement.
|
||||
*/
|
||||
public interface NavigationDrawerCallbacks {
|
||||
/**
|
||||
* Called when an item in the navigation drawer is selected.
|
||||
*/
|
||||
void onNavigationDrawerItemSelected(int position);
|
||||
}
|
||||
}
|
|
@ -1,16 +1,20 @@
|
|||
package us.keithirwin.tracman;
|
||||
|
||||
import android.Manifest;
|
||||
|
||||
import android.annotation.TargetApi;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.preference.ListPreference;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceActivity;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
import android.support.v7.app.ActionBar;
|
||||
import android.preference.PreferenceFragment;
|
||||
import android.preference.PreferenceManager;
|
||||
|
@ -19,6 +23,7 @@ import android.view.MenuItem;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* A {@link PreferenceActivity} that presents a set of application settings. On
|
||||
* handset devices, settings are presented as a single list. On tablets,
|
||||
|
@ -33,6 +38,8 @@ import java.util.List;
|
|||
public class SettingsActivity extends AppCompatPreferenceActivity {
|
||||
private static final String TAG = "SettingsActivity";
|
||||
|
||||
private static int MY_FINE_LOCATION_PERMISSION = 425;
|
||||
|
||||
/**
|
||||
* A preference value change listener that updates the preference's summary
|
||||
* to reflect its new value.
|
||||
|
@ -105,16 +112,33 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
|
|||
}
|
||||
}
|
||||
|
||||
private void showLocationPermissionDialog() {
|
||||
if (!LocationService.checkLocationPermission(this)) {
|
||||
ActivityCompat.requestPermissions(
|
||||
this,
|
||||
new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
|
||||
MY_FINE_LOCATION_PERMISSION);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStop() {
|
||||
|
||||
Log.d(TAG, "onStop called");
|
||||
super.onStop();
|
||||
|
||||
// Restart service so settings can take effect
|
||||
stopService(new Intent(this, LocationService.class));
|
||||
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
if (sharedPref.getBoolean("gps_switch", false)) {
|
||||
|
||||
// Ask for location permissions (can't be done in service, only activity)
|
||||
showLocationPermissionDialog();
|
||||
|
||||
// Start location tracking service
|
||||
Log.d(TAG, "Starting LocationService");
|
||||
startService(new Intent(this, LocationService.class));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,95 +0,0 @@
|
|||
package values;
|
||||
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.text.method.LinkMovementMethod;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import us.keithirwin.tracman.R;
|
||||
|
||||
/**
|
||||
* A simple {@link Fragment} subclass.
|
||||
* Activities that contain this fragment must implement the
|
||||
* {@link AboutFragment.OnBackButtonPressedListener} interface
|
||||
* to handle interaction events.
|
||||
* Use the {@link AboutFragment#newInstance} factory method to
|
||||
* create an instance of this fragment.
|
||||
*/
|
||||
public class AboutFragment extends Fragment {
|
||||
private OnBackButtonPressedListener mListener;
|
||||
|
||||
/**
|
||||
* Use this factory method to create a new instance of
|
||||
* this fragment using the provided parameters.
|
||||
*
|
||||
* @return A new instance of fragment AboutFragment.
|
||||
*/
|
||||
public static AboutFragment newInstance() {
|
||||
AboutFragment fragment = new AboutFragment();
|
||||
return fragment;
|
||||
} public AboutFragment() {}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
getActivity().setTitle(R.string.about_name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
View view = inflater.inflate(R.layout.fragment_about, container, false);
|
||||
|
||||
TextView tv = (TextView) view.findViewById(R.id.about_license);
|
||||
tv.setMovementMethod(LinkMovementMethod.getInstance());
|
||||
|
||||
view.findViewById(R.id.about_back_button).setOnClickListener(new View.OnClickListener() {
|
||||
public void onClick(View v) {
|
||||
goBack();
|
||||
}
|
||||
});
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
public void goBack() {
|
||||
if (mListener != null) {
|
||||
mListener.goBack();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
super.onAttach(context);
|
||||
if (context instanceof OnBackButtonPressedListener) {
|
||||
mListener = (OnBackButtonPressedListener) context;
|
||||
} else {
|
||||
throw new RuntimeException(context.toString()
|
||||
+ " must implement OnFragmentInteractionListener");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDetach() {
|
||||
super.onDetach();
|
||||
mListener = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* This interface must be implemented by activities that contain this
|
||||
* fragment to allow an interaction in this fragment to be communicated
|
||||
* to the activity and potentially other fragments contained in that
|
||||
* activity.
|
||||
* <p/>
|
||||
* See the Android Training lesson <a href=
|
||||
* "http://developer.android.com/training/basics/fragments/communicating.html"
|
||||
* >Communicating with Other Fragments</a> for more information.
|
||||
*/
|
||||
public interface OnBackButtonPressedListener {
|
||||
void goBack();
|
||||
}
|
||||
}
|
|
@ -1,108 +0,0 @@
|
|||
package values;
|
||||
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import us.keithirwin.tracman.R;
|
||||
|
||||
/**
|
||||
* A simple {@link Fragment} subclass.
|
||||
* Activities that contain this fragment must implement the
|
||||
* {@link MainFragment.OnMapButtonPressedListener} interface
|
||||
* to handle interaction events.
|
||||
* Use the {@link MainFragment#newInstance} factory method to
|
||||
* create an instance of this fragment.
|
||||
*/
|
||||
public class MainFragment extends Fragment {
|
||||
private static final String USER_NAME = "UserName";
|
||||
private static final String USER_ID = "UserId";
|
||||
private String mUserName, mUserId;
|
||||
|
||||
private OnMapButtonPressedListener mButtonPressedListener;
|
||||
|
||||
/**
|
||||
* Use this factory method to create a new instance of
|
||||
* this fragment using the provided parameters.
|
||||
*
|
||||
* @param userName Name of the logged-in user.
|
||||
* @param userID ID of the logged-in user.
|
||||
* @return A new instance of fragment MainFragment.
|
||||
*/
|
||||
public static MainFragment newInstance(String userName, String userID) {
|
||||
MainFragment fragment = new MainFragment();
|
||||
Bundle args = new Bundle();
|
||||
args.putString(USER_NAME, userName);
|
||||
args.putString(USER_ID, userID);
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
} public MainFragment() {}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
if (getArguments() != null) {
|
||||
mUserName = getArguments().getString(USER_NAME);
|
||||
mUserId = getArguments().getString(USER_ID);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
View view = inflater.inflate(R.layout.fragment_main, container, false);
|
||||
|
||||
if (mUserName!=null) {
|
||||
TextView tv = (TextView) view.findViewById(R.id.named_welcome);
|
||||
tv.setText(getString(R.string.named_welcome, " "+mUserName));
|
||||
}
|
||||
|
||||
view.findViewById(R.id.tracpage_button).setOnClickListener( new View.OnClickListener() {
|
||||
public void onClick(View v) {
|
||||
showMap();
|
||||
}
|
||||
});
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
public void showMap () {
|
||||
if (mButtonPressedListener != null) {
|
||||
mButtonPressedListener.showMap(mUserId);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
super.onAttach(context);
|
||||
if (context instanceof OnMapButtonPressedListener) {
|
||||
mButtonPressedListener = (OnMapButtonPressedListener) context;
|
||||
} else {
|
||||
throw new RuntimeException(context.toString() + " must implement OnFragmentInteractionListener");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDetach() {
|
||||
super.onDetach();
|
||||
mButtonPressedListener = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* This interface must be implemented by activities that contain this
|
||||
* fragment to allow an interaction in this fragment to be communicated
|
||||
* to the activity and potentially other fragments contained in that
|
||||
* activity.
|
||||
* <p/>
|
||||
* See the Android Training lesson <a href=
|
||||
* "http://developer.android.com/training/basics/fragments/communicating.html"
|
||||
* >Communicating with Other Fragments</a> for more information.
|
||||
*/
|
||||
public interface OnMapButtonPressedListener {
|
||||
void showMap(String UserId);
|
||||
}
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
<!-- A DrawerLayout is intended to be used as the top-level content view using match_parent for both width and height to consume the full space available. -->
|
||||
<android.support.v4.widget.DrawerLayout
|
||||
android:id="@+id/drawer_layout"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context="us.keithirwin.tracman.MainActivity">
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"/>
|
||||
|
||||
<fragment
|
||||
android:id="@+id/navigation_drawer"
|
||||
android:name="us.keithirwin.tracman.NavigationDrawerFragment"
|
||||
android:layout_width="@dimen/navigation_drawer_width"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="start"
|
||||
tools:layout="@layout/drawer"/>
|
||||
|
||||
</android.support.v4.widget.DrawerLayout>
|
|
@ -1,9 +0,0 @@
|
|||
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="#333"
|
||||
android:choiceMode="singleChoice"
|
||||
android:divider="@android:color/transparent"
|
||||
android:dividerHeight="0dp"
|
||||
tools:context="us.keithirwin.tracman.NavigationDrawerFragment"/>
|
|
@ -1,95 +0,0 @@
|
|||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context="values.AboutFragment">
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/main_layout"
|
||||
android:orientation="vertical"
|
||||
android:weightSum="6"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingBottom="@dimen/activity_vertical_margin"
|
||||
android:paddingLeft="@dimen/activity_horizontal_margin"
|
||||
android:paddingRight="@dimen/activity_horizontal_margin"
|
||||
android:paddingTop="@dimen/activity_vertical_margin"
|
||||
tools:context="us.keithirwin.tracman.MainActivity"
|
||||
android:clickable="true">
|
||||
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:orientation="vertical"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
<ImageView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/logo_description"
|
||||
android:padding="5dp"
|
||||
android:src="@drawable/logo_by"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true" />
|
||||
<TextView
|
||||
android:id="@+id/about_title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="60dp"
|
||||
android:layout_marginStart="60dp"
|
||||
android:gravity="center"
|
||||
android:text="@string/app_name"
|
||||
android:textSize="46sp"
|
||||
android:textColor="@color/Yellow"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_alignParentEnd="true"/>
|
||||
</RelativeLayout>
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:orientation="vertical"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
<TextView
|
||||
android:id="@+id/about_version"
|
||||
android:text="@string/version"
|
||||
android:textSize="24sp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_weight="3"
|
||||
android:layout_height="wrap_content">
|
||||
<TextView
|
||||
android:id="@+id/about_license"
|
||||
android:text="@string/about_license"
|
||||
android:textSize="24sp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"/>
|
||||
</LinearLayout>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content">
|
||||
<Button
|
||||
android:id="@+id/about_back_button"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center"
|
||||
android:text="@string/about_back_button"
|
||||
android:textColor="@color/Yellow"
|
||||
android:textSize="36sp" />
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</FrameLayout>
|
|
@ -1,108 +0,0 @@
|
|||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingBottom="@dimen/activity_vertical_margin"
|
||||
android:paddingLeft="@dimen/activity_horizontal_margin"
|
||||
android:paddingRight="@dimen/activity_horizontal_margin"
|
||||
android:paddingTop="@dimen/activity_vertical_margin"
|
||||
tools:context="us.keithirwin.tracman.MainActivity$PlaceholderFragment">
|
||||
|
||||
<LinearLayout android:id="@+id/main_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:weightSum="5"
|
||||
tools:context="us.keithirwin.tracman.MainActivity"
|
||||
android:clickable="true">
|
||||
|
||||
<RelativeLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:layout_weight="1">
|
||||
|
||||
<ImageView android:id="@+id/main_logo"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/logo_description"
|
||||
android:padding="5dp"
|
||||
android:src="@drawable/logo_by"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true" />
|
||||
<TextView android:id="@+id/main_activity_title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="60dp"
|
||||
android:layout_marginStart="60dp"
|
||||
android:gravity="center"
|
||||
android:text="@string/welcome"
|
||||
android:textSize="46sp"
|
||||
android:textColor="@color/Yellow"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_alignParentEnd="true"/>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:orientation="vertical"
|
||||
android:paddingLeft="@dimen/activity_horizontal_margin"
|
||||
android:paddingRight="@dimen/activity_horizontal_margin"
|
||||
android:layout_weight="2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<TextView android:id="@+id/named_welcome"
|
||||
android:textSize="18sp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"/>
|
||||
<TextView android:id="@+id/main_description"
|
||||
android:text="@string/main_activity_description"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="18sp"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingLeft="@dimen/activity_horizontal_margin"
|
||||
android:paddingRight="@dimen/activity_horizontal_margin"
|
||||
android:layout_weight="1">
|
||||
<Button android:id="@+id/tracpage_button"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center"
|
||||
android:text="@string/view_trac_button"
|
||||
android:textColor="@color/Yellow"
|
||||
android:textSize="28sp" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:paddingLeft="@dimen/activity_horizontal_margin"
|
||||
android:paddingRight="@dimen/activity_horizontal_margin"
|
||||
android:layout_weight="1">
|
||||
|
||||
<TextView android:id="@+id/main_error"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/Red"
|
||||
android:textSize="22sp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</RelativeLayout>
|
|
@ -11,7 +11,7 @@
|
|||
<string name="google_connection_error">FEHLER: Könnte nicht zum Google API Server verbinden. </string>
|
||||
<string name="help_name">Hilfe</string>
|
||||
<string name="loading">Ladet…</string>
|
||||
<string name="login_description">Auf dem Knopf klicken, einzuloggen. Ein Tracman Konto ist erforderlich. Falls Sie keiner haben, dürfen Sie <a href="https://tracman.org/#get">um eine Einladung bitten</a>.</string>
|
||||
<string name="login_description">Auf dem Knopf klicken, einzuloggen. Ein Tracman Konto ist erforderlich. Falls Sie keiner haben, dürfen Sie <a href="https://tracman.org/login">mit ihrer Googlekonto mitbewerben</a>.</string>
|
||||
<string name="login_name">Einloggen</string>
|
||||
<string name="login_no_user_error">FEHLER: Nutzer nicht gefunden. </string>
|
||||
<string name="logout_name">Ausloggen</string>
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
<string name="broadcast_disabled">Transmisiónes apagado</string>
|
||||
<string name="google_connection_error">ERROR: No se puede conectar al Google API servidor. </string>
|
||||
<string name="help_name">Ayuda</string>
|
||||
<string name="login_description">Haga clic en el botón abajo para iniciar una sesión. Se necisita una cuenta de Tracman. Si no tiene uno, puede <a href="https://tracman.org/#get"> solicitar una invitación </a>. </string>
|
||||
<string name="login_description">"Haga clic en el botón abajo para iniciar una sesión. Se necisita una cuenta de Tracman. Si no tiene uno, puede <a href="https://tracman.org/login">participar con sua cuenta Google</a>. "</string>
|
||||
<string name="login_name">Iniciar sesión</string>
|
||||
<string name="login_no_user_error">ERROR: Usario no encontrado</string>
|
||||
<string name="logout_name">Cerrar sesión</string>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<!-- Strings related to login -->
|
||||
<string name="login_name">Login</string>
|
||||
<string name="logout_name">Logout</string>
|
||||
<string name="login_description">Click the button below to log in. You will need a Tracman account. If you don\'t have one, you can <a href="https://tracman.org/#get">request an invite</a>. </string>
|
||||
<string name="login_description">"Click the button below to log in. You will need a Tracman account. If you don't have one, you can <a href="https://tracman.org/login">join with your google account</a>. "</string>
|
||||
<string name="server_connection_error">ERROR: Unable to connect to Tracman server. </string>
|
||||
|
||||
<!-- Strings related to notifications -->
|
||||
|
|
|
@ -5,8 +5,8 @@ buildscript {
|
|||
jcenter()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:2.2.0'
|
||||
classpath 'com.google.gms:google-services:1.5.0-beta2'
|
||||
classpath 'com.android.tools.build:gradle:2.2.3'
|
||||
classpath 'com.google.gms:google-services:3.0.0'
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
// in the individual module build.gradle files
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
#Tue Sep 27 15:34:22 EDT 2016
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
|
After Width: | Height: | Size: 118 KiB |
|
@ -0,0 +1,67 @@
|
|||
<?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"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
fill="#000000"
|
||||
height="48"
|
||||
viewBox="0 0 24 24"
|
||||
width="48"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="logo.svg">
|
||||
<metadata
|
||||
id="metadata12">
|
||||
<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="defs10" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="748"
|
||||
id="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:snap-midpoints="true"
|
||||
inkscape:zoom="19.666667"
|
||||
inkscape:cx="24.660427"
|
||||
inkscape:cy="23.340792"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<path
|
||||
d="M0 0h24v24H0z"
|
||||
id="path4"
|
||||
fill="none" />
|
||||
<path
|
||||
d="M 20.94,11 C 20.48,6.83 17.17,3.52 13,3.06 L 13,1 11,1 11,3.06 C 6.83,3.52 3.52,6.83 3.06,11 L 1,11 l 0,2 2.06,0 c 0.46,4.17 3.77,7.48 7.94,7.94 l 0,2.06 2,0 0,-2.06 C 17.17,20.48 20.48,17.17 20.94,13 L 23,13 23,11 Z M 12,19 C 8.13,19 5,15.87 5,12 5,8.13 8.13,5 12,5 c 3.87,0 7,3.13 7,7 0,3.87 -3.13,7 -7,7 z"
|
||||
id="path6"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccccccccccccccsssss" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000"
|
||||
d="m 15.988811,13.795153 a 4.2187634,4 0 1 1 0.01119,-3.569022 l -3.780543,1.773886 z"
|
||||
id="path4-9" />
|
||||
</svg>
|
After Width: | Height: | Size: 2.1 KiB |
|
@ -0,0 +1,93 @@
|
|||
<?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"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
height="48.046875"
|
||||
viewBox="0 0 24.023438 24.023438"
|
||||
width="48.046875"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="logo-bw.svg"
|
||||
style="fill:#000000"
|
||||
inkscape:export-filename="/home/keith/Code/node/tracman/static/img/icon/bw/logo-bw-48.png"
|
||||
inkscape:export-xdpi="89.912193"
|
||||
inkscape:export-ydpi="89.912193">
|
||||
<metadata
|
||||
id="metadata12">
|
||||
<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="defs10" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="748"
|
||||
id="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:snap-midpoints="true"
|
||||
inkscape:zoom="19.666667"
|
||||
inkscape:cx="16.700814"
|
||||
inkscape:cy="35.56762"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0" />
|
||||
<path
|
||||
sodipodi:type="inkscape:offset"
|
||||
inkscape:radius="3.2822878"
|
||||
inkscape:original="M 12.021484 8.0039062 A 4.2187634 4 0 1 0 15.988281 13.794922 L 12.21875 12 L 16 10.226562 A 4.2187634 4 0 0 0 12.021484 8.0039062 z "
|
||||
style="fill:#ffffff"
|
||||
id="path5769"
|
||||
d="M 11.876953,4.7246094 C 9.3134474,4.8381543 6.8156954,6.3243567 5.578125,8.6113281 4.3405546,10.8983 4.5056929,13.891624 5.9726562,16.033203 c 1.4669634,2.141579 4.0878638,3.372696 6.6503908,3.238281 2.562527,-0.134415 5.048175,-1.641297 6.265625,-3.939453 a 3.2826161,3.2826161 0 0 0 -0.144531,-3.3125 3.2826161,3.2826161 0 0 0 0.166015,-3.3105466 c -1.32664,-2.543804 -4.205574,-4.1095888 -7.033203,-3.984375 z"
|
||||
inkscape:export-xdpi="49.549999"
|
||||
inkscape:export-ydpi="49.549999"
|
||||
transform="translate(0.01171875,0.01171875)" />
|
||||
<path
|
||||
sodipodi:type="inkscape:offset"
|
||||
inkscape:radius="1.0124902"
|
||||
inkscape:original="M 11 1 L 11 3.0605469 C 6.83 3.5205469 3.5205469 6.83 3.0605469 11 L 1 11 L 1 13 L 3.0605469 13 C 3.5205469 17.17 6.83 20.479453 11 20.939453 L 11 23 L 13 23 L 13 20.939453 C 17.17 20.479453 20.479453 17.17 20.939453 13 L 23 13 L 23 11 L 20.939453 11 C 20.479453 6.83 17.17 3.5205469 13 3.0605469 L 13 1 L 11 1 z M 12 5 C 15.87 5 19 8.13 19 12 C 19 15.87 15.87 19 12 19 C 8.13 19 5 15.87 5 12 C 5 8.13 8.13 5 12 5 z "
|
||||
id="path5765"
|
||||
d="M 11,-0.01171875 A 1.0125914,1.0125914 0 0 0 9.9882812,1 l 0,1.3144531 C 6.1119154,3.1236169 3.1236169,6.1119154 2.3144531,9.9882812 L 1,9.9882812 A 1.0125914,1.0125914 0 0 0 -0.01171875,11 l 0,2 A 1.0125914,1.0125914 0 0 0 1,14.011719 l 1.3144531,0 c 0.8091638,3.876366 3.7974623,6.864664 7.6738281,7.673828 l 0,1.314453 A 1.0125914,1.0125914 0 0 0 11,24.011719 l 2,0 A 1.0125914,1.0125914 0 0 0 14.011719,23 l 0,-1.314453 c 3.876366,-0.809164 6.864664,-3.797462 7.673828,-7.673828 l 1.314453,0 A 1.0125914,1.0125914 0 0 0 24.011719,13 l 0,-2 A 1.0125914,1.0125914 0 0 0 23,9.9882812 l -1.314453,0 C 20.876383,6.1119154 17.888085,3.1236169 14.011719,2.3144531 L 14.011719,1 A 1.0125914,1.0125914 0 0 0 13,-0.01171875 l -2,0 z m 1,6.02343755 c 3.324075,0 5.988281,2.6642061 5.988281,5.9882812 0,3.324075 -2.664206,5.988281 -5.988281,5.988281 C 8.6759249,17.988281 6.0117188,15.324075 6.0117188,12 6.0117188,8.6759249 8.6759249,6.0117187 12,6.0117188 Z"
|
||||
style="fill:#ffffff"
|
||||
transform="translate(0.01171875,0.01171875)" />
|
||||
<path
|
||||
d="m 0.01171875,0.01171875 24.00000025,0 0,24.00000025 -24.00000025,0 z"
|
||||
id="path4"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:none" />
|
||||
<path
|
||||
d="m 20.951719,11.011719 c -0.46,-4.1700003 -3.77,-7.4800002 -7.94,-7.9400002 l 0,-2.0600001 -2,0 0,2.0600001 c -4.1700003,0.46 -7.4800002,3.7699999 -7.9400002,7.9400002 l -2.0600001,0 0,2 2.0600001,0 c 0.46,4.17 3.7699999,7.48 7.9400002,7.94 l 0,2.06 2,0 0,-2.06 c 4.17,-0.46 7.48,-3.77 7.94,-7.94 l 2.06,0 0,-2 z m -8.94,8 c -3.8700002,0 -7.0000003,-3.13 -7.0000003,-7 0,-3.8700002 3.1300001,-7.0000003 7.0000003,-7.0000003 3.87,0 7,3.13 7,7.0000003 0,3.87 -3.13,7 -7,7 z"
|
||||
id="path6"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccccccccccccccsssss" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000"
|
||||
d="m 16.00053,13.806872 a 4.2187634,4 0 1 1 0.01119,-3.569022 l -3.780543,1.773886 z"
|
||||
id="path4-9" />
|
||||
</svg>
|
After Width: | Height: | Size: 5.1 KiB |
After Width: | Height: | Size: 58 KiB |
|
@ -0,0 +1,166 @@
|
|||
<?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"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
height="48.046875"
|
||||
viewBox="0 0 24.023438 24.023438"
|
||||
width="48.046875"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="by-shadow.svg"
|
||||
style="fill:#000000"
|
||||
inkscape:export-filename="/home/keith/Code/node/tracman/static/img/icon/by/16.png"
|
||||
inkscape:export-xdpi="27.27"
|
||||
inkscape:export-ydpi="27.27">
|
||||
<metadata
|
||||
id="metadata12">
|
||||
<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 />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs10">
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB;"
|
||||
inkscape:label="Drop Shadow"
|
||||
id="filter4310">
|
||||
<feFlood
|
||||
flood-opacity="0.498039"
|
||||
flood-color="rgb(0,0,0)"
|
||||
result="flood"
|
||||
id="feFlood4312" />
|
||||
<feComposite
|
||||
in="flood"
|
||||
in2="SourceGraphic"
|
||||
operator="in"
|
||||
result="composite1"
|
||||
id="feComposite4314" />
|
||||
<feGaussianBlur
|
||||
in="composite1"
|
||||
stdDeviation="0.4"
|
||||
result="blur"
|
||||
id="feGaussianBlur4316" />
|
||||
<feOffset
|
||||
dx="0.4"
|
||||
dy="0.4"
|
||||
result="offset"
|
||||
id="feOffset4318" />
|
||||
<feComposite
|
||||
in="SourceGraphic"
|
||||
in2="offset"
|
||||
operator="over"
|
||||
result="composite2"
|
||||
id="feComposite4320" />
|
||||
</filter>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB;"
|
||||
inkscape:label="Drop Shadow"
|
||||
id="filter4394">
|
||||
<feFlood
|
||||
flood-opacity="0.498039"
|
||||
flood-color="rgb(0,0,0)"
|
||||
result="flood"
|
||||
id="feFlood4396" />
|
||||
<feComposite
|
||||
in="flood"
|
||||
in2="SourceGraphic"
|
||||
operator="in"
|
||||
result="composite1"
|
||||
id="feComposite4398" />
|
||||
<feGaussianBlur
|
||||
in="composite1"
|
||||
stdDeviation="0.2"
|
||||
result="blur"
|
||||
id="feGaussianBlur4400" />
|
||||
<feOffset
|
||||
dx="0.4"
|
||||
dy="0.4"
|
||||
result="offset"
|
||||
id="feOffset4402" />
|
||||
<feComposite
|
||||
in="SourceGraphic"
|
||||
in2="offset"
|
||||
operator="over"
|
||||
result="composite2"
|
||||
id="feComposite4404" />
|
||||
</filter>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="748"
|
||||
id="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:snap-midpoints="true"
|
||||
inkscape:zoom="9.8333335"
|
||||
inkscape:cx="24.399869"
|
||||
inkscape:cy="23.448333"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid3337" />
|
||||
</sodipodi:namedview>
|
||||
<path
|
||||
sodipodi:type="inkscape:offset"
|
||||
inkscape:radius="3.2822878"
|
||||
inkscape:original="M 12.021484 8.0039062 A 4.2187634 4 0 1 0 15.988281 13.794922 L 12.21875 12 L 16 10.226562 A 4.2187634 4 0 0 0 12.021484 8.0039062 z "
|
||||
style="fill:#fbc93d;fill-opacity:1"
|
||||
id="path5769"
|
||||
d="M 11.876953,4.7246094 C 9.3134474,4.8381543 6.8156954,6.3243567 5.578125,8.6113281 4.3405546,10.8983 4.5056929,13.891624 5.9726562,16.033203 c 1.4669634,2.141579 4.0878638,3.372696 6.6503908,3.238281 2.562527,-0.134415 5.048175,-1.641297 6.265625,-3.939453 a 3.2826161,3.2826161 0 0 0 -0.144531,-3.3125 3.2826161,3.2826161 0 0 0 0.166015,-3.3105466 c -1.32664,-2.543804 -4.205574,-4.1095888 -7.033203,-3.984375 z"
|
||||
inkscape:export-xdpi="49.549999"
|
||||
inkscape:export-ydpi="49.549999"
|
||||
transform="translate(0.01171875,0.01171875)" />
|
||||
<path
|
||||
sodipodi:type="inkscape:offset"
|
||||
inkscape:radius="1.0124902"
|
||||
inkscape:original="M 11 1 L 11 3.0605469 C 6.83 3.5205469 3.5205469 6.83 3.0605469 11 L 1 11 L 1 13 L 3.0605469 13 C 3.5205469 17.17 6.83 20.479453 11 20.939453 L 11 23 L 13 23 L 13 20.939453 C 17.17 20.479453 20.479453 17.17 20.939453 13 L 23 13 L 23 11 L 20.939453 11 C 20.479453 6.83 17.17 3.5205469 13 3.0605469 L 13 1 L 11 1 z M 12 5 C 15.87 5 19 8.13 19 12 C 19 15.87 15.87 19 12 19 C 8.13 19 5 15.87 5 12 C 5 8.13 8.13 5 12 5 z "
|
||||
id="path5765"
|
||||
d="M 11,-0.01171875 A 1.0125914,1.0125914 0 0 0 9.9882812,1 l 0,1.3144531 C 6.1119154,3.1236169 3.1236169,6.1119154 2.3144531,9.9882812 L 1,9.9882812 A 1.0125914,1.0125914 0 0 0 -0.01171875,11 l 0,2 A 1.0125914,1.0125914 0 0 0 1,14.011719 l 1.3144531,0 c 0.8091638,3.876366 3.7974623,6.864664 7.6738281,7.673828 l 0,1.314453 A 1.0125914,1.0125914 0 0 0 11,24.011719 l 2,0 A 1.0125914,1.0125914 0 0 0 14.011719,23 l 0,-1.314453 c 3.876366,-0.809164 6.864664,-3.797462 7.673828,-7.673828 l 1.314453,0 A 1.0125914,1.0125914 0 0 0 24.011719,13 l 0,-2 A 1.0125914,1.0125914 0 0 0 23,9.9882812 l -1.314453,0 C 20.876383,6.1119154 17.888085,3.1236169 14.011719,2.3144531 L 14.011719,1 A 1.0125914,1.0125914 0 0 0 13,-0.01171875 l -2,0 z m 1,6.02343755 c 3.324075,0 5.988281,2.6642061 5.988281,5.9882812 0,3.324075 -2.664206,5.988281 -5.988281,5.988281 C 8.6759249,17.988281 6.0117188,15.324075 6.0117188,12 6.0117188,8.6759249 8.6759249,6.0117187 12,6.0117188 Z"
|
||||
style="fill:#fbc93d;fill-opacity:1"
|
||||
transform="translate(0.01171875,0.01171875)" />
|
||||
<path
|
||||
d="m 0.01171875,0.01171875 24.00000025,0 0,24.00000025 -24.00000025,0 z"
|
||||
id="path4"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:none" />
|
||||
<path
|
||||
d="m 20.951719,11.011719 c -0.46,-4.1700003 -3.77,-7.4800002 -7.94,-7.9400002 l 0,-2.0600001 -2,0 0,2.0600001 c -4.1700003,0.46 -7.4800002,3.7699999 -7.9400002,7.9400002 l -2.0600001,0 0,2 2.0600001,0 c 0.46,4.17 3.7699999,7.48 7.9400002,7.94 l 0,2.06 2,0 0,-2.06 c 4.17,-0.46 7.48,-3.77 7.94,-7.94 l 2.06,0 0,-2 z m -8.94,8 c -3.8700002,0 -7.0000003,-3.13 -7.0000003,-7 0,-3.8700002 3.1300001,-7.0000003 7.0000003,-7.0000003 3.87,0 7,3.13 7,7.0000003 0,3.87 -3.13,7 -7,7 z"
|
||||
id="path6"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccccccccccccccsssss"
|
||||
style="filter:url(#filter4310)"
|
||||
inkscape:export-filename="/home/keith/Code/Android/Tracman/app/src/main/res/drawable-hdpi/logo_by.png"
|
||||
inkscape:export-xdpi="122.73"
|
||||
inkscape:export-ydpi="122.73" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;filter:url(#filter4394)"
|
||||
d="m 16.00053,13.806872 a 4.2187634,4 0 1 1 0.01119,-3.569022 l -3.780543,1.773886 z"
|
||||
id="path4-9" />
|
||||
</svg>
|
After Width: | Height: | Size: 7.0 KiB |
|
@ -0,0 +1,97 @@
|
|||
<?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"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
height="48.046875"
|
||||
viewBox="0 0 24.023438 24.023438"
|
||||
width="48.046875"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="logo-by.svg"
|
||||
style="fill:#000000"
|
||||
inkscape:export-filename="/home/keith/Code/node/tracman/static/img/icon/bw/logo-bw-48.png"
|
||||
inkscape:export-xdpi="89.912193"
|
||||
inkscape:export-ydpi="89.912193">
|
||||
<metadata
|
||||
id="metadata12">
|
||||
<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="defs10" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="748"
|
||||
id="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:snap-midpoints="true"
|
||||
inkscape:zoom="19.666667"
|
||||
inkscape:cx="16.700814"
|
||||
inkscape:cy="25.296434"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid3337" />
|
||||
</sodipodi:namedview>
|
||||
<path
|
||||
sodipodi:type="inkscape:offset"
|
||||
inkscape:radius="3.2822878"
|
||||
inkscape:original="M 12.021484 8.0039062 A 4.2187634 4 0 1 0 15.988281 13.794922 L 12.21875 12 L 16 10.226562 A 4.2187634 4 0 0 0 12.021484 8.0039062 z "
|
||||
style="fill:#fbc93d;fill-opacity:1"
|
||||
id="path5769"
|
||||
d="M 11.876953,4.7246094 C 9.3134474,4.8381543 6.8156954,6.3243567 5.578125,8.6113281 4.3405546,10.8983 4.5056929,13.891624 5.9726562,16.033203 c 1.4669634,2.141579 4.0878638,3.372696 6.6503908,3.238281 2.562527,-0.134415 5.048175,-1.641297 6.265625,-3.939453 a 3.2826161,3.2826161 0 0 0 -0.144531,-3.3125 3.2826161,3.2826161 0 0 0 0.166015,-3.3105466 c -1.32664,-2.543804 -4.205574,-4.1095888 -7.033203,-3.984375 z"
|
||||
inkscape:export-xdpi="49.549999"
|
||||
inkscape:export-ydpi="49.549999"
|
||||
transform="translate(0.01171875,0.01171875)" />
|
||||
<path
|
||||
sodipodi:type="inkscape:offset"
|
||||
inkscape:radius="1.0124902"
|
||||
inkscape:original="M 11 1 L 11 3.0605469 C 6.83 3.5205469 3.5205469 6.83 3.0605469 11 L 1 11 L 1 13 L 3.0605469 13 C 3.5205469 17.17 6.83 20.479453 11 20.939453 L 11 23 L 13 23 L 13 20.939453 C 17.17 20.479453 20.479453 17.17 20.939453 13 L 23 13 L 23 11 L 20.939453 11 C 20.479453 6.83 17.17 3.5205469 13 3.0605469 L 13 1 L 11 1 z M 12 5 C 15.87 5 19 8.13 19 12 C 19 15.87 15.87 19 12 19 C 8.13 19 5 15.87 5 12 C 5 8.13 8.13 5 12 5 z "
|
||||
id="path5765"
|
||||
d="M 11,-0.01171875 A 1.0125914,1.0125914 0 0 0 9.9882812,1 l 0,1.3144531 C 6.1119154,3.1236169 3.1236169,6.1119154 2.3144531,9.9882812 L 1,9.9882812 A 1.0125914,1.0125914 0 0 0 -0.01171875,11 l 0,2 A 1.0125914,1.0125914 0 0 0 1,14.011719 l 1.3144531,0 c 0.8091638,3.876366 3.7974623,6.864664 7.6738281,7.673828 l 0,1.314453 A 1.0125914,1.0125914 0 0 0 11,24.011719 l 2,0 A 1.0125914,1.0125914 0 0 0 14.011719,23 l 0,-1.314453 c 3.876366,-0.809164 6.864664,-3.797462 7.673828,-7.673828 l 1.314453,0 A 1.0125914,1.0125914 0 0 0 24.011719,13 l 0,-2 A 1.0125914,1.0125914 0 0 0 23,9.9882812 l -1.314453,0 C 20.876383,6.1119154 17.888085,3.1236169 14.011719,2.3144531 L 14.011719,1 A 1.0125914,1.0125914 0 0 0 13,-0.01171875 l -2,0 z m 1,6.02343755 c 3.324075,0 5.988281,2.6642061 5.988281,5.9882812 0,3.324075 -2.664206,5.988281 -5.988281,5.988281 C 8.6759249,17.988281 6.0117188,15.324075 6.0117188,12 6.0117188,8.6759249 8.6759249,6.0117187 12,6.0117188 Z"
|
||||
style="fill:#fbc93d;fill-opacity:1"
|
||||
transform="translate(0.01171875,0.01171875)" />
|
||||
<path
|
||||
d="m 0.01171875,0.01171875 24.00000025,0 0,24.00000025 -24.00000025,0 z"
|
||||
id="path4"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:none" />
|
||||
<path
|
||||
d="m 20.951719,11.011719 c -0.46,-4.1700003 -3.77,-7.4800002 -7.94,-7.9400002 l 0,-2.0600001 -2,0 0,2.0600001 c -4.1700003,0.46 -7.4800002,3.7699999 -7.9400002,7.9400002 l -2.0600001,0 0,2 2.0600001,0 c 0.46,4.17 3.7699999,7.48 7.9400002,7.94 l 0,2.06 2,0 0,-2.06 c 4.17,-0.46 7.48,-3.77 7.94,-7.94 l 2.06,0 0,-2 z m -8.94,8 c -3.8700002,0 -7.0000003,-3.13 -7.0000003,-7 0,-3.8700002 3.1300001,-7.0000003 7.0000003,-7.0000003 3.87,0 7,3.13 7,7.0000003 0,3.87 -3.13,7 -7,7 z"
|
||||
id="path6"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccccccccccccccsssss" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000"
|
||||
d="m 16.00053,13.806872 a 4.2187634,4 0 1 1 0.01119,-3.569022 l -3.780543,1.773886 z"
|
||||
id="path4-9" />
|
||||
</svg>
|
After Width: | Height: | Size: 5.2 KiB |
|
@ -0,0 +1,102 @@
|
|||
<?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"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
fill="#000000"
|
||||
height="48"
|
||||
viewBox="0 0 24 24"
|
||||
width="48"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="white-trans.svg"
|
||||
inkscape:export-filename="/home/keith/Code/Android/Tracman/app/src/main/res/drawable-hdpi/logo_trans.png"
|
||||
inkscape:export-xdpi="67.5"
|
||||
inkscape:export-ydpi="67.5">
|
||||
<metadata
|
||||
id="metadata12">
|
||||
<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="defs10">
|
||||
<filter
|
||||
inkscape:label="Opacity"
|
||||
style="color-interpolation-filters:sRGB;"
|
||||
id="filter3355">
|
||||
<feColorMatrix
|
||||
values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 5 -1 "
|
||||
result="colormatrix"
|
||||
id="feColorMatrix3357" />
|
||||
<feComposite
|
||||
in2="colormatrix"
|
||||
operator="arithmetic"
|
||||
k2="0.5"
|
||||
result="composite"
|
||||
id="feComposite3359" />
|
||||
</filter>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="748"
|
||||
id="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:snap-midpoints="true"
|
||||
inkscape:zoom="9.8333335"
|
||||
inkscape:cx="20.507251"
|
||||
inkscape:cy="22.386632"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid3337" />
|
||||
</sodipodi:namedview>
|
||||
<path
|
||||
d="M0 0h24v24H0z"
|
||||
id="path4"
|
||||
fill="none" />
|
||||
<path
|
||||
d="M 20.94,11 C 20.48,6.83 17.17,3.52 13,3.06 L 13,1 11,1 11,3.06 C 6.83,3.52 3.52,6.83 3.06,11 L 1,11 l 0,2 2.06,0 c 0.46,4.17 3.77,7.48 7.94,7.94 l 0,2.06 2,0 0,-2.06 C 17.17,20.48 20.48,17.17 20.94,13 L 23,13 23,11 Z M 12,19 C 8.13,19 5,15.87 5,12 5,8.13 8.13,5 12,5 c 3.87,0 7,3.13 7,7 0,3.87 -3.13,7 -7,7 z"
|
||||
id="path6"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccccccccccccccsssss" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000"
|
||||
d="m 15.988811,13.795153 a 4.2187634,4 0 1 1 0.01119,-3.569022 l -3.780543,1.773886 z"
|
||||
id="path4-9" />
|
||||
<path
|
||||
style="fill:#ffffff;filter:url(#filter3355)"
|
||||
d="m 23.490935,31.937791 c -0.09788,-0.01269 -0.453877,-0.07829 -0.791103,-0.145762 -2.300431,-0.460296 -4.337748,-1.81181 -5.524057,-3.664544 -0.44367,-0.692909 -0.880275,-1.846406 -1.037542,-2.741158 -0.12118,-0.689442 -0.122269,-2.10555 -0.0021,-2.757751 0.464315,-2.520417 1.950171,-4.475681 4.278551,-5.630218 0.780811,-0.387168 1.322452,-0.581371 2.114168,-0.758025 3.189914,-0.711761 6.433881,0.314229 8.389304,2.653339 0.380791,0.455508 0.951598,1.303892 0.998847,1.484575 0.01524,0.05827 -0.897762,0.507385 -3.707152,1.823595 -2.050054,0.960458 -3.743662,1.761257 -3.763573,1.779555 -0.01991,0.0183 1.284325,0.661512 2.898305,1.429366 1.613979,0.767854 3.308182,1.574736 3.764895,1.793071 l 0.830387,0.396973 -0.162638,0.291065 c -0.728679,1.304084 -2.000056,2.503451 -3.378348,3.187002 -1.281341,0.635469 -2.159121,0.841509 -3.687585,0.86558 -0.573305,0.009 -1.122457,0.006 -1.220339,-0.0067 z"
|
||||
id="path3339"
|
||||
inkscape:connector-curvature="0"
|
||||
transform="scale(0.5,0.5)" />
|
||||
<path
|
||||
style="fill:#ffffff"
|
||||
d="m 22.016359,43.905089 0,-2.049034 -0.472477,-0.05967 C 18.450732,41.405707 15.37349,40.075058 12.711275,37.977019 12.034625,37.443765 10.432061,35.821611 9.8923288,35.123615 7.8541766,32.48782 6.5570641,29.395497 6.1758234,26.263445 l -0.035588,-0.292373 -2.0534632,0 -2.0534632,0 0,-1.98305 0,-1.983051 2.0487483,0 2.0487482,0 0.1127191,-0.724577 c 0.599214,-3.85184 2.3287028,-7.250446 5.0915727,-10.005414 2.82101,-2.812941 6.436711,-4.5823511 10.439737,-5.1088785 l 0.241525,-0.031768 0,-2.0562064 0,-2.0562065 1.983051,0 1.983051,0 0,2.0562065 0,2.0562064 0.241525,0.031768 c 6.055798,0.7965333 11.243423,4.4983015 13.894993,9.9151405 0.844865,1.72596 1.341475,3.303861 1.636317,5.199152 l 0.112719,0.724577 2.048748,0 2.048748,0 0,1.983051 0,1.98305 -2.049826,0 -2.049828,0 -0.110799,0.75218 c -0.192208,1.304829 -0.63931,2.912391 -1.162568,4.180024 -0.543916,1.317676 -1.521782,2.976479 -2.487188,4.21914 -0.538794,0.693528 -1.785803,1.987976 -2.461824,2.555474 -2.204829,1.850884 -4.683929,3.120243 -7.372882,3.775094 -0.612253,0.149105 -1.917248,0.382495 -2.138709,0.382495 l -0.149426,0 0,2.059322 0,2.059322 -1.983051,0 -1.983051,0 0,-2.049034 z m 4.037633,-6.035108 c 4.972356,-0.752988 9.139502,-4.053473 10.978841,-8.695519 0.676309,-1.706842 0.970201,-3.280364 0.968687,-5.18644 -0.0012,-1.506015 -0.146533,-2.554072 -0.547231,-3.946206 -0.48784,-1.694889 -1.410776,-3.454087 -2.558029,-4.875828 -0.491872,-0.609556 -1.653766,-1.754156 -2.252782,-2.21925 -2.69679,-2.09387 -6.060389,-3.1401596 -9.444915,-2.93796 -3.017545,0.180276 -5.78054,1.254768 -8.082868,3.14332 -0.65663,0.53862 -1.696105,1.594085 -2.15865,2.191856 -1.608249,2.078424 -2.583835,4.467791 -2.896184,7.09322 -0.083554,0.702309 -0.083555,2.480821 -10e-7,3.152542 0.401961,3.231545 1.794606,6.103508 4.044146,8.339988 1.088817,1.082496 2.28325,1.940209 3.635698,2.610767 1.401625,0.69494 2.755494,1.118848 4.241388,1.328015 1.012296,0.142499 1.052732,0.144737 2.271555,0.125676 0.778237,-0.01217 1.29696,-0.04795 1.800345,-0.124181 z"
|
||||
id="path3341"
|
||||
inkscape:connector-curvature="0"
|
||||
transform="scale(0.5,0.5)" />
|
||||
</svg>
|
After Width: | Height: | Size: 6.0 KiB |
|
@ -0,0 +1,79 @@
|
|||
<?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"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
fill="#000000"
|
||||
height="48"
|
||||
viewBox="0 0 24 24"
|
||||
width="48"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="logo-white.svg">
|
||||
<metadata
|
||||
id="metadata12">
|
||||
<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="defs10" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="748"
|
||||
id="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:snap-midpoints="true"
|
||||
inkscape:zoom="19.666667"
|
||||
inkscape:cx="16.677376"
|
||||
inkscape:cy="23.239097"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<path
|
||||
d="M0 0h24v24H0z"
|
||||
id="path4"
|
||||
fill="none" />
|
||||
<path
|
||||
d="M 20.94,11 C 20.48,6.83 17.17,3.52 13,3.06 L 13,1 11,1 11,3.06 C 6.83,3.52 3.52,6.83 3.06,11 L 1,11 l 0,2 2.06,0 c 0.46,4.17 3.77,7.48 7.94,7.94 l 0,2.06 2,0 0,-2.06 C 17.17,20.48 20.48,17.17 20.94,13 L 23,13 23,11 Z M 12,19 C 8.13,19 5,15.87 5,12 5,8.13 8.13,5 12,5 c 3.87,0 7,3.13 7,7 0,3.87 -3.13,7 -7,7 z"
|
||||
id="path6"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccccccccccccccsssss" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000"
|
||||
d="m 15.988811,13.795153 a 4.2187634,4 0 1 1 0.01119,-3.569022 l -3.780543,1.773886 z"
|
||||
id="path4-9" />
|
||||
<path
|
||||
style="fill:#ffffff"
|
||||
d="m 23.490935,31.937791 c -0.09788,-0.01269 -0.453877,-0.07829 -0.791103,-0.145762 -2.300431,-0.460296 -4.337748,-1.81181 -5.524057,-3.664544 -0.44367,-0.692909 -0.880275,-1.846406 -1.037542,-2.741158 -0.12118,-0.689442 -0.122269,-2.10555 -0.0021,-2.757751 0.464315,-2.520417 1.950171,-4.475681 4.278551,-5.630218 0.780811,-0.387168 1.322452,-0.581371 2.114168,-0.758025 3.189914,-0.711761 6.433881,0.314229 8.389304,2.653339 0.380791,0.455508 0.951598,1.303892 0.998847,1.484575 0.01524,0.05827 -0.897762,0.507385 -3.707152,1.823595 -2.050054,0.960458 -3.743662,1.761257 -3.763573,1.779555 -0.01991,0.0183 1.284325,0.661512 2.898305,1.429366 1.613979,0.767854 3.308182,1.574736 3.764895,1.793071 l 0.830387,0.396973 -0.162638,0.291065 c -0.728679,1.304084 -2.000056,2.503451 -3.378348,3.187002 -1.281341,0.635469 -2.159121,0.841509 -3.687585,0.86558 -0.573305,0.009 -1.122457,0.006 -1.220339,-0.0067 z"
|
||||
id="path3339"
|
||||
inkscape:connector-curvature="0"
|
||||
transform="scale(0.5,0.5)" />
|
||||
<path
|
||||
style="fill:#ffffff"
|
||||
d="m 22.016359,43.905089 0,-2.049034 -0.472477,-0.05967 C 18.450732,41.405707 15.37349,40.075058 12.711275,37.977019 12.034625,37.443765 10.432061,35.821611 9.8923288,35.123615 7.8541766,32.48782 6.5570641,29.395497 6.1758234,26.263445 l -0.035588,-0.292373 -2.0534632,0 -2.0534632,0 0,-1.98305 0,-1.983051 2.0487483,0 2.0487482,0 0.1127191,-0.724577 c 0.599214,-3.85184 2.3287028,-7.250446 5.0915727,-10.005414 2.82101,-2.812941 6.436711,-4.5823511 10.439737,-5.1088785 l 0.241525,-0.031768 0,-2.0562064 0,-2.0562065 1.983051,0 1.983051,0 0,2.0562065 0,2.0562064 0.241525,0.031768 c 6.055798,0.7965333 11.243423,4.4983015 13.894993,9.9151405 0.844865,1.72596 1.341475,3.303861 1.636317,5.199152 l 0.112719,0.724577 2.048748,0 2.048748,0 0,1.983051 0,1.98305 -2.049826,0 -2.049828,0 -0.110799,0.75218 c -0.192208,1.304829 -0.63931,2.912391 -1.162568,4.180024 -0.543916,1.317676 -1.521782,2.976479 -2.487188,4.21914 -0.538794,0.693528 -1.785803,1.987976 -2.461824,2.555474 -2.204829,1.850884 -4.683929,3.120243 -7.372882,3.775094 -0.612253,0.149105 -1.917248,0.382495 -2.138709,0.382495 l -0.149426,0 0,2.059322 0,2.059322 -1.983051,0 -1.983051,0 0,-2.049034 z m 4.037633,-6.035108 c 4.972356,-0.752988 9.139502,-4.053473 10.978841,-8.695519 0.676309,-1.706842 0.970201,-3.280364 0.968687,-5.18644 -0.0012,-1.506015 -0.146533,-2.554072 -0.547231,-3.946206 -0.48784,-1.694889 -1.410776,-3.454087 -2.558029,-4.875828 -0.491872,-0.609556 -1.653766,-1.754156 -2.252782,-2.21925 -2.69679,-2.09387 -6.060389,-3.1401596 -9.444915,-2.93796 -3.017545,0.180276 -5.78054,1.254768 -8.082868,3.14332 -0.65663,0.53862 -1.696105,1.594085 -2.15865,2.191856 -1.608249,2.078424 -2.583835,4.467791 -2.896184,7.09322 -0.083554,0.702309 -0.083555,2.480821 -10e-7,3.152542 0.401961,3.231545 1.794606,6.103508 4.044146,8.339988 1.088817,1.082496 2.28325,1.940209 3.635698,2.610767 1.401625,0.69494 2.755494,1.118848 4.241388,1.328015 1.012296,0.142499 1.052732,0.144737 2.271555,0.125676 0.778237,-0.01217 1.29696,-0.04795 1.800345,-0.124181 z"
|
||||
id="path3341"
|
||||
inkscape:connector-curvature="0"
|
||||
transform="scale(0.5,0.5)" />
|
||||
</svg>
|
After Width: | Height: | Size: 5.3 KiB |
|
@ -0,0 +1,68 @@
|
|||
<?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"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
fill="#000000"
|
||||
height="48"
|
||||
viewBox="0 0 24 24"
|
||||
width="48"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="logo-yellow.svg">
|
||||
<metadata
|
||||
id="metadata12">
|
||||
<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="defs10" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="748"
|
||||
id="namedview8"
|
||||
showgrid="false"
|
||||
inkscape:snap-midpoints="true"
|
||||
inkscape:zoom="19.666667"
|
||||
inkscape:cx="17.084156"
|
||||
inkscape:cy="23.340792"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<path
|
||||
d="M0 0h24v24H0z"
|
||||
id="path4"
|
||||
fill="none" />
|
||||
<path
|
||||
d="M 20.94,11 C 20.48,6.83 17.17,3.52 13,3.06 L 13,1 11,1 11,3.06 C 6.83,3.52 3.52,6.83 3.06,11 L 1,11 l 0,2 2.06,0 c 0.46,4.17 3.77,7.48 7.94,7.94 l 0,2.06 2,0 0,-2.06 C 17.17,20.48 20.48,17.17 20.94,13 L 23,13 23,11 Z M 12,19 C 8.13,19 5,15.87 5,12 5,8.13 8.13,5 12,5 c 3.87,0 7,3.13 7,7 0,3.87 -3.13,7 -7,7 z"
|
||||
id="path6"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccccccccccccccsssss"
|
||||
style="fill:#fbc93d;fill-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#fbc93d;fill-opacity:1"
|
||||
d="m 15.988811,13.795153 a 4.2187634,4 0 1 1 0.01119,-3.569022 l -3.780543,1.773886 z"
|
||||
id="path4-9" />
|
||||
</svg>
|
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 55 KiB |
After Width: | Height: | Size: 53 KiB |
After Width: | Height: | Size: 45 KiB |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 48 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 57 KiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 47 KiB |
After Width: | Height: | Size: 340 KiB |
|
@ -1 +1 @@
|
|||
include ':app'
|
||||
include ':app'
|