diff --git a/app/build.gradle b/app/build.gradle
index 72ab969a42cc297d9683b07872c99fcebae88c15..205ae282eeb1274a3b039bbd395c4b30c70c63a1 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -20,6 +20,15 @@ android {
vectorDrawables.useSupportLibrary = true
}
+ signingConfigs {
+ config {
+ storeFile file("../platform.keystore")
+ storePassword 'android'
+ keyAlias 'platform'
+ keyPassword 'android'
+ }
+ }
+
buildTypes {
debug {
applicationIdSuffix ".debug"
@@ -28,6 +37,9 @@ android {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
+ platform {
+ signingConfig signingConfigs.config
+ }
}
lintOptions {
lintConfig file("lint.xml")
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e96f80be0e47936453c542836343f89016c0b9a4..1a88355f700bae2527c948ee88c7e9ba7747446a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -75,14 +75,6 @@
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/MainActivity.kt b/app/src/main/java/foundation/e/apps/MainActivity.kt
index c86be95fe744c2070952558ae3f9b0706745bf89..fa79c552ec95c6d8d6483010815ce8c2e9a3d581 100644
--- a/app/src/main/java/foundation/e/apps/MainActivity.kt
+++ b/app/src/main/java/foundation/e/apps/MainActivity.kt
@@ -49,8 +49,10 @@ import foundation.e.apps.search.SearchFragment
import foundation.e.apps.settings.SettingsFragment
import foundation.e.apps.updates.UpdatesFragment
import foundation.e.apps.updates.UpdatesManager
+import foundation.e.apps.utils.Common
import foundation.e.apps.utils.Constants
import foundation.e.apps.utils.Constants.CURRENTLY_SELECTED_FRAGMENT_KEY
+import foundation.e.apps.utils.Constants.MICROG_SHARED_PREF
import foundation.e.apps.utils.PreferenceStorage
import kotlinx.android.synthetic.main.activity_main.*
@@ -110,6 +112,8 @@ class MainActivity : AppCompatActivity(), BottomNavigationView.OnNavigationItemS
disableShiftingOfNabBarItems()
+ Common.updateMicroGStatus(this)
+
initialiseUpdatesWorker()
@@ -132,15 +136,7 @@ class MainActivity : AppCompatActivity(), BottomNavigationView.OnNavigationItemS
override fun onResume() {
super.onResume()
- if (retrieveStatus() != null) {
- if (retrieveStatus().equals("true")) {
- PreferenceStorage(this).save(getString(R.string.prefs_microg_vrsn_installed), true)
- } else {
- PreferenceStorage(this).save(getString(R.string.prefs_microg_vrsn_installed), false)
- }
- } else {
- PreferenceStorage(this).save(getString(R.string.prefs_microg_vrsn_installed), false)
- }
+ Common.updateMicroGStatus(this)
}
private fun openSearchFragment() {
@@ -172,19 +168,6 @@ class MainActivity : AppCompatActivity(), BottomNavigationView.OnNavigationItemS
}
- private fun retrieveStatus(): String? {
- var status: String? = null
- val c: Cursor? = contentResolver.query(MicroGProvider.CONTENT_URI, null, "id=?", arrayOf("1"), "installStatus")
- if (c!!.moveToFirst()) {
- do {
- status = c.getString(c.getColumnIndex("installStatus"))
- } while (c.moveToNext())
- }
- c.close()
- return status
- }
-
-
private fun initialiseUpdatesWorker() {
UpdatesManager(applicationContext).startWorker()
diff --git a/app/src/main/java/foundation/e/apps/MicroGProvider.java b/app/src/main/java/foundation/e/apps/MicroGProvider.java
deleted file mode 100644
index 554d81d536f17798bfe58c960bd39c8274597883..0000000000000000000000000000000000000000
--- a/app/src/main/java/foundation/e/apps/MicroGProvider.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Copyright (C) 2019-2021 E FOUNDATION
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-package foundation.e.apps;
-
-import android.content.ContentProvider;
-import android.content.ContentUris;
-import android.content.ContentValues;
-import android.content.Context;
-import android.content.UriMatcher;
-import android.database.Cursor;
-import android.database.SQLException;
-import android.database.sqlite.SQLiteDatabase;
-import android.database.sqlite.SQLiteOpenHelper;
-import android.database.sqlite.SQLiteQueryBuilder;
-import android.net.Uri;
-
-import java.util.HashMap;
-
-public class MicroGProvider extends ContentProvider {
-
- public static final String PROVIDER_NAME = "foundation.e.apps.micro.status";
- public static final String URL = "content://" + PROVIDER_NAME + "/cte";
- public static final Uri CONTENT_URI = Uri.parse(URL);
-
- public static final String id = "id";
- public static final String installStatus = "installStatus";
- public static final int uriCode = 1;
- public static final UriMatcher uriMatcher;
- private static HashMap values;
-
- static {
- uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
- uriMatcher.addURI(PROVIDER_NAME, "cte", uriCode);
- uriMatcher.addURI(PROVIDER_NAME, "cte/*", uriCode);
- }
-
- @Override
- public boolean onCreate() {
- Context context = getContext();
- DatabaseHelper dbHelper = new DatabaseHelper(context);
- db = dbHelper.getWritableDatabase();
- if (db != null) {
- return true;
- }
- return false;
- }
-
- @Override
- public Cursor query(Uri uri, String[] projection, String selection,
- String[] selectionArgs, String sortOrder) {
- SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
- qb.setTables(TABLE_NAME);
-
- switch (uriMatcher.match(uri)) {
- case uriCode:
- qb.setProjectionMap(values);
- break;
- default:
- throw new IllegalArgumentException("Unknown URI " + uri);
- }
- if (sortOrder == null || sortOrder.equals("")) {
- sortOrder = installStatus;
- }
- Cursor c = qb.query(db, projection, selection, selectionArgs, null,
- null, sortOrder);
- c.setNotificationUri(getContext().getContentResolver(), uri);
- return c;
- }
-
-
- @Override
- public String getType(Uri uri) {
- switch (uriMatcher.match(uri)) {
- case uriCode:
- return "vnd.android.cursor.dir/cte";
-
- default:
- throw new IllegalArgumentException("Unsupported URI: " + uri);
- }
- }
-
- @Override
- public Uri insert(Uri uri, ContentValues values) {
- long rowID = db.insert(TABLE_NAME, "", values);
- if (rowID > 0) {
- Uri _uri = ContentUris.withAppendedId(CONTENT_URI, rowID);
- getContext().getContentResolver().notifyChange(_uri, null);
- return _uri;
- }
- throw new SQLException("Failed to add a record into " + uri);
- }
-
- @Override
- public int delete(Uri uri, String selection, String[] selectionArgs) {
- int count = 0;
- switch (uriMatcher.match(uri)) {
- case uriCode:
- count = db.delete(TABLE_NAME, selection, selectionArgs);
- break;
- default:
- throw new IllegalArgumentException("Unknown URI " + uri);
- }
- getContext().getContentResolver().notifyChange(uri, null);
- return count;
- }
-
- @Override
- public int update(Uri uri, ContentValues values, String selection,
- String[] selectionArgs) {
- int count = 0;
- switch (uriMatcher.match(uri)) {
- case uriCode:
- count = db.update(TABLE_NAME, values, selection, selectionArgs);
- break;
- default:
- throw new IllegalArgumentException("Unknown URI " + uri);
- }
- getContext().getContentResolver().notifyChange(uri, null);
- return count;
- }
-
- private SQLiteDatabase db;
- static final String DATABASE_NAME = "microGDB";
- static final String TABLE_NAME = "microgtable";
- static final int DATABASE_VERSION = 1;
- static final String CREATE_DB_TABLE = " CREATE TABLE " + TABLE_NAME
- + " (id INTEGER PRIMARY KEY AUTOINCREMENT, "
- + " installStatus TEXT NOT NULL);";
-
- private static class DatabaseHelper extends SQLiteOpenHelper {
- DatabaseHelper(Context context) {
- super(context, DATABASE_NAME, null, DATABASE_VERSION);
- }
-
- @Override
- public void onCreate(SQLiteDatabase db) {
- db.execSQL(CREATE_DB_TABLE);
- }
-
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
- onCreate(db);
- }
- }
-}
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 2aa4f615c6ff4a732a5e16ab3e0bd3e093a45f1b..6ce65b5e879ba0543e147e4a55de8096ef978a99 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
@@ -27,10 +27,10 @@ import android.net.Uri
import android.util.Log
import androidx.core.content.ContextCompat
import androidx.core.content.FileProvider
-import foundation.e.apps.MicroGProvider
import foundation.e.apps.R
import foundation.e.apps.XAPK.FsUtils.deleteFileOrDir
import foundation.e.apps.utils.Constants
+import foundation.e.apps.utils.Constants.MICROG_SHARED_PREF
import foundation.e.apps.utils.PreferenceStorage
import java.io.File
import java.io.IOException
@@ -126,7 +126,11 @@ class Installer(private val packageName: String,
context.unregisterReceiver(receiver)
Log.i(TAG, "Unregistered old broadcast receiver")
} catch (exception: Exception) {
- exception.printStackTrace()
+ if (exception !is IllegalArgumentException) {
+ exception.printStackTrace()
+ } else {
+ Log.d(TAG, "Broadcast receiver is already unregistered")
+ }
}
context.registerReceiver(receiver, IntentFilter().apply {
addAction(Intent.ACTION_PACKAGE_ADDED)
@@ -146,18 +150,7 @@ class Installer(private val packageName: String,
callback.onInstallationComplete(context)
if (packageName == Constants.MICROG_PACKAGE) {
- PreferenceStorage(context).save(context.getString(R.string.prefs_microg_vrsn_installed), true)
- if (count(MicroGProvider.CONTENT_URI, context)) {
- val values = ContentValues()
- values.put(MicroGProvider.installStatus, "true")
- val state=context.contentResolver.update(MicroGProvider.CONTENT_URI, values,
- MicroGProvider.id + "=?", arrayOf("1"))
- } else {
- val values = ContentValues()
- values.put(MicroGProvider.installStatus, "true")
- val state=context.contentResolver.insert(MicroGProvider.CONTENT_URI, values);
- }
-
+ PreferenceStorage(context).save(MICROG_SHARED_PREF, true)
}
}
}
diff --git a/app/src/main/java/foundation/e/apps/application/model/StateManager.kt b/app/src/main/java/foundation/e/apps/application/model/StateManager.kt
index 7f4e3df51776d0bfca72b74239ff0d5ce22287c8..b1d16b7009caa441deb69e99098c03c4460e4603 100644
--- a/app/src/main/java/foundation/e/apps/application/model/StateManager.kt
+++ b/app/src/main/java/foundation/e/apps/application/model/StateManager.kt
@@ -23,7 +23,9 @@ import foundation.e.apps.R
import foundation.e.apps.application.model.data.BasicData
import foundation.e.apps.application.model.data.SearchAppsBasicData
import foundation.e.apps.applicationmanager.ApplicationManager
+import foundation.e.apps.utils.Common
import foundation.e.apps.utils.Constants
+import foundation.e.apps.utils.Constants.MICROG_SHARED_PREF
import foundation.e.apps.utils.Error
import foundation.e.apps.utils.PreferenceStorage
import java.util.*
@@ -37,12 +39,13 @@ class StateManager(private val info: ApplicationInfo, private val app: Applicati
fun find(context: Context, basicData: BasicData) {
if (basicData.name == Constants.MICROG) {
- Log.e("MicroGStatus", PreferenceStorage(context).getBoolean(context.getString(R.string.prefs_microg_vrsn_installed), false).toString())
+ Common.updateMicroGStatus(context)
+ Log.e("MicroGStatus", PreferenceStorage(context).getBoolean(MICROG_SHARED_PREF, false).toString())
val state = if (appManager.isInstalling(app) && !app.isInstalling) {
State.DOWNLOADING
} else if (appManager.isInstalling(app) && app.isInstalling) {
State.INSTALLING
- } else if (PreferenceStorage(context).getBoolean(context.getString(R.string.prefs_microg_vrsn_installed), false)) {
+ } else if (PreferenceStorage(context).getBoolean(MICROG_SHARED_PREF, false)) {
if (info.isLastVersionInstalled(context, basicData.lastVersionNumber)) {
State.NOT_UPDATED
} else {
@@ -75,7 +78,7 @@ class StateManager(private val info: ApplicationInfo, private val app: Applicati
State.DOWNLOADING
} else if (appManager.isInstalling(app) && app.isInstalling) {
State.INSTALLING
- } else if (PreferenceStorage(context).getBoolean(context.getString(R.string.prefs_microg_vrsn_installed), false)) {
+ } else if (PreferenceStorage(context).getBoolean(MICROG_SHARED_PREF, false)) {
if (info.isLastVersionInstalled(context, basicData.lastVersionNumber)) {
State.NOT_UPDATED
} else {
diff --git a/app/src/main/java/foundation/e/apps/settings/SettingsFragment.kt b/app/src/main/java/foundation/e/apps/settings/SettingsFragment.kt
index 16538d8b8abd4ecafa89d2f8b82de87c9a93066e..e246d47426984350223ae4f54d355f44b62d1bd9 100644
--- a/app/src/main/java/foundation/e/apps/settings/SettingsFragment.kt
+++ b/app/src/main/java/foundation/e/apps/settings/SettingsFragment.kt
@@ -42,14 +42,6 @@ class SettingsFragment : PreferenceFragmentCompat() {
// Create preferences
setPreferencesFromResource(R.xml.preferences, rootKey)
-
- val microGInstallState = preferenceManager.findPreference(getString(R.string.prefs_microg_vrsn_installed))
- microGInstallState?.summary = if (context?.let { PreferenceStorage(it).getBoolean(getString(R.string.prefs_microg_vrsn_installed), false) }!!) {
- getString(R.string.microg_installed)
- } else {
- getString(R.string.microg_not_installed)
- }
-
// Handle update check interval changes
val updateCheckInterval =
preferenceManager.findPreference(getString(R.string.pref_update_interval_key)) as ListPreference
diff --git a/app/src/main/java/foundation/e/apps/updates/model/OutdatedApplicationsFileReader.kt b/app/src/main/java/foundation/e/apps/updates/model/OutdatedApplicationsFileReader.kt
index 538aabb92fa089ac6e2499998e50a0220b50c499..93c75430b7e57279e59546454017b37af64e8ce9 100644
--- a/app/src/main/java/foundation/e/apps/updates/model/OutdatedApplicationsFileReader.kt
+++ b/app/src/main/java/foundation/e/apps/updates/model/OutdatedApplicationsFileReader.kt
@@ -26,6 +26,7 @@ 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.Common
+import foundation.e.apps.utils.Constants.MICROG_SHARED_PREF
import foundation.e.apps.utils.PreferenceStorage
class OutdatedApplicationsFileReader(private val packageManager: PackageManager,
@@ -37,7 +38,7 @@ class OutdatedApplicationsFileReader(private val packageManager: PackageManager,
val application: Application? = loadMicroGVersion(context[0])[0]
println("versionname::-"+ application?.basicData!!.lastVersionNumber)
if (PreferenceStorage(context[0])
- .getBoolean(context[0].getString(R.string.prefs_microg_vrsn_installed), false)
+ .getBoolean(MICROG_SHARED_PREF, false)
&& application.state == State.NOT_UPDATED) {
applications.addAll(loadMicroGVersion(context[0]))
}
diff --git a/app/src/main/java/foundation/e/apps/updates/model/OutdatedApplicationsFinder.kt b/app/src/main/java/foundation/e/apps/updates/model/OutdatedApplicationsFinder.kt
index a8b919cbc07c0cc047d0a57650e8417602337412..35751c033b681c23f561ea01785d802814f1ffcd 100644
--- a/app/src/main/java/foundation/e/apps/updates/model/OutdatedApplicationsFinder.kt
+++ b/app/src/main/java/foundation/e/apps/updates/model/OutdatedApplicationsFinder.kt
@@ -26,6 +26,8 @@ import foundation.e.apps.application.model.State
import foundation.e.apps.applicationmanager.ApplicationManager
import foundation.e.apps.utils.Common
import foundation.e.apps.utils.Constants
+import foundation.e.apps.utils.Constants.MICROG_SHARED_PREF
+import foundation.e.apps.utils.PreferenceStorage
class OutdatedApplicationsFinder(private val packageManager: PackageManager,
private val callback: UpdatesWorkerInterface,
@@ -45,14 +47,20 @@ class OutdatedApplicationsFinder(private val packageManager: PackageManager,
private fun getOutdatedApplications(context: Context): ArrayList {
val result = ArrayList()
- var application: Application? = loadMicroGVersion(context)[0]
- if (application!!.state != State.INSTALLED) {
+ val application: Application = loadMicroGVersion(context)[0]
+ if (PreferenceStorage(context).getBoolean(
+ MICROG_SHARED_PREF,
+ false
+ )
+ ) {
result.add(application)
}
val installedApplications = getInstalledApplications()
installedApplications.forEach { packageName ->
- val application = applicationManager.findOrCreateApp(packageName)
- verifyApplication(application, result, context)
+ if (packageName != Constants.MICROG_PACKAGE) {
+ val app = applicationManager.findOrCreateApp(packageName)
+ verifyApplication(app, result, context)
+ }
}
return result
}
diff --git a/app/src/main/java/foundation/e/apps/utils/Common.kt b/app/src/main/java/foundation/e/apps/utils/Common.kt
index 7577698d1eb6666710af76eab816e945998ae08e..e0c3dbd5e2fd0fc8bfa9cb6cfdb4c03fae1eb023 100644
--- a/app/src/main/java/foundation/e/apps/utils/Common.kt
+++ b/app/src/main/java/foundation/e/apps/utils/Common.kt
@@ -32,6 +32,8 @@ import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.databind.module.SimpleModule
import com.fasterxml.jackson.module.kotlin.registerKotlinModule
import foundation.e.apps.categories.model.Category
+import foundation.e.apps.utils.Constants.MICROG_PACKAGE
+import foundation.e.apps.utils.Constants.MICROG_SHARED_PREF
import java.net.URL
import java.nio.file.Paths
import java.util.*
@@ -127,6 +129,20 @@ object Common {
}
return preferredLocaleList
}
+
+ /*
+ * Updates shared preferences related to microG EN
+ * @param context Context
+ */
+ fun updateMicroGStatus(context: Context) {
+ val packageInfo = context.packageManager.getPackageInfo(MICROG_PACKAGE, 0)
+ val microgENversion = packageInfo.versionName
+ if (microgENversion.endsWith("-noen")) {
+ PreferenceStorage(context).save(MICROG_SHARED_PREF, false)
+ } else {
+ PreferenceStorage(context).save(MICROG_SHARED_PREF, true)
+ }
+ }
}
class keyDeserializer : KeyDeserializer() {
diff --git a/app/src/main/java/foundation/e/apps/utils/Constants.kt b/app/src/main/java/foundation/e/apps/utils/Constants.kt
index 4a759ad781ddaf20f927444fdac122f9905f6224..9ae659f5cd84e3e7ae316e54c9b4999c235eaa3f 100644
--- a/app/src/main/java/foundation/e/apps/utils/Constants.kt
+++ b/app/src/main/java/foundation/e/apps/utils/Constants.kt
@@ -36,6 +36,7 @@ object Constants {
const val MICROG_ID = 149
const val MICROG = "microG Exposure Notification version"
const val MICROG_ICON_URI = "https://gitlab.e.foundation/uploads/-/system/project/avatar/149/ic_core_service_app.png?width=64"
+ const val MICROG_SHARED_PREF = "pref_microg_installed"
// Search
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 4c6be10d245af5c33bb1fd78bbb4d0692a710603..615be03e7e5c4cd8139d7b54e7ded23ac4d5ede7 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -98,9 +98,6 @@
Wird installiert
mehr
Bitte erneut auf ZURÜCK tippen zum Beenden
- Installiert
- Nicht installiert
Paketname
- pref_microg_installed
Überprüfung der Signatur ist fehlgeschlagen, die Installation wird abgebrochen
\ No newline at end of file
diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml
index ee32d0c94c0b2e5617c38d207b8eee85912e58ae..e654d851cf65d4175a2071201df9d764b108fa14 100644
--- a/app/src/main/res/values-eu/strings.xml
+++ b/app/src/main/res/values-eu/strings.xml
@@ -98,8 +98,5 @@
Aztarnariak
Puntuazioa 10etik. Exodus Privacy analisiak erabiliz kalkulatuta, aplikazioan erabilitako baimen eta aztarnarietan oinarrituta.
Puntuazioa 5etik. Erabiltzaileek aplikazioari emandako puntuazioarekin kalkulatuta.
- Instalatuta
- Instalatu gabe
- pref_microg_installed
Pakete-izena
\ No newline at end of file
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 34071bc2ed18472d515531c7e8d7cf93eeee0ea5..4b17cc9221ec048d49bef031fb7e2208115052fc 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -98,9 +98,6 @@
show_only_pwa_apps
show_only_open-source_apps
Tocca ancora INDIETRO per uscire
- Installato
- Non installato
- pref_microg_installed
Verifica della firma non riuscita, installazione interrotta
Nome del pacchetto
\ No newline at end of file
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index 3d18b2af23ad6d630accfb8719455d6445e315ff..41ad9f199dc3967ba30f3d254ed85b3a73baf3f9 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -98,8 +98,6 @@
Toon applicaties:
show_only_open-source_apps
show_only_pwa_apps
- Geïnstalleerd
- Niet Geïnstalleerd
Pakket naam
Verificatie mislukt, installatie wordt afgebroken
\ No newline at end of file
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index eab33362467778cc4d92ec76373c2f1d2931ed11..40d8790c516a7df8223abd5ca7bbcb482d9e711b 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -99,8 +99,5 @@
Приложения
Приложение не может быть установлено. Пожалуйста, попробуйте позже.
Пожалуйста, нажмите НАЗАД снова для выхода
- Установленная версия MicroG
- Установленно
- Не установлено
Имя пакета
\ No newline at end of file
diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml
index b02e6f3ba365644e8433d5341e7ea859c680ff22..94f95ac4041f4d6eb8b62b0c634c3159982b3b00 100644
--- a/app/src/main/res/values-sk/strings.xml
+++ b/app/src/main/res/values-sk/strings.xml
@@ -84,8 +84,6 @@
Súkromie
Aktualizácie aplikácií sa nenainštalujú automaticky
Aktualizácie aplikácií sa nainštalujú automaticky
- Nenainštalovaný
- Nainštalovaný
Automatická aktualizácia aplikácií len v sieťach bez merania objemu dát ako napríklad Wi-Fi
Iba cez nemerané siete
Čaká sa na nemeranú sieť
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 7fb10ac5705fa49df64b5b1dcb4f6d683b957cf1..b5c14aa1de4822b6baf6d14b3aab58764297f985 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -152,9 +152,6 @@
PWA
- pref_microg_installed
- Not Installed
- Installed
Signature verification failed, aborting install
diff --git a/platform.keystore b/platform.keystore
new file mode 100644
index 0000000000000000000000000000000000000000..574b2203d6dc78b3853cf899c3c7a1f60c773507
Binary files /dev/null and b/platform.keystore differ