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