diff --git a/app/build.gradle b/app/build.gradle index cba7aa3..1ce376c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,6 +1,14 @@ apply plugin: 'com.android.application' android { + productFlavors { + free { + applicationId = "com.udacity.gradle.builditbigger.free" + } + paid { + applicationId = "com.udacity.gradle.builditbigger.pro" + } + } compileSdkVersion 23 buildToolsVersion "22.0.1" @@ -21,10 +29,9 @@ android { dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') - // Added for AdMob compile project(':androidjokepresenter') compile 'com.android.support:appcompat-v7:23.1.0' - compile 'com.google.android.gms:play-services-ads:8.1.0' + freeCompile 'com.google.android.gms:play-services-ads:8.3.0' compile project(path: ':jokesbackend', configuration: 'android-endpoints') compile 'com.android.support:design:23.1.0' } diff --git a/app/src/free/AndroidManifest.xml b/app/src/free/AndroidManifest.xml new file mode 100644 index 0000000..f88f00d --- /dev/null +++ b/app/src/free/AndroidManifest.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + diff --git a/app/src/free/java/com.udacity.gradle.builditbigger/MainActivityFlavoredFragment.java b/app/src/free/java/com.udacity.gradle.builditbigger/MainActivityFlavoredFragment.java new file mode 100644 index 0000000..aab1709 --- /dev/null +++ b/app/src/free/java/com.udacity.gradle.builditbigger/MainActivityFlavoredFragment.java @@ -0,0 +1,37 @@ +package com.udacity.gradle.builditbigger; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.RelativeLayout; +import android.widget.RelativeLayout.LayoutParams; + +import com.google.android.gms.ads.AdRequest; +import com.google.android.gms.ads.AdView; + +public class MainActivityFlavoredFragment extends MainActivityFragment { + + public static String TAG = MainActivityFlavoredFragment.class.getSimpleName(); + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + RelativeLayout view = (RelativeLayout) super.onCreateView(inflater, container, savedInstanceState); + attachBannerAd(view); + return view; + } + + private void attachBannerAd(RelativeLayout rootView) { + // initialize the adview + AdView adView = (AdView) LayoutInflater.from(rootView.getContext()).inflate(R.layout.adview, rootView, false); + LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); + params.addRule(RelativeLayout.CENTER_HORIZONTAL); + params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); + adView.setLayoutParams(params); + rootView.addView(adView); + AdRequest adRequest = new AdRequest.Builder() + .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) + .build(); + adView.loadAd(adRequest); + } +} diff --git a/app/src/free/res/layout/adview.xml b/app/src/free/res/layout/adview.xml new file mode 100644 index 0000000..2115a82 --- /dev/null +++ b/app/src/free/res/layout/adview.xml @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 6d69182..d00fd37 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -12,11 +12,6 @@ android:label="@string/app_name" android:theme="@style/AppTheme" > - - - @@ -33,11 +28,6 @@ android:name="android.support.PARENT_ACTIVITY" android:value=".MainActivity" /> - - diff --git a/app/src/main/java/com/udacity/gradle/builditbigger/MainActivityFragment.java b/app/src/main/java/com/udacity/gradle/builditbigger/MainActivityFragment.java index 43ff3f9..126bca9 100644 --- a/app/src/main/java/com/udacity/gradle/builditbigger/MainActivityFragment.java +++ b/app/src/main/java/com/udacity/gradle/builditbigger/MainActivityFragment.java @@ -8,9 +8,6 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import com.google.android.gms.ads.AdRequest; -import com.google.android.gms.ads.AdView; - import net.headlezz.androidjokepresenter.JokePresenterActivity; import net.headlezz.jokesbackend.myApi.model.Joke; @@ -18,7 +15,7 @@ import net.headlezz.jokesbackend.myApi.model.Joke; /** * A placeholder fragment containing a simple view. */ -public class MainActivityFragment extends Fragment implements View.OnClickListener, JokeLoaderTask.JokeLoaderCallback { +public abstract class MainActivityFragment extends Fragment implements View.OnClickListener, JokeLoaderTask.JokeLoaderCallback { JokeLoaderTask mJokeLoaderTask; @@ -29,19 +26,10 @@ public class MainActivityFragment extends Fragment implements View.OnClickListen public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View root = inflater.inflate(R.layout.fragment_main, container, false); - initAds((AdView) root.findViewById(R.id.adView)); root.findViewById(R.id.btShowJoke).setOnClickListener(this); - return root; } - private void initAds(AdView adView) { - AdRequest adRequest = new AdRequest.Builder() - .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) - .build(); - adView.loadAd(adRequest); - } - @Override public void onClick(View v) { downloadNewJoke(); diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 25df929..45be80f 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,5 +1,5 @@ diff --git a/app/src/main/res/layout/fragment_main.xml b/app/src/main/res/layout/fragment_main.xml index 179c7df..b891178 100644 --- a/app/src/main/res/layout/fragment_main.xml +++ b/app/src/main/res/layout/fragment_main.xml @@ -1,6 +1,5 @@ - - - - diff --git a/app/src/paid/java/com.udacity.gradle.builditbigger/MainActivityFlavoredFragment.java b/app/src/paid/java/com.udacity.gradle.builditbigger/MainActivityFlavoredFragment.java new file mode 100644 index 0000000..f72ca96 --- /dev/null +++ b/app/src/paid/java/com.udacity.gradle.builditbigger/MainActivityFlavoredFragment.java @@ -0,0 +1,5 @@ +package com.udacity.gradle.builditbigger; + +public class MainActivityFlavoredFragment extends MainActivityFragment { + +}