Skip to content

Commit c63be4e

Browse files
committed
Javascript API: Add ankiIsActiveNetworkMetered
Allows for deck developers to stop loading heavy assets such as videos on LTE Fixes 6783
1 parent fe5aa07 commit c63be4e

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

AnkiDroid/src/main/java/com/ichi2/anki/AbstractFlashcardViewer.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import android.content.res.Configuration;
3434
import android.content.res.Resources;
3535
import android.graphics.Color;
36+
import android.net.ConnectivityManager;
3637
import android.net.Uri;
3738
import android.os.Build;
3839
import android.os.Bundle;
@@ -46,6 +47,7 @@
4647
import androidx.annotation.Nullable;
4748
import androidx.annotation.VisibleForTesting;
4849
import androidx.core.content.ContextCompat;
50+
import androidx.core.net.ConnectivityManagerCompat;
4951
import androidx.core.view.GestureDetectorCompat;
5052
import androidx.appcompat.app.ActionBar;
5153
import android.text.SpannableString;
@@ -3592,5 +3594,21 @@ public boolean ankiIsTopbarShown() {
35923594
public boolean ankiIsInNightMode() {
35933595
return isInNightMode();
35943596
}
3597+
3598+
@JavascriptInterface
3599+
public boolean ankiIsActiveNetworkMetered() {
3600+
try {
3601+
ConnectivityManager cm = (ConnectivityManager) AnkiDroidApp.getInstance().getApplicationContext()
3602+
.getSystemService(Context.CONNECTIVITY_SERVICE);
3603+
if (cm == null) {
3604+
Timber.w("Current network not found - assuming metered connection");
3605+
return true;
3606+
}
3607+
return ConnectivityManagerCompat.isActiveNetworkMetered(cm);
3608+
} catch (Exception e) {
3609+
Timber.w(e, "Exception obtaining metered connection - assuming metered connection");
3610+
return true;
3611+
}
3612+
}
35953613
}
35963614
}

0 commit comments

Comments
 (0)