Showing
5 changed files
with
121 additions
and
12 deletions
| ... | @@ -2,20 +2,18 @@ | ... | @@ -2,20 +2,18 @@ |
| 2 | xmlns:tools="http://schemas.android.com/tools" | 2 | xmlns:tools="http://schemas.android.com/tools" |
| 3 | package="pub.yiyan.parlando.Parlando"> | 3 | package="pub.yiyan.parlando.Parlando"> |
| 4 | 4 | ||
| 5 | - <uses-permission android:name="com.android.vending.BILLING" /> | ||
| 6 | - | ||
| 7 | <application | 5 | <application |
| 8 | - android:requestLegacyExternalStorage="true" | 6 | + android:icon="@mipmap/ic_launcher" |
| 9 | - tools:replace="android:label" | ||
| 10 | android:label="Parlando" | 7 | android:label="Parlando" |
| 11 | - android:icon="@mipmap/ic_launcher"> | 8 | + android:requestLegacyExternalStorage="true" |
| 9 | + tools:replace="android:label"> | ||
| 12 | <activity | 10 | <activity |
| 13 | android:name=".MainActivity" | 11 | android:name=".MainActivity" |
| 14 | - android:launchMode="singleTop" | ||
| 15 | - android:exported="true" | ||
| 16 | - android:theme="@style/LaunchTheme" | ||
| 17 | android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" | 12 | android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" |
| 13 | + android:exported="true" | ||
| 18 | android:hardwareAccelerated="true" | 14 | android:hardwareAccelerated="true" |
| 15 | + android:launchMode="singleTop" | ||
| 16 | + android:theme="@style/LaunchTheme" | ||
| 19 | android:windowSoftInputMode="adjustResize"> | 17 | android:windowSoftInputMode="adjustResize"> |
| 20 | <!-- Specifies an Android theme to apply to this Activity as soon as | 18 | <!-- Specifies an Android theme to apply to this Activity as soon as |
| 21 | the Android process has started. This theme is visible to the user | 19 | the Android process has started. This theme is visible to the user |
| ... | @@ -34,8 +32,8 @@ | ... | @@ -34,8 +32,8 @@ |
| 34 | android:theme="@style/Theme.AppCompat.Light.NoActionBar" /> | 32 | android:theme="@style/Theme.AppCompat.Light.NoActionBar" /> |
| 35 | <activity | 33 | <activity |
| 36 | android:name="com.braintreepayments.api.BraintreeBrowserSwitchActivity" | 34 | android:name="com.braintreepayments.api.BraintreeBrowserSwitchActivity" |
| 37 | - android:launchMode="singleTask" | 35 | + android:exported="true" |
| 38 | - android:exported="true"> | 36 | + android:launchMode="singleTask"> |
| 39 | <intent-filter> | 37 | <intent-filter> |
| 40 | <action android:name="android.intent.action.VIEW" /> | 38 | <action android:name="android.intent.action.VIEW" /> |
| 41 | 39 | ||
| ... | @@ -49,5 +47,17 @@ | ... | @@ -49,5 +47,17 @@ |
| 49 | <meta-data | 47 | <meta-data |
| 50 | android:name="flutterEmbedding" | 48 | android:name="flutterEmbedding" |
| 51 | android:value="2" /> | 49 | android:value="2" /> |
| 50 | + <meta-data | ||
| 51 | + android:name="com.facebook.sdk.ApplicationId" | ||
| 52 | + android:value="@string/facebook_app_id" /> | ||
| 53 | + <meta-data | ||
| 54 | + android:name="com.facebook.sdk.ClientToken" | ||
| 55 | + android:value="@string/facebook_client_token" /> | ||
| 52 | </application> | 56 | </application> |
| 57 | + <queries> | ||
| 58 | + <provider android:authorities="com.facebook.katana.provider.PlatformProvider" /> | ||
| 59 | + </queries> | ||
| 60 | + | ||
| 61 | + <uses-permission android:name="com.android.vending.BILLING" /> | ||
| 62 | + <uses-permission android:name="android.permission.INTERNET" /> | ||
| 53 | </manifest> | 63 | </manifest> | ... | ... |
android/app/src/main/res/values/strings.xml
0 → 100644
| ... | @@ -20,8 +20,11 @@ import 'package:Parlando/util/other_utils.dart'; | ... | @@ -20,8 +20,11 @@ import 'package:Parlando/util/other_utils.dart'; |
| 20 | import 'package:Parlando/widgets/my_app_bar.dart'; | 20 | import 'package:Parlando/widgets/my_app_bar.dart'; |
| 21 | import 'package:Parlando/widgets/my_button.dart'; | 21 | import 'package:Parlando/widgets/my_button.dart'; |
| 22 | import 'package:Parlando/widgets/my_scroll_view.dart'; | 22 | import 'package:Parlando/widgets/my_scroll_view.dart'; |
| 23 | +import 'package:flutter_facebook_auth/flutter_facebook_auth.dart'; | ||
| 24 | +import 'package:flutter_signin_button/flutter_signin_button.dart'; | ||
| 23 | import 'package:getwidget/getwidget.dart'; | 25 | import 'package:getwidget/getwidget.dart'; |
| 24 | import 'package:sign_in_with_apple/sign_in_with_apple.dart'; | 26 | import 'package:sign_in_with_apple/sign_in_with_apple.dart'; |
| 27 | +import 'package:twitter_login/twitter_login.dart'; | ||
| 25 | 28 | ||
| 26 | import '../login_router.dart'; | 29 | import '../login_router.dart'; |
| 27 | 30 | ||
| ... | @@ -165,8 +168,7 @@ class _LoginPageState extends State<LoginPage> | ... | @@ -165,8 +168,7 @@ class _LoginPageState extends State<LoginPage> |
| 165 | ); | 168 | ); |
| 166 | } | 169 | } |
| 167 | 170 | ||
| 168 | - List<Widget> get _buildBody => | 171 | + List<Widget> get _buildBody => <Widget>[ |
| 169 | - <Widget>[ | ||
| 170 | Text( | 172 | Text( |
| 171 | ParlandoLocalizations.of(context).passwordLogin, | 173 | ParlandoLocalizations.of(context).passwordLogin, |
| 172 | style: TextStyles.textBold26, | 174 | style: TextStyles.textBold26, |
| ... | @@ -281,5 +283,58 @@ class _LoginPageState extends State<LoginPage> | ... | @@ -281,5 +283,58 @@ class _LoginPageState extends State<LoginPage> |
| 281 | : const Center( | 283 | : const Center( |
| 282 | child: Text(""), | 284 | child: Text(""), |
| 283 | ), | 285 | ), |
| 286 | + Gaps.vGap16, | ||
| 287 | + Row( | ||
| 288 | + mainAxisAlignment: MainAxisAlignment.center, | ||
| 289 | + children: [ | ||
| 290 | + SignInButton( | ||
| 291 | + Buttons.Facebook, | ||
| 292 | + mini: true, | ||
| 293 | + onPressed: () async { | ||
| 294 | + final result = await FacebookAuth.instance.login( | ||
| 295 | + permissions: ["email", "public_profile", "user_friends"]); | ||
| 296 | + | ||
| 297 | + if (result.status == LoginStatus.success) { | ||
| 298 | + // you are logged | ||
| 299 | + final AccessToken accessToken = result.accessToken!; | ||
| 300 | + print(accessToken.token); | ||
| 301 | + } else { | ||
| 302 | + print(result.status); | ||
| 303 | + print(result.message); | ||
| 304 | + } | ||
| 305 | + }, | ||
| 306 | + ), | ||
| 307 | + SignInButton( | ||
| 308 | + Buttons.Twitter, | ||
| 309 | + mini: true, | ||
| 310 | + onPressed: () async { | ||
| 311 | + final twitterLogin = TwitterLogin( | ||
| 312 | + // Consumer API keys | ||
| 313 | + apiKey: 'XP8O1y3dx6apqgObc4NV1udOr', | ||
| 314 | + apiSecretKey: | ||
| 315 | + 'EhPEUXZgFTlslYjyZXJ9TFaAlczmW5I6WoG0nVBYCzu4CJAuBT', | ||
| 316 | + // Registered Callback URLs in TwitterApp | ||
| 317 | + // Android is a deeplink | ||
| 318 | + // iOS is a URLScheme | ||
| 319 | + redirectURI: 'example://', | ||
| 320 | + ); | ||
| 321 | + final authResult = await twitterLogin.login(); | ||
| 322 | + switch (authResult.status) { | ||
| 323 | + case TwitterLoginStatus.loggedIn: | ||
| 324 | + // success | ||
| 325 | + break; | ||
| 326 | + case TwitterLoginStatus.cancelledByUser: | ||
| 327 | + // cancel | ||
| 328 | + break; | ||
| 329 | + case TwitterLoginStatus.error: | ||
| 330 | + // error | ||
| 331 | + break; | ||
| 332 | + default: | ||
| 333 | + break; | ||
| 334 | + } | ||
| 335 | + }, | ||
| 336 | + ), | ||
| 337 | + ], | ||
| 338 | + ) | ||
| 284 | ]; | 339 | ]; |
| 285 | } | 340 | } | ... | ... |
| ... | @@ -398,6 +398,27 @@ packages: | ... | @@ -398,6 +398,27 @@ packages: |
| 398 | description: flutter | 398 | description: flutter |
| 399 | source: sdk | 399 | source: sdk |
| 400 | version: "0.0.0" | 400 | version: "0.0.0" |
| 401 | + flutter_facebook_auth: | ||
| 402 | + dependency: "direct main" | ||
| 403 | + description: | ||
| 404 | + name: flutter_facebook_auth | ||
| 405 | + url: "https://pub.flutter-io.cn" | ||
| 406 | + source: hosted | ||
| 407 | + version: "4.3.4+2" | ||
| 408 | + flutter_facebook_auth_platform_interface: | ||
| 409 | + dependency: transitive | ||
| 410 | + description: | ||
| 411 | + name: flutter_facebook_auth_platform_interface | ||
| 412 | + url: "https://pub.flutter-io.cn" | ||
| 413 | + source: hosted | ||
| 414 | + version: "3.1.2" | ||
| 415 | + flutter_facebook_auth_web: | ||
| 416 | + dependency: transitive | ||
| 417 | + description: | ||
| 418 | + name: flutter_facebook_auth_web | ||
| 419 | + url: "https://pub.flutter-io.cn" | ||
| 420 | + source: hosted | ||
| 421 | + version: "3.1.2" | ||
| 401 | flutter_inapp_purchase: | 422 | flutter_inapp_purchase: |
| 402 | dependency: "direct main" | 423 | dependency: "direct main" |
| 403 | description: | 424 | description: |
| ... | @@ -438,6 +459,13 @@ packages: | ... | @@ -438,6 +459,13 @@ packages: |
| 438 | url: "https://pub.flutter-io.cn" | 459 | url: "https://pub.flutter-io.cn" |
| 439 | source: hosted | 460 | source: hosted |
| 440 | version: "2.0.6" | 461 | version: "2.0.6" |
| 462 | + flutter_signin_button: | ||
| 463 | + dependency: "direct main" | ||
| 464 | + description: | ||
| 465 | + name: flutter_signin_button | ||
| 466 | + url: "https://pub.flutter-io.cn" | ||
| 467 | + source: hosted | ||
| 468 | + version: "2.0.0" | ||
| 441 | flutter_slidable: | 469 | flutter_slidable: |
| 442 | dependency: "direct main" | 470 | dependency: "direct main" |
| 443 | description: | 471 | description: |
| ... | @@ -1247,6 +1275,13 @@ packages: | ... | @@ -1247,6 +1275,13 @@ packages: |
| 1247 | url: "https://pub.flutter-io.cn" | 1275 | url: "https://pub.flutter-io.cn" |
| 1248 | source: hosted | 1276 | source: hosted |
| 1249 | version: "1.0.0" | 1277 | version: "1.0.0" |
| 1278 | + twitter_login: | ||
| 1279 | + dependency: "direct main" | ||
| 1280 | + description: | ||
| 1281 | + name: twitter_login | ||
| 1282 | + url: "https://pub.flutter-io.cn" | ||
| 1283 | + source: hosted | ||
| 1284 | + version: "4.2.3" | ||
| 1250 | typed_data: | 1285 | typed_data: |
| 1251 | dependency: transitive | 1286 | dependency: transitive |
| 1252 | description: | 1287 | description: | ... | ... |
| ... | @@ -109,6 +109,10 @@ dependencies: | ... | @@ -109,6 +109,10 @@ dependencies: |
| 109 | 109 | ||
| 110 | getwidget: ^2.0.5 | 110 | getwidget: ^2.0.5 |
| 111 | sign_in_with_apple: ^4.0.0 | 111 | sign_in_with_apple: ^4.0.0 |
| 112 | + flutter_facebook_auth: ^4.3.4+2 | ||
| 113 | + flutter_signin_button: ^2.0.0 | ||
| 114 | + twitter_login: ^4.2.3 | ||
| 115 | + | ||
| 112 | event_bus: ^2.0.0 | 116 | event_bus: ^2.0.0 |
| 113 | 117 | ||
| 114 | animated_radial_menu: ^0.0.1 | 118 | animated_radial_menu: ^0.0.1 | ... | ... |
-
Please register or login to post a comment