Skip to content

Commit

Permalink
Merge pull request #1809 from TeamAmaze/bugfix-1687
Browse files Browse the repository at this point in the history
1687 Fix apk install for android > N
  • Loading branch information
VishalNehra authored and EmmanuelMess committed Jan 23, 2020
1 parent e8846de commit ccab90b
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1156,7 +1156,6 @@ private void updateUsbInformation() {
if(!isInformationUpdated) {
SingletonUsbOtg.getInstance().resetUsbOtgRoot();
drawer.refreshDrawer();
goToMain(null);
}

// Registering intent filter for OTG
Expand Down
26 changes: 15 additions & 11 deletions app/src/main/java/com/amaze/filemanager/utils/files/FileUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,9 @@
import android.util.Log;
import android.view.View;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.core.content.FileProvider;
import androidx.documentfile.provider.DocumentFile;

import com.afollestad.materialdialogs.MaterialDialog;
import com.amaze.filemanager.R;
import com.amaze.filemanager.activities.DatabaseViewerActivity;
Expand Down Expand Up @@ -77,7 +75,7 @@
import com.cloudrail.si.types.CloudMetaData;
import com.googlecode.concurrenttrees.radix.ConcurrentRadixTree;
import com.googlecode.concurrenttrees.radix.node.concrete.voidvalue.VoidValue;

import jcifs.smb.SmbFile;
import net.schmizz.sshj.sftp.RemoteResourceInfo;
import net.schmizz.sshj.sftp.SFTPClient;
import net.schmizz.sshj.sftp.SFTPException;
Expand All @@ -91,8 +89,6 @@
import java.util.LinkedList;
import java.util.concurrent.atomic.AtomicLong;

import jcifs.smb.SmbFile;

/**
* Functions that deal with files
*/
Expand Down Expand Up @@ -395,15 +391,23 @@ public static void installApk(final @NonNull File f, final @NonNull PermissionsA
permissionsActivity.requestInstallApkPermission(() -> installApk(f, permissionsActivity));
}

Intent chooserIntent = new Intent();
chooserIntent.setAction(Intent.ACTION_INSTALL_PACKAGE);
chooserIntent.setData(Uri.fromFile(f));
Intent intent = new Intent(Intent.ACTION_VIEW);
String type = "application/vnd.android.package-archive";

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
Uri downloadedApk = FileProvider.getUriForFile(permissionsActivity.getApplicationContext(), "com.amaze.filemanager", f);
intent.setDataAndType(downloadedApk, type);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
} else {
intent.setDataAndType(Uri.fromFile(f), type);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}

try {
permissionsActivity.startActivity(chooserIntent);
} catch (ActivityNotFoundException e) {
permissionsActivity.startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(permissionsActivity, R.string.error, Toast.LENGTH_SHORT).show();
Toast.makeText(permissionsActivity, R.string.failed_install_apk, Toast.LENGTH_SHORT).show();
}
}

Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -649,5 +649,6 @@
<string name="cancel_recommended">Cancel (Recommended)</string>
<string name="cloud_plugin_google_play_uri" translatable="false">market://details?id=com.filemanager.amazecloud</string>
<string name="cloud_plugin_google_play_web_uri" translatable="false">https://play.google.com/store/apps/details?id=com.filemanager.amazecloud</string>
<string name="failed_install_apk">Failed to install</string>
</resources>

0 comments on commit ccab90b

Please sign in to comment.