@Override protected void onCreate(Bundle savedInstanceState) { try{ super.onCreate(savedInstanceState); binding = ActivityMainBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); }catch (Exception ex){ } guncelle(); } private AppUpdateManager mAppUpdateManager; private static final int RC_APP_UPDATE = 11; public void guncelle() { try{ mAppUpdateManager = AppUpdateManagerFactory.create(this); mAppUpdateManager.registerListener(installStateUpdatedListener); mAppUpdateManager.getAppUpdateInfo().addOnSuccessListener(appUpdateInfo -> {
if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE && appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.FLEXIBLE /*AppUpdateType.IMMEDIATE*/)){ try { mAppUpdateManager.startUpdateFlowForResult( appUpdateInfo, AppUpdateType.FLEXIBLE /*AppUpdateType.IMMEDIATE*/, MainActivity.this, RC_APP_UPDATE);
} catch (IntentSender.SendIntentException e) { e.printStackTrace(); }
} else if (appUpdateInfo.installStatus() == InstallStatus.DOWNLOADED){ //CHECK THIS if AppUpdateType.FLEXIBLE, otherwise you can skip popupSnackbarForCompleteUpdate(); } else { Log.e("TAG", "checkForAppUpdateAvailability: something else"); } });
}catch (Exception ex){ }} @Override protected void onStop() { if (mAppUpdateManager != null) { mAppUpdateManager.unregisterListener(installStateUpdatedListener); } super.onStop(); }
@Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_APP_UPDATE) { if (resultCode != RESULT_OK) { Toast.makeText(mainActivity, "İptal Edildi", Toast.LENGTH_SHORT).show(); } } } private void popupSnackbarForCompleteUpdate() {
Snackbar snackbar = Snackbar.make(findViewById(android.R.id.content), "Yeni Güncelleme Hazır!", Snackbar.LENGTH_INDEFINITE);
snackbar.setAction("YÜKLE", view -> { if (mAppUpdateManager != null){ mAppUpdateManager.completeUpdate(); } });
snackbar.setActionTextColor(getResources().getColor(R.color.acik_sari)); snackbar.show(); }
InstallStateUpdatedListener installStateUpdatedListener = new InstallStateUpdatedListener() { @Override public void onStateUpdate(InstallState state) { if (state.installStatus() == InstallStatus.DOWNLOADED){ //CHECK THIS if AppUpdateType.FLEXIBLE, otherwise you can skip popupSnackbarForCompleteUpdate(); } else if (state.installStatus() == InstallStatus.INSTALLED){ if (mAppUpdateManager != null){ mAppUpdateManager.unregisterListener(installStateUpdatedListener); }
} else { Log.i("TAG", "InstallStateUpdatedListener: state: " + state.installStatus()); } } };
|