Skip to content

Commit

Permalink
Initial commit.
Browse files Browse the repository at this point in the history
  • Loading branch information
neogeek committed Jan 25, 2021
0 parents commit 6fc363a
Show file tree
Hide file tree
Showing 24 changed files with 463 additions and 0 deletions.
20 changes: 20 additions & 0 deletions CandyCoded.HapticFeedback.asmdef
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"name": "CandyCoded.HapticFeedback",
"references": [
"CandyCoded.HapticFeedback.Android",
"CandyCoded.HapticFeedback.iOS"
],
"includePlatforms": [
"Android",
"Editor",
"iOS"
],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
"defineConstraints": [],
"versionDefines": [],
"noEngineReferences": false
}
7 changes: 7 additions & 0 deletions CandyCoded.HapticFeedback.asmdef.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions Plugins.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions Plugins/Android.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 16 additions & 0 deletions Plugins/Android/CandyCoded.HapticFeedback.Android.asmdef
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"name": "CandyCoded.HapticFeedback.Android",
"references": [],
"includePlatforms": [
"Android",
"Editor"
],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
"defineConstraints": [],
"versionDefines": [],
"noEngineReferences": false
}
7 changes: 7 additions & 0 deletions Plugins/Android/CandyCoded.HapticFeedback.Android.asmdef.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

81 changes: 81 additions & 0 deletions Plugins/Android/HapticFeedback.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
// Copyright (c) Scott Doxey. All Rights Reserved. Licensed under the MIT License. See LICENSE in the project root for license information.

using UnityEngine;

namespace CandyCoded.HapticFeedback.Android
{

public enum HapticFeedbackConstants
{

LONG_PRESS = 0,

VIRTUAL_KEY = 1,

KEYBOARD_TAP = 3,

CLOCK_TICK = 4,

CALENDAR_DATE = 5,

CONTEXT_CLICK = 6,

KEYBOARD_PRESS = KEYBOARD_TAP,

KEYBOARD_RELEASE = 7,

VIRTUAL_KEY_RELEASE = 8,

TEXT_HANDLE_MOVE = 9,

ENTRY_BUMP = 10,

DRAG_CROSSING = 11,

GESTURE_START = 12,

GESTURE_END = 13,

EDGE_SQUEEZE = 14,

EDGE_RELEASE = 15,

CONFIRM = 16,

REJECT = 17

}

public static class HapticFeedback
{

private static AndroidJavaObject _androidPlugin;

private static AndroidJavaObject androidPlugin
{
get
{
if (_androidPlugin != null)
{
return _androidPlugin;
}

var javaUnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");

var currentActivity = javaUnityPlayer.GetStatic<AndroidJavaObject>("currentActivity");

_androidPlugin =
new AndroidJavaObject("com.candycoded.hapticfeedbacklibrary.AndroidPlugin", currentActivity);

return _androidPlugin;
}
}

public static void PerformHapticFeedback(HapticFeedbackConstants hapticFeedbackConstants)
{
androidPlugin.Call("PerformHapticFeedback", (int)hapticFeedbackConstants);
}

}

}
11 changes: 11 additions & 0 deletions Plugins/Android/HapticFeedback.cs.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file added Plugins/Android/hapticfeedbacklibrary-release.aar
Binary file not shown.
32 changes: 32 additions & 0 deletions Plugins/Android/hapticfeedbacklibrary-release.aar.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions Plugins/iOS.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 16 additions & 0 deletions Plugins/iOS/CandyCoded.HapticFeedback.iOS.asmdef
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"name": "CandyCoded.HapticFeedback.iOS",
"references": [],
"includePlatforms": [
"Editor",
"iOS"
],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
"defineConstraints": [],
"versionDefines": [],
"noEngineReferences": false
}
7 changes: 7 additions & 0 deletions Plugins/iOS/CandyCoded.HapticFeedback.iOS.asmdef.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 16 additions & 0 deletions Plugins/iOS/HapticFeedback.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// Copyright (c) Scott Doxey. All Rights Reserved. Licensed under the MIT License. See LICENSE in the project root for license information.

using System.Runtime.InteropServices;

namespace CandyCoded.HapticFeedback.iOS
{

public static class HapticFeedback
{

[DllImport("__Internal")]
public static extern void IOSUIImpactFeedbackGenerator(string style = "medium");

}

}
11 changes: 11 additions & 0 deletions Plugins/iOS/HapticFeedback.cs.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

44 changes: 44 additions & 0 deletions Plugins/iOS/HapticFeedback.mm
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
// Copyright (c) Scott Doxey. All Rights Reserved. Licensed under the MIT License. See LICENSE in the project root for license information.

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

extern "C"
{

void IOSUIImpactFeedbackGenerator(const char* style) {

UIImpactFeedbackStyle feedbackStyle;

const NSString* styleString = [NSString stringWithUTF8String: style];

if ([styleString isEqualToString:@"light"]) {

feedbackStyle = UIImpactFeedbackStyleLight;

} else if ([styleString isEqualToString:@"medium"]) {

feedbackStyle = UIImpactFeedbackStyleMedium;

} else if ([styleString isEqualToString:@"heavy"]) {

feedbackStyle = UIImpactFeedbackStyleHeavy;

} else {

NSException* exception = [NSException
exceptionWithName:NSInvalidArgumentException
reason:@"Invalid impact feedback style."
userInfo:nil];

[exception raise];

}

UIImpactFeedbackGenerator *feedbackGenerator = [[UIImpactFeedbackGenerator alloc] initWithStyle:feedbackStyle];

[feedbackGenerator impactOccurred];

}

}
37 changes: 37 additions & 0 deletions Plugins/iOS/HapticFeedback.mm.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions Scripts.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 6fc363a

Please sign in to comment.