-
Notifications
You must be signed in to change notification settings - Fork 286
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into prepRelease510
- Loading branch information
Showing
14 changed files
with
364 additions
and
8 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
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
7 changes: 7 additions & 0 deletions
7
packages/mediation/gma_mediation_inmobi/android/gradle/wrapper/gradle-wrapper.properties
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,7 @@ | ||
distributionBase=GRADLE_USER_HOME | ||
distributionPath=wrapper/dists | ||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip | ||
networkTimeout=10000 | ||
validateDistributionUrl=true | ||
zipStoreBase=GRADLE_USER_HOME | ||
zipStorePath=wrapper/dists |
3 changes: 3 additions & 0 deletions
3
packages/mediation/gma_mediation_inmobi/android/src/main/AndroidManifest.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 |
---|---|---|
@@ -1,3 +1,6 @@ | ||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | ||
package="io.flutter.plugins.googlemobileads.mediation.gma_mediation_inmobi"> | ||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> | ||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> | ||
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> | ||
</manifest> |
128 changes: 128 additions & 0 deletions
128
...er/plugins/googlemobileads/mediation/gma_mediation_inmobi/InMobiFlutterMediationExtras.kt
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,128 @@ | ||
// Copyright 2024 Google LLC | ||
// | ||
// 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 | ||
// | ||
// https://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 io.flutter.plugins.googlemobileads.mediation.gma_mediation_inmobi | ||
|
||
import android.os.Bundle | ||
import android.util.Log | ||
import android.util.Pair | ||
import androidx.core.os.bundleOf | ||
import com.google.ads.mediation.inmobi.InMobiAdapter | ||
import com.google.ads.mediation.inmobi.InMobiNetworkKeys | ||
import com.google.ads.mediation.inmobi.InMobiNetworkValues | ||
import com.google.android.gms.ads.mediation.MediationExtrasReceiver | ||
import io.flutter.plugins.googlemobileads.FlutterMediationExtras | ||
|
||
class InMobiFlutterMediationExtras : FlutterMediationExtras() { | ||
private var flutterExtras: Map<String, Any>? = null | ||
|
||
override fun setMediationExtras(extras: MutableMap<String, Any>) { | ||
flutterExtras = extras | ||
} | ||
|
||
override fun getMediationExtras(): Pair<Class<out MediationExtrasReceiver>, Bundle> { | ||
val extrasMap = flutterExtras | ||
if (extrasMap == null) { | ||
return Pair<Class<out MediationExtrasReceiver>, Bundle>(InMobiAdapter::class.java, bundleOf()) | ||
} | ||
val extrasBundle = bundleOf() | ||
val ageGroupValue = extrasMap[AGE_GROUP] | ||
if (ageGroupValue is Int) { | ||
Log.d("InMobiMediationExtras", "ageGroup: $ageGroupValue") | ||
when(ageGroupValue) { | ||
0 -> extrasBundle.putString(InMobiNetworkKeys.AGE_GROUP, InMobiNetworkValues.BELOW_18) | ||
1 -> extrasBundle.putString(InMobiNetworkKeys.AGE_GROUP, InMobiNetworkValues.BETWEEN_18_AND_24) | ||
2 -> extrasBundle.putString(InMobiNetworkKeys.AGE_GROUP, InMobiNetworkValues.BETWEEN_25_AND_29) | ||
3 -> extrasBundle.putString(InMobiNetworkKeys.AGE_GROUP, InMobiNetworkValues.BETWEEN_30_AND_34) | ||
4 -> extrasBundle.putString(InMobiNetworkKeys.AGE_GROUP, InMobiNetworkValues.BETWEEN_35_AND_44) | ||
5 -> extrasBundle.putString(InMobiNetworkKeys.AGE_GROUP, InMobiNetworkValues.BETWEEN_45_AND_54) | ||
6 -> extrasBundle.putString(InMobiNetworkKeys.AGE_GROUP, InMobiNetworkValues.BETWEEN_55_AND_65) | ||
7 -> extrasBundle.putString(InMobiNetworkKeys.AGE_GROUP, InMobiNetworkValues.ABOVE_65) | ||
} | ||
} | ||
val educationValue = extrasMap[EDUCATION] | ||
if (educationValue is Int) { | ||
Log.d("InMobiMediationExtras", "education: $educationValue") | ||
when (educationValue) { | ||
0 -> extrasBundle.putString(InMobiNetworkKeys.EDUCATION, InMobiNetworkValues.EDUCATION_HIGHSCHOOLORLESS) | ||
1 -> extrasBundle.putString(InMobiNetworkKeys.EDUCATION, InMobiNetworkValues.EDUCATION_COLLEGEORGRADUATE) | ||
2 -> extrasBundle.putString(InMobiNetworkKeys.EDUCATION, InMobiNetworkValues.EDUCATION_POSTGRADUATEORABOVE) | ||
} | ||
} | ||
val ageValue = extrasMap[AGE] | ||
if (ageValue is Int) { | ||
Log.d("InMobiMediationExtras", "age: $ageValue") | ||
extrasBundle.putString(InMobiNetworkKeys.AGE, ageValue.toString()) | ||
} | ||
val postalCodeValue = extrasMap[POSTAL_CODE] | ||
if (postalCodeValue is String) { | ||
Log.d("InMobiMediationExtras", "postalCode: $postalCodeValue") | ||
extrasBundle.putString(InMobiNetworkKeys.POSTAL_CODE, postalCodeValue) | ||
} | ||
val areaCodeValue = extrasMap[AREA_CODE] | ||
if (areaCodeValue is String) { | ||
Log.d("InMobiMediationExtras", "areaCode: $areaCodeValue") | ||
extrasBundle.putString(InMobiNetworkKeys.AREA_CODE, areaCodeValue) | ||
} | ||
val languageValue = extrasMap[LANGUAGE] | ||
if (languageValue is String) { | ||
Log.d("InMobiMediationExtras", "language: $languageValue") | ||
extrasBundle.putString(InMobiNetworkKeys.LANGUAGE, languageValue) | ||
} | ||
val cityValue = extrasMap[CITY] | ||
if (cityValue is String) { | ||
Log.d("InMobiMediationExtras", "city: $cityValue") | ||
extrasBundle.putString(InMobiNetworkKeys.CITY, cityValue) | ||
} | ||
val stateValue = extrasMap[STATE] | ||
if (stateValue is String) { | ||
Log.d("InMobiMediationExtras", "state: $stateValue") | ||
extrasBundle.putString(InMobiNetworkKeys.STATE, stateValue) | ||
} | ||
val countryValue = extrasMap[COUNTRY] | ||
if (countryValue is String) { | ||
Log.d("InMobiMediationExtras", "country: $countryValue") | ||
extrasBundle.putString(InMobiNetworkKeys.COUNTRY, countryValue) | ||
} | ||
val logLevelValue = extrasMap[LOGLEVEL] | ||
if (logLevelValue is Int) { | ||
Log.d("InMobiMediationExtras", "logLevel: $logLevelValue") | ||
when (logLevelValue) { | ||
0 -> extrasBundle.putString(InMobiNetworkKeys.LOGLEVEL, InMobiNetworkValues.LOGLEVEL_NONE) | ||
1 -> extrasBundle.putString(InMobiNetworkKeys.LOGLEVEL, InMobiNetworkValues.LOGLEVEL_DEBUG) | ||
2 -> extrasBundle.putString(InMobiNetworkKeys.LOGLEVEL, InMobiNetworkValues.LOGLEVEL_ERROR) | ||
} | ||
} | ||
val interestsValue = extrasMap[INTERESTS] | ||
if (interestsValue is String) { | ||
Log.d("InMobiMediationExtras", "interests: $interestsValue") | ||
extrasBundle.putString(InMobiNetworkKeys.INTERESTS, interestsValue) | ||
} | ||
return Pair<Class<out MediationExtrasReceiver>, Bundle>(InMobiAdapter::class.java, extrasBundle) | ||
} | ||
|
||
companion object { | ||
private const val AGE_GROUP = "ageGroup" | ||
private const val EDUCATION = "education" | ||
private const val AGE = "age" | ||
private const val POSTAL_CODE = "postalCode" | ||
private const val AREA_CODE = "areaCode" | ||
private const val LANGUAGE = "language" | ||
private const val CITY = "city" | ||
private const val STATE = "state" | ||
private const val COUNTRY = "country" | ||
private const val INTERESTS = "interests" | ||
private const val LOGLEVEL = "logLevel" | ||
} | ||
} |
106 changes: 106 additions & 0 deletions
106
packages/mediation/gma_mediation_inmobi/ios/Classes/InMobiFlutterMediationExtras.swift
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,106 @@ | ||
// Copyright 2024 Google LLC | ||
// | ||
// 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 | ||
// | ||
// https://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. | ||
|
||
import Foundation | ||
import InMobiAdapter | ||
|
||
@objc protocol FLTMediationExtras { | ||
var extras: NSMutableDictionary { get } | ||
func getMediationExtras() -> GADAdNetworkExtras | ||
} | ||
|
||
@objc(InMobiFlutterMediationExtras) | ||
class InMobiFlutterMediationExtras : NSObject, FLTMediationExtras { | ||
var extras: NSMutableDictionary = [:] | ||
|
||
func getMediationExtras() -> GADAdNetworkExtras { | ||
let inMobiExtras = GADInMobiExtras() | ||
if let ageGroup = extras["ageGroup"] as? Int { | ||
switch ageGroup { | ||
case 0: | ||
inMobiExtras.ageGroup = IMSDKAgeGroup.below18 | ||
case 1: | ||
inMobiExtras.ageGroup = IMSDKAgeGroup.between18And24 | ||
case 2: | ||
inMobiExtras.ageGroup = IMSDKAgeGroup.between25And29 | ||
case 3: | ||
inMobiExtras.ageGroup = IMSDKAgeGroup.between30And34 | ||
case 4: | ||
inMobiExtras.ageGroup = IMSDKAgeGroup.between35And44 | ||
case 5: | ||
inMobiExtras.ageGroup = IMSDKAgeGroup.between45And54 | ||
case 6: | ||
inMobiExtras.ageGroup = IMSDKAgeGroup.between55And65 | ||
case 7: | ||
inMobiExtras.ageGroup = IMSDKAgeGroup.above65 | ||
default: | ||
break; | ||
} | ||
} | ||
if let educationType = extras["educationType"] as? Int { | ||
switch educationType { | ||
case 0: | ||
inMobiExtras.educationType = IMSDKEducation.highSchoolOrLess | ||
case 1: | ||
inMobiExtras.educationType = IMSDKEducation.collageOrGraduate | ||
case 2: | ||
inMobiExtras.educationType = IMSDKEducation.postGraduateOrAbove | ||
default: | ||
break; | ||
} | ||
} | ||
if let logLevel = extras["logLevel"] as? Int { | ||
switch logLevel { | ||
case 0: | ||
inMobiExtras.logLevel = IMSDKLogLevel.none | ||
case 1: | ||
inMobiExtras.logLevel = IMSDKLogLevel.debug | ||
case 2: | ||
inMobiExtras.logLevel = IMSDKLogLevel.error | ||
default: | ||
break; | ||
} | ||
|
||
} | ||
if let age = extras["age"] as? UInt { | ||
inMobiExtras.age = age | ||
} | ||
if let yearOfBirth = extras["yearOfBirth"] as? Int { | ||
inMobiExtras.yearOfBirth = yearOfBirth | ||
} | ||
if let postalCode = extras["postalCode"] as? String { | ||
inMobiExtras.postalCode = postalCode | ||
} | ||
if let areaCode = extras["areaCode"] as? String { | ||
inMobiExtras.areaCode = areaCode | ||
} | ||
if let language = extras["language"] as? String { | ||
inMobiExtras.language = language | ||
} | ||
if let keywords = extras["keywords"] as? String { | ||
inMobiExtras.keywords = keywords | ||
} | ||
if let interests = extras["interests"] as? String { | ||
inMobiExtras.interests = interests | ||
} | ||
let city = extras["city"] as? String | ||
let state = extras["state"] as? String | ||
let country = extras["country"] as? String | ||
if city != nil && state != nil && country != nil { | ||
inMobiExtras.setLocationWithCity(city, state: state, country: country) | ||
} | ||
|
||
return inMobiExtras | ||
} | ||
} |
110 changes: 110 additions & 0 deletions
110
packages/mediation/gma_mediation_inmobi/lib/inmobi_mediation_extras.dart
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,110 @@ | ||
// Copyright 2024 Google LLC | ||
// | ||
// 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 | ||
// | ||
// https://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. | ||
|
||
import 'package:gma_mediation_inmobi/gma_mediation_inmobi.dart'; | ||
import 'package:google_mobile_ads/google_mobile_ads.dart'; | ||
|
||
/// Class with additional parameters to attach to the [AdRequest] or [AdManagerAdRequest] when using the [GmaMediationInMobi] adapter. | ||
class InMobiMediationExtras implements MediationExtras { | ||
InMobiMediationExtras({ | ||
this.ageGroup, | ||
this.education, | ||
this.age, | ||
this.yearOfBirth, | ||
this.postalCode, | ||
this.areaCode, | ||
this.language, | ||
this.city, | ||
this.state, | ||
this.country, | ||
this.keywords, | ||
this.interests, | ||
this.logLevel, | ||
}); | ||
|
||
InMobiAgeGroups? ageGroup; | ||
InMobiEducation? education; | ||
int? age; | ||
int? yearOfBirth; | ||
String? postalCode; | ||
String? areaCode; | ||
String? language; | ||
String? city; | ||
String? state; | ||
String? country; | ||
String? interests; | ||
String? keywords; | ||
InMobiLogLevel? logLevel; | ||
|
||
@override | ||
String getAndroidClassName() { | ||
return "io.flutter.plugins.googlemobileads.mediation.gma_mediation_inmobi.InMobiFlutterMediationExtras"; | ||
} | ||
|
||
@override | ||
String getIOSClassName() { | ||
return "InMobiFlutterMediationExtras"; | ||
} | ||
|
||
@override | ||
Map<String, dynamic> getExtras() { | ||
return <String, dynamic>{ | ||
"ageGroup": ageGroup?.intValue, | ||
"education": education?.intValue, | ||
"age": age, | ||
"yearOfBirth": yearOfBirth, | ||
"postalCode": postalCode, | ||
"areaCode": areaCode, | ||
"language": language, | ||
"city": city, | ||
"state": state, | ||
"country": country, | ||
"keywords": keywords, | ||
"interests": interests, | ||
"logLevel": logLevel?.intValue, | ||
}; | ||
} | ||
} | ||
|
||
/// Definition of the age groups. | ||
enum InMobiAgeGroups { | ||
below18, // index = 0 | ||
between18And24, | ||
between25And29, | ||
between30And34, | ||
between35And44, | ||
between45And54, | ||
between55And65, | ||
above65; | ||
|
||
int get intValue => index; | ||
} | ||
|
||
/// Definition of different level of education. | ||
enum InMobiEducation { | ||
highschoolOrLess, // index = 0 | ||
collegeOrGraduate, | ||
postgraduateOrAbove; | ||
|
||
int get intValue => index; | ||
} | ||
|
||
/// Used in the InMobiSDK to set the log level. | ||
enum InMobiLogLevel { | ||
none, | ||
debug, | ||
error; | ||
|
||
int get intValue => index; | ||
} |
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
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
Oops, something went wrong.