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 {
+
+}