Issue #295 An option to turn delta updates off

This commit is contained in:
Sergey Eremin
2017-10-07 04:51:27 +03:00
parent f2e15317ac
commit 5e5be9c889
5 changed files with 22 additions and 2 deletions

View File

@@ -40,6 +40,7 @@ public class PreferenceActivity extends android.preference.PreferenceActivity {
public static final String PREFERENCE_NO_IMAGES = "PREFERENCE_NO_IMAGES";
public static final String PREFERENCE_DEVICE_DEFINITION_REQUESTED = "PREFERENCE_DEVICE_DEFINITION_REQUESTED";
public static final String PREFERENCE_DOWNLOAD_DIRECTORY = "PREFERENCE_DOWNLOAD_DIRECTORY";
public static final String PREFERENCE_DOWNLOAD_DELTAS = "PREFERENCE_DOWNLOAD_DELTAS";
public static final String INSTALLATION_METHOD_DEFAULT = "default";
public static final String INSTALLATION_METHOD_ROOT = "root";

View File

@@ -7,6 +7,7 @@ import com.github.yeriomin.playstoreapi.BuyResponse;
import com.github.yeriomin.playstoreapi.DeliveryResponse;
import com.github.yeriomin.playstoreapi.GooglePlayAPI;
import com.github.yeriomin.yalpstore.NotPurchasedException;
import com.github.yeriomin.yalpstore.PreferenceActivity;
import com.github.yeriomin.yalpstore.model.App;
import java.io.IOException;
@@ -34,7 +35,7 @@ public class DeliveryDataTask extends PlayStorePayloadTask<AndroidAppDeliveryDat
if (buyResponse.hasPurchaseStatusResponse()
&& buyResponse.getPurchaseStatusResponse().hasAppDeliveryData()
&& buyResponse.getPurchaseStatusResponse().getAppDeliveryData().hasDownloadUrl()
) {
) {
deliveryData = buyResponse.getPurchaseStatusResponse().getAppDeliveryData();
}
if (buyResponse.hasDownloadToken()) {
@@ -48,7 +49,7 @@ public class DeliveryDataTask extends PlayStorePayloadTask<AndroidAppDeliveryDat
protected void delivery(GooglePlayAPI api) throws IOException {
DeliveryResponse deliveryResponse = api.delivery(
app.getPackageName(),
app.getInstalledVersionCode() >= app.getVersionCode() ? 0 : app.getInstalledVersionCode(),
shouldDownloadDelta() ? app.getInstalledVersionCode() : 0,
app.getVersionCode(),
app.getOfferType(),
GooglePlayAPI.PATCH_FORMAT.GZIPPED_GDIFF,
@@ -62,4 +63,10 @@ public class DeliveryDataTask extends PlayStorePayloadTask<AndroidAppDeliveryDat
throw new NotPurchasedException();
}
}
private boolean shouldDownloadDelta() {
return PreferenceActivity.getBoolean(context, PreferenceActivity.PREFERENCE_DOWNLOAD_DELTAS)
&& app.getInstalledVersionCode() < app.getVersionCode()
;
}
}

View File

@@ -206,6 +206,9 @@
<string name="pref_no_images">Загружать изображения только по Wi-fi</string>
<string name="pref_no_images_summary_off">Сейчас изображения загружаются всегда</string>
<string name="pref_no_images_summary_on">Сейчас изображения загружаются только по Wi-fi</string>
<string name="pref_download_deltas">Дельта обновления</string>
<string name="pref_download_deltas_summary_off">Каждый раз скачивается весь apk</string>
<string name="pref_download_deltas_summary_on">При обновлении скачиваются только изменения</string>
<string name="pref_download_directory">Куда сохранять apk</string>
<string name="download_manager_ERROR_UNKNOWN">Неизвестная ошибка.</string>
<string name="download_manager_ERROR_FILE_ERROR">Неизвестная ошибка сохранения файла.</string>

View File

@@ -205,6 +205,9 @@
<string name="pref_no_images">Download images on Wi-Fi only</string>
<string name="pref_no_images_summary_off">Images are always downloaded now</string>
<string name="pref_no_images_summary_on">Images are downloaded on Wi-Fi only</string>
<string name="pref_download_deltas">Delta updates</string>
<string name="pref_download_deltas_summary_off">Full apk is downloaded every time</string>
<string name="pref_download_deltas_summary_on">Only changes are downloaded during updates</string>
<string name="pref_download_directory">Download directory</string>
<string name="download_manager_ERROR_UNKNOWN">Unknown error.</string>
<string name="download_manager_ERROR_FILE_ERROR">Unknown file storage error.</string>

View File

@@ -14,6 +14,12 @@
android:summaryOn="@string/pref_show_system_apps_summary_on"
android:title="@string/pref_show_system_apps" />
<PreferenceCategory android:title="@string/pref_category_updates">
<CheckBoxPreference
android:defaultValue="true"
android:key="PREFERENCE_DOWNLOAD_DELTAS"
android:summaryOff="@string/pref_download_deltas_summary_off"
android:summaryOn="@string/pref_download_deltas_summary_on"
android:title="@string/pref_download_deltas" />
<ListPreference
android:defaultValue="-1"
android:key="PREFERENCE_BACKGROUND_UPDATE_INTERVAL"