Skip to content

Commit

Permalink
actions: reactivate REQUEST_INSTALL_PACKAGES permission (fixes open…
Browse files Browse the repository at this point in the history
  • Loading branch information
Okuro3499 and dogi authored Dec 4, 2023
1 parent 186a750 commit 69c83db
Show file tree
Hide file tree
Showing 5 changed files with 55 additions and 53 deletions.
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ android {
applicationId "org.ole.planet.myplanet"
minSdkVersion 21
targetSdkVersion 34
versionCode 1180
versionName "0.11.80"
versionCode 1181
versionName "0.11.81"
ndkVersion '21.3.6528147'
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
<!-- <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>-->
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>

<application
android:name=".MainApplication"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
package org.ole.planet.myplanet.base

import android.app.Activity
import android.content.Context
import android.content.DialogInterface
import android.content.Intent
import android.content.SharedPreferences
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.provider.Settings
import android.text.TextUtils
import android.util.Log
import android.view.LayoutInflater
Expand All @@ -16,27 +19,23 @@ import android.widget.ArrayAdapter
import android.widget.Button
import android.widget.TextView
import android.widget.Toast
import androidx.annotation.RequiresApi
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.widget.AppCompatRatingBar
import androidx.core.content.FileProvider
import com.google.gson.JsonObject
import io.realm.RealmResults
import org.ole.planet.myplanet.MainApplication
import org.ole.planet.myplanet.R
import org.ole.planet.myplanet.base.PermissionActivity.hasInstallPermission
import org.ole.planet.myplanet.callback.OnHomeItemClickListener
import org.ole.planet.myplanet.callback.OnRatingChangeListener
import org.ole.planet.myplanet.model.RealmMyLibrary
import org.ole.planet.myplanet.service.UserProfileDbHandler
import org.ole.planet.myplanet.service.UserProfileDbHandler.KEY_RESOURCE_DOWNLOAD
import org.ole.planet.myplanet.service.UserProfileDbHandler.KEY_RESOURCE_OPEN
import org.ole.planet.myplanet.ui.course.AdapterCourses
import org.ole.planet.myplanet.ui.viewer.AudioPlayerActivity
import org.ole.planet.myplanet.ui.viewer.CSVViewerActivity
import org.ole.planet.myplanet.ui.viewer.ImageViewerActivity
import org.ole.planet.myplanet.ui.viewer.MarkdownViewerActivity
import org.ole.planet.myplanet.ui.viewer.PDFReaderActivity
import org.ole.planet.myplanet.ui.viewer.TextFileViewerActivity
import org.ole.planet.myplanet.ui.viewer.VideoPlayerActivity
import org.ole.planet.myplanet.ui.viewer.*
import org.ole.planet.myplanet.utilities.FileUtils
import org.ole.planet.myplanet.utilities.Utilities
import java.io.File
Expand All @@ -46,9 +45,9 @@ abstract class BaseContainerFragment : BaseResourceFragment() {
var rating: TextView? = null
var ratingBar: AppCompatRatingBar? = null
lateinit var profileDbHandler: UserProfileDbHandler
// private val INSTALL_UNKNOWN_SOURCES_REQUEST_CODE = 112
// var hasInstallPermission = hasInstallPermission(MainApplication.context)
// private var currentLibrary: RealmMyLibrary? = null
private val INSTALL_UNKNOWN_SOURCES_REQUEST_CODE = 112
var hasInstallPermission = hasInstallPermission(MainApplication.context)
private var currentLibrary: RealmMyLibrary? = null

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Expand Down Expand Up @@ -146,6 +145,7 @@ abstract class BaseContainerFragment : BaseResourceFragment() {
}
}

@RequiresApi(Build.VERSION_CODES.O)
fun checkMoreFileExtensions(extension: String?, items: RealmMyLibrary) {
when (extension) {
"txt" -> openIntent(items, TextFileViewerActivity::class.java)
Expand All @@ -158,8 +158,9 @@ abstract class BaseContainerFragment : BaseResourceFragment() {
}
}

@RequiresApi(Build.VERSION_CODES.O)
private fun installApk(items: RealmMyLibrary) {
// currentLibrary = items
currentLibrary = items
val directory = File(MainApplication.context.getExternalFilesDir(null).toString() + "/ole" + "/" + items.id)
if (!directory.exists()) {
if (!directory.mkdirs()) {
Expand All @@ -183,22 +184,22 @@ abstract class BaseContainerFragment : BaseResourceFragment() {
intent.flags = Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_ACTIVITY_NEW_TASK

if (intent.resolveActivity(requireActivity().packageManager) != null) {
// if (hasInstallPermission(MainApplication.context)) {
if (hasInstallPermission(MainApplication.context)) {
startActivity(intent)
// } else {
// requestInstallPermission()
// }
} else {
requestInstallPermission()
}
} else {
Utilities.toast(activity,"No app to handle the installation")
}
}

// @RequiresApi(Build.VERSION_CODES.O)
// private fun requestInstallPermission() {
// val intent = Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES)
// intent.data = Uri.parse("package:" + MainApplication.context.packageName)
// startActivityForResult(intent, INSTALL_UNKNOWN_SOURCES_REQUEST_CODE)
// }
@RequiresApi(Build.VERSION_CODES.O)
private fun requestInstallPermission() {
val intent = Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES)
intent.data = Uri.parse("package:" + MainApplication.context.packageName)
startActivityForResult(intent, INSTALL_UNKNOWN_SOURCES_REQUEST_CODE)
}

fun openFileType(items: RealmMyLibrary, videotype: String) {
val mimetype = Utilities.getMimeType(items.resourceLocalAddress)
Expand Down Expand Up @@ -298,22 +299,22 @@ abstract class BaseContainerFragment : BaseResourceFragment() {
}
}

// @RequiresApi(Build.VERSION_CODES.O)
// override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
// super.onActivityResult(requestCode, resultCode, data)
// if (requestCode == INSTALL_UNKNOWN_SOURCES_REQUEST_CODE) {
// if (resultCode == Activity.RESULT_OK) {
// if (currentLibrary != null) {
// installApk(currentLibrary!!)
// currentLibrary = null
// }
// } else {
// Utilities.toast(requireActivity(), getString(R.string.permissions_denied))
// }
// }
// }
@RequiresApi(Build.VERSION_CODES.O)
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == INSTALL_UNKNOWN_SOURCES_REQUEST_CODE) {
if (resultCode == Activity.RESULT_OK) {
if (currentLibrary != null) {
installApk(currentLibrary!!)
currentLibrary = null
}
} else {
Utilities.toast(requireActivity(), getString(R.string.permissions_denied))
}
}
}

// open fun handleBackPressed() {
// requireActivity().onBackPressed()
// }
open fun handleBackPressed() {
requireActivity().onBackPressed()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@ public boolean checkPermission(String strPermission) {
return result == PackageManager.PERMISSION_GRANTED;
}

// public static boolean hasInstallPermission(android.content.Context context) {
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// return context.getPackageManager().canRequestPackageInstalls();
// }
// return true;
// }
public static boolean hasInstallPermission(android.content.Context context) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
return context.getPackageManager().canRequestPackageInstalls();
}
return true;
}

public void checkUsagesPermission() {
if (!getUsagesPermission(this)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
import com.mikepenz.materialdrawer.model.interfaces.Nameable;

import org.ole.planet.myplanet.R;
import org.ole.planet.myplanet.base.BaseContainerFragment;
import org.ole.planet.myplanet.callback.OnHomeItemClickListener;
import org.ole.planet.myplanet.databinding.ActivityDashboardBinding;
import org.ole.planet.myplanet.databinding.CustomTabBinding;
Expand Down Expand Up @@ -428,12 +429,12 @@ public void onBackPressed() {
super.onBackPressed();
}

// Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.fragment_container);
// if (fragment instanceof BaseContainerFragment) {
// ((BaseContainerFragment) fragment).handleBackPressed();
// } else {
// super.onBackPressed();
// }
Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.fragment_container);
if (fragment instanceof BaseContainerFragment) {
((BaseContainerFragment) fragment).handleBackPressed();
} else {
super.onBackPressed();
}
}

@Override
Expand Down

0 comments on commit 69c83db

Please sign in to comment.