Skip to content
Extraits de code Groupes Projets
Valider d86bbbc7 rédigé par Tony 'Nitorac' RANINI's avatar Tony 'Nitorac' RANINI :speech_balloon:
Parcourir les fichiers

Fixed crash on Intent package install

parent 8ecc40f1
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -10,7 +10,7 @@ android { ...@@ -10,7 +10,7 @@ android {
minSdkVersion 19 minSdkVersion 19
targetSdkVersion 29 targetSdkVersion 29
versionCode 4 versionCode 4
versionName "1.1.0" versionName "1.1.2"
multiDexEnabled true multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
......
package fr.nitorac.aurionweb.update; package fr.nitorac.aurionweb.update;
import android.app.AlertDialog;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.net.Uri; import android.net.Uri;
import android.os.PowerManager; import android.os.PowerManager;
import android.text.SpannableString;
import android.text.method.LinkMovementMethod;
import android.text.util.Linkify;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
...@@ -120,13 +124,32 @@ public class UpdateManager { ...@@ -120,13 +124,32 @@ public class UpdateManager {
context.getApplicationContext() context.getApplicationContext()
.getPackageName() + ".provider", file); .getPackageName() + ".provider", file);
Intent intent = new Intent(Intent.ACTION_VIEW, apkURI); try{
Intent intent = new Intent(Intent.ACTION_INSTALL_PACKAGE, apkURI);
intent.setDataAndType(apkURI, "application/vnd.android.package-archive"); intent.setDataAndType(apkURI, "application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true); intent.putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true);
dialog.dismiss(); dialog.dismiss();
context.getApplicationContext().startActivity(intent); throw new Exception();
//context.getApplicationContext().startActivity(intent);
}catch (Exception e){
dialog.dismiss();
// Linkify the message
final SpannableString s = new SpannableString("Impossible d'installer l'application, veuillez aller sur " + url + " pour installer la mise à jour"); // msg should have url to enable clicking
Linkify.addLinks(s, Linkify.ALL);
final AlertDialog d = new AlertDialog.Builder(context)
.setPositiveButton(android.R.string.ok, null)
.setIcon(R.drawable.ic_danger)
.setMessage(s)
.create();
d.show();
// Make the textview clickable. Must be called after show()
((TextView)d.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance());
}
} }
wakeLock.release(); wakeLock.release();
} }
...@@ -149,6 +172,7 @@ public class UpdateManager { ...@@ -149,6 +172,7 @@ public class UpdateManager {
Context c = weakContext.get(); Context c = weakContext.get();
StringBuilder changelogs = new StringBuilder(); StringBuilder changelogs = new StringBuilder();
try{
for(JsonElement el : remote.get("changelogs").getAsJsonArray()){ for(JsonElement el : remote.get("changelogs").getAsJsonArray()){
JsonObject obj = el.getAsJsonObject(); JsonObject obj = el.getAsJsonObject();
changelogs.append(obj.get("version").getAsString()).append(" :\n"); changelogs.append(obj.get("version").getAsString()).append(" :\n");
...@@ -172,6 +196,10 @@ public class UpdateManager { ...@@ -172,6 +196,10 @@ public class UpdateManager {
return null; return null;
}); });
dialog.show(); dialog.show();
}catch (Exception e){
e.printStackTrace();
Toast.makeText(weakContext.get(), "Impossible de récupérer les mises à jour (" + e.getLocalizedMessage() + ")", Toast.LENGTH_LONG).show();
}
} }
public static UpdateManager getInstance(){ public static UpdateManager getInstance(){
......
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="#FFFFFF"
android:alpha="0.8">
<path
android:fillColor="@android:color/white"
android:pathData="M1,21h22L12,2 1,21zM13,18h-2v-2h2v2zM13,14h-2v-4h2v4z"/>
</vector>
app/src/main/res/drawable-hdpi/ic_danger.png

308 octets

app/src/main/res/drawable-mdpi/ic_danger.png

234 octets

app/src/main/res/drawable-xhdpi/ic_danger.png

376 octets

app/src/main/res/drawable-xxhdpi/ic_danger.png

566 octets

0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter