Skip to content

Commit 55aca0e

Browse files
committed
Added google ads
1 parent cb400e9 commit 55aca0e

File tree

5 files changed

+57
-3
lines changed

5 files changed

+57
-3
lines changed

app/build.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ dependencies {
5656
implementation "com.android.billingclient:billing-ktx:4.0.0"
5757

5858
implementation 'com.google.android.material:material:1.3.0'
59+
implementation 'com.google.android.gms:play-services-ads:20.2.0'
5960

6061
implementation 'com.jakewharton:butterknife:10.2.3'
6162
implementation 'com.nineoldandroids:library:2.4.0'

app/src/main/AndroidManifest.xml

+4
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,10 @@
6767
android:name=".activities.NameDemanglerActivity"
6868
android:label="@string/nameDemangler"/>
6969

70+
<meta-data
71+
android:name="com.google.android.gms.ads.APPLICATION_ID"
72+
android:value="ca-app-pub-1411495427741055~3231519335" />
73+
7074
<provider
7175
android:name="androidx.core.content.FileProvider"
7276
android:authorities="com.mcal.disassembler.fileprovider"

app/src/main/java/com/mcal/disassembler/activities/MainActivity.java

+11-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.mcal.disassembler.activities;
22

33
import android.Manifest;
4-
import android.animation.LayoutTransition;
54
import android.annotation.SuppressLint;
65
import android.annotation.TargetApi;
76
import android.app.ProgressDialog;
@@ -26,7 +25,6 @@
2625
import com.developer.filepicker.model.DialogConfigs;
2726
import com.developer.filepicker.model.DialogProperties;
2827
import com.developer.filepicker.view.FilePickerDialog;
29-
import com.google.android.material.snackbar.Snackbar;
3028
import com.mcal.disassembler.R;
3129
import com.mcal.disassembler.adapters.ListAdapter;
3230
import com.mcal.disassembler.data.Database;
@@ -35,13 +33,16 @@
3533
import com.mcal.disassembler.interfaces.MainView;
3634
import com.mcal.disassembler.nativeapi.DisassemblerDumper;
3735
import com.mcal.disassembler.nativeapi.Dumper;
36+
import com.mcal.disassembler.util.AdsAdmob;
3837
import com.mcal.disassembler.util.ScopedStorage;
3938
import com.mcal.disassembler.view.CenteredToolBar;
4039
import com.mcal.disassembler.widgets.SnackBar;
4140

4241
import java.io.File;
4342
import java.util.ArrayList;
44-
import java.util.regex.Pattern;
43+
44+
import kotlin.Unit;
45+
import kotlin.jvm.functions.Function0;
4546

4647
public class MainActivity extends AppCompatActivity implements MainView {
4748

@@ -66,6 +67,7 @@ public void onCreate(Bundle savedInstanceState) {
6667
requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Settings.ACTION_MANAGE_OVERLAY_PERMISSION}, 1);
6768
}
6869
}
70+
AdsAdmob.loadInterestialAd(this);
6971
checkPermission();
7072
new Database(this);
7173
welcomeLayout = findViewById(R.id.welcome_layout);
@@ -141,12 +143,18 @@ void updateRecents() {
141143
}
142144

143145
public void chooseSdcard(View view) {
146+
AdsAdmob.showInterestialAd(this, null);
144147
showFileChooser();
145148
}
146149

147150
public void hexViewer(View view) {
151+
AdsAdmob.showInterestialAd(this, runHexViewer());
152+
}
153+
154+
public Function0<Unit> runHexViewer() {
148155
Intent intent = new Intent(MainActivity.this, fr.ralala.hexviewer.ui.activities.MainActivity.class);
149156
startActivity(intent);
157+
return null;
150158
}
151159

152160
private void showFileChooser() {
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.mcal.disassembler.data;
22

33
public class Constants {
4+
public static String INTERESTIAL_AD = "ca-app-pub-1411495427741055/6979192651";
45
public static String LK = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjwVwPnZ+iwu4+dAUMoO+SOY4XKsLIzsE9hCgxcgjZdKY0poUgqcadOAebfW+LkZfced9VaRodxQIXVZcdYruFW9mDMW69/dqnvjY7adYMMBpEh58E6Mq2Yt4AZYbOaquW+I6DmtvlHa34Vh3eyj3RDiaY3bS2yhpeCd5Rdwcnhjk7mE15gY+wM9bSe9AGmqx+FKlU6xww8drqWYR/xnov5seF1NuIQTzWoe0muKB+lnqhOeN9q8cOawoZqlSRagqYe9zrQ0SrfJ7N3e5nT2LpgQ33IC+Tvzkz3TwfFPbVGheuTlcWV0PweXwvaMkf2dYRcfiF4zFhIZnzKmm46aELwIDAQAB";
56
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package com.mcal.disassembler.util
2+
3+
import android.app.Activity
4+
import android.content.Context
5+
import com.google.android.gms.ads.AdRequest
6+
import com.google.android.gms.ads.FullScreenContentCallback
7+
import com.google.android.gms.ads.interstitial.InterstitialAd
8+
import com.google.android.gms.ads.interstitial.InterstitialAdLoadCallback
9+
import com.mcal.disassembler.data.Constants
10+
11+
object AdsAdmob {
12+
private var interstitialAd: InterstitialAd? = null
13+
14+
@JvmStatic
15+
fun loadInterestialAd(context: Context) {
16+
InterstitialAd.load(context, Constants.INTERESTIAL_AD, AdRequest.Builder().build(),
17+
object : InterstitialAdLoadCallback() {
18+
override fun onAdLoaded(p0: InterstitialAd) {
19+
super.onAdLoaded(p0)
20+
interstitialAd = p0
21+
}
22+
})
23+
}
24+
25+
@JvmStatic
26+
fun showInterestialAd(activity: Activity, callback: (() -> Unit)? = null) {
27+
if(interstitialAd != null) {
28+
interstitialAd!!.fullScreenContentCallback = object : FullScreenContentCallback() {
29+
override fun onAdDismissedFullScreenContent() {
30+
super.onAdDismissedFullScreenContent()
31+
interstitialAd = null
32+
callback?.invoke()
33+
}
34+
}
35+
interstitialAd!!.show(activity)
36+
} else {
37+
callback?.invoke()
38+
}
39+
}
40+
}

0 commit comments

Comments
 (0)