-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
lengzehua
committed
May 9, 2018
0 parents
commit 3ddf0fd
Showing
33 changed files
with
838 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
|
||
*/.gitignore | ||
.gradle | ||
.DS_Store | ||
|
||
# built application files | ||
*.apk | ||
*.ap_ | ||
|
||
# files for the dex VM | ||
*.dex | ||
|
||
# Java class files | ||
*.class | ||
|
||
# generated files | ||
bin/ | ||
out/ | ||
gen/ | ||
captures/ | ||
|
||
# Libraries used by the app | ||
# Can explicitly add if we want, but shouldn't do so blindly. Licenses, bloat, etc. | ||
/libs | ||
|
||
|
||
# Build stuff (auto-generated by android update project ...) | ||
build.xml | ||
ant.properties | ||
local.properties | ||
project.properties | ||
|
||
# Eclipse project files | ||
.classpath | ||
.project | ||
|
||
# idea project files | ||
.idea/ | ||
.idea/.name | ||
*.iml | ||
*.ipr | ||
*.iws | ||
|
||
##Gradle-based build | ||
.gradle | ||
build/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
/build |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
apply plugin: 'com.android.application' | ||
|
||
android { | ||
compileSdkVersion 27 | ||
defaultConfig { | ||
applicationId "com.crazypudding.practice.sensorsurvey" | ||
minSdkVersion 19 | ||
targetSdkVersion 27 | ||
versionCode 1 | ||
versionName "1.0" | ||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" | ||
} | ||
buildTypes { | ||
release { | ||
minifyEnabled false | ||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' | ||
} | ||
} | ||
} | ||
|
||
dependencies { | ||
implementation fileTree(dir: 'libs', include: ['*.jar']) | ||
implementation 'com.android.support:appcompat-v7:27.1.1' | ||
implementation 'com.android.support.constraint:constraint-layout:1.1.0' | ||
testImplementation 'junit:junit:4.12' | ||
androidTestImplementation 'com.android.support.test:runner:1.0.2' | ||
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
# Add project specific ProGuard rules here. | ||
# You can control the set of applied configuration files using the | ||
# proguardFiles setting in build.gradle. | ||
# | ||
# For more details, see | ||
# http://developer.android.com/guide/developing/tools/proguard.html | ||
|
||
# If your project uses WebView with JS, uncomment the following | ||
# and specify the fully qualified class name to the JavaScript interface | ||
# class: | ||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview { | ||
# public *; | ||
#} | ||
|
||
# Uncomment this to preserve the line number information for | ||
# debugging stack traces. | ||
#-keepattributes SourceFile,LineNumberTable | ||
|
||
# If you keep the line number information, uncomment this to | ||
# hide the original source file name. | ||
#-renamesourcefileattribute SourceFile |
26 changes: 26 additions & 0 deletions
26
.../src/androidTest/java/com/crazypudding/practice/sensorsurvey/ExampleInstrumentedTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
package com.crazypudding.practice.sensorsurvey; | ||
|
||
import android.content.Context; | ||
import android.support.test.InstrumentationRegistry; | ||
import android.support.test.runner.AndroidJUnit4; | ||
|
||
import org.junit.Test; | ||
import org.junit.runner.RunWith; | ||
|
||
import static org.junit.Assert.*; | ||
|
||
/** | ||
* Instrumented test, which will execute on an Android device. | ||
* | ||
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a> | ||
*/ | ||
@RunWith(AndroidJUnit4.class) | ||
public class ExampleInstrumentedTest { | ||
@Test | ||
public void useAppContext() { | ||
// Context of the app under test. | ||
Context appContext = InstrumentationRegistry.getTargetContext(); | ||
|
||
assertEquals("com.crazypudding.practice.sensorsurvey", appContext.getPackageName()); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | ||
package="com.crazypudding.practice.sensorsurvey"> | ||
|
||
<application | ||
android:allowBackup="true" | ||
android:icon="@mipmap/ic_launcher" | ||
android:label="@string/app_name" | ||
android:roundIcon="@mipmap/ic_launcher_round" | ||
android:supportsRtl="true" | ||
android:theme="@style/AppTheme"> | ||
<activity android:name=".MainActivity"> | ||
<intent-filter> | ||
<action android:name="android.intent.action.MAIN" /> | ||
|
||
<category android:name="android.intent.category.LAUNCHER" /> | ||
</intent-filter> | ||
</activity> | ||
</application> | ||
|
||
</manifest> |
112 changes: 112 additions & 0 deletions
112
SensorSurvey/app/src/main/java/com/crazypudding/practice/sensorsurvey/MainActivity.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,112 @@ | ||
package com.crazypudding.practice.sensorsurvey; | ||
|
||
import android.content.Context; | ||
import android.graphics.Color; | ||
import android.hardware.Sensor; | ||
import android.hardware.SensorEvent; | ||
import android.hardware.SensorEventListener; | ||
import android.hardware.SensorManager; | ||
import android.os.Bundle; | ||
import android.support.v7.app.AppCompatActivity; | ||
import android.widget.TextView; | ||
|
||
import java.util.Random; | ||
|
||
public class MainActivity extends AppCompatActivity | ||
implements SensorEventListener { | ||
|
||
private SensorManager mSensorManager; | ||
|
||
// Individual light and proximity sensor. | ||
private Sensor mSensorProximity; | ||
private Sensor mSensorLight; | ||
|
||
// TextView to display current sensor values. | ||
private TextView mTextSensorLight; | ||
private TextView mTextSensorProximity; | ||
|
||
@Override | ||
protected void onCreate(Bundle savedInstanceState) { | ||
super.onCreate(savedInstanceState); | ||
setContentView(R.layout.activity_main); | ||
|
||
// Get instance of the sensorManager. | ||
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); | ||
|
||
mTextSensorLight = findViewById(R.id.label_light); | ||
mTextSensorProximity = findViewById(R.id.label_proximity); | ||
|
||
// Get instance of the default light and proximity sensor. | ||
mSensorLight = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT); | ||
mSensorProximity = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY); | ||
|
||
String sensor_error = getResources().getString(R.string.error_no_sensor); | ||
|
||
if (mSensorLight == null) { | ||
mTextSensorLight.setText(sensor_error); | ||
} | ||
|
||
if (mSensorProximity == null) { | ||
mTextSensorProximity.setText(sensor_error); | ||
} | ||
} | ||
|
||
@Override | ||
protected void onStart() { | ||
super.onStart(); | ||
|
||
if (mSensorProximity != null) { | ||
mSensorManager.registerListener(this, mSensorProximity, SensorManager.SENSOR_DELAY_NORMAL); | ||
} | ||
if (mSensorLight != null) { | ||
mSensorManager.registerListener(this, mSensorLight, SensorManager.SENSOR_DELAY_NORMAL); | ||
} | ||
} | ||
|
||
@Override | ||
protected void onStop() { | ||
super.onStop(); | ||
mSensorManager.unregisterListener(this); | ||
} | ||
|
||
private int getRGBValue() { | ||
return new Random().nextInt(255); | ||
} | ||
|
||
// Change the windowBackground when the difference exceeds 10. | ||
float oldLight = 0; | ||
private void changeWindowBackground(float light) { | ||
if (Math.abs(light - oldLight) > 10) { | ||
getWindow().getDecorView().setBackgroundColor(Color.rgb(getRGBValue(), getRGBValue(), getRGBValue())); | ||
} | ||
oldLight = light; | ||
} | ||
|
||
@Override | ||
public void onSensorChanged(SensorEvent event) { | ||
// Get the sensor type. | ||
int sensorType = event.sensor.getType(); | ||
|
||
// Get the sensor value. Depending on the sensor type, | ||
// the values array may contain a single piece of data or a multidimensional array full of data. | ||
float currentValue = event.values[0]; | ||
|
||
switch (sensorType) { | ||
// Event came from the light sensor. | ||
case Sensor.TYPE_LIGHT: | ||
mTextSensorLight.setText(getResources().getString(R.string.label_light, currentValue)); | ||
changeWindowBackground(currentValue); | ||
break; | ||
// Event came from the proximity sensor. | ||
case Sensor.TYPE_PROXIMITY: | ||
mTextSensorProximity.setText(getResources().getString(R.string.label_proximity, currentValue)); | ||
default: | ||
// do nothing | ||
} | ||
} | ||
|
||
@Override | ||
public void onAccuracyChanged(Sensor sensor, int accuracy) { | ||
|
||
} | ||
} |
34 changes: 34 additions & 0 deletions
34
SensorSurvey/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
<vector xmlns:android="http://schemas.android.com/apk/res/android" | ||
xmlns:aapt="http://schemas.android.com/aapt" | ||
android:width="108dp" | ||
android:height="108dp" | ||
android:viewportHeight="108" | ||
android:viewportWidth="108"> | ||
<path | ||
android:fillType="evenOdd" | ||
android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z" | ||
android:strokeColor="#00000000" | ||
android:strokeWidth="1"> | ||
<aapt:attr name="android:fillColor"> | ||
<gradient | ||
android:endX="78.5885" | ||
android:endY="90.9159" | ||
android:startX="48.7653" | ||
android:startY="61.0927" | ||
android:type="linear"> | ||
<item | ||
android:color="#44000000" | ||
android:offset="0.0" /> | ||
<item | ||
android:color="#00000000" | ||
android:offset="1.0" /> | ||
</gradient> | ||
</aapt:attr> | ||
</path> | ||
<path | ||
android:fillColor="#FFFFFF" | ||
android:fillType="nonZero" | ||
android:pathData="M66.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z" | ||
android:strokeColor="#00000000" | ||
android:strokeWidth="1" /> | ||
</vector> |
Oops, something went wrong.