Loading app/src/main/java/io/eelo/appinstaller/MainActivity.kt +9 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ import android.content.ComponentName import android.content.Context import android.content.Intent import android.content.ServiceConnection import android.content.pm.PackageManager import android.os.Bundle import android.os.IBinder import android.os.Message Loading @@ -15,6 +16,7 @@ import android.support.design.widget.BottomNavigationView import android.support.v4.app.Fragment import android.support.v7.app.AppCompatActivity import android.view.MenuItem import android.widget.Toast import io.eelo.appinstaller.application.model.InstallManager import io.eelo.appinstaller.application.model.InstallManagerService import io.eelo.appinstaller.categories.CategoriesFragment Loading @@ -22,6 +24,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.utlis.Constants.STORAGE_PERMISSION_REQUEST_CODE import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity(), BottomNavigationView.OnNavigationItemSelectedListener { Loading Loading @@ -130,4 +133,10 @@ class MainActivity : AppCompatActivity(), BottomNavigationView.OnNavigationItemS itemView.setChecked(itemView.itemData.isChecked) } } override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) { if (requestCode == STORAGE_PERMISSION_REQUEST_CODE && grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_DENIED) { Toast.makeText(this, resources.getString(R.string.error_storage_permission_denied), Toast.LENGTH_LONG).show() } } } app/src/main/java/io/eelo/appinstaller/application/ApplicationViewHolder.kt +17 −2 Original line number Diff line number Diff line package io.eelo.appinstaller.application import android.Manifest import android.annotation.SuppressLint import android.app.Activity import android.content.pm.PackageManager import android.os.AsyncTask import android.support.v7.widget.RecyclerView import android.view.View Loading @@ -15,11 +18,12 @@ import io.eelo.appinstaller.application.model.Downloader import io.eelo.appinstaller.application.model.State import io.eelo.appinstaller.application.viewmodel.ApplicationViewModel import io.eelo.appinstaller.common.ProxyBitmap import io.eelo.appinstaller.utlis.Constants.STORAGE_PERMISSION_REQUEST_CODE import kotlinx.android.synthetic.main.application_list_item.view.* import java.text.DecimalFormat import kotlin.math.roundToInt class ApplicationViewHolder(private val view: View) : RecyclerView.ViewHolder(view), ApplicationStateListener { class ApplicationViewHolder(private val activity: Activity, private val view: View) : RecyclerView.ViewHolder(view), ApplicationStateListener { private val icon: ImageView = view.app_icon private val title: TextView = view.app_title Loading @@ -37,7 +41,18 @@ class ApplicationViewHolder(private val view: View) : RecyclerView.ViewHolder(vi applicationViewModel.onApplicationClick(view.context, application!!) } } installButton.setOnClickListener { application?.buttonClicked(view.context) } installButton.setOnClickListener { if (android.os.Build.VERSION.SDK_INT >= 23) { if (activity.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { activity.requestPermissions(arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), STORAGE_PERMISSION_REQUEST_CODE) } else { application?.buttonClicked(view.context) } } else { application?.buttonClicked(view.context) } } } fun createApplicationView(app: Application) { Loading app/src/main/java/io/eelo/appinstaller/application/SmallApplicationViewHolder.kt +17 −2 Original line number Diff line number Diff line package io.eelo.appinstaller.application import android.Manifest import android.annotation.SuppressLint import android.app.Activity import android.content.pm.PackageManager import android.os.AsyncTask import android.support.v7.widget.RecyclerView import android.view.View Loading @@ -14,10 +17,11 @@ import io.eelo.appinstaller.application.model.Downloader import io.eelo.appinstaller.application.model.State import io.eelo.appinstaller.application.viewmodel.ApplicationViewModel import io.eelo.appinstaller.common.ProxyBitmap import io.eelo.appinstaller.utlis.Constants import kotlinx.android.synthetic.main.application_list_item.view.* import kotlin.math.roundToInt class SmallApplicationViewHolder(private val view: View) : RecyclerView.ViewHolder(view), ApplicationStateListener { class SmallApplicationViewHolder(private val activity: Activity, private val view: View) : RecyclerView.ViewHolder(view), ApplicationStateListener { private val icon: ImageView = view.app_icon private val title: TextView = view.app_title Loading @@ -33,7 +37,18 @@ class SmallApplicationViewHolder(private val view: View) : RecyclerView.ViewHold applicationViewModel.onApplicationClick(view.context, application!!) } } installButton.setOnClickListener { application?.buttonClicked(view.context) } installButton.setOnClickListener { if (android.os.Build.VERSION.SDK_INT >= 23) { if (activity.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { activity.requestPermissions(arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), Constants.STORAGE_PERMISSION_REQUEST_CODE) } else { application?.buttonClicked(view.context) } } else { application?.buttonClicked(view.context) } } } fun createApplicationView(app: Application) { Loading app/src/main/java/io/eelo/appinstaller/categories/CategoryActivity.kt +1 −1 Original line number Diff line number Diff line Loading @@ -49,7 +49,7 @@ class CategoryActivity : AppCompatActivity() { // Initialise recycler view recyclerView.setHasFixedSize(true) recyclerView.layoutManager = LinearLayoutManager(this) recyclerView.adapter = ApplicationListAdapter(applicationList) recyclerView.adapter = ApplicationListAdapter(this, applicationList) // Bind to the list of applications in this activity's category categoriesViewModel.getApplicationsInCategory().observe(this, Observer { Loading app/src/main/java/io/eelo/appinstaller/common/ApplicationListAdapter.kt +3 −2 Original line number Diff line number Diff line package io.eelo.appinstaller.common import android.app.Activity import android.support.v7.widget.RecyclerView import android.view.LayoutInflater import android.view.ViewGroup Loading @@ -7,11 +8,11 @@ import io.eelo.appinstaller.R import io.eelo.appinstaller.application.ApplicationViewHolder import io.eelo.appinstaller.application.model.Application class ApplicationListAdapter(private val applicationList: List<Application>) : RecyclerView.Adapter<ApplicationViewHolder>() { class ApplicationListAdapter(private val activity: Activity, private val applicationList: List<Application>) : RecyclerView.Adapter<ApplicationViewHolder>() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ApplicationViewHolder { val listItemContainer = LayoutInflater.from(parent.context).inflate(R.layout.application_list_item, parent, false) return ApplicationViewHolder(listItemContainer) return ApplicationViewHolder(activity, listItemContainer) } override fun onBindViewHolder(holder: ApplicationViewHolder, position: Int) { Loading Loading
app/src/main/java/io/eelo/appinstaller/MainActivity.kt +9 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ import android.content.ComponentName import android.content.Context import android.content.Intent import android.content.ServiceConnection import android.content.pm.PackageManager import android.os.Bundle import android.os.IBinder import android.os.Message Loading @@ -15,6 +16,7 @@ import android.support.design.widget.BottomNavigationView import android.support.v4.app.Fragment import android.support.v7.app.AppCompatActivity import android.view.MenuItem import android.widget.Toast import io.eelo.appinstaller.application.model.InstallManager import io.eelo.appinstaller.application.model.InstallManagerService import io.eelo.appinstaller.categories.CategoriesFragment Loading @@ -22,6 +24,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.utlis.Constants.STORAGE_PERMISSION_REQUEST_CODE import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity(), BottomNavigationView.OnNavigationItemSelectedListener { Loading Loading @@ -130,4 +133,10 @@ class MainActivity : AppCompatActivity(), BottomNavigationView.OnNavigationItemS itemView.setChecked(itemView.itemData.isChecked) } } override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) { if (requestCode == STORAGE_PERMISSION_REQUEST_CODE && grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_DENIED) { Toast.makeText(this, resources.getString(R.string.error_storage_permission_denied), Toast.LENGTH_LONG).show() } } }
app/src/main/java/io/eelo/appinstaller/application/ApplicationViewHolder.kt +17 −2 Original line number Diff line number Diff line package io.eelo.appinstaller.application import android.Manifest import android.annotation.SuppressLint import android.app.Activity import android.content.pm.PackageManager import android.os.AsyncTask import android.support.v7.widget.RecyclerView import android.view.View Loading @@ -15,11 +18,12 @@ import io.eelo.appinstaller.application.model.Downloader import io.eelo.appinstaller.application.model.State import io.eelo.appinstaller.application.viewmodel.ApplicationViewModel import io.eelo.appinstaller.common.ProxyBitmap import io.eelo.appinstaller.utlis.Constants.STORAGE_PERMISSION_REQUEST_CODE import kotlinx.android.synthetic.main.application_list_item.view.* import java.text.DecimalFormat import kotlin.math.roundToInt class ApplicationViewHolder(private val view: View) : RecyclerView.ViewHolder(view), ApplicationStateListener { class ApplicationViewHolder(private val activity: Activity, private val view: View) : RecyclerView.ViewHolder(view), ApplicationStateListener { private val icon: ImageView = view.app_icon private val title: TextView = view.app_title Loading @@ -37,7 +41,18 @@ class ApplicationViewHolder(private val view: View) : RecyclerView.ViewHolder(vi applicationViewModel.onApplicationClick(view.context, application!!) } } installButton.setOnClickListener { application?.buttonClicked(view.context) } installButton.setOnClickListener { if (android.os.Build.VERSION.SDK_INT >= 23) { if (activity.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { activity.requestPermissions(arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), STORAGE_PERMISSION_REQUEST_CODE) } else { application?.buttonClicked(view.context) } } else { application?.buttonClicked(view.context) } } } fun createApplicationView(app: Application) { Loading
app/src/main/java/io/eelo/appinstaller/application/SmallApplicationViewHolder.kt +17 −2 Original line number Diff line number Diff line package io.eelo.appinstaller.application import android.Manifest import android.annotation.SuppressLint import android.app.Activity import android.content.pm.PackageManager import android.os.AsyncTask import android.support.v7.widget.RecyclerView import android.view.View Loading @@ -14,10 +17,11 @@ import io.eelo.appinstaller.application.model.Downloader import io.eelo.appinstaller.application.model.State import io.eelo.appinstaller.application.viewmodel.ApplicationViewModel import io.eelo.appinstaller.common.ProxyBitmap import io.eelo.appinstaller.utlis.Constants import kotlinx.android.synthetic.main.application_list_item.view.* import kotlin.math.roundToInt class SmallApplicationViewHolder(private val view: View) : RecyclerView.ViewHolder(view), ApplicationStateListener { class SmallApplicationViewHolder(private val activity: Activity, private val view: View) : RecyclerView.ViewHolder(view), ApplicationStateListener { private val icon: ImageView = view.app_icon private val title: TextView = view.app_title Loading @@ -33,7 +37,18 @@ class SmallApplicationViewHolder(private val view: View) : RecyclerView.ViewHold applicationViewModel.onApplicationClick(view.context, application!!) } } installButton.setOnClickListener { application?.buttonClicked(view.context) } installButton.setOnClickListener { if (android.os.Build.VERSION.SDK_INT >= 23) { if (activity.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { activity.requestPermissions(arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), Constants.STORAGE_PERMISSION_REQUEST_CODE) } else { application?.buttonClicked(view.context) } } else { application?.buttonClicked(view.context) } } } fun createApplicationView(app: Application) { Loading
app/src/main/java/io/eelo/appinstaller/categories/CategoryActivity.kt +1 −1 Original line number Diff line number Diff line Loading @@ -49,7 +49,7 @@ class CategoryActivity : AppCompatActivity() { // Initialise recycler view recyclerView.setHasFixedSize(true) recyclerView.layoutManager = LinearLayoutManager(this) recyclerView.adapter = ApplicationListAdapter(applicationList) recyclerView.adapter = ApplicationListAdapter(this, applicationList) // Bind to the list of applications in this activity's category categoriesViewModel.getApplicationsInCategory().observe(this, Observer { Loading
app/src/main/java/io/eelo/appinstaller/common/ApplicationListAdapter.kt +3 −2 Original line number Diff line number Diff line package io.eelo.appinstaller.common import android.app.Activity import android.support.v7.widget.RecyclerView import android.view.LayoutInflater import android.view.ViewGroup Loading @@ -7,11 +8,11 @@ import io.eelo.appinstaller.R import io.eelo.appinstaller.application.ApplicationViewHolder import io.eelo.appinstaller.application.model.Application class ApplicationListAdapter(private val applicationList: List<Application>) : RecyclerView.Adapter<ApplicationViewHolder>() { class ApplicationListAdapter(private val activity: Activity, private val applicationList: List<Application>) : RecyclerView.Adapter<ApplicationViewHolder>() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ApplicationViewHolder { val listItemContainer = LayoutInflater.from(parent.context).inflate(R.layout.application_list_item, parent, false) return ApplicationViewHolder(listItemContainer) return ApplicationViewHolder(activity, listItemContainer) } override fun onBindViewHolder(holder: ApplicationViewHolder, position: Int) { Loading