From e66b9a672f691127476532be2cde64112727a8d5 Mon Sep 17 00:00:00 2001 From: Eric Frohnhoefer Date: Wed, 5 Jul 2017 13:24:48 -0700 Subject: [PATCH] Remove Unity wrapper from Twitter Kit repo Change-Id: I911f510cefd2b8b514134540871bca5cdf9508b0 --- build.gradle | 1 - settings.gradle | 1 - twitter-unity/build.gradle | 73 ---------- twitter-unity/changelog.md | 12 -- twitter-unity/gradle.properties | 26 ---- twitter-unity/internal-build.gradle | 90 ------------ twitter-unity/libs/unity.jar | Bin 68132 -> 0 bytes twitter-unity/lint.xml | 20 --- twitter-unity/proguard.txt | 2 - twitter-unity/src/main/AndroidManifest.xml | 23 ---- .../android/core/TwitterSessionHelper.java | 33 ----- .../twitter/sdk/android/unity/ApiError.java | 66 --------- .../sdk/android/unity/LoginActivity.java | 74 ---------- .../twitter/sdk/android/unity/TwitterKit.java | 130 ------------------ .../sdk/android/unity/UnityMessage.java | 53 ------- 15 files changed, 604 deletions(-) delete mode 100644 twitter-unity/build.gradle delete mode 100644 twitter-unity/changelog.md delete mode 100644 twitter-unity/gradle.properties delete mode 100644 twitter-unity/internal-build.gradle delete mode 100644 twitter-unity/libs/unity.jar delete mode 100644 twitter-unity/lint.xml delete mode 100644 twitter-unity/proguard.txt delete mode 100644 twitter-unity/src/main/AndroidManifest.xml delete mode 100644 twitter-unity/src/main/java/com/twitter/sdk/android/core/TwitterSessionHelper.java delete mode 100644 twitter-unity/src/main/java/com/twitter/sdk/android/unity/ApiError.java delete mode 100644 twitter-unity/src/main/java/com/twitter/sdk/android/unity/LoginActivity.java delete mode 100644 twitter-unity/src/main/java/com/twitter/sdk/android/unity/TwitterKit.java delete mode 100644 twitter-unity/src/main/java/com/twitter/sdk/android/unity/UnityMessage.java diff --git a/build.gradle b/build.gradle index d36af71b..d4d261f3 100644 --- a/build.gradle +++ b/build.gradle @@ -25,7 +25,6 @@ subprojects { Project subproject -> } dependencies { classpath dependency.androidGradlePlugin - classpath 'io.fabric.gradle.unity:unity:0.0.1' } } diff --git a/settings.gradle b/settings.gradle index 3da05967..6f478b12 100644 --- a/settings.gradle +++ b/settings.gradle @@ -20,5 +20,4 @@ include ':tweet-composer' include ':tweet-ui' include ':twitter-mopub' include ':twitter' -include ':twitter-unity' include ':samples:app' \ No newline at end of file diff --git a/twitter-unity/build.gradle b/twitter-unity/build.gradle deleted file mode 100644 index dce9d132..00000000 --- a/twitter-unity/build.gradle +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (C) 2015 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -apply plugin: 'com.android.library' -apply plugin: 'io.fabric.gradle.unity' - -android { - compileSdkVersion rootProject.compileSdkVersion - buildToolsVersion rootProject.buildToolsVersion - - defaultConfig { - versionCode 1 - versionName version - minSdkVersion rootProject.minSdkVersion - consumerProguardFiles 'proguard.txt' - } - - buildTypes { - debug { - buildConfigField "String", "GROUP", "\"${pom_group_id}\"" - buildConfigField "String", "ARTIFACT_ID", "\"${pom_artifact_id}\"" - buildConfigField "String", "BUILD_NUMBER", "\"${buildNumber}\"" - buildConfigField "long", "BUILD_TIME", "${System.currentTimeMillis()}L" - - testCoverageEnabled enableTestCodeCoverage - } - release { - buildConfigField "String", "GROUP", "\"${pom_group_id}\"" - buildConfigField "String", "ARTIFACT_ID", "\"${pom_artifact_id}\"" - buildConfigField "String", "BUILD_NUMBER", "\"${buildNumber}\"" - buildConfigField "long", "BUILD_TIME", "${System.currentTimeMillis()}L" - } - } - - lintOptions { - warningsAsErrors true - } - - compileOptions { - sourceCompatibility rootProject.sourceCompatibilityVersion - targetCompatibility rootProject.targetCompatibilityVersion - } - - // Forcibly add debug and the generated "R" files onto the test classpath - sourceSets { - test.java.srcDirs += "build/generated/source/r/debug" - test.java.srcDirs += "src/debug" - } - - testOptions { - unitTests.returnDefaultValues = true - } -} - -dependencies { - provided fileTree(dir: 'libs', include: ['unity.jar']) - compile project(':twitter-core') - compile project(':tweet-composer') -} \ No newline at end of file diff --git a/twitter-unity/changelog.md b/twitter-unity/changelog.md deleted file mode 100644 index 62fb6062..00000000 --- a/twitter-unity/changelog.md +++ /dev/null @@ -1,12 +0,0 @@ -# Twitter Unity Android SDK changelog -*Non-trivial pull requests should include an entry below. Entries must be suitable for inclusion in public-facing materials such as release notes and blog posts. Keep them short, sweet, and in the past tense. New entries go on top. When merging to deploy, add the version number and date.* - -## Unreleased - -## v3.0.0 - -## v0.1.0 - -* Added support for "Login with Twitter". -* Added support for request email. -* Added support for composer with app install card. diff --git a/twitter-unity/gradle.properties b/twitter-unity/gradle.properties deleted file mode 100644 index 2b81e2aa..00000000 --- a/twitter-unity/gradle.properties +++ /dev/null @@ -1,26 +0,0 @@ -# -# Copyright (C) 2015 Twitter, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# - -# The to be released version. When releasing, drop -SNAPSHOT. After releasing, bump version -# number and add back -SNAPSHOT -version=3.0.1-SNAPSHOT -version_code=1 - -pom_name=Twitter Unity Android SDK -pom_group_id=com.twitter.sdk.android -pom_artifact_id=twitter-unity -pom_packaging=aar diff --git a/twitter-unity/internal-build.gradle b/twitter-unity/internal-build.gradle deleted file mode 100644 index 6d9b80c8..00000000 --- a/twitter-unity/internal-build.gradle +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (C) 2015 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -apply plugin: 'com.android.library' -apply from: rootProject.qualityScript -apply plugin: 'io.fabric.gradle.unity' -apply plugin: io.fabric.gradle.weaving.ArtifactSizePlugin -apply plugin: io.fabric.gradle.weaving.DexMethodCountPlugin - -android { - compileSdkVersion rootProject.compileSdkVersion - buildToolsVersion rootProject.buildToolsVersion - - defaultConfig { - versionCode 1 - versionName version - group pom_group_id - - minSdkVersion rootProject.minSdkVersion - consumerProguardFiles 'proguard.txt' - } - - buildTypes { - debug { - buildConfigField "String", "GROUP", "\"${pom_group_id}\"" - buildConfigField "String", "ARTIFACT_ID", "\"${pom_artifact_id}\"" - buildConfigField "String", "BUILD_NUMBER", "\"${buildNumber}\"" - buildConfigField "long", "BUILD_TIME", "${System.currentTimeMillis()}L" - - testCoverageEnabled enableTestCodeCoverage - } - release { - buildConfigField "String", "GROUP", "\"${pom_group_id}\"" - buildConfigField "String", "ARTIFACT_ID", "\"${pom_artifact_id}\"" - buildConfigField "String", "BUILD_NUMBER", "\"${buildNumber}\"" - buildConfigField "long", "BUILD_TIME", "${System.currentTimeMillis()}L" - } - } - - lintOptions { - warningsAsErrors true - } - - dexMethodCount { - packageFilter = "com.twitter.sdk.android.unity" - } - - //Gradle publishes only release by default for multi module projects - //This will publish all build variants and we can specifically choose them - defaultPublishConfig 'release' - publishNonDefault true - - compileOptions { - sourceCompatibility rootProject.sourceCompatibilityVersion - targetCompatibility rootProject.targetCompatibilityVersion - } - - testOptions { - unitTests.returnDefaultValues = true - } -} - -ext.projectDependencies = [ - ':sdk:twitter:twitter-core' : 'com.twitter.sdk.android:twitter-core:+@aar', - ':sdk:twitter:tweet-composer' : 'com.twitter.sdk.android:tweet-composer:+@aar' -] - -dependencies { - provided fileTree(dir: 'libs', include: ['unity.jar']) - projectDependencies.each { path, binary -> - debugCompile project(path: path, configuration: 'debug') - releaseCompile projectOrBinary(path: path, configuration: 'release', binary: binary) - } -} - -apply from: rootProject.deployScript \ No newline at end of file diff --git a/twitter-unity/libs/unity.jar b/twitter-unity/libs/unity.jar deleted file mode 100644 index 8e4b58d463417b0be581fe692ff351916ab32317..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68132 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 - - - - \ No newline at end of file diff --git a/twitter-unity/proguard.txt b/twitter-unity/proguard.txt deleted file mode 100644 index 8134e628..00000000 --- a/twitter-unity/proguard.txt +++ /dev/null @@ -1,2 +0,0 @@ -# Proguard config for JNI helper --keep class com.twitter.sdk.android.unity.TwitterKit { *; } diff --git a/twitter-unity/src/main/AndroidManifest.xml b/twitter-unity/src/main/AndroidManifest.xml deleted file mode 100644 index 93eb5548..00000000 --- a/twitter-unity/src/main/AndroidManifest.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/twitter-unity/src/main/java/com/twitter/sdk/android/core/TwitterSessionHelper.java b/twitter-unity/src/main/java/com/twitter/sdk/android/core/TwitterSessionHelper.java deleted file mode 100644 index 0a916f48..00000000 --- a/twitter-unity/src/main/java/com/twitter/sdk/android/core/TwitterSessionHelper.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 2015 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package com.twitter.sdk.android.core; - -/** - * Helper for serializing/deserializing TwitterSession class - */ -public class TwitterSessionHelper { - public static String serialize(TwitterSession session) { - final TwitterSession.Serializer serializer = new TwitterSession.Serializer(); - return serializer.serialize(session); - } - - public static TwitterSession deserialize(String session) { - final TwitterSession.Serializer serializer = new TwitterSession.Serializer(); - return serializer.deserialize(session); - } -} diff --git a/twitter-unity/src/main/java/com/twitter/sdk/android/unity/ApiError.java b/twitter-unity/src/main/java/com/twitter/sdk/android/unity/ApiError.java deleted file mode 100644 index 0c923520..00000000 --- a/twitter-unity/src/main/java/com/twitter/sdk/android/unity/ApiError.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (C) 2015 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package com.twitter.sdk.android.unity; - -import android.text.TextUtils; - -import com.google.gson.Gson; -import com.twitter.sdk.android.core.Twitter; -import com.twitter.sdk.android.core.TwitterCore; -import com.twitter.sdk.android.core.internal.persistence.SerializationStrategy; - -class ApiError { - public final int code; - public final String message; - - ApiError(int code, String message) { - this.code = code; - this.message = message; - } - - static class Serializer implements SerializationStrategy { - - private final Gson gson; - - public Serializer() { - this.gson = new Gson(); - } - - @Override - public String serialize(ApiError error) { - try { - return gson.toJson(error); - } catch (Exception e) { - Twitter.getLogger().d(TwitterCore.TAG, e.getMessage()); - } - return ""; - } - - @Override - public ApiError deserialize(String serializedSession) { - if (!TextUtils.isEmpty(serializedSession)) { - try { - return gson.fromJson(serializedSession, ApiError.class); - } catch (Exception e) { - Twitter.getLogger().d(TwitterCore.TAG, e.getMessage()); - } - } - return null; - } - } -} diff --git a/twitter-unity/src/main/java/com/twitter/sdk/android/unity/LoginActivity.java b/twitter-unity/src/main/java/com/twitter/sdk/android/unity/LoginActivity.java deleted file mode 100644 index 90fcf906..00000000 --- a/twitter-unity/src/main/java/com/twitter/sdk/android/unity/LoginActivity.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (C) 2015 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package com.twitter.sdk.android.unity; - -import android.app.Activity; -import android.content.Intent; -import android.os.Bundle; - -import com.twitter.sdk.android.core.Callback; -import com.twitter.sdk.android.core.Result; -import com.twitter.sdk.android.core.TwitterException; -import com.twitter.sdk.android.core.TwitterSession; -import com.twitter.sdk.android.core.TwitterSessionHelper; -import com.twitter.sdk.android.core.identity.TwitterAuthClient; - -/** - * Activity used to launch Twitter login, receive the result, and publish result to Unity. - */ -public class LoginActivity extends Activity { - TwitterAuthClient authClient; - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - authClient = new TwitterAuthClient(); - authClient.authorize(this, new Callback() { - @Override - public void success(Result result) { - final String session = TwitterSessionHelper.serialize(result.data); - final UnityMessage message = new UnityMessage.Builder() - .setMethod("LoginComplete") - .setData(session) - .build(); - message.send(); - finish(); - } - - @Override - public void failure(TwitterException ex) { - final String error = new ApiError.Serializer() - .serialize(new ApiError(0, ex.getMessage())); - final UnityMessage message = new UnityMessage.Builder() - .setMethod("LoginFailed") - .setData(error) - .build(); - message.send(); - finish(); - } - }); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); - - authClient.onActivityResult(requestCode, resultCode, data); - } -} diff --git a/twitter-unity/src/main/java/com/twitter/sdk/android/unity/TwitterKit.java b/twitter-unity/src/main/java/com/twitter/sdk/android/unity/TwitterKit.java deleted file mode 100644 index 2d830c12..00000000 --- a/twitter-unity/src/main/java/com/twitter/sdk/android/unity/TwitterKit.java +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Copyright (C) 2015 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package com.twitter.sdk.android.unity; - -import android.app.Activity; -import android.content.Intent; -import android.net.Uri; - -import com.twitter.sdk.android.core.Callback; -import com.twitter.sdk.android.core.Result; -import com.twitter.sdk.android.core.Twitter; -import com.twitter.sdk.android.core.TwitterAuthConfig; -import com.twitter.sdk.android.core.TwitterConfig; -import com.twitter.sdk.android.core.TwitterCore; -import com.twitter.sdk.android.core.TwitterException; -import com.twitter.sdk.android.core.TwitterSession; -import com.twitter.sdk.android.core.TwitterSessionHelper; -import com.twitter.sdk.android.core.identity.TwitterAuthClient; -import com.twitter.sdk.android.tweetcomposer.ComposerActivity; -import com.unity3d.player.UnityPlayer; - -/** - * A class to expose TwitterKit methods for Unity - */ -public class TwitterKit { - public static final String GAME_OBJECT_NAME = "TwitterGameObject"; - - /** - * Initializes TwitterKit, must be called before {@link #login} - * @param consumerKey Twitter App Consumer Key (API Key) - * @param consumerSecret Twitter App Consumer Secret (API Secret) - */ - public static void init(final String consumerKey, final String consumerSecret) { - final TwitterConfig config = new TwitterConfig.Builder( - UnityPlayer.currentActivity.getApplicationContext()) - .twitterAuthConfig(new TwitterAuthConfig(consumerKey, consumerSecret)) - .build(); - Twitter.initialize(config); - } - - /** - * Convenience method for launching Twitter login using JNI. - */ - public static void login() { - final Activity currentActivity = UnityPlayer.currentActivity; - final Intent intent = new Intent(currentActivity, LoginActivity.class); - currentActivity.startActivity(intent); - } - - /** - * Convenience method for logging out active user using JNI. - */ - public static void logout() { - TwitterCore.getInstance().getSessionManager().clearActiveSession(); - } - - /** - * Convenience method for retrieving active user using JNI. - */ - public static String session() { - final TwitterSession session = TwitterCore.getInstance().getSessionManager() - .getActiveSession(); - return TwitterSessionHelper.serialize(session); - } - - /** - * Convenience method for starting Tweet composer with app card preview. - * - * @param session the user session - * @param imageUri URI of the image - * @param text the text to be included in the tweet - * @param hashtags the hashtags to be included in the tweet - */ - public static void compose(String session, String imageUri, String text, String[] hashtags) { - final Activity currentActivity = UnityPlayer.currentActivity; - - final Intent intent = new ComposerActivity.Builder(currentActivity) - .session(TwitterSessionHelper.deserialize(session)) - .image(imageUri != null ? Uri.parse(imageUri) : null) - .text(text) - .hashtags(hashtags) - .createIntent(); - currentActivity.startActivity(intent); - } - - /** - * Convenience method for requesting users email address using JNI. - * - * @param session the user session - */ - public static void requestEmail(String session) { - final TwitterSession twitterSession = TwitterSessionHelper.deserialize(session); - new TwitterAuthClient().requestEmail(twitterSession, new Callback() { - @Override - public void success(Result result) { - final UnityMessage message = new UnityMessage.Builder() - .setMethod("RequestEmailComplete") - .setData(result.data) - .build(); - message.send(); - } - - @Override - public void failure(TwitterException exception) { - final String error = new ApiError.Serializer() - .serialize(new ApiError(0, exception.getMessage())); - final UnityMessage message = new UnityMessage.Builder() - .setMethod("RequestEmailFailed") - .setData(error) - .build(); - message.send(); - } - }); - } -} diff --git a/twitter-unity/src/main/java/com/twitter/sdk/android/unity/UnityMessage.java b/twitter-unity/src/main/java/com/twitter/sdk/android/unity/UnityMessage.java deleted file mode 100644 index a022903d..00000000 --- a/twitter-unity/src/main/java/com/twitter/sdk/android/unity/UnityMessage.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (C) 2015 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package com.twitter.sdk.android.unity; - -import com.unity3d.player.UnityPlayer; - -class UnityMessage { - final String data; - final String method; - - UnityMessage(String method, String data) { - this.method = method; - this.data = data; - } - - public static class Builder { - String data = ""; - String method; - - public Builder setData(String data) { - this.data = data; - return this; - } - - public Builder setMethod(String method) { - this.method = method; - return this; - } - - public UnityMessage build() { - return new UnityMessage(method, data); - } - } - - public void send() { - UnityPlayer.UnitySendMessage(TwitterKit.GAME_OBJECT_NAME, method, data); - } -}