Skip to content

Commit

Permalink
Merge pull request #1 from danielgomezrico/master
Browse files Browse the repository at this point in the history
v1.0.1
  • Loading branch information
danielgomezrico committed Mar 15, 2015
2 parents 4602be9 + 6da7f5a commit eed8c48
Show file tree
Hide file tree
Showing 23 changed files with 341 additions and 184 deletions.
4 changes: 1 addition & 3 deletions BanjoTuner.iml
Expand Up @@ -7,9 +7,7 @@
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" inherit-compiler-output="false">
<output url="file://$MODULE_DIR$/build/classes/main" />
<output-test url="file://$MODULE_DIR$/build/classes/test" />
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.gradle" />
Expand Down
15 changes: 9 additions & 6 deletions app/app.iml
Expand Up @@ -9,6 +9,7 @@
<facet type="android" name="Android">
<configuration>
<option name="SELECTED_BUILD_VARIANT" value="debug" />
<option name="SELECTED_TEST_ARTIFACT" value="_android_test_" />
<option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
<option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
<option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugTest" />
Expand All @@ -24,6 +25,7 @@
</component>
<component name="NewModuleRootManager" inherit-compiler-output="false">
<output url="file://$MODULE_DIR$/build/intermediates/classes/debug" />
<output-test url="file://$MODULE_DIR$/build/intermediates/classes/test/debug" />
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/debug" isTestSource="false" generated="true" />
Expand Down Expand Up @@ -81,13 +83,14 @@
<excludeFolder url="file://$MODULE_DIR$/build/outputs" />
<excludeFolder url="file://$MODULE_DIR$/build/tmp" />
</content>
<orderEntry type="jdk" jdkName="Android API 21 Platform" jdkType="Android SDK" />
<orderEntry type="jdk" jdkName="Android API 22 Platform" jdkType="Android SDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" exported="" name="support-annotations-21.0.2" level="project" />
<orderEntry type="library" exported="" name="support-v4-21.0.2" level="project" />
<orderEntry type="library" exported="" name="butterknife-6.0.0" level="project" />
<orderEntry type="library" exported="" name="appcompat-v7-21.0.2" level="project" />
<orderEntry type="library" exported="" name="play-services-6.1.71" level="project" />
<orderEntry type="library" exported="" name="support-v4-22.0.0" level="project" />
<orderEntry type="library" exported="" name="support-annotations-22.0.0" level="project" />
<orderEntry type="library" exported="" name="play-services-base-6.5.87" level="project" />
<orderEntry type="library" exported="" name="play-services-ads-6.5.87" level="project" />
<orderEntry type="library" exported="" name="appcompat-v7-22.0.0" level="project" />
<orderEntry type="library" exported="" name="butterknife-6.1.0" level="project" />
</component>
</module>

26 changes: 18 additions & 8 deletions app/build.gradle
@@ -1,18 +1,28 @@
apply plugin: 'com.android.application'

android {
compileSdkVersion 21
buildToolsVersion "21.1.1"
compileSdkVersion 22
buildToolsVersion "21.1.2"

defaultConfig {
applicationId "com.makingiants.android.banjotuner"
minSdkVersion 14
targetSdkVersion 21
versionCode 6
versionName "0.8.1"
targetSdkVersion 22
versionCode 9
versionName "1.0.1"
}
buildTypes {
debug {
buildConfigField "boolean", "ADS_ENABLED", "true"
}
release_paid {
applicationIdSuffix '.donation'
buildConfigField "boolean", "ADS_ENABLED", "false"
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
release {
buildConfigField "boolean", "ADS_ENABLED", "true"
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
Expand All @@ -23,7 +33,7 @@ android {

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.2'
compile 'com.google.android.gms:play-services:6.1.71'
compile 'com.jakewharton:butterknife:6.0.0'
compile 'com.android.support:appcompat-v7:22.+'
compile 'com.google.android.gms:play-services-ads:6.5.87'
compile 'com.jakewharton:butterknife:6.1.0'
}
48 changes: 24 additions & 24 deletions app/src/main/AndroidManifest.xml
@@ -1,33 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.makingiants.android.banjotuner">
package="com.makingiants.android.banjotuner">

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>

<activity
android:name="com.google.android.gms.ads.AdActivity"
android:theme="@android:style/Theme.Translucent"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
<activity
android:name="com.google.android.gms.ads.AdActivity"
android:theme="@android:style/Theme.Translucent"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>

<activity
android:name=".EarActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<activity
android:name=".EarActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>

</manifest>
Expand Up @@ -2,7 +2,8 @@

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.Toolbar;
import android.view.MotionEvent;
import android.widget.Button;
import android.widget.RadioGroup;
import android.widget.ToggleButton;

Expand All @@ -12,13 +13,20 @@
import java.io.IOException;

import butterknife.ButterKnife;
import butterknife.InjectView;
import butterknife.OnClick;
import butterknife.OnTouch;

public class EarActivity extends ActionBarActivity {

//<editor-fold desc="Attributes">

private RadioGroup radioGroupButtons;
@InjectView(R.id.ear_radiogroup_sounds)
RadioGroup radioGroupButtons;

@InjectView(R.id.ear_layout_main)
TouchDrawLayout touchDrawLayout;

private SoundPlayer player;

//</editor-fold>
Expand All @@ -28,14 +36,24 @@ public class EarActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ear);
ButterKnife.inject(this);

Toolbar toolbar = (Toolbar) findViewById(R.id.ear_toolbar);
toolbar.setLogo(R.drawable.ic_launcher);
setSupportActionBar(toolbar);
if (BuildConfig.ADS_ENABLED) {
setContentView(R.layout.activity_ear_ads);

AdRequest adRequest;
if (BuildConfig.DEBUG) {
adRequest = new AdRequest.Builder().addTestDevice("027c6ee5571a8376").build();
} else {
adRequest = new AdRequest.Builder().build();
}
AdView adView = ((AdView) findViewById(R.id.ear_ads));
adView.loadAd(adRequest);
} else {
setContentView(R.layout.activity_ear);
}

ButterKnife.inject(this);

radioGroupButtons = ((RadioGroup) findViewById(R.id.ear_radiogroup_sounds));
radioGroupButtons.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(final RadioGroup radioGroup, final int i) {
Expand All @@ -46,15 +64,6 @@ public void onCheckedChanged(final RadioGroup radioGroup, final int i) {
}
});

AdRequest adRequest;
if (BuildConfig.DEBUG) {
adRequest = new AdRequest.Builder().addTestDevice("027c6ee5571a8376").build();
} else {
adRequest = new AdRequest.Builder().build();
}

((AdView) findViewById(R.id.ear_ads)).loadAd(adRequest);

player = new SoundPlayer(this);
}

Expand All @@ -72,19 +81,34 @@ protected void onPause() {

@OnClick({R.id.ear_button_1, R.id.ear_button_2, R.id.ear_button_3, R.id.ear_button_4})
public void onEarButtonClick(ToggleButton button) {
touchDrawLayout.setShouldPaintTouchBitmap(false);
radioGroupButtons.check(button.getId());

if (button.isChecked()) {
touchDrawLayout.setShouldPaintTouchBitmap(true);
int buttonTag = Integer.parseInt(button.getTag().toString());
try {
player.playWithLoop(buttonTag);
} catch (IOException e) {
e.printStackTrace();
}
} else {
touchDrawLayout.setShouldPaintTouchBitmap(false);
player.stop();
}
}

@OnTouch({R.id.ear_button_1, R.id.ear_button_2, R.id.ear_button_3, R.id.ear_button_4})
public boolean OnTouch(Button button, MotionEvent event) {

if (event.getAction() == MotionEvent.ACTION_UP) {
int yDifference = button.getHeight() * (3 - Integer.parseInt(button.getTag().toString()));
touchDrawLayout.setTouch(event.getX(), event.getY() + yDifference);
}
return false;
}

//</editor-fold>
}

}

Expand Up @@ -58,7 +58,6 @@ public void playWithLoop(int index) throws IOException {
String path = SOUNDS_PATH + "/" + SOUNDS[index];

mediaPlayer = new MediaPlayer();
mediaPlayer.setLooping(true);
mediaPlayer.setAudioStreamType(STREAM_TYPE);
mediaPlayer.setVolume(1.0f, 1.0f);
mediaPlayer.setOnPreparedListener(this);
Expand All @@ -69,6 +68,7 @@ public void playWithLoop(int index) throws IOException {
mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());

mediaPlayer.prepareAsync();
mediaPlayer.setLooping(true);

afd.close();
}
Expand All @@ -82,6 +82,7 @@ public void stop() {
manager.setStreamMute(STREAM_TYPE, true);

mediaPlayer.stop();
mediaPlayer.reset();
mediaPlayer.release();
mediaPlayer = null;

Expand All @@ -98,7 +99,7 @@ public void onPrepared(final MediaPlayer player) {
}

public void onCompletion(final MediaPlayer arg0) {
mediaPlayer.reset();
// mediaPlayer.reset();
}

//</editor-fold>
Expand Down
@@ -0,0 +1,89 @@
package com.makingiants.android.banjotuner;

import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.util.Log;
import android.widget.RelativeLayout;

/**
* Helps to draw a bitmap on footprintX,footprintY positions when shouldPaintTouchBitmap
* variable is set to true
* <p/>
* Created by danielgomez22 on 2/7/15.
*/
public class TouchDrawLayout extends RelativeLayout {

private boolean shouldPaintTouchBitmap = false;
private Bitmap rightFeetBitmap, leftFeetBitmap;
private float footprintX, footprintY = 100;
private float middleScreenVertical;

//<editor-fold desc="Constructors">

public TouchDrawLayout(Context context) {
super(context);
init();
}

public TouchDrawLayout(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}

public TouchDrawLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}

private void init() {
inflate(getContext(), R.layout.empty_relative_layout, this);
rightFeetBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ear_ic_right);
leftFeetBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ear_ic_left);

DisplayMetrics dm = new DisplayMetrics();
((Activity) getContext()).getWindowManager().getDefaultDisplay().getMetrics(dm);
middleScreenVertical = dm.widthPixels / 2;
}

//</editor-fold>

//<editor-fold desc="Activity Overrides">

@Override
protected void dispatchDraw(Canvas canvas) {
super.dispatchDraw(canvas);

if (shouldPaintTouchBitmap) {

Log.d("ASD", footprintX + " " + middleScreenVertical);
if (footprintX < middleScreenVertical) {
canvas.drawBitmap(leftFeetBitmap, footprintX, footprintY, null);
} else {
canvas.drawBitmap(rightFeetBitmap, footprintX, footprintY, null);
}
}

}

//</editor-fold>

public void setTouch(float x, float y) {
this.footprintX = x - (leftFeetBitmap.getWidth() / 2);
this.footprintY = y - (leftFeetBitmap.getHeight() / 2);
invalidate();
}

public boolean isShouldPaintTouchBitmap() {
return shouldPaintTouchBitmap;
}

public void setShouldPaintTouchBitmap(boolean shouldPaintTouchBitmap) {
this.shouldPaintTouchBitmap = shouldPaintTouchBitmap;
invalidate();
}
}
Binary file added app/src/main/res/drawable-ldpi/ear_ic_left.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/src/main/res/drawable-ldpi/ear_ic_right.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/src/main/res/drawable-mdpi/ear_ic_left.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/src/main/res/drawable-mdpi/ear_ic_right.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/src/main/res/drawable-xhdpi/ear_ic_left.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/src/main/res/drawable-xhdpi/ear_ic_right.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit eed8c48

Please sign in to comment.