45 lines
1.9 KiB
Java
Raw Normal View History

2017-06-07 02:19:23 +08:00
package com.topjohnwu.magisk.receivers;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.support.v4.content.FileProvider;
2017-11-06 04:41:23 +08:00
import com.topjohnwu.magisk.utils.Const;
2017-06-07 02:19:23 +08:00
import com.topjohnwu.magisk.utils.Utils;
import java.io.File;
public class ManagerUpdate extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Utils.dlAndReceive(
2017-06-08 22:35:30 +08:00
context,
2017-06-07 02:19:23 +08:00
new DownloadReceiver() {
@Override
2017-07-18 23:18:57 +08:00
public void onDownloadDone(Uri uri) {
Utils.dumpPrefs();
2017-06-07 02:19:23 +08:00
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
Intent install = new Intent(Intent.ACTION_INSTALL_PACKAGE);
install.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
install.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
2017-07-15 01:22:00 +08:00
Uri content = FileProvider.getUriForFile(context,
2017-10-21 22:54:47 +08:00
context.getPackageName() + ".provider", new File(uri.getPath()));
2017-06-07 02:19:23 +08:00
install.setData(content);
2017-07-15 01:22:00 +08:00
context.startActivity(install);
2017-06-07 02:19:23 +08:00
} else {
Intent install = new Intent(Intent.ACTION_VIEW);
install.setDataAndType(uri, "application/vnd.android.package-archive");
install.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
2017-07-15 01:22:00 +08:00
context.startActivity(install);
2017-06-07 02:19:23 +08:00
}
}
},
2017-11-06 04:41:23 +08:00
intent.getStringExtra(Const.Key.INTENT_SET_LINK),
2017-06-07 02:19:23 +08:00
Utils.getLegalFilename("MagiskManager-v" +
2017-11-06 04:41:23 +08:00
intent.getStringExtra(Const.Key.INTENT_SET_VERSION) + ".apk"));
2017-06-07 02:19:23 +08:00
}
}