Skip to content

Commit

Permalink
Fixed ad issues
Browse files Browse the repository at this point in the history
  • Loading branch information
BedrockDev committed May 5, 2017
1 parent ddf057e commit a6b85db
Show file tree
Hide file tree
Showing 7 changed files with 238 additions and 264 deletions.
5 changes: 4 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@
package="com.bedrock.padder">

<!-- TODO on iap launch -->
<!-- <uses-permission android:name="com.android.vending.BILLING" /> -->
<!--<uses-permission android:name="com.android.vending.BILLING" />-->
<!--<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />-->
<!--<uses-permission android:name="android.permission.INTERNET" />-->

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
Expand Down
221 changes: 2 additions & 219 deletions app/src/main/java/com/bedrock/padder/activity/MainActivity.java

Large diffs are not rendered by default.

35 changes: 25 additions & 10 deletions app/src/main/java/com/bedrock/padder/fragment/AboutFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -289,16 +289,31 @@ public void onClick(View view) {
});

// Blank ads

ad.getNativeAdView(R.id.adView_about, a).setAdListener(new AdListener() {
@Override
public void onAdFailedToLoad(int i) {
// Ad failed to load
Log.d("AdView", "Failed to load");
w.getView(R.id.cardview_ad, v).setVisibility(View.GONE);
super.onAdFailedToLoad(i);
}
});
if (ad.isConnected(a)) {
// connected to internet, check ad is working
ad.getNativeAdView(R.id.adView_about, a).setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
// Ad loaded
Log.d("AdView", "Loaded");
anim.fadeOut(R.id.cardview_ad_loading, 0, 400, v, a);
w.getView(R.id.cardview_ad_failed, v).setVisibility(View.GONE);
super.onAdLoaded();
}
@Override
public void onAdFailedToLoad(int i) {
// Ad failed to load
Log.d("AdView", "Failed to load");
anim.fadeOut(R.id.cardview_ad_loading, 0, 400, v, a);
anim.fadeIn(R.id.cardview_ad_failed, 400, 400, "adFailFadeIn", v, a);
super.onAdFailedToLoad(i);
}
});
} else {
// not connected to internet
Log.d("AdView", "Failed to connect to the internet");
w.getView(R.id.cardview_ad, v).setVisibility(View.GONE);
}
}

private void setScheme(int scheme) {
Expand Down
19 changes: 15 additions & 4 deletions app/src/main/java/com/bedrock/padder/helper/AdmobService.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package com.bedrock.padder.helper;

import android.app.Activity;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.util.Log;

import com.google.android.gms.ads.AdRequest;
Expand All @@ -9,8 +12,8 @@
import com.google.android.gms.ads.NativeExpressAdView;

public class AdmobService {
WindowService window = new WindowService();
String TAG = "AdmobService";
private WindowService window = new WindowService();
private String TAG = "AdmobService";

public AdView getAdView(int id, Activity activity) {
return window.getAdView(id, activity);
Expand Down Expand Up @@ -60,12 +63,12 @@ public void loadAd(AdView adView, AdRequest adRequest) {
}

public void requestLoadAd(AdView adView) {
adView.loadAd(new AdRequest.Builder().build());
adView.loadAd(getAdRequest());
Log.d(TAG, "ad requested and loaded");
}

public void requestLoadNativeAd(NativeExpressAdView adView) {
adView.loadAd(new AdRequest.Builder().build());
adView.loadAd(getAdRequest());
Log.d(TAG, "ad requested and loaded");
}

Expand Down Expand Up @@ -105,4 +108,12 @@ public void setNativeAdViewSize(int id, AdSize adSize, Activity activity) {
public void setNativeAdViewSize(NativeExpressAdView adView, AdSize adSize, Activity activity) {
adView.setAdSize(adSize);
}

public boolean isConnected(Context context) {
// returns whether the device is connected to the internet
ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
return activeNetwork != null && activeNetwork.isConnectedOrConnecting();
}
}
116 changes: 116 additions & 0 deletions app/src/main/java/com/bedrock/padder/helper/AnimService.java
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,64 @@ public void run() {
}
}

public void fadeIn(final int id, final int delay, final long duration, String handlerName, View rootView, Activity activity) {
final AlphaAnimation fadeIn = new AlphaAnimation(0.0f, 1.0f);
final View view = rootView.findViewById(id);
view.setVisibility(View.INVISIBLE);
PowerManager powerManager = (PowerManager) activity.getSystemService(POWER_SERVICE);

if (Build.VERSION.SDK_INT >= 21 && powerManager.isPowerSaveMode()) {
// power save mode on
if (duration > 0) {
// delay, needs an handler
Map<String, Handler> handlerCreator = new HashMap<>();
handlerCreator.put(handlerName, new Handler());

handlerCreator.get(handlerName).postDelayed(new Runnable() {
@Override
public void run() {
view.setVisibility(View.VISIBLE);

Log.i("AnimService", String.valueOf(id) + " fade IN [VISIBLE] effect for 0ms with " + String.valueOf(delay) + "ms delay");
}
}, delay);
} else {
view.setVisibility(View.VISIBLE);
Log.i("AnimService",
String.valueOf(id) + " fade IN effect to 1.0f for 0ms with no delay");
}
} else {
// normal fadeIn IN
if (duration > 0) {
// delay, needs an handler
Map<String, Handler> handlerCreator = new HashMap<>();
handlerCreator.put(handlerName, new Handler());

handlerCreator.get(handlerName).postDelayed(new Runnable() {
@Override
public void run() {
fadeIn.setDuration(duration);
view.startAnimation(fadeIn);
view.setVisibility(View.VISIBLE);

Log.i("AnimService",
String.valueOf(id) + " fade IN effect for " +
String.valueOf(duration) + "ms with " +
String.valueOf(delay) + "ms delay");
}
}, delay);
} else {
fadeIn.setDuration(duration);
view.startAnimation(fadeIn);
view.setVisibility(View.VISIBLE);

Log.i("AnimService",
String.valueOf(id) + " fade IN effect for " +
String.valueOf(duration) + "ms with no delay");
}
}
}

public void fadeOut(final int id, final int delay, final long duration, Activity activity) {
final AlphaAnimation fadeOut = new AlphaAnimation(1.0f, 0.0f);
final View view = activity.findViewById(id);
Expand Down Expand Up @@ -227,6 +285,64 @@ public void run() {
}
}

public void fadeOut(final int id, final int delay, final long duration, View rootView, Activity activity) {
final AlphaAnimation fadeOut = new AlphaAnimation(1.0f, 0.0f);
final View view = rootView.findViewById(id);
PowerManager powerManager = (PowerManager) activity.getSystemService(POWER_SERVICE);

if (Build.VERSION.SDK_INT >= 21 && powerManager.isPowerSaveMode()) {
// power save mode on
if (duration > 0) {
// delay, needs an handler
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
view.setVisibility(View.GONE);

Log.i("AnimService", String.valueOf(id) + " fade OUT [GONE] effect for " + String.valueOf(duration) + "ms with " + String.valueOf(delay) + "ms delay");
}
}, delay);
handler.postDelayed(new Runnable() {
@Override
public void run() {
view.setVisibility(View.GONE);
}
}, delay + 10);
} else {
view.setVisibility(View.GONE);
Log.i("AnimService", String.valueOf(id) + " fade OUT [GONE] effect for " + String.valueOf(duration) + "ms with no delay");
}
} else {
// normal fade out
if (duration > 0) {
// delay, needs an handler
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
fadeOut.setDuration(duration);
view.startAnimation(fadeOut);
view.setVisibility(View.GONE);

Log.i("AnimService", String.valueOf(id) + " fade OUT effect for " + String.valueOf(duration) + "ms with " + String.valueOf(delay) + "ms delay");
}
}, delay);
handler.postDelayed(new Runnable() {
@Override
public void run() {
view.setVisibility(View.GONE);
}
}, delay + 10);
} else {
fadeOut.setDuration(duration);
view.startAnimation(fadeOut);
view.setVisibility(View.GONE);
Log.i("AnimService", String.valueOf(id) + " fade OUT effect for " + String.valueOf(duration) + "ms with no delay");
}
}
}

public void fadeOutInvisible(final int id, final int delay, final long duration, Activity activity) {
final AlphaAnimation fadeOut = new AlphaAnimation(1.0f, 0.0f);
final View view = activity.findViewById(id);
Expand Down
81 changes: 72 additions & 9 deletions app/src/main/res/layout/fragment_about.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:ads="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
Expand All @@ -15,8 +15,8 @@
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="-10dp"
android:layout_below="@+id/appbar"
android:layout_marginTop="-10dp"
android:background="@color/white">

<RelativeLayout
Expand Down Expand Up @@ -44,17 +44,80 @@
app:cardUseCompatPadding="true">

<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true">
android:layout_width="match_parent"
android:layout_height="260dp"
android:background="@color/grey_100">

<com.google.android.gms.ads.NativeExpressAdView
android:id="@+id/adView_about"
android:layout_width="wrap_content"
android:layout_height="260dp"
android:layout_height="match_parent"
ads:adSize="349x260"
ads:adUnitId="@string/admob_unit_id_native_about">
</com.google.android.gms.ads.NativeExpressAdView>
ads:adUnitId="@string/admob_unit_id_native_about"/>

<RelativeLayout
android:id="@+id/cardview_ad_loading"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true">

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center_horizontal"
android:orientation="vertical">

<ProgressBar
android:id="@+id/cardview_ad_loading_progress_bar"
style="?android:attr/progressBarStyleLarge"
android:layout_width="64dp"
android:layout_height="64dp"
android:indeterminate="false"
android:max="84"/>

<TextView
android:id="@+id/cardview_ad_loading_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/progressbar_loading_ad"
android:textColor="@color/dark_secondary"
android:textSize="16sp"/>
</LinearLayout>
</RelativeLayout>

<RelativeLayout
android:id="@+id/cardview_ad_failed"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:visibility="gone">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:gravity="center_horizontal"
android:orientation="vertical">

<ImageView
android:id="@+id/cardview_ad_failed_image"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/about_image_ad_failed"/>

<TextView
android:id="@+id/cardview_ad_failed_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:text="@string/progressbar_loading_ad_failed"
android:textColor="@color/dark_hint"
android:textSize="16sp"/>
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
</android.support.v7.widget.CardView>

Expand All @@ -71,7 +134,7 @@
</ScrollView>

<include layout="@layout/fragment_actionbar"/>

</RelativeLayout>

</FrameLayout>
25 changes: 4 additions & 21 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -98,27 +98,6 @@
<item>Others</item>
</string-array>
<string name="feedback_report_bug_send_error">Please fill out the form to report a bug</string>

<!-- Feedback old -->
<string name="dialog_feedback_hint">Studio Berict will reply you back in 1~2 days. If you don\'t receive the reply, please send request again.</string>

<string name="dialog_song_hint_subject">E-mail subject</string>
<string name="dialog_song_hint_text">Song details</string>
<string name="dialog_song_hint_link">YouTube, SoundCloud link (or other links)</string>
<string name="dialog_song_hint_wrong_subject">Enter the email subject</string>
<string name="dialog_song_hint_wrong_text">Enter the song detail</string>
<string name="dialog_song_hint_wrong_link">Enter valid song link</string>

<string name="dialog_feedback_hint_text">Feedback details</string>
<string name="dialog_feedback_hint_wrong_text">Enter feedback details</string>

<string name="dialog_report_bug_hint_text">Bug details</string>
<string name="dialog_report_bug_hint_wrong_text">Enter bug details</string>

<string name="dialog_feedback_close">Press back again to cancel</string>
<string name="dialog_feedback_fill_out">Please fill out the form</string>
<string name="dialog_feedback_select_email">Select email client to send with</string>

<!-- Quickstart Dialog -->
<string name="dialog_quickstart_welcome_title">Welcome to Tapad!</string>
<string name="dialog_quickstart_welcome_text">Walk through how to use Tapad or tap \'Tips\' in Settings when you want this later.</string>
Expand Down Expand Up @@ -171,12 +150,16 @@
<string name="close">Close</string>
<string name="about">About</string>
<string name="presets">Presets</string>

<string name="progressbar_loading_preset">Loading preset</string>
<string name="progressbar_loading_preset_progress">Sound loaded</string>
<string name="progressbar_loading_preset_progress_placeholder">Sound loaded 0 / 420</string>
<string name="progressbar_loading_preset_done">Done!</string>
<string name="progressbar_loading_tutorial">Loading tutorial</string>

<string name="progressbar_loading_ad">Loading ads</string>
<string name="progressbar_loading_ad_failed">Can\'t load ads</string>

<!--Settings-->
<string name="settings_group_play">Play</string>

Expand Down

0 comments on commit a6b85db

Please sign in to comment.