From 72e676774ef87449b560f1abf726784b71fdd249 Mon Sep 17 00:00:00 2001 From: Ankit Kumar Date: Wed, 11 Apr 2018 23:12:47 +0530 Subject: [PATCH] ADD: added banner ad, interstital ad and video ad --- app/build.gradle | 5 ++ app/src/main/AndroidManifest.xml | 9 ++- .../kiti/com/kitiapp/BannerAdActivity.java | 65 +++++++++++++++ .../app/kiti/com/kitiapp/HomeActivity.java | 19 +++++ .../com/kitiapp/InterstitalAdActivity.java | 77 ++++++++++++++++++ .../app/kiti/com/kitiapp/KitiAppMain.java | 24 ++++++ .../app/kiti/com/kitiapp/LoginActivity.java | 22 +++-- .../kiti/com/kitiapp/PreferenceManager.java | 46 +++++++++++ .../app/kiti/com/kitiapp/VideoAdActivity.java | 81 +++++++++++++++++++ .../main/res/layout/activity_banner_ad.xml | 21 +++++ .../res/layout/activity_interstital_ad.xml | 10 +++ app/src/main/res/layout/activity_video_ad.xml | 9 +++ app/src/main/res/values/strings.xml | 4 + 13 files changed, 384 insertions(+), 8 deletions(-) create mode 100644 app/src/main/java/app/kiti/com/kitiapp/BannerAdActivity.java create mode 100644 app/src/main/java/app/kiti/com/kitiapp/InterstitalAdActivity.java create mode 100644 app/src/main/java/app/kiti/com/kitiapp/KitiAppMain.java create mode 100644 app/src/main/java/app/kiti/com/kitiapp/PreferenceManager.java create mode 100644 app/src/main/java/app/kiti/com/kitiapp/VideoAdActivity.java create mode 100644 app/src/main/res/layout/activity_banner_ad.xml create mode 100644 app/src/main/res/layout/activity_interstital_ad.xml create mode 100644 app/src/main/res/layout/activity_video_ad.xml diff --git a/app/build.gradle b/app/build.gradle index e421203..d9a6984 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -27,8 +27,13 @@ dependencies { implementation 'com.jakewharton:butterknife:8.8.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1' androidTestImplementation 'com.android.support.test:runner:1.0.1' + implementation 'com.google.android.gms:play-services-ads:12.0.1' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' } + + + + apply plugin: 'com.google.gms.google-services' \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 07f88d9..e824b95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -8,18 +8,21 @@ android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" + android:name=".KitiAppMain" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> - - - + + + + + \ No newline at end of file diff --git a/app/src/main/java/app/kiti/com/kitiapp/BannerAdActivity.java b/app/src/main/java/app/kiti/com/kitiapp/BannerAdActivity.java new file mode 100644 index 0000000..f422a59 --- /dev/null +++ b/app/src/main/java/app/kiti/com/kitiapp/BannerAdActivity.java @@ -0,0 +1,65 @@ +package app.kiti.com.kitiapp; + +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.util.Log; +import android.view.View; + +import com.google.android.gms.ads.AdListener; +import com.google.android.gms.ads.AdRequest; +import com.google.android.gms.ads.AdView; +import com.google.android.gms.ads.MobileAds; + +public class BannerAdActivity extends AppCompatActivity { + + private AdView mAdView; + public static final String TAG = BannerAdActivity.class.getSimpleName(); + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_banner_ad); + init(); + } + + private void init() { + MobileAds.initialize(this, getResources().getString(R.string.admob_test_app_id)); + mAdView = findViewById(R.id.adView); + AdRequest adRequest = new AdRequest.Builder().build(); + mAdView.loadAd(adRequest); + mAdView.setAdListener(adListener); + } + + private AdListener adListener = new AdListener() { + @Override + public void onAdLoaded() { + // Code to be executed when an ad finishes loading. + Log.d(TAG,"Ad Loaded"); + } + + @Override + public void onAdFailedToLoad(int errorCode) { + // Code to be executed when an ad request fails. + Log.d(TAG,"Failed to Load ad"); + } + + @Override + public void onAdOpened() { + // Code to be executed when an ad opens an overlay that + // covers the screen. + Log.d(TAG,"Ad Opened"); + } + + @Override + public void onAdLeftApplication() { + // Code to be executed when the user has left the app. + } + + @Override + public void onAdClosed() { + // Code to be executed when when the user is about to return + // to the app after tapping on an ad. + } + }; + +} diff --git a/app/src/main/java/app/kiti/com/kitiapp/HomeActivity.java b/app/src/main/java/app/kiti/com/kitiapp/HomeActivity.java index f038731..2c9c3a4 100644 --- a/app/src/main/java/app/kiti/com/kitiapp/HomeActivity.java +++ b/app/src/main/java/app/kiti/com/kitiapp/HomeActivity.java @@ -1,5 +1,6 @@ package app.kiti.com.kitiapp; +import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; @@ -9,5 +10,23 @@ public class HomeActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_home); + toVideoAd(); } + + private void toBanner() { + Intent i = new Intent(this, BannerAdActivity.class); + startActivity(i); + } + + private void toInterst() { + Intent i = new Intent(this, InterstitalAdActivity.class); + startActivity(i); + } + + private void toVideoAd() { + Intent i = new Intent(this, VideoAdActivity.class); + startActivity(i); + } + + } diff --git a/app/src/main/java/app/kiti/com/kitiapp/InterstitalAdActivity.java b/app/src/main/java/app/kiti/com/kitiapp/InterstitalAdActivity.java new file mode 100644 index 0000000..f198d8e --- /dev/null +++ b/app/src/main/java/app/kiti/com/kitiapp/InterstitalAdActivity.java @@ -0,0 +1,77 @@ +package app.kiti.com.kitiapp; + +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.util.Log; + +import com.google.android.gms.ads.AdListener; +import com.google.android.gms.ads.AdRequest; +import com.google.android.gms.ads.InterstitialAd; +import com.google.android.gms.ads.MobileAds; + +public class InterstitalAdActivity extends AppCompatActivity { + + public static final String TAG = InterstitalAdActivity.class.getSimpleName(); + private InterstitialAd mInterstitialAd; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_interstital_ad); + init(); + showAd(); + } + + private void showAd() { + if (mInterstitialAd.isLoaded()) { + mInterstitialAd.show(); + } else { + Log.d("TAG", "The interstitial wasn't loaded yet."); + } + + } + + private void init() { + + MobileAds.initialize(this, getResources().getString(R.string.admob_test_app_id)); + mInterstitialAd = new InterstitialAd(this); + mInterstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712"); + mInterstitialAd.loadAd(new AdRequest.Builder().build()); + mInterstitialAd.setAdListener(adListener); + + } + + private AdListener adListener = new AdListener() { + @Override + public void onAdLoaded() { + // Code to be executed when an ad finishes loading. + Log.d(TAG, "Ad Loaded"); + mInterstitialAd.show(); + } + + @Override + public void onAdFailedToLoad(int errorCode) { + // Code to be executed when an ad request fails. + Log.d(TAG, "Failed to Load ad"); + } + + @Override + public void onAdOpened() { + // Code to be executed when an ad opens an overlay that + // covers the screen. + Log.d(TAG, "Ad Opened"); + } + + @Override + public void onAdLeftApplication() { + // Code to be executed when the user has left the app. + } + + @Override + public void onAdClosed() { + // Code to be executed when when the user is about to return + // to the app after tapping on an ad. + } + }; + +} diff --git a/app/src/main/java/app/kiti/com/kitiapp/KitiAppMain.java b/app/src/main/java/app/kiti/com/kitiapp/KitiAppMain.java new file mode 100644 index 0000000..22f8306 --- /dev/null +++ b/app/src/main/java/app/kiti/com/kitiapp/KitiAppMain.java @@ -0,0 +1,24 @@ +package app.kiti.com.kitiapp; + +import android.app.Application; +import android.content.Context; + +/** + * Created by Ankit on 4/11/2018. + */ + +public class KitiAppMain extends Application { + + private static Context context; + + @Override + public void onCreate() { + super.onCreate(); + this.context = this; + } + + public static Context getContext() { + return context; + } + +} diff --git a/app/src/main/java/app/kiti/com/kitiapp/LoginActivity.java b/app/src/main/java/app/kiti/com/kitiapp/LoginActivity.java index 7ece235..c8cd562 100644 --- a/app/src/main/java/app/kiti/com/kitiapp/LoginActivity.java +++ b/app/src/main/java/app/kiti/com/kitiapp/LoginActivity.java @@ -19,15 +19,20 @@ import com.google.firebase.auth.FirebaseUser; import com.google.firebase.auth.PhoneAuthCredential; import com.google.firebase.auth.PhoneAuthProvider; + import java.util.concurrent.TimeUnit; + import butterknife.BindView; import butterknife.ButterKnife; public class LoginActivity extends AppCompatActivity { - @BindView(R.id.phone_numberEt) EditText phoneNumberEt; - @BindView(R.id.otp) EditText otp; - @BindView(R.id.loginButton) Button loginButton; + @BindView(R.id.phone_numberEt) + EditText phoneNumberEt; + @BindView(R.id.otp) + EditText otp; + @BindView(R.id.loginButton) + Button loginButton; private String mVerificationId; private PhoneAuthProvider.ForceResendingToken mResendToken; private String TAG = LoginActivity.class.getSimpleName(); @@ -87,6 +92,12 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); ButterKnife.bind(this); + // last login check + if (PreferenceManager.getInstance().isLoggedIn()) { + navigateToHomePage(); + return; + } + mAuth = FirebaseAuth.getInstance(); loginButton.setOnClickListener(new View.OnClickListener() { @Override @@ -96,7 +107,7 @@ public void onClick(View v) { }); } - private void verifyPhoneNumber(String phone){ + private void verifyPhoneNumber(String phone) { PhoneAuthProvider.getInstance().verifyPhoneNumber( phone, // Phone number to verify 60, // Timeout duration @@ -117,6 +128,7 @@ public void onComplete(@NonNull Task task) { FirebaseUser user = task.getResult().getUser(); navigateToHomePage(); + PreferenceManager.getInstance().setLoggedIn(true); // ... } else { // Sign in failed, display a message and update the UI @@ -130,7 +142,7 @@ public void onComplete(@NonNull Task task) { } private void navigateToHomePage() { - Intent homeIntent = new Intent(this,HomeActivity.class); + Intent homeIntent = new Intent(this, HomeActivity.class); startActivity(homeIntent); } diff --git a/app/src/main/java/app/kiti/com/kitiapp/PreferenceManager.java b/app/src/main/java/app/kiti/com/kitiapp/PreferenceManager.java new file mode 100644 index 0000000..0e16a47 --- /dev/null +++ b/app/src/main/java/app/kiti/com/kitiapp/PreferenceManager.java @@ -0,0 +1,46 @@ +package app.kiti.com.kitiapp; + +import android.content.Context; +import android.content.SharedPreferences; +import android.util.Log; + +/** + * Created by Ankit on 4/11/2018. + */ + +public class PreferenceManager { + + private static SharedPreferences preferences; + private static SharedPreferences.Editor editor; + private static PreferenceManager mInstance; + private static final String PREF_NAME = "kiti_pref"; + + public PreferenceManager() { + + preferences = KitiAppMain.getContext().getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE); + editor = preferences.edit(); + + } + + public static PreferenceManager getInstance() { + if (mInstance == null) { + mInstance = new PreferenceManager(); + } + return mInstance; + } + + public void clearPreferences() { + editor.clear(); + editor.apply(); + } + + public void setLoggedIn(boolean loggedIn) { + editor.putBoolean("isLoggedIn", loggedIn); + editor.apply(); + } + + public boolean isLoggedIn() { + return preferences.getBoolean("isLoggedIn", false); + } + +} diff --git a/app/src/main/java/app/kiti/com/kitiapp/VideoAdActivity.java b/app/src/main/java/app/kiti/com/kitiapp/VideoAdActivity.java new file mode 100644 index 0000000..5c5bfde --- /dev/null +++ b/app/src/main/java/app/kiti/com/kitiapp/VideoAdActivity.java @@ -0,0 +1,81 @@ +package app.kiti.com.kitiapp; + +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.util.Log; +import android.widget.Toast; + +import com.google.android.gms.ads.AdListener; +import com.google.android.gms.ads.AdRequest; +import com.google.android.gms.ads.MobileAds; +import com.google.android.gms.ads.reward.RewardItem; +import com.google.android.gms.ads.reward.RewardedVideoAd; +import com.google.android.gms.ads.reward.RewardedVideoAdListener; + +public class VideoAdActivity extends AppCompatActivity implements RewardedVideoAdListener { + + public static final String TAG = VideoAdActivity.class.getSimpleName(); + private RewardedVideoAd mRewardedVideoAd; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_video_ad); + init(); + } + private void init() { + MobileAds.initialize(this, getResources().getString(R.string.admob_test_app_id)); + // Use an activity context to get the rewarded video instance. + mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this); + mRewardedVideoAd.setRewardedVideoAdListener(this); + loadRewardedVideoAd(); + } + + private void loadRewardedVideoAd() { + mRewardedVideoAd.loadAd("ca-app-pub-3940256099942544/5224354917", + new AdRequest.Builder().build()); + } + + @Override + public void onRewarded(RewardItem reward) { + Toast.makeText(this, "onRewarded! currency: " + reward.getType() + " amount: " + + reward.getAmount(), Toast.LENGTH_SHORT).show(); + // Reward the user. + } + + @Override + public void onRewardedVideoAdLeftApplication() { + Toast.makeText(this, "onRewardedVideoAdLeftApplication", + Toast.LENGTH_SHORT).show(); + } + + @Override + public void onRewardedVideoAdClosed() { + Toast.makeText(this, "onRewardedVideoAdClosed", Toast.LENGTH_SHORT).show(); + } + + @Override + public void onRewardedVideoAdFailedToLoad(int errorCode) { + Toast.makeText(this, "onRewardedVideoAdFailedToLoad", Toast.LENGTH_SHORT).show(); + } + + @Override + public void onRewardedVideoAdLoaded() { + mRewardedVideoAd.show(); + Toast.makeText(this, "onRewardedVideoAdLoaded", Toast.LENGTH_SHORT).show(); + } + + @Override + public void onRewardedVideoAdOpened() { + Toast.makeText(this, "onRewardedVideoAdOpened", Toast.LENGTH_SHORT).show(); + } + + @Override + public void onRewardedVideoStarted() { + Toast.makeText(this, "onRewardedVideoStarted", Toast.LENGTH_SHORT).show(); + } + + @Override + public void onRewardedVideoCompleted() { + Toast.makeText(this, "onRewardedVideoCompleted", Toast.LENGTH_SHORT).show(); + } +} diff --git a/app/src/main/res/layout/activity_banner_ad.xml b/app/src/main/res/layout/activity_banner_ad.xml new file mode 100644 index 0000000..8454f87 --- /dev/null +++ b/app/src/main/res/layout/activity_banner_ad.xml @@ -0,0 +1,21 @@ + + + + + + + + diff --git a/app/src/main/res/layout/activity_interstital_ad.xml b/app/src/main/res/layout/activity_interstital_ad.xml new file mode 100644 index 0000000..b7ea459 --- /dev/null +++ b/app/src/main/res/layout/activity_interstital_ad.xml @@ -0,0 +1,10 @@ + + + + + diff --git a/app/src/main/res/layout/activity_video_ad.xml b/app/src/main/res/layout/activity_video_ad.xml new file mode 100644 index 0000000..11da1ab --- /dev/null +++ b/app/src/main/res/layout/activity_video_ad.xml @@ -0,0 +1,9 @@ + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7d6b972..596c77d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,3 +1,7 @@ KitiApp + + ca-app-pub-8033884555637397/9481645411 + ca-app-pub-3940256099942544/6300978111 +