diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a594b2ab7ea9ffac50136111fca307177c8bfeba..5121f1d53d31905226f6e9b2372936773bb9050b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -68,6 +68,13 @@
android:launchMode="singleInstance"
android:theme="@style/AppTheme1"
android:windowSoftInputMode="adjustResize" />
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/foundation/e/apps/MicrogUninstallListener.kt b/app/src/main/java/foundation/e/apps/MicrogUninstallListener.kt
new file mode 100644
index 0000000000000000000000000000000000000000..09d0e475e2603a2731547a238e591386bb8da749
--- /dev/null
+++ b/app/src/main/java/foundation/e/apps/MicrogUninstallListener.kt
@@ -0,0 +1,13 @@
+package foundation.e.apps
+
+import android.content.BroadcastReceiver
+import android.content.Context
+import android.content.Intent
+import android.util.Log
+import foundation.e.apps.utils.PreferenceStorage
+
+class MicrogUninstallListener : BroadcastReceiver() {
+ override fun onReceive(context: Context, intent: Intent) {
+ PreferenceStorage(context).save(context.getString(R.string.prefs_microg_vrsn_installed), false)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/foundation/e/apps/application/ApplicationActivity.kt b/app/src/main/java/foundation/e/apps/application/ApplicationActivity.kt
index f1c94cacde0be2630c3611eeef884bfff8469102..46709441ca0223af9b41a93504b8dfc3dd2ba87c 100644
--- a/app/src/main/java/foundation/e/apps/application/ApplicationActivity.kt
+++ b/app/src/main/java/foundation/e/apps/application/ApplicationActivity.kt
@@ -32,7 +32,6 @@ import android.text.SpannableStringBuilder
import android.text.method.LinkMovementMethod
import android.text.style.ForegroundColorSpan
import android.util.DisplayMetrics
-import android.util.Log
import android.util.TypedValue
import android.view.Menu
import android.view.MenuItem
@@ -40,14 +39,11 @@ import android.view.View
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.TextView
-import androidx.annotation.ColorInt
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
-import androidx.appcompat.view.ContextThemeWrapper
import androidx.appcompat.widget.Toolbar
import com.google.android.material.snackbar.Snackbar
import foundation.e.apps.MainActivity.Companion.sharedPreferences
-import foundation.e.apps.pwa.PwaInstaller
import foundation.e.apps.R
import foundation.e.apps.application.model.Application
import foundation.e.apps.application.model.ApplicationStateListener
@@ -61,6 +57,7 @@ import foundation.e.apps.applicationmanager.ApplicationManager
import foundation.e.apps.applicationmanager.ApplicationManagerServiceConnection
import foundation.e.apps.applicationmanager.ApplicationManagerServiceConnectionCallback
import foundation.e.apps.categories.category.CategoryActivity
+import foundation.e.apps.pwa.PwaInstaller
import foundation.e.apps.utils.Common
import foundation.e.apps.utils.Common.toMiB
import foundation.e.apps.utils.Constants
@@ -79,9 +76,7 @@ class ApplicationActivity :
ApplicationManagerServiceConnectionCallback,
Downloader.DownloadProgressCallback,
BasicData.IconLoaderCallback,
- PwasBasicData.IconLoaderCallback{
-
-
+ PwasBasicData.IconLoaderCallback {
private lateinit var applicationPackageName: String
@@ -98,15 +93,15 @@ class ApplicationActivity :
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_application)
- good_border.visibility=View.GONE
- neutral_border.visibility=View.GONE
+ good_border.visibility = View.GONE
+ neutral_border.visibility = View.GONE
val toolbar = findViewById(R.id.toolbar)
setSupportActionBar(toolbar)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
supportActionBar?.setDisplayShowTitleEnabled(false)
- sharedPreferences = this.getSharedPreferences(sharedPrefFile,Context.MODE_PRIVATE)
+ sharedPreferences = this.getSharedPreferences(sharedPrefFile, Context.MODE_PRIVATE)
pwa_sympol.visibility = View.GONE
@@ -213,9 +208,9 @@ class ApplicationActivity :
@SuppressLint("ResourceAsColor")
private fun textColorChange(text: String): SpannableStringBuilder {
- val builder = SpannableStringBuilder();
- val redSpannable= SpannableString(text);
- redSpannable.setSpan( ForegroundColorSpan(R.color.colorDarkGray), 0, text.length, 0);
+ val builder = SpannableStringBuilder();
+ val redSpannable = SpannableString(text);
+ redSpannable.setSpan(ForegroundColorSpan(R.color.colorDarkGray), 0, text.length, 0);
builder.append(redSpannable);
return builder
}
@@ -276,7 +271,7 @@ class ApplicationActivity :
}
// Set the app rating
- val builder=textColorChange(getText(R.string.not_available).toString())
+ val builder = textColorChange(getText(R.string.not_available).toString())
if (basicData.ratings!!.rating != -1f) {
app_rating.text = basicData.ratings.rating.toString() + "/5"
} else {
@@ -321,7 +316,7 @@ class ApplicationActivity :
}
// Set the app privacy rating
- val builder=textColorChange(getText(R.string.not_available).toString())
+ val builder = textColorChange(getText(R.string.not_available).toString())
if (fullData.getLastVersion()!!.privacyRating != null &&
fullData.getLastVersion()!!.privacyRating != -1) {
@@ -360,6 +355,12 @@ class ApplicationActivity :
} else {
app_version.text = getString(R.string.not_available)
}
+ // Set app package name.
+ if (fullData.packageName.isNotEmpty()) {
+ app_package_name.text = fullData.packageName
+ } else {
+ app_package_name.text = getString(R.string.not_available)
+ }
// Set app update timestamp
if (fullData.getLastVersion()!!.createdOn.isNotEmpty()) {
@@ -380,7 +381,7 @@ class ApplicationActivity :
app_size.visibility = View.GONE
// Set app privacy rating
- val builder=textColorChange(getText(R.string.not_available).toString())
+ val builder = textColorChange(getText(R.string.not_available).toString())
app_privacy_score.text = builder
setPrivacyRatingBorder(-1)
app_privacy_container.setOnClickListener {
@@ -505,7 +506,7 @@ class ApplicationActivity :
application.PwaloadIcon(this)
pwa_sympol.visibility = View.VISIBLE
- Ratings.visibility=View.GONE
+ Ratings.visibility = View.GONE
val pwasBasicData = application.pwabasicdata
@@ -553,14 +554,15 @@ class ApplicationActivity :
// Handle clicks on app permissions
- exodus_info_container.visibility=View.GONE
+ exodus_info_container.visibility = View.GONE
//app_information details
- app_information_title.visibility=View.GONE
- app_version_layout.visibility=View.GONE
- app_updated_on_layout.visibility=View.GONE
- app_requires.visibility= View.GONE
- app_licence_layout.visibility=View.GONE
+ app_information_title.visibility = View.GONE
+ app_version_layout.visibility = View.GONE
+ app_updated_on_layout.visibility = View.GONE
+ app_requires.visibility = View.GONE
+ app_licence_layout.visibility = View.GONE
+ app_package_name_layout.visibility =View.GONE
application.addListener(this)
@@ -610,9 +612,9 @@ class ApplicationActivity :
fun onPwaInstallButtonClick(fullData: PwaFullData) {
- val intent=Intent(this, PwaInstaller::class.java)
- intent.putExtra("NAME",fullData.name)
- intent.putExtra("URL",fullData.url)
+ val intent = Intent(this, PwaInstaller::class.java)
+ intent.putExtra("NAME", fullData.name)
+ intent.putExtra("URL", fullData.url)
this.startActivity(intent)
}
@@ -670,13 +672,13 @@ class ApplicationActivity :
private fun setRatingBorder(rating: Float?) {
when {
rating!! >= 7f -> {
- app_rating.setCompoundDrawablesWithIntrinsicBounds(0,0,R.drawable.ic_cat_green_ellipse,0)
+ app_rating.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_cat_green_ellipse, 0)
}
rating >= 4f -> {
- app_rating.setCompoundDrawablesWithIntrinsicBounds(0,0,R.drawable.ic_yellow_ellipse,0)
+ app_rating.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_yellow_ellipse, 0)
}
else -> {
- app_rating.setCompoundDrawablesWithIntrinsicBounds(0,0,R.drawable.ic_red_ellipse,0)
+ app_rating.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_red_ellipse, 0)
}
}
}
@@ -684,13 +686,13 @@ class ApplicationActivity :
private fun setPrivacyRatingBorder(rating: Int) {
when {
rating >= 7 -> {
- app_privacy_score.setCompoundDrawablesWithIntrinsicBounds(0,0,R.drawable.ic_cat_green_ellipse,0)
+ app_privacy_score.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_cat_green_ellipse, 0)
}
rating >= 4 -> {
- app_privacy_score.setCompoundDrawablesWithIntrinsicBounds(0,0,R.drawable.ic_yellow_ellipse,0)
+ app_privacy_score.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_yellow_ellipse, 0)
}
else -> {
- app_privacy_score.setCompoundDrawablesWithIntrinsicBounds(0,0,R.drawable.ic_red_ellipse,0)
+ app_privacy_score.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_red_ellipse, 0)
}
}
}
@@ -762,6 +764,6 @@ class ApplicationActivity :
}
private fun getAccentColor() {
- accentColorOS=this.resources.getColor(R.color.colorAccent);
+ accentColorOS = this.resources.getColor(R.color.colorAccent);
}
}
diff --git a/app/src/main/java/foundation/e/apps/application/ApplicationViewHolder.kt b/app/src/main/java/foundation/e/apps/application/ApplicationViewHolder.kt
index cdbfba6041fd6cf6d390bd49345885e0cfaf041a..871d5cb055f1c90ad015a136b1882b6d94e99d47 100644
--- a/app/src/main/java/foundation/e/apps/application/ApplicationViewHolder.kt
+++ b/app/src/main/java/foundation/e/apps/application/ApplicationViewHolder.kt
@@ -67,7 +67,7 @@ class ApplicationViewHolder(private val activity: Activity, private val view: Vi
private var application: Application? = null
private val applicationViewModel = ApplicationViewModel()
private var downloader: Downloader? = null
-var accentColorOS=accentColorOS;
+ var accentColorOS = accentColorOS;
init {
pwa_icon.visibility = View.GONE
view.setOnClickListener {
@@ -79,7 +79,7 @@ var accentColorOS=accentColorOS;
installButton.setTextColor(Color.parseColor("#ffffff"))
- if(0!=this.accentColorOS){
+ if (0 != this.accentColorOS) {
installButton.setBackgroundColor(this.accentColorOS)
}
installButton?.setOnClickListener {
@@ -153,16 +153,15 @@ var accentColorOS=accentColorOS;
override fun stateChanged(state: State) {
Execute({}, {
- // installButton.setBackgroundResource(R.drawable.app_install_border_simple)
+ // installButton.setBackgroundResource(R.drawable.app_install_border_simple)
installButton?.text = activity.getString(state.installButtonTextId)
when (state) {
State.NOT_DOWNLOADED -> {
- if(0!=this.accentColorOS){
+ if (0 != this.accentColorOS) {
installButton.setTextColor(this.accentColorOS)
- }
- else{
+ } else {
installButton.setTextColor(Color.parseColor("#0088ED"))
}
@@ -174,10 +173,9 @@ var accentColorOS=accentColorOS;
installButton?.isEnabled =
Common.appHasLaunchActivity(activity, application!!.packageName)
- if(0!=this.accentColorOS){
+ if (0 != this.accentColorOS) {
installButton!!.setBackgroundColor(this.accentColorOS)
- }
- else{
+ } else {
installButton!!.setBackgroundResource(R.drawable.app_install_border)
}
installButton.setTextColor(Color.parseColor("#FAFAFA"))
@@ -187,14 +185,20 @@ var accentColorOS=accentColorOS;
installButton?.isEnabled = false
}
State.NOT_UPDATED -> {
- installButton.setTextColor(Color.parseColor("#FAFAFA"))
- //installButton!!.setBackgroundResource(R.drawable.app_install_border)
- if(0!=this.accentColorOS){
- installButton!!.setBackgroundColor(this.accentColorOS)
- }
- else{
- installButton!!.setBackgroundResource(R.drawable.app_install_border)
+ if (application?.packageName == Constants.MICROG_PACKAGE) {
+ installButton.setBackgroundResource(R.drawable.app_install_border_simple)
+ installButton.text = "Install"
+ installButton.setTextColor(this.accentColorOS)
+ } else {
+ installButton.setTextColor(Color.parseColor("#FAFAFA"))
+ //installButton!!.setBackgroundResource(R.drawable.app_install_border)
+ if (0 != this.accentColorOS) {
+ installButton!!.setBackgroundColor(this.accentColorOS)
+ } else {
+ installButton!!.setBackgroundResource(R.drawable.app_install_border)
+ }
}
+
installButton?.isEnabled = true
}
else -> {
diff --git a/app/src/main/java/foundation/e/apps/application/model/Installer.kt b/app/src/main/java/foundation/e/apps/application/model/Installer.kt
index a0952f3f6a86fc09ef6b7078ef061e29adb5dc6e..897f2b50baaf3e9aec53cd9d014100965afacb6b 100644
--- a/app/src/main/java/foundation/e/apps/application/model/Installer.kt
+++ b/app/src/main/java/foundation/e/apps/application/model/Installer.kt
@@ -134,24 +134,22 @@ class Installer(private val packageName: String,
addAction(Intent.ACTION_PACKAGE_ADDED)
addDataScheme("package")
})
- Log.i(TAG, "Registered new broadcast receiver")
}
private var receiver = object : BroadcastReceiver() {
- override fun onReceive(p0: Context, p1: Intent) {
- if (p1.action == Intent.ACTION_PACKAGE_ADDED &&
- (p1.data.encodedSchemeSpecificPart == packageName)) {
+ override fun onReceive(context: Context, intent: Intent) {
+ if (intent.action == Intent.ACTION_PACKAGE_ADDED &&
+ (intent.data.encodedSchemeSpecificPart == packageName)) {
Log.i(TAG, "Broadcast received")
var path = apk.absolutePath.split("Download")
//delete all APK file after install
deleteFileOrDir(path[0] + "Download");
- callback.onInstallationComplete(p0)
+ callback.onInstallationComplete(context)
if (packageName == Constants.MICROG_PACKAGE) {
- PreferenceStorage(p0).save(p0.getString(R.string.prefs_microg_vrsn_installed), true)
+ PreferenceStorage(context).save(context.getString(R.string.prefs_microg_vrsn_installed), true)
}
-
}
}
}
diff --git a/app/src/main/java/foundation/e/apps/categories/ApplicationsFragment.kt b/app/src/main/java/foundation/e/apps/categories/ApplicationsFragment.kt
index fc2e8bd6d7fc522b612a84459aca5cc9956497ae..f351e0ffa43ac1d289ef8f9653e0aff076b8c218 100644
--- a/app/src/main/java/foundation/e/apps/categories/ApplicationsFragment.kt
+++ b/app/src/main/java/foundation/e/apps/categories/ApplicationsFragment.kt
@@ -33,17 +33,17 @@ import foundation.e.apps.categories.viewmodel.CategoriesViewModel
import kotlinx.android.synthetic.main.error_layout.view.*
import kotlinx.android.synthetic.main.fragment_application_categories.view.*
-class ApplicationsFragment(color: Int?) : Fragment() {
+class ApplicationsFragment() : Fragment() {
private lateinit var categoriesViewModel: CategoriesViewModel
- val color = color;
+ var color:Int = 0;
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
categoriesViewModel = ViewModelProviders.of(activity!!).get(CategoriesViewModel::class.java)
val view = inflater.inflate(R.layout.fragment_application_categories, container, false)
view.categories_list.layoutManager = LinearLayoutManager(context)
-
+ color = arguments!!.getInt("color",0)
view.categories_list.visibility = View.GONE
view.progress_bar.visibility = View.VISIBLE
view.error_container.visibility = View.GONE
@@ -61,8 +61,8 @@ class ApplicationsFragment(color: Int?) : Fragment() {
categoriesViewModel.getApplicationsCategories().observe(this, Observer {
if (it!!.isNotEmpty()) {
//Add New Category
- it.add(Category("system_apps"))
-
+ if (!it.any { Category -> Category.id == "system_apps" })
+ it.add(Category("system_apps"))
view.categories_list.adapter = CategoriesListAdapter(it, color)
view.categories_list.visibility = View.VISIBLE
view.progress_bar.visibility = View.GONE
@@ -85,4 +85,13 @@ class ApplicationsFragment(color: Int?) : Fragment() {
}
return view
}
+ companion object{
+ fun newInstance(color:Int?) : ApplicationsFragment{
+ val applicationsFragment = ApplicationsFragment()
+ val bundle = Bundle()
+ bundle.putInt("color",color!!)
+ applicationsFragment.arguments = bundle
+ return applicationsFragment
+ }
+ }
}
diff --git a/app/src/main/java/foundation/e/apps/categories/CategoriesViewPagerAdapter.kt b/app/src/main/java/foundation/e/apps/categories/CategoriesViewPagerAdapter.kt
index 043ad5036f521d40c9dc1e7084e5c0c4b39fb1ab..076c806a6a1a8105c2a37fb41d5fbf540ddd48a5 100644
--- a/app/src/main/java/foundation/e/apps/categories/CategoriesViewPagerAdapter.kt
+++ b/app/src/main/java/foundation/e/apps/categories/CategoriesViewPagerAdapter.kt
@@ -24,8 +24,8 @@ import androidx.fragment.app.FragmentStatePagerAdapter
class CategoriesViewPagerAdapter(fragmentManager: FragmentManager, private val numberOfTabs: Int, color: Int?) :
FragmentStatePagerAdapter(fragmentManager) {
- private val applicationsFragment = ApplicationsFragment(color)
- private val gamesFragment = GamesFragment(color)
+ private val applicationsFragment = ApplicationsFragment.newInstance(color)
+ private val gamesFragment = GamesFragment.newInstance(color)
private val pwasFragment = PwasFragment()
diff --git a/app/src/main/java/foundation/e/apps/categories/GamesFragment.kt b/app/src/main/java/foundation/e/apps/categories/GamesFragment.kt
index 34dc4dd6f4b72149bf8ac208649fc6237a72350f..ab675a803e6f55fdc33c3133f69604cad713ea10 100644
--- a/app/src/main/java/foundation/e/apps/categories/GamesFragment.kt
+++ b/app/src/main/java/foundation/e/apps/categories/GamesFragment.kt
@@ -32,17 +32,17 @@ import foundation.e.apps.categories.viewmodel.CategoriesViewModel
import kotlinx.android.synthetic.main.error_layout.view.*
import kotlinx.android.synthetic.main.fragment_games_categories.view.*
-class GamesFragment(color: Int?) : Fragment() {
+class GamesFragment() : Fragment() {
private lateinit var categoriesViewModel: CategoriesViewModel
- var color=color;
+ var color:Int = 0;
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
categoriesViewModel = ViewModelProviders.of(activity!!).get(CategoriesViewModel::class.java)
val view = inflater.inflate(R.layout.fragment_games_categories, container, false)
view.categories_list.layoutManager = LinearLayoutManager(context)
-
+ color = arguments!!.getInt("color",0)
view.categories_list.visibility = View.GONE
view.progress_bar.visibility = View.VISIBLE
view.error_container.visibility = View.GONE
@@ -81,4 +81,14 @@ class GamesFragment(color: Int?) : Fragment() {
}
return view
}
+
+ companion object{
+ fun newInstance(color:Int?) : GamesFragment{
+ val gamesFragment = GamesFragment()
+ val bundle = Bundle()
+ bundle.putInt("color",color!!)
+ gamesFragment.arguments = bundle
+ return gamesFragment
+ }
+ }
}
diff --git a/app/src/main/java/foundation/e/apps/categories/category/CategoryActivity.kt b/app/src/main/java/foundation/e/apps/categories/category/CategoryActivity.kt
index c7c5141ad468fc161d7c1863c4e358ceb2f8624f..0de57c59af427f624723de8ffc23cf6bb8ae2349 100644
--- a/app/src/main/java/foundation/e/apps/categories/category/CategoryActivity.kt
+++ b/app/src/main/java/foundation/e/apps/categories/category/CategoryActivity.kt
@@ -66,6 +66,7 @@ class CategoryActivity : AppCompatActivity(), ApplicationManagerServiceConnectio
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_category)
+ getAccentColor()
val toolbar = findViewById(R.id.toolbar)
setSupportActionBar(toolbar)
@@ -115,7 +116,7 @@ class CategoryActivity : AppCompatActivity(), ApplicationManagerServiceConnectio
// Initialise recycler view
recyclerView.setHasFixedSize(true)
recyclerView.layoutManager = LinearLayoutManager(this)
- recyclerView.adapter = ApplicationListAdapter(this, applicationList, 0)
+ recyclerView.adapter = ApplicationListAdapter(this, applicationList, accentColorOS)
// Bind to the list of applications in this activity's category
categoryViewModel.getApplications().observe(this, Observer {
diff --git a/app/src/main/java/foundation/e/apps/search/model/SearchElement.kt b/app/src/main/java/foundation/e/apps/search/model/SearchElement.kt
index ebe34b4e28e605c887ddfce54daca015e07e8d0d..9b99a22eb118540cf7fb786f29ba5c01b2811dd5 100644
--- a/app/src/main/java/foundation/e/apps/search/model/SearchElement.kt
+++ b/app/src/main/java/foundation/e/apps/search/model/SearchElement.kt
@@ -19,11 +19,15 @@ package foundation.e.apps.search.model
import android.content.Context
import android.os.AsyncTask
+import foundation.e.apps.R
import foundation.e.apps.api.AllAppsSearchRequest
+import foundation.e.apps.api.GitlabDataRequest
import foundation.e.apps.application.model.Application
+import foundation.e.apps.application.model.State
import foundation.e.apps.applicationmanager.ApplicationManager
import foundation.e.apps.utils.Constants
import foundation.e.apps.utils.Error
+import foundation.e.apps.utils.PreferenceStorage
class SearchElement(private val query: String, private val pageNumber: Int,
private val applicationManager: ApplicationManager,
@@ -33,8 +37,9 @@ class SearchElement(private val query: String, private val pageNumber: Int,
override fun doInBackground(vararg params: Context): ArrayList {
val apps = ArrayList()
-
-
+ if ("microG Exposure Notification version".contains(query, true)) {
+ apps.addAll(loadMicroGVersion(params[0]))
+ }
AllAppsSearchRequest(query, pageNumber, Constants.RESULTS_PER_PAGE)
.request { applicationError, searchResult ->
@@ -54,4 +59,26 @@ class SearchElement(private val query: String, private val pageNumber: Int,
override fun onPostExecute(result: ArrayList) {
callback.onSearchComplete(error, result)
}
+
+ /*gets microG application from gitlab*/
+ private fun loadMicroGVersion(context: Context): List {
+ var gitlabData: GitlabDataRequest.GitlabDataResult? = null
+ GitlabDataRequest()
+ .requestGmsCoreRelease { applicationError, listGitlabData ->
+
+ when (applicationError) {
+ null -> {
+ gitlabData = listGitlabData!!
+ }
+ else -> {
+ error = applicationError
+ }
+ }
+ }
+ return if (gitlabData != null) {
+ gitlabData!!.getApplications(applicationManager, context)
+ } else {
+ emptyList()
+ }
+ }
}
diff --git a/app/src/main/java/foundation/e/apps/search/model/SearchModel.kt b/app/src/main/java/foundation/e/apps/search/model/SearchModel.kt
index 4b22ca9ad36d466690aacb0afbbf19f5fe5cedce..380285cd2a056229662b55bbde2657950ea33740 100644
--- a/app/src/main/java/foundation/e/apps/search/model/SearchModel.kt
+++ b/app/src/main/java/foundation/e/apps/search/model/SearchModel.kt
@@ -18,26 +18,26 @@
package foundation.e.apps.search.model
import android.content.Context
-import android.content.Intent
import android.os.AsyncTask
import androidx.lifecycle.MutableLiveData
+import foundation.e.apps.api.GitlabDataRequest
import foundation.e.apps.application.model.Application
import foundation.e.apps.applicationmanager.ApplicationManager
-import foundation.e.apps.categories.category.CategoryActivity
-import foundation.e.apps.categories.model.Category
import foundation.e.apps.utils.Common
import foundation.e.apps.utils.Constants
import foundation.e.apps.utils.Error
+import foundation.e.apps.utils.Execute
class SearchModel : SearchModelInterface {
val suggestionList = MutableLiveData>()
val applicationList = MutableLiveData>()
var screenError = MutableLiveData()
- private var applicationManager: ApplicationManager? = null
+ lateinit var applicationManager: ApplicationManager
private var pageNumber = 0
private lateinit var searchQuery: String
private lateinit var context: Context
+ private var error: Error? = null
override fun initialise(applicationManager: ApplicationManager) {
this.applicationManager = applicationManager
@@ -45,7 +45,7 @@ class SearchModel : SearchModelInterface {
override fun searchSuggestions(context: Context, searchQuery: String) {
this.searchQuery = searchQuery
- this.context=context
+ this.context = context
if (searchQuery.length >= Constants.MIN_SEARCH_TERM_LENGTH) {
if (Common.isNetworkAvailable(context)) {
SearchSuggestionsTask(searchQuery, applicationManager!!, this)
@@ -86,22 +86,16 @@ class SearchModel : SearchModelInterface {
override fun onSearchComplete(error: Error?, applicationList: ArrayList) {
if (error == null) {
- if (searchQuery.equals("microg", true)) {
- val categoryIntent = Intent(context, CategoryActivity::class.java)
- categoryIntent.putExtra(Constants.CATEGORY_KEY, Category("system_apps"))
- context.startActivity(categoryIntent)
- } else {
- if (applicationList.isNotEmpty()) {
- if (pageNumber > 1 && this.applicationList.value != null) {
- val combinedAppList = this.applicationList.value!!
- combinedAppList.addAll(applicationList)
- this.applicationList.value = combinedAppList
- } else {
- this.applicationList.value = applicationList
- }
+ if (applicationList.isNotEmpty()) {
+ if (pageNumber > 1 && this.applicationList.value != null) {
+ val combinedAppList = this.applicationList.value!!
+ combinedAppList.addAll(applicationList)
+ this.applicationList.value = combinedAppList
} else {
- screenError.value = Error.NO_RESULTS
+ this.applicationList.value = applicationList
}
+ } else {
+ screenError.value = Error.NO_RESULTS
}
} else {
screenError.value = error
diff --git a/app/src/main/java/foundation/e/apps/search/model/SearchSuggestionsTask.kt b/app/src/main/java/foundation/e/apps/search/model/SearchSuggestionsTask.kt
index 3377c80cadfa3f314f91f13b824c3fa6b745dca6..3d144aa44f9754c902066c1ae73cd93e2dbb3e15 100644
--- a/app/src/main/java/foundation/e/apps/search/model/SearchSuggestionsTask.kt
+++ b/app/src/main/java/foundation/e/apps/search/model/SearchSuggestionsTask.kt
@@ -19,6 +19,7 @@ package foundation.e.apps.search.model
import android.content.Context
import android.os.AsyncTask
+import android.util.Log
import foundation.e.apps.api.AllAppsSearchRequest
import foundation.e.apps.applicationmanager.ApplicationManager
import foundation.e.apps.utils.Constants
@@ -31,7 +32,7 @@ class SearchSuggestionsTask(private val searchQuery: String,
override fun doInBackground(vararg context: Context): ArrayList {
val searchSuggestions = ArrayList()
- AllAppsSearchRequest(searchQuery,1, Constants.SUGGESTIONS_RESULTS)
+ AllAppsSearchRequest(searchQuery, 1, Constants.SUGGESTIONS_RESULTS)
.request { applicationError, searchResult ->
when (applicationError) {
null -> {
@@ -50,6 +51,10 @@ class SearchSuggestionsTask(private val searchQuery: String,
}
override fun onPostExecute(result: ArrayList) {
+ /*User type following string it will add microG element into array list*/
+ if ("microG Exposure Notification version".contains(searchQuery, true)) {
+ result.add(0,"microG Exposure Notification version")
+ }
callback.onSearchSuggestionsRetrieved(searchQuery, result)
}
}
diff --git a/app/src/main/java/foundation/e/apps/updates/UpdatesFragment.kt b/app/src/main/java/foundation/e/apps/updates/UpdatesFragment.kt
index 7f76f9a31048ff6592b3e1f1755f5b0fc81c589b..e202493ff38635d8ea2a45051c84aff34d8c5537 100644
--- a/app/src/main/java/foundation/e/apps/updates/UpdatesFragment.kt
+++ b/app/src/main/java/foundation/e/apps/updates/UpdatesFragment.kt
@@ -50,6 +50,7 @@ class UpdatesFragment() : Fragment() {
private lateinit var recyclerView: RecyclerView
private var applicationList = ArrayList()
var accentColorOS=0;
+ lateinit var progressBar2:ProgressBar
fun initialise(applicationManager: ApplicationManager, accentColorOS: Int) {
this.applicationManager = applicationManager
@@ -65,6 +66,7 @@ class UpdatesFragment() : Fragment() {
updatesViewModel = ViewModelProviders.of(activity!!).get(UpdatesViewModel::class.java)
recyclerView = view.findViewById(R.id.app_list)
+ progressBar2 = view.findViewById(R.id.progress_bar2)
val updateAll = view.findViewById