Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 608789ff authored by TheScarastic's avatar TheScarastic Committed by Luca Stefani
Browse files

Updater: Allow toggling A/B perf mode

Change-Id: I380a39bf6008b341c8005ac548d42d2413d0d643
parent 5a93f3f9
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -30,4 +30,12 @@
        android:layout_marginBottom="16dp"
        android:text="@string/menu_mobile_data_warning"
        android:textSize="16sp" />

    <Switch
        android:id="@+id/preferences_ab_perf_mode"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="16dp"
        android:text="@string/menu_ab_perf_mode"
        android:textSize="16sp" />
</LinearLayout>
+1 −0
Original line number Diff line number Diff line
@@ -70,6 +70,7 @@
    <string name="menu_export_update">Export update</string>
    <string name="menu_show_changelog">Show changelog</string>
    <string name="menu_changelog_url" translatable="false">https://download.lineageos.org/<xliff:g id="device_name">%1$s</xliff:g>/changes</string>
    <string name="menu_ab_perf_mode">Install updates faster</string>

    <string name="snack_updates_found">New updates found</string>
    <string name="snack_no_updates_found">No new updates found</string>
+11 −0
Original line number Diff line number Diff line
@@ -409,11 +409,17 @@ public class UpdatesActivity extends UpdatesListActivity {
        Switch autoCheck = view.findViewById(R.id.preferences_auto_updates_check);
        Switch autoDelete = view.findViewById(R.id.preferences_auto_delete_updates);
        Switch dataWarning = view.findViewById(R.id.preferences_mobile_data_warning);
        Switch abPerfMode = view.findViewById(R.id.preferences_ab_perf_mode);

        if (!Utils.isABDevice()) {
            abPerfMode.setVisibility(View.GONE);
        }

        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
        autoCheck.setChecked(prefs.getBoolean(Constants.PREF_AUTO_UPDATES_CHECK, true));
        autoDelete.setChecked(prefs.getBoolean(Constants.PREF_AUTO_DELETE_UPDATES, false));
        dataWarning.setChecked(prefs.getBoolean(Constants.PREF_MOBILE_DATA_WARNING, true));
        abPerfMode.setChecked(prefs.getBoolean(Constants.PREF_AB_PERF_MODE, false));

        new AlertDialog.Builder(this)
                .setTitle(R.string.menu_preferences)
@@ -426,6 +432,8 @@ public class UpdatesActivity extends UpdatesListActivity {
                                    autoDelete.isChecked())
                            .putBoolean(Constants.PREF_MOBILE_DATA_WARNING,
                                    dataWarning.isChecked())
                            .putBoolean(Constants.PREF_AB_PERF_MODE,
                                    abPerfMode.isChecked())
                            .apply();

                    if (autoCheck.isChecked()) {
@@ -434,6 +442,9 @@ public class UpdatesActivity extends UpdatesListActivity {
                        UpdatesCheckReceiver.cancelRepeatingUpdatesCheck(this);
                        UpdatesCheckReceiver.cancelUpdatesCheck(this);
                    }

                    boolean enableABPerfMode = abPerfMode.isChecked();
                    mUpdaterService.getUpdaterController().setPerformanceMode(enableABPerfMode);
                })
                .show();
    }
+8 −0
Original line number Diff line number Diff line
@@ -200,6 +200,10 @@ class ABUpdateInstaller {
            }
        }

        boolean enableABPerfMode = PreferenceManager.getDefaultSharedPreferences(mContext)
                .getBoolean(Constants.PREF_AB_PERF_MODE, false);
        mUpdateEngine.setPerformanceMode(enableABPerfMode);

        String zipFileUri = "file://" + file.getAbsolutePath();
        mUpdateEngine.applyPayload(zipFileUri, offset, 0, headerKeyValuePairs);

@@ -265,4 +269,8 @@ class ABUpdateInstaller {

        return true;
    }

    public void setPerformanceMode(boolean enable) {
        mUpdateEngine.setPerformanceMode(enable);
    }
}
+7 −0
Original line number Diff line number Diff line
@@ -525,4 +525,11 @@ public class UpdaterController {
    public boolean isWaitingForReboot(String downloadId) {
        return ABUpdateInstaller.isWaitingForReboot(mContext, downloadId);
    }

    public void setPerformanceMode(boolean enable) {
        if (!Utils.isABDevice()) {
            return;
        }
        ABUpdateInstaller.getInstance(mContext, this).setPerformanceMode(enable);
    }
}
Loading