Loading app/src/main/AndroidManifest.xml +2 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,8 @@ <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <application android:allowBackup="true" Loading app/src/main/java/io/eelo/appinstaller/MainActivity.kt +12 −0 Original line number Diff line number Diff line package io.eelo.appinstaller import android.annotation.SuppressLint import android.content.pm.PackageManager import android.os.Bundle import android.support.design.internal.BottomNavigationItemView import android.support.design.internal.BottomNavigationMenuView import android.support.design.widget.BottomNavigationView import android.support.design.widget.Snackbar import android.support.v4.app.Fragment import android.support.v7.app.AppCompatActivity import android.view.MenuItem Loading @@ -16,6 +18,7 @@ import io.eelo.appinstaller.home.HomeFragment import io.eelo.appinstaller.search.SearchFragment import io.eelo.appinstaller.settings.SettingsFragment import io.eelo.appinstaller.updates.UpdatesFragment import io.eelo.appinstaller.utils.Constants import io.eelo.appinstaller.utils.Constants.CURRENTLY_SELECTED_FRAGMENT_KEY import kotlinx.android.synthetic.main.activity_main.* Loading Loading @@ -119,6 +122,15 @@ class MainActivity : AppCompatActivity(), BottomNavigationView.OnNavigationItemS } } override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) { if (requestCode == Constants.STORAGE_PERMISSION_REQUEST_CODE && grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_DENIED) { Snackbar.make(container, R.string.error_storage_permission_denied, Snackbar.LENGTH_LONG).show() } } override fun onSaveInstanceState(outState: Bundle?) { super.onSaveInstanceState(outState) outState?.putInt(CURRENTLY_SELECTED_FRAGMENT_KEY, currentFragmentId) Loading app/src/main/java/io/eelo/appinstaller/application/ApplicationActivity.kt +14 −4 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ package io.eelo.appinstaller.application import android.annotation.SuppressLint import android.content.Intent import android.content.pm.PackageManager import android.graphics.Bitmap import android.os.Bundle import android.os.CountDownTimer Loading @@ -16,16 +17,14 @@ import android.view.MenuItem import android.view.View import android.widget.* import io.eelo.appinstaller.R import io.eelo.appinstaller.application.model.Application import io.eelo.appinstaller.application.model.ApplicationStateListener import io.eelo.appinstaller.application.model.Downloader import io.eelo.appinstaller.application.model.State import io.eelo.appinstaller.application.model.* import io.eelo.appinstaller.application.model.data.FullData import io.eelo.appinstaller.applicationmanager.ApplicationManager import io.eelo.appinstaller.applicationmanager.ApplicationManagerServiceConnection import io.eelo.appinstaller.applicationmanager.ApplicationManagerServiceConnectionCallback import io.eelo.appinstaller.utils.Common import io.eelo.appinstaller.utils.Common.toMiB import io.eelo.appinstaller.utils.Constants import io.eelo.appinstaller.utils.Constants.APPLICATION_DESCRIPTION_KEY import io.eelo.appinstaller.utils.Constants.APPLICATION_PACKAGE_NAME_KEY import io.eelo.appinstaller.utils.Constants.SELECTED_APPLICATION_SCREENSHOT_KEY Loading Loading @@ -519,6 +518,17 @@ class ApplicationActivity : AppCompatActivity(), ApplicationStateListener, } } override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) { if (requestCode == Constants.STORAGE_PERMISSION_REQUEST_CODE) { if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) { application.buttonClicked(this) } else if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_DENIED) { Snackbar.make(container, R.string.error_storage_permission_denied, Snackbar.LENGTH_LONG).show() } } } override fun onResume() { super.onResume() if (::application.isInitialized) { Loading app/src/main/java/io/eelo/appinstaller/application/ApplicationViewHolder.kt +2 −5 Original line number Diff line number Diff line Loading @@ -7,10 +7,7 @@ import android.support.v7.widget.RecyclerView import android.view.View import android.widget.* import io.eelo.appinstaller.R import io.eelo.appinstaller.application.model.Application import io.eelo.appinstaller.application.model.ApplicationStateListener import io.eelo.appinstaller.application.model.Downloader import io.eelo.appinstaller.application.model.State import io.eelo.appinstaller.application.model.* import io.eelo.appinstaller.application.viewmodel.ApplicationViewModel import io.eelo.appinstaller.utils.Common import io.eelo.appinstaller.utils.Common.toMiB Loading Loading @@ -88,7 +85,7 @@ class ApplicationViewHolder(private val activity: Activity, private val view: Vi @SuppressLint("SetTextI18n") override fun downloading(downloader: Downloader) { downloader.addListener { count, total -> installButton.text = "${toMiB(count)}/${toMiB(total)} MiB" installButton.text = ((toMiB(count) / toMiB(total)) * 100).toInt().toString() + "%" } } Loading app/src/main/java/io/eelo/appinstaller/application/SmallApplicationViewHolder.kt +2 −5 Original line number Diff line number Diff line Loading @@ -9,10 +9,7 @@ import android.widget.Button import android.widget.ImageView import android.widget.TextView import io.eelo.appinstaller.R import io.eelo.appinstaller.application.model.Application import io.eelo.appinstaller.application.model.ApplicationStateListener import io.eelo.appinstaller.application.model.Downloader import io.eelo.appinstaller.application.model.State import io.eelo.appinstaller.application.model.* import io.eelo.appinstaller.application.viewmodel.ApplicationViewModel import io.eelo.appinstaller.utils.Common import io.eelo.appinstaller.utils.Common.toMiB Loading Loading @@ -74,7 +71,7 @@ class SmallApplicationViewHolder(private val activity: Activity, private val vie @SuppressLint("SetTextI18n") override fun downloading(downloader: Downloader) { downloader.addListener { count, total -> installButton.text = "${toMiB(count)}/${toMiB(total)} MiB" installButton.text = ((toMiB(count) / toMiB(total)) * 100).toInt().toString() + "%" } } Loading Loading
app/src/main/AndroidManifest.xml +2 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,8 @@ <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <application android:allowBackup="true" Loading
app/src/main/java/io/eelo/appinstaller/MainActivity.kt +12 −0 Original line number Diff line number Diff line package io.eelo.appinstaller import android.annotation.SuppressLint import android.content.pm.PackageManager import android.os.Bundle import android.support.design.internal.BottomNavigationItemView import android.support.design.internal.BottomNavigationMenuView import android.support.design.widget.BottomNavigationView import android.support.design.widget.Snackbar import android.support.v4.app.Fragment import android.support.v7.app.AppCompatActivity import android.view.MenuItem Loading @@ -16,6 +18,7 @@ import io.eelo.appinstaller.home.HomeFragment import io.eelo.appinstaller.search.SearchFragment import io.eelo.appinstaller.settings.SettingsFragment import io.eelo.appinstaller.updates.UpdatesFragment import io.eelo.appinstaller.utils.Constants import io.eelo.appinstaller.utils.Constants.CURRENTLY_SELECTED_FRAGMENT_KEY import kotlinx.android.synthetic.main.activity_main.* Loading Loading @@ -119,6 +122,15 @@ class MainActivity : AppCompatActivity(), BottomNavigationView.OnNavigationItemS } } override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) { if (requestCode == Constants.STORAGE_PERMISSION_REQUEST_CODE && grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_DENIED) { Snackbar.make(container, R.string.error_storage_permission_denied, Snackbar.LENGTH_LONG).show() } } override fun onSaveInstanceState(outState: Bundle?) { super.onSaveInstanceState(outState) outState?.putInt(CURRENTLY_SELECTED_FRAGMENT_KEY, currentFragmentId) Loading
app/src/main/java/io/eelo/appinstaller/application/ApplicationActivity.kt +14 −4 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ package io.eelo.appinstaller.application import android.annotation.SuppressLint import android.content.Intent import android.content.pm.PackageManager import android.graphics.Bitmap import android.os.Bundle import android.os.CountDownTimer Loading @@ -16,16 +17,14 @@ import android.view.MenuItem import android.view.View import android.widget.* import io.eelo.appinstaller.R import io.eelo.appinstaller.application.model.Application import io.eelo.appinstaller.application.model.ApplicationStateListener import io.eelo.appinstaller.application.model.Downloader import io.eelo.appinstaller.application.model.State import io.eelo.appinstaller.application.model.* import io.eelo.appinstaller.application.model.data.FullData import io.eelo.appinstaller.applicationmanager.ApplicationManager import io.eelo.appinstaller.applicationmanager.ApplicationManagerServiceConnection import io.eelo.appinstaller.applicationmanager.ApplicationManagerServiceConnectionCallback import io.eelo.appinstaller.utils.Common import io.eelo.appinstaller.utils.Common.toMiB import io.eelo.appinstaller.utils.Constants import io.eelo.appinstaller.utils.Constants.APPLICATION_DESCRIPTION_KEY import io.eelo.appinstaller.utils.Constants.APPLICATION_PACKAGE_NAME_KEY import io.eelo.appinstaller.utils.Constants.SELECTED_APPLICATION_SCREENSHOT_KEY Loading Loading @@ -519,6 +518,17 @@ class ApplicationActivity : AppCompatActivity(), ApplicationStateListener, } } override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) { if (requestCode == Constants.STORAGE_PERMISSION_REQUEST_CODE) { if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) { application.buttonClicked(this) } else if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_DENIED) { Snackbar.make(container, R.string.error_storage_permission_denied, Snackbar.LENGTH_LONG).show() } } } override fun onResume() { super.onResume() if (::application.isInitialized) { Loading
app/src/main/java/io/eelo/appinstaller/application/ApplicationViewHolder.kt +2 −5 Original line number Diff line number Diff line Loading @@ -7,10 +7,7 @@ import android.support.v7.widget.RecyclerView import android.view.View import android.widget.* import io.eelo.appinstaller.R import io.eelo.appinstaller.application.model.Application import io.eelo.appinstaller.application.model.ApplicationStateListener import io.eelo.appinstaller.application.model.Downloader import io.eelo.appinstaller.application.model.State import io.eelo.appinstaller.application.model.* import io.eelo.appinstaller.application.viewmodel.ApplicationViewModel import io.eelo.appinstaller.utils.Common import io.eelo.appinstaller.utils.Common.toMiB Loading Loading @@ -88,7 +85,7 @@ class ApplicationViewHolder(private val activity: Activity, private val view: Vi @SuppressLint("SetTextI18n") override fun downloading(downloader: Downloader) { downloader.addListener { count, total -> installButton.text = "${toMiB(count)}/${toMiB(total)} MiB" installButton.text = ((toMiB(count) / toMiB(total)) * 100).toInt().toString() + "%" } } Loading
app/src/main/java/io/eelo/appinstaller/application/SmallApplicationViewHolder.kt +2 −5 Original line number Diff line number Diff line Loading @@ -9,10 +9,7 @@ import android.widget.Button import android.widget.ImageView import android.widget.TextView import io.eelo.appinstaller.R import io.eelo.appinstaller.application.model.Application import io.eelo.appinstaller.application.model.ApplicationStateListener import io.eelo.appinstaller.application.model.Downloader import io.eelo.appinstaller.application.model.State import io.eelo.appinstaller.application.model.* import io.eelo.appinstaller.application.viewmodel.ApplicationViewModel import io.eelo.appinstaller.utils.Common import io.eelo.appinstaller.utils.Common.toMiB Loading Loading @@ -74,7 +71,7 @@ class SmallApplicationViewHolder(private val activity: Activity, private val vie @SuppressLint("SetTextI18n") override fun downloading(downloader: Downloader) { downloader.addListener { count, total -> installButton.text = "${toMiB(count)}/${toMiB(total)} MiB" installButton.text = ((toMiB(count) / toMiB(total)) * 100).toInt().toString() + "%" } } Loading