diff --git a/res/layout/checkbox_view.xml b/res/layout/checkbox_view.xml
new file mode 100644
index 0000000..db9500f
--- /dev/null
+++ b/res/layout/checkbox_view.xml
@@ -0,0 +1,13 @@
+
+
+
+
diff --git a/res/menu/menu_toolbar.xml b/res/menu/menu_toolbar.xml
index 1ba56a0..6190914 100644
--- a/res/menu/menu_toolbar.xml
+++ b/res/menu/menu_toolbar.xml
@@ -17,4 +17,9 @@
android:checkable="true"
android:title="@string/menu_auto_delete_updates"
app:showAsAction="never" />
+
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 4be6bb7..fc36912 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -115,4 +115,9 @@
- 1 hour
- %d hours
+
+ Warning
+ You\'re about to download an update package using mobile data which is likely going to cause high data usage. Would you like to proceed?
+ Do not show again
+ Mobile data warning
diff --git a/src/org/lineageos/updater/UpdatesActivity.java b/src/org/lineageos/updater/UpdatesActivity.java
index 06d01e1..221355c 100644
--- a/src/org/lineageos/updater/UpdatesActivity.java
+++ b/src/org/lineageos/updater/UpdatesActivity.java
@@ -180,6 +180,8 @@ public class UpdatesActivity extends UpdatesListActivity {
.setChecked(preferences.getBoolean(Constants.PREF_AUTO_UPDATES_CHECK, true));
menu.findItem(R.id.menu_auto_delete_updates)
.setChecked(preferences.getBoolean(Constants.PREF_AUTO_DELETE_UPDATES, false));
+ menu.findItem(R.id.menu_mobile_data_warning)
+ .setChecked(preferences.getBoolean(Constants.PREF_MOBILE_DATA_WARNING, true));
return super.onCreateOptionsMenu(menu);
}
@@ -214,6 +216,15 @@ public class UpdatesActivity extends UpdatesListActivity {
.apply();
return true;
}
+ case R.id.menu_mobile_data_warning: {
+ boolean enable = !item.isChecked();
+ item.setChecked(enable);
+ PreferenceManager.getDefaultSharedPreferences(UpdatesActivity.this)
+ .edit()
+ .putBoolean(Constants.PREF_MOBILE_DATA_WARNING, enable)
+ .apply();
+ return true;
+ }
}
return super.onOptionsItemSelected(item);
}
diff --git a/src/org/lineageos/updater/UpdatesListAdapter.java b/src/org/lineageos/updater/UpdatesListAdapter.java
index 2d2d3d3..de0d307 100644
--- a/src/org/lineageos/updater/UpdatesListAdapter.java
+++ b/src/org/lineageos/updater/UpdatesListAdapter.java
@@ -16,6 +16,8 @@
package org.lineageos.updater;
import android.content.DialogInterface;
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AlertDialog;
import android.support.v7.view.ActionMode;
@@ -29,12 +31,14 @@ import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.CheckBox;
import android.widget.ImageButton;
import android.widget.ProgressBar;
import android.widget.TextView;
import org.lineageos.updater.controller.Controller;
import org.lineageos.updater.misc.BuildInfoUtils;
+import org.lineageos.updater.misc.Constants;
import org.lineageos.updater.misc.FileUtils;
import org.lineageos.updater.misc.PermissionsUtils;
import org.lineageos.updater.misc.StringGenerator;
@@ -252,6 +256,39 @@ public class UpdatesListAdapter extends RecyclerView.Adapter