diff options
author | Allan Wang <me@allanwang.ca> | 2018-03-21 01:28:31 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-21 01:28:31 -0400 |
commit | d36dfe98a52ced46c5106b28304ae5d245180a7f (patch) | |
tree | a20261ea953b7e29e8754cf641e9ed743511079d | |
parent | 6b85bc72a864e65d99ae65802ce03f977a98c906 (diff) | |
download | frost-d36dfe98a52ced46c5106b28304ae5d245180a7f.tar.gz frost-d36dfe98a52ced46c5106b28304ae5d245180a7f.tar.bz2 frost-d36dfe98a52ced46c5106b28304ae5d245180a7f.zip |
Feature/bugsnag (#807)
* Add bugsnag
* Remove crashlytics
* Remove pro features and iab
* Make analytics opt in
* Clean settings activity
* Clean settings activity 2
73 files changed, 113 insertions, 711 deletions
diff --git a/app/build.gradle b/app/build.gradle index ef771b16..83590b78 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -5,7 +5,6 @@ plugins { apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-kapt' -apply plugin: 'io.fabric' apply plugin: 'com.github.triplet.play' apply plugin: 'com.getkeepsafe.dexcount' @@ -101,7 +100,7 @@ android { signingConfig signingConfigs.debug resValue "string", "frost_name", "Frost Debug" resValue "string", "frost_web", "Frost Web Debug" - ext.enableCrashlytics = false + ext.enableBugsnag = false } releaseTest { minifyEnabled true @@ -206,17 +205,13 @@ dependencies { implementation "com.squareup.okhttp3:okhttp:${OKHTTP}" implementation "com.squareup.okhttp3:logging-interceptor:${OKHTTP}" - implementation "com.anjlab.android.iab.v3:library:${IAB}" - implementation "co.zsmb:materialdrawer-kt:${MATERIAL_DRAWER_KT}" implementation "nz.bradcampbell:paperparcel:${PAPER_PARCEL}" implementation "nz.bradcampbell:paperparcel-kotlin:${PAPER_PARCEL}" kapt "nz.bradcampbell:paperparcel-compiler:${PAPER_PARCEL}" - implementation("com.crashlytics.sdk.android:crashlytics:${CRASHLYTICS}@aar") { - transitive = true - } + implementation "com.bugsnag:bugsnag-android:${BUGSNAG}" implementation "com.davemorrissey.labs:subsampling-scale-image-view:${SCALE_IMAGE_VIEW}" @@ -228,4 +223,6 @@ dependencies { implementation "io.reactivex.rxjava2:rxandroid:${RX_ANDROID}" implementation "com.github.pwittchen:reactivenetwork-rx2:${RX_NETWORK}" -}
\ No newline at end of file +} + +apply plugin: 'com.bugsnag.android.gradle'
\ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 12b8c029..10b062c8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -182,6 +182,9 @@ <meta-data android:name="io.fabric.ApiKey" android:value="18b3c223b96b7e7fc1fac372e36b8f4d49a193c7" /> + <meta-data + android:name="com.bugsnag.android.API_KEY" + android:value="83cf680ed01a6fda10fe497d1c0962bb"/> </application> </manifest>
\ No newline at end of file diff --git a/app/src/main/kotlin/com/pitchedapps/frost/FrostApp.kt b/app/src/main/kotlin/com/pitchedapps/frost/FrostApp.kt index 36b51753..16e23d53 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/FrostApp.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/FrostApp.kt @@ -7,10 +7,9 @@ import android.net.Uri import android.os.Bundle import android.widget.ImageView import ca.allanwang.kau.logging.KL +import com.bugsnag.android.Bugsnag import com.bumptech.glide.request.RequestOptions import com.bumptech.glide.signature.ApplicationVersionSignature -import com.crashlytics.android.Crashlytics -import com.crashlytics.android.answers.Answers import com.mikepenz.materialdrawer.util.AbstractDrawerImageLoader import com.mikepenz.materialdrawer.util.DrawerImageLoader import com.pitchedapps.frost.dbflow.CookiesDb @@ -28,7 +27,6 @@ import com.raizlabs.android.dbflow.config.DatabaseConfig import com.raizlabs.android.dbflow.config.FlowConfig import com.raizlabs.android.dbflow.config.FlowManager import com.raizlabs.android.dbflow.runtime.ContentResolverNotifier -import io.fabric.sdk.android.Fabric import io.reactivex.plugins.RxJavaPlugins import java.net.SocketTimeoutException import java.util.* @@ -63,8 +61,11 @@ class FrostApp : Application() { // if (LeakCanary.isInAnalyzerProcess(this)) return // refWatcher = LeakCanary.install(this) if (!BuildConfig.DEBUG) { - Fabric.with(this, Crashlytics(), Answers()) - Crashlytics.setUserIdentifier(Prefs.frostId) + Bugsnag.init(this) + Bugsnag.setAutoCaptureSessions(true) + Bugsnag.getClient().setUserId(Prefs.frostId) + +// setUser("userId", "user@email.com", "User Name") } KL.shouldLog = { BuildConfig.DEBUG } Prefs.verboseLogging = false diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/AboutActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/AboutActivity.kt index 691f050e..8e6677f9 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/activities/AboutActivity.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/AboutActivity.kt @@ -136,7 +136,7 @@ class AboutActivity : AboutActivityBase(null, { val c = itemView.context val size = c.dimenPixelSize(R.dimen.kau_avatar_bounds) images = arrayOf<Pair<IIcon, () -> Unit>>( - GoogleMaterial.Icon.gmd_star to { c.startPlayStoreLink(R.string.play_store_package_id) }, +// GoogleMaterial.Icon.gmd_star to { c.startPlayStoreLink(R.string.play_store_package_id) }, CommunityMaterial.Icon.cmd_reddit to { c.startLink(R.string.reddit_url) }, CommunityMaterial.Icon.cmd_github_circle to { c.startLink(R.string.github_url) }, CommunityMaterial.Icon.cmd_xda to { c.startLink(R.string.xda_url) } diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/BaseMainActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/BaseMainActivity.kt index 809e8a56..8b584112 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/activities/BaseMainActivity.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/BaseMainActivity.kt @@ -38,7 +38,6 @@ import co.zsmb.materialdrawerkt.draweritems.badgeable.secondaryItem import co.zsmb.materialdrawerkt.draweritems.divider import co.zsmb.materialdrawerkt.draweritems.profile.profile import co.zsmb.materialdrawerkt.draweritems.profile.profileSetting -import com.crashlytics.android.answers.ContentViewEvent import com.mikepenz.google_material_typeface_library.GoogleMaterial import com.mikepenz.iconics.IconicsDrawable import com.mikepenz.iconics.typeface.IIcon @@ -54,7 +53,6 @@ import com.pitchedapps.frost.dbflow.TAB_COUNT import com.pitchedapps.frost.dbflow.loadFbCookie import com.pitchedapps.frost.dbflow.loadFbTabs import com.pitchedapps.frost.enums.MainActivityLayout -import com.pitchedapps.frost.enums.Theme import com.pitchedapps.frost.facebook.FbCookie import com.pitchedapps.frost.facebook.FbItem import com.pitchedapps.frost.facebook.PROFILE_PICTURE_URL @@ -63,9 +61,6 @@ import com.pitchedapps.frost.fragments.WebFragment import com.pitchedapps.frost.parsers.FrostSearch import com.pitchedapps.frost.parsers.SearchParser import com.pitchedapps.frost.utils.* -import com.pitchedapps.frost.utils.iab.FrostBilling -import com.pitchedapps.frost.utils.iab.IS_FROST_PRO -import com.pitchedapps.frost.utils.iab.IabMain import com.pitchedapps.frost.views.BadgedIcon import com.pitchedapps.frost.views.FrostVideoViewer import com.pitchedapps.frost.views.FrostViewPager @@ -77,8 +72,7 @@ import com.pitchedapps.frost.views.FrostViewPager */ abstract class BaseMainActivity : BaseActivity(), MainActivityContract, FileChooserContract by FileChooserDelegate(), - VideoViewHolder, SearchViewHolder, - FrostBilling by IabMain() { + VideoViewHolder, SearchViewHolder { protected lateinit var adapter: SectionsPagerAdapter override val frameWrapper: FrameLayout by bindView(R.id.frame_wrapper) @@ -115,13 +109,12 @@ abstract class BaseMainActivity : BaseActivity(), MainActivityContract, onNestedCreate(savedInstanceState) L.i { "Main finished loading UI in ${System.currentTimeMillis() - start} ms" } controlWebview = WebView(this) - onCreateBilling() if (BuildConfig.VERSION_CODE > Prefs.versionCode) { Prefs.prevVersionCode = Prefs.versionCode Prefs.versionCode = BuildConfig.VERSION_CODE if (!BuildConfig.DEBUG) { frostChangelog() - frostAnswersCustom("Version", + frostEvent("Version", "Version code" to BuildConfig.VERSION_CODE, "Prev version code" to Prefs.prevVersionCode, "Version name" to BuildConfig.VERSION_NAME, @@ -283,11 +276,7 @@ abstract class BaseMainActivity : BaseActivity(), MainActivityContract, selectedColor = 0x00000001.toLong() identifier = item.titleId.toLong() onClick { _ -> - frostAnswers { - logContentView(ContentViewEvent() - .putContentName(item.name) - .putContentType("drawer_item")) - } + frostEvent("Drawer Tab", "name" to item.name) launchWebOverlay(item.url) false } @@ -419,16 +408,7 @@ abstract class BaseMainActivity : BaseActivity(), MainActivityContract, super.onPause() } - override fun onStart() { - //validate some pro features - if (!IS_FROST_PRO) { - if (Prefs.theme == Theme.CUSTOM.ordinal) Prefs.theme = Theme.DEFAULT.ordinal - } - super.onStart() - } - override fun onDestroy() { - onDestroyBilling() controlWebview?.destroy() super.onDestroy() } diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/ImageActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/ImageActivity.kt index 1bc3334f..e9426beb 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/activities/ImageActivity.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/ImageActivity.kt @@ -121,7 +121,7 @@ class ImageActivity : KauBaseActivity() { photo.setOnImageEventListener(object : SubsamplingScaleImageView.DefaultOnImageEventListener() { override fun onImageLoadError(e: Exception?) { errorRef = e - e.logFrostAnswers("Image load error") + e.logFrostEvent("Image load error") L.e { "Failed to load image $imageUrl" } tempFile?.delete() fabAction = FabStates.ERROR @@ -307,7 +307,7 @@ internal enum class FabStates(val iicon: IIcon, val iconColor: Int = Prefs.iconC activity.startActivity(intent) } catch (e: Exception) { activity.errorRef = e - e.logFrostAnswers("Image share failed") + e.logFrostEvent("Image share failed") activity.frostSnackbar(R.string.image_share_failed) } } diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/LoginActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/LoginActivity.kt index aa2e5871..9afca21e 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/activities/LoginActivity.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/LoginActivity.kt @@ -15,7 +15,6 @@ import com.bumptech.glide.load.DataSource import com.bumptech.glide.load.engine.GlideException import com.bumptech.glide.request.RequestListener import com.bumptech.glide.request.target.Target -import com.crashlytics.android.answers.LoginEvent import com.pitchedapps.frost.R import com.pitchedapps.frost.dbflow.CookieModel import com.pitchedapps.frost.dbflow.fetchUsername @@ -90,11 +89,7 @@ class LoginActivity : BaseActivity() { } textview.text = String.format(getString(R.string.welcome), name) textview.fadeIn() - frostAnswers { - logLogin(LoginEvent() - .putMethod("frost_browser") - .putSuccess(true)) - } + frostEvent("Login" , "success" to true ) /* * The user may have logged into an account that is already in the database * We will let the db handle duplicates and load it now after the new account has been saved @@ -123,7 +118,7 @@ class LoginActivity : BaseActivity() { } override fun onLoadFailed(e: GlideException?, model: Any?, target: Target<Drawable>?, isFirstResource: Boolean): Boolean { - e.logFrostAnswers("Profile loading exception") + e.logFrostEvent("Profile loading exception") profileSubject.onSuccess(false) return false } diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt index 8d4e521f..97d82884 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt @@ -11,25 +11,20 @@ import android.view.MenuItem import ca.allanwang.kau.kpref.activity.CoreAttributeContract import ca.allanwang.kau.kpref.activity.KPrefActivity import ca.allanwang.kau.kpref.activity.KPrefAdapterBuilder -import ca.allanwang.kau.kpref.activity.items.KPrefItemBase import ca.allanwang.kau.ui.views.RippleCanvas import ca.allanwang.kau.utils.* import com.mikepenz.community_material_typeface_library.CommunityMaterial import com.mikepenz.google_material_typeface_library.GoogleMaterial -import com.pitchedapps.frost.BuildConfig import com.pitchedapps.frost.R import com.pitchedapps.frost.enums.Support import com.pitchedapps.frost.settings.* import com.pitchedapps.frost.utils.* -import com.pitchedapps.frost.utils.iab.FrostBilling -import com.pitchedapps.frost.utils.iab.IS_FROST_PRO -import com.pitchedapps.frost.utils.iab.IabSettings /** * Created by Allan Wang on 2017-06-06. */ -class SettingsActivity : KPrefActivity(), FrostBilling by IabSettings() { +class SettingsActivity : KPrefActivity() { var resultFlag = Activity.RESULT_CANCELED @@ -56,8 +51,6 @@ class SettingsActivity : KPrefActivity(), FrostBilling by IabSettings() { return } } - if (!onActivityResultBilling(requestCode, resultCode, data)) - super.onActivityResult(requestCode, resultCode, data) reloadList() } @@ -125,12 +118,7 @@ class SettingsActivity : KPrefActivity(), FrostBilling by IabSettings() { iicon = CommunityMaterial.Icon.cmd_flask_outline } - plainText(R.string.get_pro) { - descRes = R.string.get_pro_desc - iicon = GoogleMaterial.Icon.gmd_star - visible = { !IS_FROST_PRO } - onClick = { restorePurchases() } - } + // todo add donation? plainText(R.string.about_frost) { descRes = R.string.about_frost_desc @@ -159,14 +147,6 @@ class SettingsActivity : KPrefActivity(), FrostBilling by IabSettings() { visible = { Prefs.debugSettings } } - if (BuildConfig.DEBUG) { - checkbox(R.string.custom_pro, { Prefs.debugPro }, { Prefs.debugPro = it }) - } - } - - fun KPrefItemBase.BaseContract<*>.dependsOnPro() { - onDisabledClick = { purchasePro() } - enabler = { IS_FROST_PRO } } fun shouldRestartMain() { @@ -179,7 +159,6 @@ class SettingsActivity : KPrefActivity(), FrostBilling by IabSettings() { super.onCreate(savedInstanceState) animate = Prefs.animate themeExterior(false) - onCreateBilling() } fun themeExterior(animate: Boolean = true) { @@ -222,9 +201,4 @@ class SettingsActivity : KPrefActivity(), FrostBilling by IabSettings() { fun setFrostResult(flag: Int) { resultFlag = resultFlag or flag } - - override fun onDestroy() { - onDestroyBilling() - super.onDestroy() - } }
\ No newline at end of file diff --git a/app/src/main/kotlin/com/pitchedapps/frost/dbflow/CookiesDb.kt b/app/src/main/kotlin/com/pitchedapps/frost/dbflow/CookiesDb.kt index e98020d4..69cf32b7 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/dbflow/CookiesDb.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/dbflow/CookiesDb.kt @@ -6,7 +6,7 @@ import com.github.pwittchen.reactivenetwork.library.rx2.ReactiveNetwork import com.pitchedapps.frost.facebook.FbItem import com.pitchedapps.frost.utils.L import com.pitchedapps.frost.utils.frostJsoup -import com.pitchedapps.frost.utils.logFrostAnswers +import com.pitchedapps.frost.utils.logFrostEvent import com.raizlabs.android.dbflow.annotation.ConflictAction import com.raizlabs.android.dbflow.annotation.Database import com.raizlabs.android.dbflow.annotation.PrimaryKey @@ -76,7 +76,7 @@ inline fun CookieModel.fetchUsername(crossinline callback: (String) -> Unit) { L.d { "Fetch username found" } } catch (e: Exception) { if (e !is UnknownHostException) - e.logFrostAnswers("Fetch username failed") + e.logFrostEvent("Fetch username failed") } finally { if (result.isBlank() && (name?.isNotBlank() == true)) { callback(name!!) diff --git a/app/src/main/kotlin/com/pitchedapps/frost/fragments/FragmentBase.kt b/app/src/main/kotlin/com/pitchedapps/frost/fragments/FragmentBase.kt index a644e966..cf48893c 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/fragments/FragmentBase.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/fragments/FragmentBase.kt @@ -55,7 +55,7 @@ abstract class BaseFragment : Fragment(), FragmentContract, DynamicUiContract { if (value || this is WebFragment) return arguments!!.putBoolean(ARG_VALID, value) L.e { "Invalidating position $position" } - frostAnswersCustom("Native Fallback", + frostEvent("Native Fallback", "Item" to baseEnum.name) (context as MainActivityContract).reloadFragment(this) } diff --git a/app/src/main/kotlin/com/pitchedapps/frost/services/FrostNotifications.kt b/app/src/main/kotlin/com/pitchedapps/frost/services/FrostNotifications.kt index 30c94744..ab61b37d 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/services/FrostNotifications.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/services/FrostNotifications.kt @@ -36,7 +36,7 @@ import com.pitchedapps.frost.parsers.ParseNotification import com.pitchedapps.frost.utils.ARG_USER_ID import com.pitchedapps.frost.utils.L import com.pitchedapps.frost.utils.Prefs -import com.pitchedapps.frost.utils.frostAnswersCustom +import com.pitchedapps.frost.utils.frostEvent import java.util.* /** @@ -190,7 +190,7 @@ enum class NotificationType( if (newLatestEpoch > prevLatestEpoch) putTime(prevNotifTime, newLatestEpoch).save() L.d { "Notif $name new epoch ${getTime(lastNotificationTime(userId))}" } - frostAnswersCustom("Notifications", "Type" to name, "Count" to notifs.size) + frostEvent("Notifications", "Type" to name, "Count" to notifs.size) if (notifs.size > 1) summaryNotification(context, userId, notifs.size).notify(context) val ringtone = ringtone() diff --git a/app/src/main/kotlin/com/pitchedapps/frost/services/NotificationService.kt b/app/src/main/kotlin/com/pitchedapps/frost/services/NotificationService.kt index 6ba968e7..22477eab 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/services/NotificationService.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/services/NotificationService.kt @@ -10,7 +10,7 @@ import com.pitchedapps.frost.dbflow.CookieModel import com.pitchedapps.frost.dbflow.loadFbCookiesSync import com.pitchedapps.frost.utils.L import com.pitchedapps.frost.utils.Prefs -import com.pitchedapps.frost.utils.frostAnswersCustom +import com.pitchedapps.frost.utils.frostEvent import org.jetbrains.anko.doAsync import java.util.concurrent.Future @@ -31,7 +31,7 @@ class NotificationService : JobService() { override fun onStopJob(params: JobParameters?): Boolean { val time = System.currentTimeMillis() - startTime L.d { "Notification service has finished abruptly in $time ms" } - frostAnswersCustom("NotificationTime", + frostEvent("NotificationTime", "Type" to "Service force stop", "IM Included" to Prefs.notificationsInstantMessages, "Duration" to time) @@ -43,7 +43,7 @@ class NotificationService : JobService() { fun finish(params: JobParameters?) { val time = System.currentTimeMillis() - startTime L.i { "Notification service has finished in $time ms" } - frostAnswersCustom("NotificationTime", + frostEvent("NotificationTime", "Type" to "Service", "IM Included" to Prefs.notificationsInstantMessages, "Duration" to time) diff --git a/app/src/main/kotlin/com/pitchedapps/frost/settings/Appearance.kt b/app/src/main/kotlin/com/pitchedapps/frost/settings/Appearance.kt index eeeca01f..314590e2 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/settings/Appearance.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/settings/Appearance.kt @@ -11,7 +11,6 @@ import com.pitchedapps.frost.enums.MainActivityLayout import com.pitchedapps.frost.enums.Theme import com.pitchedapps.frost.injectors.CssAssets import com.pitchedapps.frost.utils.* -import com.pitchedapps.frost.utils.iab.IS_FROST_PRO import com.pitchedapps.frost.views.KPrefTextSeekbar /** @@ -25,22 +24,16 @@ fun SettingsActivity.getAppearancePrefs(): KPrefAdapterBuilder.() -> Unit = { onClick = { materialDialogThemed { title(R.string.theme) - items(Theme.values() - .map { if (it == Theme.CUSTOM && !IS_FROST_PRO) R.string.custom_pro else it.textRes } - .map { string(it) }) + items(Theme.values().map { string(it.textRes) }) itemsCallbackSingleChoice(item.pref) { _, _, which, _ -> if (item.pref != which) { - if (which == Theme.CUSTOM.ordinal && !IS_FROST_PRO) { - purchasePro() - return@itemsCallbackSingleChoice true - } item.pref = which shouldRestartMain() reload() setFrostTheme(true) themeExterior() invalidateOptionsMenu() - frostAnswersCustom("Theme", "Count" to Theme(which).name) + frostEvent("Theme", "Count" to Theme(which).name) } true } @@ -125,7 +118,7 @@ fun SettingsActivity.getAppearancePrefs(): KPrefAdapterBuilder.() -> Unit = { if (item.pref != which) { item.pref = which shouldRestartMain() - frostAnswersCustom("Main Layout", "Type" to MainActivityLayout(which).name) + frostEvent("Main Layout", "Type" to MainActivityLayout(which).name) } true } diff --git a/app/src/main/kotlin/com/pitchedapps/frost/settings/Feed.kt b/app/src/main/kotlin/com/pitchedapps/frost/settings/Feed.kt index 78898eeb..5de68e21 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/settings/Feed.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/settings/Feed.kt @@ -46,14 +46,11 @@ fun SettingsActivity.getFeedPrefs(): KPrefAdapterBuilder.() -> Unit = { descRes = R.string.composer_desc } - header(R.string.pro_features) - checkbox(R.string.suggested_friends, Prefs::showSuggestedFriends, { Prefs.showSuggestedFriends = it setFrostResult(REQUEST_REFRESH) }) { descRes = R.string.suggested_friends_desc - dependsOnPro() } checkbox(R.string.suggested_groups, Prefs::showSuggestedGroups, { @@ -61,7 +58,6 @@ fun SettingsActivity.getFeedPrefs(): KPrefAdapterBuilder.() -> Unit = { setFrostResult(REQUEST_REFRESH) }) { descRes = R.string.suggested_groups_desc - dependsOnPro() } checkbox(R.string.facebook_ads, Prefs::showFacebookAds, { @@ -69,6 +65,5 @@ fun SettingsActivity.getFeedPrefs(): KPrefAdapterBuilder.() -> Unit = { setFrostResult(REQUEST_REFRESH) }) { descRes = R.string.facebook_ads_desc - dependsOnPro() } }
\ No newline at end of file diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/L.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/L.kt index a108745c..4f31f5f5 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/utils/L.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/L.kt @@ -2,7 +2,7 @@ package com.pitchedapps.frost.utils import android.util.Log import ca.allanwang.kau.logging.KauLogger -import com.crashlytics.android.Crashlytics +import com.bugsnag.android.Bugsnag import com.pitchedapps.frost.BuildConfig @@ -34,9 +34,9 @@ object L : KauLogger("Frost", { super.logImpl(priority, message, t) else { if (message != null) - Crashlytics.log(priority, tag, message) + Bugsnag.leaveBreadcrumb(message) if (t != null) - Crashlytics.logException(t) + Bugsnag.notify(t) } } diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt index 26d7894e..95a5f39b 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt @@ -135,19 +135,9 @@ object Prefs : KPref() { var enablePip: Boolean by kpref("enable_pip", true) - /** - * Cache like value to determine if user has or had pro - * In most cases, [com.pitchedapps.frost.utils.iab.IS_FROST_PRO] should be looked at instead - * This has been renamed to pro for short, but keep in mind that it only reflects the value - * of when it was previously verified - */ - var pro: Boolean by kpref("previously_pro", false) - - var debugPro: Boolean by kpref("debug_pro", false) - var verboseLogging: Boolean by kpref("verbose_logging", false) - var analytics: Boolean by kpref("analytics", true) + var analytics: Boolean by kpref("analytics", false) var overlayEnabled: Boolean by kpref("overlay_enabled", true) diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt index d73f29e9..b1b129fb 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt @@ -23,15 +23,12 @@ import ca.allanwang.kau.mediapicker.createPrivateMediaFile import ca.allanwang.kau.utils.* import ca.allanwang.kau.xml.showChangelog import com.afollestad.materialdialogs.MaterialDialog -import com.crashlytics.android.answers.Answers -import com.crashlytics.android.answers.CustomEvent import com.pitchedapps.frost.BuildConfig import com.pitchedapps.frost.R import com.pitchedapps.frost.activities.* import com.pitchedapps.frost.dbflow.CookieModel import com.pitchedapps.frost.facebook.* import com.pitchedapps.frost.facebook.FbUrlFormatter.Companion.VIDEO_REDIRECT -import com.pitchedapps.frost.utils.iab.IS_FROST_PRO import org.apache.commons.text.StringEscapeUtils import org.jsoup.Jsoup import org.jsoup.nodes.Element @@ -175,29 +172,19 @@ inline fun Activity.setFrostColors(builder: ActivityThemeUtils.() -> Unit) { themer.theme(this) } -fun frostAnswers(action: Answers.() -> Unit) { - if (BuildConfig.DEBUG || !Prefs.analytics) return - Answers.getInstance().action() -} -fun frostAnswersCustom(name: String, vararg events: Pair<String, Any>) { - frostAnswers { - logCustom(CustomEvent("Frost $name").apply { - events.forEach { (key, value) -> - if (value is Number) putCustomAttribute(key, value) - else putCustomAttribute(key, value.toString()) - } - }) - } +fun frostEvent(name: String, vararg events: Pair<String, Any>) { + // todo bind + L.v { "Event: $name ${events.joinToString(", ")}" } } /** * Helper method to quietly keep track of throwable issues */ -fun Throwable?.logFrostAnswers(text: String) { +fun Throwable?.logFrostEvent(text: String) { val msg = if (this == null) text else "$text: $message" L.e { msg } - frostAnswersCustom("Errors", "text" to text, "message" to (this?.message ?: "NA")) + frostEvent("Errors", "text" to text, "message" to (this?.message ?: "NA")) } fun Activity.frostSnackbar(@StringRes text: Int, builder: Snackbar.() -> Unit = {}) = snackbar(text, Snackbar.LENGTH_LONG, frostSnackbar(builder)) @@ -291,10 +278,6 @@ inline val String?.isExplicitIntent fun Context.frostChangelog() = showChangelog(R.xml.frost_changelog, Prefs.textColor) { theme() - if (System.currentTimeMillis() - Prefs.installDate > 2592000000) { //show after 1 month - neutralText(R.string.kau_rate) - onNeutral { _, _ -> startPlayStoreLink(R.string.play_store_package_id) } - } } fun Context.frostUriFromFile(file: File): Uri = @@ -311,7 +294,8 @@ inline fun Context.sendFrostEmail(subjectId: String, crossinline builder: EmailB fun EmailBuilder.addFrostDetails() { addItem("Prev version", Prefs.prevVersionCode.toString()) - val proTag = if (IS_FROST_PRO) "TY" else "FP" + val proTag = "FO" +// if (IS_FROST_PRO) "TY" else "FP" addItem("Random Frost ID", "${Prefs.frostId}-$proTag") addItem("Locale", Locale.getDefault().displayName) } diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/iab/IABDialogs.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/iab/IABDialogs.kt deleted file mode 100644 index 15d707a9..00000000 --- a/app/src/main/kotlin/com/pitchedapps/frost/utils/iab/IABDialogs.kt +++ /dev/null @@ -1,95 +0,0 @@ -package com.pitchedapps.frost.utils.iab - -import android.app.Activity -import ca.allanwang.kau.utils.restart -import ca.allanwang.kau.utils.startLink -import ca.allanwang.kau.utils.startPlayStoreLink -import ca.allanwang.kau.utils.string -import com.crashlytics.android.answers.PurchaseEvent -import com.pitchedapps.frost.R -import com.pitchedapps.frost.activities.SettingsActivity -import com.pitchedapps.frost.utils.* - -/** - * Created by Allan Wang on 2017-06-30. - */ - -private fun playStoreLog(text: String) { - L.e(Throwable(text)) { "IAB Play Store Exception" } -} - -/** - * Properly restart an activity - */ -private fun Activity.playRestart() { - if (this is SettingsActivity) { - setResult(REQUEST_RESTART) - finish() - } else restart() -} - -fun Activity?.playStoreNoLongerPro() { - Prefs.pro = false - L.d { "IAB No longer pro" } - frostAnswers { - logPurchase(PurchaseEvent() - .putCustomAttribute("result", "no longer pro") - .putSuccess(false)) - } - if (this == null) return - materialDialogThemed { - title(R.string.uh_oh) - content(R.string.play_store_not_pro) - positiveText(R.string.reload) - dismissListener { - this@playStoreNoLongerPro.playRestart() - } - } -} - -fun Activity?.playStoreFoundPro() { - Prefs.pro = true - L.d { "Found pro" } - if (this == null) return - materialDialogThemed { - title(R.string.found_pro) - content(R.string.found_pro_desc) - positiveText(R.string.reload) - dismissListener { - this@playStoreFoundPro.playRestart() - } - } -} - -fun Activity.playStorePurchaseUnsupported() { - L.d { "Play store not found" } - materialDialogThemed { - title(R.string.uh_oh) - content(R.string.play_store_unsupported) - negativeText(R.string.kau_close) - positiveText(R.string.kau_play_store) - neutralText(R.string.paypal) - onPositive { _, _ -> startPlayStoreLink(R.string.play_store_package_id) } - onNeutral { _, _ -> startLink(string(R.string.dev_paypal)) } - } -} - -fun Activity.playStorePurchasedSuccessfully(key: String) { - L.d { "Play store purchased $key successfully" } - materialDialogThemed { - title(R.string.play_thank_you) - content(R.string.play_purchased_pro) - positiveText(R.string.kau_ok) - neutralText(R.string.kau_rate) - onNeutral { _, _ -> startPlayStoreLink(R.string.play_store_package_id) } - } -} - -fun Activity.purchaseRestored() { - L.d { "Purchase restored" } - materialDialogThemed { - title(R.string.play_thank_you) - content(R.string.purchases_restored_with_pro) - positiveText(R.string.kau_ok) - } -}
\ No newline at end of file diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/iab/IabBinder.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/iab/IabBinder.kt deleted file mode 100644 index 568127a2..00000000 --- a/app/src/main/kotlin/com/pitchedapps/frost/utils/iab/IabBinder.kt +++ /dev/null @@ -1,188 +0,0 @@ -package com.pitchedapps.frost.utils.iab - -import android.app.Activity -import android.content.Intent -import com.anjlab.android.iab.v3.BillingProcessor -import com.anjlab.android.iab.v3.TransactionDetails -import com.crashlytics.android.answers.PurchaseEvent -import com.pitchedapps.frost.BuildConfig -import com.pitchedapps.frost.utils.L -import com.pitchedapps.frost.utils.Prefs -import com.pitchedapps.frost.utils.frostAnswers -import com.pitchedapps.frost.utils.logFrostAnswers -import org.jetbrains.anko.doAsync -import org.jetbrains.anko.onComplete -import org.jetbrains.anko.uiThread -import java.lang.ref.WeakReference -import java.math.BigDecimal -import java.util.* - -/** - * Created by Allan Wang on 2017-07-22. - */ -private const val FROST_PRO = "frost_pro" - -/** - * Implemented pro checker with a hook for debug builds - * Use this when checking if the pro feature is enabled - */ -inline val IS_FROST_PRO: Boolean - get() = Prefs.pro || (BuildConfig.DEBUG && Prefs.debugPro) - -interface FrostBilling : BillingProcessor.IBillingHandler { - fun Activity.onCreateBilling() - fun onDestroyBilling() - fun purchasePro() - fun restorePurchases() - fun onActivityResultBilling(requestCode: Int, resultCode: Int, data: Intent?): Boolean -} - -abstract class IabBinder : FrostBilling { - - var bp: BillingProcessor? = null - lateinit var activityRef: WeakReference<Activity> - val activity - get() = activityRef.get() - - final override fun Activity.onCreateBilling() { - activityRef = WeakReference(this) - doAsync { - bp = BillingProcessor.newBillingProcessor(this@onCreateBilling, PUBLIC_BILLING_KEY, this@IabBinder) - bp?.initialize() - } - } - - override fun onDestroyBilling() { - activityRef.clear() - bp?.release() - bp = null - } - - override fun onBillingInitialized() = L.i { "IAB initialized" } - - override fun onPurchaseHistoryRestored() = L.d { "IAB restored" } - - override fun onProductPurchased(productId: String, details: TransactionDetails?) { - bp.doAsync { - L.i { "IAB $productId purchased" } - val listing = weakRef.get()?.getPurchaseListingDetails(productId) ?: return@doAsync - val currency = try { - Currency.getInstance(listing.currency) - } catch (e: Exception) { - null - } - frostAnswers { - logPurchase(PurchaseEvent().apply { - putItemId(productId) - putSuccess(true) - if (currency != null) { - putCurrency(currency) - putItemType(productId) - putItemPrice(BigDecimal.valueOf(listing.priceValue)) - } - }) - } - } - } - - override fun onBillingError(errorCode: Int, error: Throwable?) { - frostAnswers { - logPurchase(PurchaseEvent() - .putCustomAttribute("result", errorCode.toString()) - .putSuccess(false)) - } - error.logFrostAnswers("IAB error $errorCode") - } - - override fun onActivityResultBilling(requestCode: Int, resultCode: Int, data: Intent?): Boolean = bp?.handleActivityResult(requestCode, resultCode, data) - ?: false - - override fun purchasePro() { - val bp = this.bp - if (bp == null) { - frostAnswers { - logPurchase(PurchaseEvent() - .putCustomAttribute("result", "null bp") - .putSuccess(false)) - } - L.eThrow("IAB null bp on purchase attempt") - return - } - val a = activity ?: return - - if (!BillingProcessor.isIabServiceAvailable(a) || !bp.isInitialized || !bp.isOneTimePurchaseSupported) - a.playStorePurchaseUnsupported() - else - bp.purchase(a, FROST_PRO) - } - -} - -class IabSettings : IabBinder() { - - override fun onProductPurchased(productId: String, details: TransactionDetails?) { - super.onProductPurchased(productId, details) - activity?.playStorePurchasedSuccessfully(productId) - } - - override fun onBillingError(errorCode: Int, error: Throwable?) { - super.onBillingError(errorCode, error) - L.e { "Billing error $errorCode ${error?.message}" } - } - - /** - * Attempts to get pro, or launch purchase flow if user doesn't have it - */ - override fun restorePurchases() { - bp.doAsync { - val load = weakRef.get()?.loadOwnedPurchasesFromGoogle() ?: return@doAsync - L.d { "IAB settings load from google $load" } - uiThread { - if (!(weakRef.get()?.isPurchased(FROST_PRO) ?: return@uiThread)) { - if (Prefs.pro) activity.playStoreNoLongerPro() - else purchasePro() - } else { - if (!Prefs.pro) activity.playStoreFoundPro() - else activity?.purchaseRestored() - } - } - } - } -} - -class IabMain : IabBinder() { - - override fun onBillingInitialized() { - super.onBillingInitialized() - restorePurchases() - } - - override fun onPurchaseHistoryRestored() { - super.onPurchaseHistoryRestored() - restorePurchases() - } - - private var restored = false - - /** - * Checks for pro and only does so once - * A null check is added but it should never happen - * given that this is only called with bp is ready - */ - override fun restorePurchases() { - if (restored || bp == null) return - restored = true - bp.doAsync { - val load = weakRef.get()?.loadOwnedPurchasesFromGoogle() ?: false - L.d { "IAB main load from google $load" } - onComplete { - if (weakRef.get()?.isPurchased(FROST_PRO) != true) { - if (Prefs.pro) activity.playStoreNoLongerPro() - } else { - if (!Prefs.pro) activity.playStoreFoundPro() - } - onDestroyBilling() - } - } - } -}
\ No newline at end of file diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/iab/Key.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/iab/Key.kt deleted file mode 100644 index a21d8670..00000000 --- a/app/src/main/kotlin/com/pitchedapps/frost/utils/iab/Key.kt +++ /dev/null @@ -1,33 +0,0 @@ -package com.pitchedapps.frost.utils.iab - -/** - * Created by Allan Wang on 2017-06-23. - * - * NOTE - * - * Since this is an open source project and all other components are essentially public, - * I have decided to add the keys here too; - * they can be reverse engineered relatively easily since they are constants anyways. - * This is the public billing key from the play store - */ -private const val play_key_1 = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgyTZS" -private const val play_key_2 = "K9Bd3ALpr9KJUsVGczP9CcPelWkdnJfNrrzu1EztJyrHRsGQ4" -private const val play_key_3 = "QVWY9NZwc6Nrk9qdJlEdr8AJAxJ+JiwUqsj3/TxxUYm/G7q8Z" -private const val play_key_4 = "7zo8jSkYZyzqwoAl2PDx2kleI4sZLkhCRLyE6dGQEZQmvJ6kk" -private const val play_key_5 = "W12Gz3FagAM5luRGsoWZj40pJItUrGJA9euMWq4rMhVZv4mVk" -private const val play_key_6 = "KFJB9/vhF/XGz7txpYlFxMESzXuKsbEDKmKCHzvySLq8Ki4N9" -private const val play_key_7 = "DzbgUiw+VzA2KpSVp66JH3GEU8egO8i9SvAWeCPikuolooRVh" -private const val play_key_8 = "jwfBV7gDxZztoLuvmQU6kXvCwRnRa+mkfUnBKKLkH1QIDAQAB" - -internal val PUBLIC_BILLING_KEY: String by lazy { - StringBuilder() - .append(play_key_1) - .append(play_key_2) - .append(play_key_3) - .append(play_key_4) - .append(play_key_5) - .append(play_key_6) - .append(play_key_7) - .append(play_key_8) - .toString() -}
\ No newline at end of file diff --git a/app/src/main/kotlin/com/pitchedapps/frost/web/DebugWebView.kt b/app/src/main/kotlin/com/pitchedapps/frost/web/DebugWebView.kt index 4ac9e600..4c4e5525 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/web/DebugWebView.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/web/DebugWebView.kt @@ -15,7 +15,6 @@ import com.pitchedapps.frost.injectors.jsInject import com.pitchedapps.frost.utils.L import com.pitchedapps.frost.utils.Prefs import com.pitchedapps.frost.utils.createFreshFile -import com.pitchedapps.frost.utils.iab.IS_FROST_PRO import com.pitchedapps.frost.utils.isFacebookUrl import org.jetbrains.anko.withAlpha import java.io.File @@ -85,8 +84,8 @@ class DebugWebView @JvmOverloads constructor( CssAssets.ROUND_ICONS.maybe(Prefs.showRoundedIcons), CssHider.CORE, CssHider.COMPOSER.maybe(!Prefs.showComposer), - CssHider.PEOPLE_YOU_MAY_KNOW.maybe(!Prefs.showSuggestedFriends && IS_FROST_PRO), - CssHider.SUGGESTED_GROUPS.maybe(!Prefs.showSuggestedGroups && IS_FROST_PRO), + CssHider.PEOPLE_YOU_MAY_KNOW.maybe(!Prefs.showSuggestedFriends), + CssHider.SUGGESTED_GROUPS.maybe(!Prefs.showSuggestedGroups), Prefs.themeInjector, CssHider.NON_RECENT.maybe((url?.contains("?sk=h_chr") ?: false) && Prefs.aggressiveRecents)) diff --git a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClients.kt b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClients.kt index d4e1c103..f1d03f35 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClients.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClients.kt @@ -10,7 +10,6 @@ import com.pitchedapps.frost.facebook.FB_URL_BASE import com.pitchedapps.frost.facebook.FbItem import com.pitchedapps.frost.injectors.* import com.pitchedapps.frost.utils.* -import com.pitchedapps.frost.utils.iab.IS_FROST_PRO import com.pitchedapps.frost.views.FrostWebView import io.reactivex.subjects.Subject import org.jetbrains.anko.withAlpha @@ -67,14 +66,14 @@ open class FrostWebViewClient(val web: FrostWebView) : BaseWebViewClient() { CssAssets.ROUND_ICONS.maybe(Prefs.showRoundedIcons), CssHider.CORE, CssHider.COMPOSER.maybe(!Prefs.showComposer), - CssHider.PEOPLE_YOU_MAY_KNOW.maybe(!Prefs.showSuggestedFriends && IS_FROST_PRO), - CssHider.SUGGESTED_GROUPS.maybe(!Prefs.showSuggestedGroups && IS_FROST_PRO), + CssHider.PEOPLE_YOU_MAY_KNOW.maybe(!Prefs.showSuggestedFriends), + CssHider.SUGGESTED_GROUPS.maybe(!Prefs.showSuggestedGroups), Prefs.themeInjector, CssHider.NON_RECENT.maybe((web.url?.contains("?sk=h_chr") ?: false) && Prefs.aggressiveRecents), JsAssets.DOCUMENT_WATCHER, JsAssets.CLICK_A, - CssHider.ADS.maybe(!Prefs.showFacebookAds && IS_FROST_PRO), + CssHider.ADS.maybe(!Prefs.showFacebookAds), JsAssets.CONTEXT_A, JsAssets.HEADER_HIDER, JsAssets.MEDIA) diff --git a/app/src/main/res/values-de-rDE/strings_play_store.xml b/app/src/main/res/values-de-rDE/strings_play_store.xml index ba3dec2d..406b6f21 100644 --- a/app/src/main/res/values-de-rDE/strings_play_store.xml +++ b/app/src/main/res/values-de-rDE/strings_play_store.xml @@ -1,20 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="no"?> <!--Generated by crowdin.com--> <resources> - <string name="found_pro">Frost Pro gefunden!</string> - <string name="found_pro_desc">Sieht so aus als hättest du Frost Pro! Die App wird neu nun neu gestartet damit du alle großartigen Pro Features nutzen kannst!</string> - <string name="play_purchased_pro">Vielen Dank für Ihre Unterstützung! Genießen Sie alle Funktionen in Frost.\n\n -Falls Sie diese App mögen, Bewerten Sie die App bitte und unterstützen Sie dieses open-source Projekt.\n\n -Wenn Sie Fragen haben, bitte zögern Sie nicht mich zu kontaktieren!</string> - <string name="play_store_not_pro">Es scheint, dass du ein Pro-Benutzer bist, aber wir konnten Ihren Kauf nicht bestätigen. Wenn dieser Fehler weiterhin auftritt, versuchen Sie den Play Store-Cache zu leeren und eine Neuinstallation der App.</string> - <string name="play_store_unsupported">Es scheint als könnten sie mit dieser App-Version nicht die Pro Version kaufen. Bitte installieren Sie die Play Store Version wenn dieses Problem weiterhin bleibt. \n -Wenn sie ohne zusätzliche Features spenden wollen, können Sie dies über PayPal tun.</string> - <string name="play_thank_you">Vielen Dank!</string> - <string name="purchases_restored">Einkäufe wiederhergestellt</string> - <string name="purchases_restored_with_pro">Frost Pro wurde wiederhergestellt. Genießen Sie die Funktionen!</string> - <string name="purchases_restored_without_pro">Es scheint so, als hätten sie keine Pro Version. Wenn dies ein dauerhaftes Problem ist, kontaktieren Sie mich bitte und senden mir einen Beleg des Kaufes.</string> - <string name="restoring_purchases">In-App Einkäufe werden wiederhergestellt…</string> - <string name="custom_pro">Benutzerdefiniert [Pro]</string> - <string name="uh_oh">Huch</string> + <string name="restoring_purchases">In-App Einkäufe werden wiederhergestellt…</string> + <string name="uh_oh">Huch</string> <string name="reload">Neu laden</string> </resources> diff --git a/app/src/main/res/values-de-rDE/strings_pref_feed.xml b/app/src/main/res/values-de-rDE/strings_pref_feed.xml index 62dcde6a..7b65c521 100644 --- a/app/src/main/res/values-de-rDE/strings_pref_feed.xml +++ b/app/src/main/res/values-de-rDE/strings_pref_feed.xml @@ -7,8 +7,7 @@ <string name="aggressive_recents_desc">Filtert alte, zusätzliche Post von Facebook\'s originalen Neuigkeiten heraus. Deaktivieren falls der Feed leer ist.</string> <string name="composer">Status Composer</string> <string name="composer_desc">Zeige den Status Composer im Feed</string> - <string name="pro_features">Pro Funktionen</string> - <string name="suggested_friends">Empfohlene Freunde</string> + <string name="suggested_friends">Empfohlene Freunde</string> <string name="suggested_friends_desc">Zeige \"Leute die du vielleicht kennst\" im Feed</string> <string name="suggested_groups">Empfohlene Gruppen</string> <string name="suggested_groups_desc">Zeige \"Empfohlene Gruppen\" im Feed</string> diff --git a/app/src/main/res/values-de-rDE/strings_preferences.xml b/app/src/main/res/values-de-rDE/strings_preferences.xml index 5c9a822e..cef49564 100644 --- a/app/src/main/res/values-de-rDE/strings_preferences.xml +++ b/app/src/main/res/values-de-rDE/strings_preferences.xml @@ -12,9 +12,7 @@ <string name="network_desc">Definieren Sie die Optionen, beeinflussen des getakten Netzwerks</string> <string name="experimental">Experimentell</string> <string name="experimental_desc">Aktiviert frühzeitigen Zugriff auf instabile Funktionen</string> - <string name="get_pro">Kaufe Frost Pro</string> - <string name="get_pro_desc">Käufe oder Pro wiederherstellen und entfalte das volle Potential von Frost! Enthält Ad Blocker, benutzerdefinierte Designs, und vieles mehr!</string> - <string name="about_frost">Über Frost für Facebook</string> + <string name="about_frost">Über Frost für Facebook</string> <string name="about_frost_desc">Version, Credits und FAQs</string> <string name="help_translate">Hilf beim Übersetzen</string> <string name="help_translate_desc">Frost wird durch crowdin übersetzt. Helfe beim Übersetzen, wenn du es in deiner Sprache willst!</string> diff --git a/app/src/main/res/values-dv-rMV/strings.xml b/app/src/main/res/values-dv-rMV/strings.xml new file mode 100644 index 00000000..df3dc342 --- /dev/null +++ b/app/src/main/res/values-dv-rMV/strings.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <string name="skip">Skip</string> +</resources>
\ No newline at end of file diff --git a/app/src/main/res/values-es-rES/strings_play_store.xml b/app/src/main/res/values-es-rES/strings_play_store.xml index 754e945b..7a3cae9b 100644 --- a/app/src/main/res/values-es-rES/strings_play_store.xml +++ b/app/src/main/res/values-es-rES/strings_play_store.xml @@ -1,17 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="no"?> <!--Generated by crowdin.com--> <resources> - <string name="found_pro">Frost Pro encontrado!</string> - <string name="found_pro_desc">Parece que tienes Frost Pro! Reiniciaremos la app para que puedas disfrutar de todas las fantásticas características!</string> - <string name="play_purchased_pro">Gracias por tu apoyo! Disfruta de todas las características de Frost.\n\nSi te gusta esta app, por favor considera calificarla y apoyar este proyecto de código abierto.\n\nSi tienes algún comentario, no dudes en contactarme!</string> - <string name="play_store_not_pro">Parece que eres un usuario pro, pero no hemos podido recuperar la información de compra. Si el error persiste, por favor intenta limpiar la caché de la Play Store o reinstala la app.</string> - <string name="play_store_unsupported">Esta versión de la app no fue diseñada para compras. Por favor vuelve a instalarla desde Google Play Store si persiste el error.\nSi deseas donar, sin obtener características adicionales, puedes hacerlo vía PayPal.</string> - <string name="play_thank_you">Gracias!</string> - <string name="purchases_restored">Compras restauradas</string> - <string name="purchases_restored_with_pro">Frost Pro ha sido restaurado. ¡Disfrutalo!</string> - <string name="purchases_restored_without_pro">Parece que esta no es la versión Pro. Si este problema persiste, contactame y adjuntame tu recibo de compra.</string> - <string name="restoring_purchases">Restaurando compras…</string> - <string name="custom_pro">Personalizado [Pro]</string> - <string name="uh_oh">Oh oh</string> + <string name="restoring_purchases">Restaurando compras…</string> + <string name="uh_oh">Oh oh</string> <string name="reload">Recargar</string> </resources> diff --git a/app/src/main/res/values-es-rES/strings_pref_feed.xml b/app/src/main/res/values-es-rES/strings_pref_feed.xml index 0165ed23..87292f3a 100644 --- a/app/src/main/res/values-es-rES/strings_pref_feed.xml +++ b/app/src/main/res/values-es-rES/strings_pref_feed.xml @@ -7,8 +7,7 @@ <string name="aggressive_recents_desc">Filtra de manera adicional las publicaciones más antiguas de Facebook de las noticias recientes. Deshabilita esta opción si el feed se encuentra vacio.</string> <string name="composer">Redactar estado</string> <string name="composer_desc">Mostrar escritor de estado en el feed</string> - <string name="pro_features">Características pro</string> - <string name="suggested_friends">Amigos sugeridos</string> + <string name="suggested_friends">Amigos sugeridos</string> <string name="suggested_friends_desc">Mostrar \"Gente que quizá conozcas\" en el feed</string> <string name="suggested_groups">Grupos sugeridos</string> <string name="suggested_groups_desc">Mostrar \"grupos sugeridos\" en el feed</string> diff --git a/app/src/main/res/values-es-rES/strings_preferences.xml b/app/src/main/res/values-es-rES/strings_preferences.xml index d1d782eb..db1125bb 100644 --- a/app/src/main/res/values-es-rES/strings_preferences.xml +++ b/app/src/main/res/values-es-rES/strings_preferences.xml @@ -12,9 +12,7 @@ <string name="network_desc">Define las opciones que afectan las redes limitadas</string> <string name="experimental">Funciones Experimentales</string> <string name="experimental_desc">Permite el acceso previo a características potencialmente inestables</string> - <string name="get_pro">Obtener Frost Pro</string> - <string name="get_pro_desc">Compra o restaura Frost Pro y descubre todo el potencial de Frost! Incluye bloqueador de publicidad, temas personalizados, configuraciones avanzadas y mucho más!</string> - <string name="about_frost">Acerca de Frost for Facebook</string> + <string name="about_frost">Acerca de Frost for Facebook</string> <string name="about_frost_desc">Versión, Créditos y Preguntas Frecuentes</string> <string name="help_translate">Ayúdanos a traducir</string> <string name="help_translate_desc">Frost se traduce a través de Crowdin. ¡Contribuye si lo quieres en tu idioma!</string> diff --git a/app/src/main/res/values-es/strings_pref_feed.xml b/app/src/main/res/values-es/strings_pref_feed.xml index 9d81a88b..679061bf 100644 --- a/app/src/main/res/values-es/strings_pref_feed.xml +++ b/app/src/main/res/values-es/strings_pref_feed.xml @@ -7,8 +7,7 @@ <string name="aggressive_recents_desc">Filtra de manera adicional las publicaciones más antiguas de Facebook de las noticias recientes. Deshabilita esta opción si el feed se encuentra vacio.</string> <string name="composer">Escritor de Estado</string> <string name="composer_desc">Mostrar escritor de estado en el feed</string> - <string name="pro_features">Características Pro</string> - <string name="suggested_friends">Sugerencias de Amigos</string> + <string name="suggested_friends">Sugerencias de Amigos</string> <string name="suggested_friends_desc">Mostrar \"Gente que quizá conozcas\" en el feed</string> <string name="suggested_groups">Grupos sugeridos</string> <string name="suggested_groups_desc">Mostrar \"grupos sugeridos\" en el feed</string> diff --git a/app/src/main/res/values-fr-rFR/strings_play_store.xml b/app/src/main/res/values-fr-rFR/strings_play_store.xml index 79525686..5e02edcb 100644 --- a/app/src/main/res/values-fr-rFR/strings_play_store.xml +++ b/app/src/main/res/values-fr-rFR/strings_play_store.xml @@ -1,17 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="no"?> <!--Generated by crowdin.com--> <resources> - <string name="found_pro">Trouvé Frost Pro!</string> - <string name="found_pro_desc">On dirait que vous avez Frost Pro! Nous allons recharger l’app pour que vous puissiez profiter des fonctionnalités impressionnantes!</string> - <string name="play_purchased_pro">Merci pour votre soutien! Profitez de toutes les fonctionnalités dans Frost.\n\nSi vous aimez cette application, veuillez considérer la noter et soutenir ce projet open source.\n\nSi vous avez des commentaires, n’hésitez pas à me contacter!</string> - <string name="play_store_not_pro">Il semble que vous êtes un utilisateur pro, mais nous n\'avons pas trouvé vos infos d’achat. Si cette erreur persiste, s’il vous plaît essayez de vider la mémoire cache du Play Store et de réinstaller l’application.</string> - <string name="play_store_unsupported">Il semble que cette version de l’app ne peut pas acheter pro. S’il vous plaît réinstallez depuis le Play Store s’il s’agit d’un problème persistant. \nSi vous souhaitez faire un don sans aucune fonctionnalités supplémentaires, vous pouvez le faire par le biais de PayPal.</string> - <string name="play_thank_you">Merci !</string> - <string name="purchases_restored">Achats restaurés</string> - <string name="purchases_restored_with_pro">Frost Pro a été restauré. Profitez bien des fonctionnalités !</string> - <string name="purchases_restored_without_pro">Il semble que vous n’avez pas la version pro. S’il s’agit d’un problème persistant, contactez-moi et joignez une preuve d\'achat.</string> - <string name="restoring_purchases">Restauration des achats…</string> - <string name="custom_pro">Personnalisé [Pro]</string> - <string name="uh_oh">Oups</string> + <string name="restoring_purchases">Restauration des achats…</string> + <string name="uh_oh">Oups</string> <string name="reload">Recharger</string> </resources> diff --git a/app/src/main/res/values-fr-rFR/strings_pref_feed.xml b/app/src/main/res/values-fr-rFR/strings_pref_feed.xml index 44f18bd8..2d434566 100644 --- a/app/src/main/res/values-fr-rFR/strings_pref_feed.xml +++ b/app/src/main/res/values-fr-rFR/strings_pref_feed.xml @@ -7,8 +7,7 @@ <string name="aggressive_recents_desc">Filtrer les vieilles publications additionnelles du fil d\'actualité les plus récentes de Facebook. Désactivez cette option si votre fil d\'actualités est vide.</string> <string name="composer">Compositeur de statut</string> <string name="composer_desc">Montrer le compositeur de statut dans le fil d\'actualité</string> - <string name="pro_features">Fonctionnalités Pro</string> - <string name="suggested_friends">Amis suggérés</string> + <string name="suggested_friends">Amis suggérés</string> <string name="suggested_friends_desc">Afficher les «Personnes que vous pouvez connaître» dans le fil d\'actualité</string> <string name="suggested_groups">Groupes Suggérés</string> <string name="suggested_groups_desc">Afficher les «Groupes Suggérés» dans le fil d\'actualité</string> diff --git a/app/src/main/res/values-fr-rFR/strings_preferences.xml b/app/src/main/res/values-fr-rFR/strings_preferences.xml index 8802ca31..f40e5363 100644 --- a/app/src/main/res/values-fr-rFR/strings_preferences.xml +++ b/app/src/main/res/values-fr-rFR/strings_preferences.xml @@ -12,9 +12,7 @@ <string name="network_desc">Définir les options qui affectent les réseaux limités</string> <string name="experimental">Expérimental</string> <string name="experimental_desc">Accès en avant première aux fonctionnalités potentiellement instables</string> - <string name="get_pro">Obtenir Frost Pro</string> - <string name="get_pro_desc">Acheter ou restaurer pro et libérer tout le potentiel de Frost! Comprend des bloqueurs de publicités, des thèmes personnalisés, des configurations complètes et bien plus encore à venir !</string> - <string name="about_frost">À propos de Frost pour Facebook</string> + <string name="about_frost">À propos de Frost pour Facebook</string> <string name="about_frost_desc">Version, crédits et FAQ</string> <string name="help_translate">Aider à traduire</string> <string name="help_translate_desc">Frost est traduit grâce à crowdin. Contribuez si vous le voulez dans votre langue !</string> diff --git a/app/src/main/res/values-gl-rES/strings_play_store.xml b/app/src/main/res/values-gl-rES/strings_play_store.xml index 880d368b..eecb456d 100644 --- a/app/src/main/res/values-gl-rES/strings_play_store.xml +++ b/app/src/main/res/values-gl-rES/strings_play_store.xml @@ -1,18 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="no"?> <!--Generated by crowdin.com--> <resources> - <string name="found_pro">Frost Pro detectado!</string> - <string name="found_pro_desc">Semella que tes Frost Pro! Volveremos cargar a aplicación e así poderás desfrutar de fantásticas funcionalidades!</string> - <string name="play_purchased_pro">Grazas polo teu apoio! Desfruta de todas as funcionalidades de Frost.\n\nSe che gusta a aplicación, considera a opción de valorala e apoiar este proxecto de código aberto.\n\nSe tes algún comentario, non dubides en transmitírnolo!</string> - <string name="play_store_not_pro">Ao parecer es un usuario premium, mais non conseguimos atopar a información da túa compra. Se persiste o erro, limpa a caché da Play Store e volve instalar a aplicación.</string> - <string name="play_store_unsupported">Parece que desde esta versión da aplicación non se pode adquirir a Pro. Por favor, volve instalala desde a Play Store se persiste o problema. - \nSe queres facer unha doazón, sen obter funcionalidades adicionais, podes utilizar PayPal.</string> - <string name="play_thank_you">Grazas!</string> - <string name="purchases_restored">Compras restauradas</string> - <string name="purchases_restored_with_pro">Frost Pro foi restaurado. Utiliza as súas funcionalidades!</string> - <string name="purchases_restored_without_pro">Semella que non tes a versión Pro. Se persiste o problema, contacta comigo e anexa o teu recibo de compra.</string> - <string name="restoring_purchases">Restaurando compras…</string> - <string name="custom_pro">[Pro] personalizado</string> - <string name="uh_oh">Vaites!</string> + <string name="restoring_purchases">Restaurando compras…</string> + <string name="uh_oh">Vaites!</string> <string name="reload">Volver cargar</string> </resources> diff --git a/app/src/main/res/values-gl-rES/strings_pref_feed.xml b/app/src/main/res/values-gl-rES/strings_pref_feed.xml index 8d579358..0a46f286 100644 --- a/app/src/main/res/values-gl-rES/strings_pref_feed.xml +++ b/app/src/main/res/values-gl-rES/strings_pref_feed.xml @@ -7,8 +7,7 @@ <string name="aggressive_recents_desc">Filtra as publicacións máis antigas do Facebook daquelas máis recentes. Desactiva esta opción se a canle se atopa baleira.</string> <string name="composer">Editor de estado</string> <string name="composer_desc">Mostra o editor de estado na canle</string> - <string name="pro_features">Funcionalidades Pro</string> - <string name="suggested_friends">Amizades suxeridas</string> + <string name="suggested_friends">Amizades suxeridas</string> <string name="suggested_friends_desc">Mostra persoas que quizais coñezas na canle</string> <string name="suggested_groups">Grupos suxeridos</string> <string name="suggested_groups_desc">Suxire grupos na canle</string> diff --git a/app/src/main/res/values-gl-rES/strings_preferences.xml b/app/src/main/res/values-gl-rES/strings_preferences.xml index 5070ed93..6389d5c8 100644 --- a/app/src/main/res/values-gl-rES/strings_preferences.xml +++ b/app/src/main/res/values-gl-rES/strings_preferences.xml @@ -12,9 +12,7 @@ <string name="network_desc">Define as opcións que afectan ás redes limitadas</string> <string name="experimental">Funcións experimentais</string> <string name="experimental_desc">Permite o acceso previo a funcionalidades en proba aínda inestables</string> - <string name="get_pro">Obter Frost Pro</string> - <string name="get_pro_desc">Merca ou restaura a versión Pro e desbloquea todas as funcionalidades de Frost! Inclúe bloqueadores de anuncios, temas personalizables, configuración avanzada e moito máis!</string> - <string name="about_frost">Acerca de Frost para Facebook</string> + <string name="about_frost">Acerca de Frost para Facebook</string> <string name="about_frost_desc">Versión, créditos e preguntas frecuentes</string> <string name="help_translate">Axuda a traducir</string> <string name="help_translate_desc">Frost tradúcese a través de Crowdin. Bota unha man se o queres ver no teu idioma!</string> diff --git a/app/src/main/res/values-in-rID/strings_play_store.xml b/app/src/main/res/values-in-rID/strings_play_store.xml index 2d33d7a2..7319b605 100644 --- a/app/src/main/res/values-in-rID/strings_play_store.xml +++ b/app/src/main/res/values-in-rID/strings_play_store.xml @@ -1,18 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="no"?> <!--Generated by crowdin.com--> <resources> - <string name="found_pro">Frost Pro Ditemukan!</string> - <string name="found_pro_desc">Sepertinya Anda memiliki frost pro! Kami akan memuat ulang aplikasi sehingga Anda dapat menikmati fitur mengagumkan!</string> - <string name="play_purchased_pro">Terima kasih atas dukungan Anda! Nikmati semua fitur di Frost.\n\nJika Anda menyukai aplikasi ini, Silahkan menilik nilai dan mendukung proyek sumber terbuka ini.\n\nJika Anda memiliki komentar, silahkan jangan ragu untuk menghubungi saya!</string> - <string name="play_store_not_pro">Sepertinya Anda pengguna pro, tapi kami tidak bisa menemukan informasi pembelian Anda. Jika kesalahan ini terus berlanjut, silahkan coba bersihkan cache Play Store dan instal ulang aplikasi.</string> - <string name="play_store_unsupported">Sepertinya ini aplikasi versi tidak bisa membeli pro. Silahkan instal ulang dari play store jika ini adalah masalah yang terus-menerus. - \nJika Anda ingin menyumbang tanpa fitur tambahan, Anda dapat melakukannya melalui PayPal.</string> - <string name="play_thank_you">Terima Kasih!</string> - <string name="purchases_restored">Pembelian Dipulihkan</string> - <string name="purchases_restored_with_pro">Frost Pro sudah dipulihkan. Nikmati fitur!</string> - <string name="purchases_restored_without_pro">Sepertinya Anda tidak memiliki pro. jika ini ada masalah yang terus-menerus, hubungi saya dan lampirkan bukti pembelian Anda.</string> - <string name="restoring_purchases">Memulihkan pembelian…</string> - <string name="custom_pro">[Pro] Kustom</string> - <string name="uh_oh">Uh Oh</string> + <string name="restoring_purchases">Memulihkan pembelian…</string> + <string name="uh_oh">Uh Oh</string> <string name="reload">Muat Ulang</string> </resources> diff --git a/app/src/main/res/values-in-rID/strings_pref_feed.xml b/app/src/main/res/values-in-rID/strings_pref_feed.xml index 4306d8b1..5a801dad 100644 --- a/app/src/main/res/values-in-rID/strings_pref_feed.xml +++ b/app/src/main/res/values-in-rID/strings_pref_feed.xml @@ -7,8 +7,7 @@ <string name="aggressive_recents_desc">Saring postingan lama tambahan dari umpan yang terbaru Facebook. Nonaktifkan ini jika Umpan Anda kosong.</string> <string name="composer">Komposer Status</string> <string name="composer_desc">Tampilkan komposer status dalam umpan</string> - <string name="pro_features">Fitur Pro</string> - <string name="suggested_friends">Teman yang Disarankan</string> + <string name="suggested_friends">Teman yang Disarankan</string> <string name="suggested_friends_desc">Tampilkan \"Orang yang mungkin dikenal\" dalam umpan</string> <string name="suggested_groups">Grup yang Disarankan</string> <string name="suggested_groups_desc">Tampilkan \"Grup yang disarankan\" pada Umpan</string> diff --git a/app/src/main/res/values-in-rID/strings_preferences.xml b/app/src/main/res/values-in-rID/strings_preferences.xml index 25013d63..6a8b3caf 100644 --- a/app/src/main/res/values-in-rID/strings_preferences.xml +++ b/app/src/main/res/values-in-rID/strings_preferences.xml @@ -12,8 +12,6 @@ <string name="network_desc">Menentukan pilihan yang mempengaruhi jaringan meteran</string> <string name="experimental">Eksperimental</string> <string name="experimental_desc">Aktifkan akses awal ke fitur yang berpotensi tidak stabil</string> - <string name="get_pro">Mendapatkan Frost Pro</string> - <string name="get_pro_desc">Membeli atau mengembalikan pro dan membukan potensi penuh dai Frost! termasuk pemblokir iklan, tema kustom, konfigurasi penuh, dan banyak lagi untuk mendatang!</string> <string name="about_frost">Tentang Frost for Facebook</string> <string name="about_frost_desc">Versi, Reputasi, dan Tanya Jawab</string> <string name="help_translate">Bantuan Terjemahan</string> diff --git a/app/src/main/res/values-it-rIT/strings_play_store.xml b/app/src/main/res/values-it-rIT/strings_play_store.xml index 4ac14487..6c886eb3 100644 --- a/app/src/main/res/values-it-rIT/strings_play_store.xml +++ b/app/src/main/res/values-it-rIT/strings_play_store.xml @@ -1,17 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="no"?> <!--Generated by crowdin.com--> <resources> - <string name="found_pro">Frost Pro Trovato!</string> - <string name="found_pro_desc">Sembra che tu abbia Frost Pro! Ricaricheremo l\'app così che possa sfruttare fantastiche funzioni!</string> - <string name="play_purchased_pro">Grazie per il tuo supporto! Goditi tutte le funzioni di Frost.\n\nSe ti piace l\'app, per favore vota e supporta questo progetto open source.\n\nSe hai qualche commento, non esitare e contattami!</string> - <string name="play_store_not_pro">Sembra che tu sia un utente Pro, ma non siamo riusciti a trovare le tue informazioni sull\'acquisto. Se l\'errore persiste per favore prova a pulire la cache del Play Store e reinstallare l\'app.</string> - <string name="play_store_unsupported">Sembra che questa versione dell\'app non sia in grado di completare l\'acquisto. Reinstalla l\'app dal Play Store se l\'errore persiste.\nSe vorresti donare senza ricevere funzionalità aggiuntive, puoi farlo tramite PayPal.</string> - <string name="play_thank_you">Grazie!</string> - <string name="purchases_restored">Acquisto Ripristinato</string> - <string name="purchases_restored_with_pro">Frost Pro è stato ripristinato. Goditi le funzioni!</string> - <string name="purchases_restored_without_pro">Sembra che tu non abbia la versione pro. Se pensi che sia un errore, contattami ed allega la tua ricevuta di pagamento.</string> - <string name="restoring_purchases">Ripristino acquisti…</string> - <string name="custom_pro">Personalizzato [Pro]</string> - <string name="uh_oh">Uh Oh</string> + <string name="restoring_purchases">Ripristino acquisti…</string> + <string name="uh_oh">Uh Oh</string> <string name="reload">Ricarica</string> </resources> diff --git a/app/src/main/res/values-it-rIT/strings_pref_feed.xml b/app/src/main/res/values-it-rIT/strings_pref_feed.xml index 7d0aa376..c8a330da 100644 --- a/app/src/main/res/values-it-rIT/strings_pref_feed.xml +++ b/app/src/main/res/values-it-rIT/strings_pref_feed.xml @@ -7,8 +7,7 @@ <string name="aggressive_recents_desc">Filtra ulteriori post vecchi dalla sezione originale più recenti di Facebook. Disabilita se il tuo feed è vuoto.</string> <string name="composer">Compositore di Stato</string> <string name="composer_desc">Mostra la casella per comporre uno stato nelle Notizie</string> - <string name="pro_features">Opzioni Pro</string> - <string name="suggested_friends">Amici consigliati</string> + <string name="suggested_friends">Amici consigliati</string> <string name="suggested_friends_desc">Mostra \"Persone che potresti conoscere\" nelle notizie</string> <string name="suggested_groups">Gruppi suggeriti</string> <string name="suggested_groups_desc">Mostra \"Gruppi suggeriti\" nelle notizie</string> diff --git a/app/src/main/res/values-it-rIT/strings_preferences.xml b/app/src/main/res/values-it-rIT/strings_preferences.xml index 98d8e133..3cc945e6 100644 --- a/app/src/main/res/values-it-rIT/strings_preferences.xml +++ b/app/src/main/res/values-it-rIT/strings_preferences.xml @@ -12,9 +12,7 @@ <string name="network_desc">Definisci le opzioni che influiscono sulle reti a consumo</string> <string name="experimental">Sperimentali</string> <string name="experimental_desc">Abilita accesso a delle funzionalità potenzialmente pericolose</string> - <string name="get_pro">Acquista Frost Pro</string> - <string name="get_pro_desc">Acquista o ripristina versione pro e sblocca tutte le funzionalità di Frost incluso rimozione annunci, temi personalizzati, configurazioni complete e molto altro ancora!</string> - <string name="about_frost">Riguardo Frost per Facebook</string> + <string name="about_frost">Riguardo Frost per Facebook</string> <string name="about_frost_desc">Versione, Credite e FAQ</string> <string name="help_translate">Aiuta a Tradurre</string> <string name="help_translate_desc">Frost è tradotto attraverso la crowdin. Contribuisci, se lo vuoi nella tua lingua!</string> diff --git a/app/src/main/res/values-it/strings_pref_feed.xml b/app/src/main/res/values-it/strings_pref_feed.xml index 7e814f28..a7479c4a 100644 --- a/app/src/main/res/values-it/strings_pref_feed.xml +++ b/app/src/main/res/values-it/strings_pref_feed.xml @@ -7,8 +7,7 @@ <string name="aggressive_recents_desc">Filtra ulteriori post vecchi dalla sezione originale più recenti di Facebook. Disabilita se il tuo feed è vuoto.</string> <string name="composer">Compositore di Stato</string> <string name="composer_desc">Mostra la casella per comporre uno stato nelle Notizie</string> - <string name="pro_features">Funzionalità Pro</string> - <string name="suggested_friends">Amici Suggeriti</string> + <string name="suggested_friends">Amici Suggeriti</string> <string name="suggested_friends_desc">Mostra \"Persone Che Potresti Conoscere\" nel feed</string> <string name="suggested_groups">Gruppi Suggeriti</string> <string name="suggested_groups_desc">Mostra \"Gruppi Suggeriti\" nel feed</string> diff --git a/app/src/main/res/values-ko-rKR/strings_play_store.xml b/app/src/main/res/values-ko-rKR/strings_play_store.xml index 5c4dc036..0d5ca329 100644 --- a/app/src/main/res/values-ko-rKR/strings_play_store.xml +++ b/app/src/main/res/values-ko-rKR/strings_play_store.xml @@ -1,17 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="no"?> <!--Generated by crowdin.com--> <resources> - <string name="found_pro">Frost Pro 발견!</string> - <string name="found_pro_desc">Frost Pro 를 소유하고 계신 것 같습니다! 앱이 다시 로드되면 놀라운 기능들을 사용하실 수 있습니다!</string> - <string name="play_purchased_pro">지원에 감사드립니다! Frost 의 모든 기능을 이용하세요.\n\n만약 이 앱이 유용하다면, 평점을 매기고 오픈 소스 프로젝트를 지원해 주세요.\n\n의견이 있다면, 연락을 주저하지 마세요!</string> - <string name="play_store_not_pro">Pro 사용자이지만 구매 정보를 찾을 수 없습니다. 이 오류가 지속된다면 플레이 스토어의 캐시를 지우고 앱을 재설치 해 보세요.</string> - <string name="play_store_unsupported">이 앱 버전에서는 프로 버전을 구매할 수 없습니다. 문제가 지속된다면 플레이 스토어에서 재설치 해 보세요. \n추가 기능 없이 기부하고 싶으시다면 PayPal 을 이용하시면 됩니다.</string> - <string name="play_thank_you">감사합니다!</string> - <string name="purchases_restored">구매 내역 복원됨</string> - <string name="purchases_restored_with_pro">Frost Pro 가 복원되었습니다. 기능을 즐기세요!</string> - <string name="purchases_restored_without_pro">Pro 버전이 없으신 것 같습니다. 문제가 지속된다면 개발자에게 영수증과 함께 연락해 주세요.</string> - <string name="restoring_purchases">구매 내역 복원 중…</string> - <string name="custom_pro">사용자 지정 [Pro]</string> - <string name="uh_oh">이런</string> + <string name="restoring_purchases">구매 내역 복원 중…</string> + <string name="uh_oh">이런</string> <string name="reload">새로 고침</string> </resources> diff --git a/app/src/main/res/values-ko-rKR/strings_pref_feed.xml b/app/src/main/res/values-ko-rKR/strings_pref_feed.xml index 1be3783c..cdcc4aef 100644 --- a/app/src/main/res/values-ko-rKR/strings_pref_feed.xml +++ b/app/src/main/res/values-ko-rKR/strings_pref_feed.xml @@ -7,8 +7,7 @@ <string name="aggressive_recents_desc">페이스북의 원 최신 글 피드에서 조금 오래된 글을 제외합니다. 피드가 비었다면 비활성화 하세요.</string> <string name="composer">상태 도우미</string> <string name="composer_desc">상태 도우미를 피드에 표시할지 결정합니다.</string> - <string name="pro_features">Pro 기능</string> - <string name="suggested_friends">추천 친구</string> + <string name="suggested_friends">추천 친구</string> <string name="suggested_friends_desc">\"당신을 알 수도 있는 사람\" 피드를 보여줍니다.</string> <string name="suggested_groups">추천 그룹</string> <string name="suggested_groups_desc">\"추천 그룹\"을 피드에 보여줍니다.</string> diff --git a/app/src/main/res/values-ko-rKR/strings_preferences.xml b/app/src/main/res/values-ko-rKR/strings_preferences.xml index f7fe488e..79e213ab 100644 --- a/app/src/main/res/values-ko-rKR/strings_preferences.xml +++ b/app/src/main/res/values-ko-rKR/strings_preferences.xml @@ -12,10 +12,7 @@ <string name="network_desc">네트워크 문제에 관한 옵션 설정</string> <string name="experimental">실험적 기능</string> <string name="experimental_desc">불안정할 수 있는 기능들을 미리 활성화</string> - <string name="get_pro">Frost Pro 구매</string> - <string name="get_pro_desc">Pro 버전을 구매하거나 복원하여 Frost 의 모든 잠재력을 끌어내세요! -광고 제거, 사용자 지정 테마, 완전한 설정 등등이 있습니다!</string> - <string name="about_frost">Facebook 을 위한 Frost 정보</string> + <string name="about_frost">Facebook 을 위한 Frost 정보</string> <string name="about_frost_desc">버전, 제작자, FAQ</string> <string name="help_translate">번역 돕기</string> <string name="help_translate_desc">Frost 는 crowdin 을 통해 번역할 수 있습니다. 여러분의 언어로 사용하고 싶으시다면 기여해 주세요!</string> diff --git a/app/src/main/res/values-no-rNO/strings_play_store.xml b/app/src/main/res/values-no-rNO/strings_play_store.xml index 3a63ab05..8369599d 100644 --- a/app/src/main/res/values-no-rNO/strings_play_store.xml +++ b/app/src/main/res/values-no-rNO/strings_play_store.xml @@ -1,17 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="no"?> <!--Generated by crowdin.com--> <resources> - <string name="found_pro">Fant Frost Pro!</string> - <string name="found_pro_desc">Ser ut som du har frost pro! Vi vil starte appen på nytt slik at du kan bruke de fantastiske funksjonene!</string> - <string name="play_purchased_pro">Takk for din støtte! Nyt alle funksjoner i Frost.\n\nHvis du liker denne appen, Vennligst legg inn en vurdering og støtte dette åpen kildekode-prosjektet.\n\nHvis du har en kommentar, ikke nøl med å kontakte meg!</string> - <string name="play_store_not_pro">Det virker som du er en pro-bruker, men vi kunne ikke finne innkjøps informasjon. Hvis denne feilen vedvarer, kan du prøve å tømme hurtigbufferen i Google Play og installere programmet på nytt.</string> - <string name="play_store_unsupported">Det virker som denne app-versjonen ikke kan kjøpe pro. Reinstaller fra Google Play hvis dette er en vedvarende problem.\nHvis du ønsker å donere uten flere funksjoner, kan du gjøre det via PayPal.</string> - <string name="play_thank_you">Tusen takk!</string> - <string name="purchases_restored">Kjøp gjenopprettet</string> - <string name="purchases_restored_with_pro">Frost Pro er gjenopprettet. Nyt funksjonene!</string> - <string name="purchases_restored_without_pro">Det virker som du ikke har pro. Hvis dette er en vedvarende problem, kontakt meg og legg til kvitteringen.</string> - <string name="restoring_purchases">Gjenoppretter kjøp…</string> - <string name="custom_pro">Egendefinert [Pro]</string> - <string name="uh_oh">Uff da</string> + <string name="restoring_purchases">Gjenoppretter kjøp…</string> + <string name="uh_oh">Uff da</string> <string name="reload">Last på nytt</string> </resources> diff --git a/app/src/main/res/values-no-rNO/strings_pref_feed.xml b/app/src/main/res/values-no-rNO/strings_pref_feed.xml index 3c334f54..219472ff 100644 --- a/app/src/main/res/values-no-rNO/strings_pref_feed.xml +++ b/app/src/main/res/values-no-rNO/strings_pref_feed.xml @@ -7,8 +7,7 @@ <string name="aggressive_recents_desc">Filtrere ut flere gamle innlegg fra Facebooks opprinnelige siste brukte innlegg. Deaktiver dette hvis listen er tom.</string> <string name="composer">Lag en status oppdatering</string> <string name="composer_desc">Vis \"lag en status oppdatering\" i feeden</string> - <string name="pro_features">Pro funksjoner</string> - <string name="suggested_friends">Foreslåtte venner</string> + <string name="suggested_friends">Foreslåtte venner</string> <string name="suggested_friends_desc">Vis \"Folk du kanskje kjenner\" i feeden</string> <string name="suggested_groups">Foreslåtte grupper</string> <string name="suggested_groups_desc">Vis \"Foreslåtte grupper\" i feeden</string> diff --git a/app/src/main/res/values-no-rNO/strings_preferences.xml b/app/src/main/res/values-no-rNO/strings_preferences.xml index 6dffb5a5..0a1572b6 100644 --- a/app/src/main/res/values-no-rNO/strings_preferences.xml +++ b/app/src/main/res/values-no-rNO/strings_preferences.xml @@ -12,9 +12,7 @@ <string name="network_desc">Definere alternativer som påvirker mobilnettverk</string> <string name="experimental">Eksperimentell</string> <string name="experimental_desc">Få tidlig tilgang til potensielt ustabile funksjoner</string> - <string name="get_pro">Få Frost Pro</string> - <string name="get_pro_desc">Kjøpe eller gjenopprette pro og få det fulle potensialet av Frost! Inkluderer reklame blokkering, egendefinerte temaer, full konfigurasjoner og mye mer!</string> - <string name="about_frost">Om Frost for Facebook</string> + <string name="about_frost">Om Frost for Facebook</string> <string name="about_frost_desc">Versjon, kreditter og vanlige spørsmål</string> <string name="help_translate">Hjelp til å oversette</string> <string name="help_translate_desc">Frost er oversatt gjennom crowdin. Bidra hvis du ønsker det på ditt språk!</string> diff --git a/app/src/main/res/values-pl-rPL/strings_play_store.xml b/app/src/main/res/values-pl-rPL/strings_play_store.xml index ac86c8f2..a1567659 100644 --- a/app/src/main/res/values-pl-rPL/strings_play_store.xml +++ b/app/src/main/res/values-pl-rPL/strings_play_store.xml @@ -1,17 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="no"?> <!--Generated by crowdin.com--> <resources> - <string name="found_pro">Znaleziono Frost Pro!</string> - <string name="found_pro_desc">Wygląda na to, że masz Frost Pro! Ponownie załadujemy aplikację, aby można było korzystać z niesamowitych funkcji!</string> - <string name="play_purchased_pro">Dziękujemy za Twoje wsparcie! Korzystaj z wersji Pro.\n\nJeśli podoba Ci się aplikacja, oceń ją i wesprzyj ten projekt.\n\nJeśli chcesz zostawić komentarz, nie wahaj się ze mną skontaktować!</string> - <string name="play_store_not_pro">Wydaje się, że jesteś użytkownikiem wersji Pro, ale nie mogliśmy znaleźć informacji o zakupie. Jeśli ten błąd nie ustępuje, spróbuj wyczyścić pamięć podręczną Sklepu Google Play i ponownie zainstalować aplikację.</string> - <string name="play_store_unsupported">Wygląda na to, że ta wersja aplikacji nie może zostać zakupiona do wersji Pro. Zainstaluj ponownie ze Sklepu Google Play, jeśli jest to trwały problem. \nJeśli chcesz przekazać darowiznę bez dodatkowych funkcji, możesz to zrobić za pośrednictwem PayPal.</string> - <string name="play_thank_you">Dziękujemy!</string> - <string name="purchases_restored">Przywrócono zakup</string> - <string name="purchases_restored_with_pro">Frost Pro został przywrócony. Korzystaj z funkcji!</string> - <string name="purchases_restored_without_pro">Wygląda na to, że nie masz wersji Pro. Jeśli jest to trwały problem, skontaktuj się ze mną i dołącz dowód zakupu.</string> - <string name="restoring_purchases">Przywracanie zakupu…</string> - <string name="custom_pro">Własny [Pro]</string> - <string name="uh_oh">Uh Oh</string> + <string name="restoring_purchases">Przywracanie zakupu…</string> + <string name="uh_oh">Uh Oh</string> <string name="reload">Przeładuj</string> </resources> diff --git a/app/src/main/res/values-pl-rPL/strings_pref_feed.xml b/app/src/main/res/values-pl-rPL/strings_pref_feed.xml index e54362a2..34ca26c0 100644 --- a/app/src/main/res/values-pl-rPL/strings_pref_feed.xml +++ b/app/src/main/res/values-pl-rPL/strings_pref_feed.xml @@ -7,8 +7,7 @@ <string name="aggressive_recents_desc">Odfiltruj dodatkowe stare posty z najnowszych aktualności Facebooka. Wyłączyć tę opcję, jeśli twoje aktualności są puste.</string> <string name="composer">Aktualizacja statusu</string> <string name="composer_desc">Wyświetlaj aktualizację statusu</string> - <string name="pro_features">Funkcje Pro</string> - <string name="suggested_friends">Proponowani znajomi</string> + <string name="suggested_friends">Proponowani znajomi</string> <string name="suggested_friends_desc">Wyświetlaj \"Osoby, które możesz znać\"</string> <string name="suggested_groups">Proponowane grupy</string> <string name="suggested_groups_desc">Wyświetlaj \"Proponowane grupy\"</string> diff --git a/app/src/main/res/values-pl-rPL/strings_preferences.xml b/app/src/main/res/values-pl-rPL/strings_preferences.xml index fb9f2a6a..5333a293 100644 --- a/app/src/main/res/values-pl-rPL/strings_preferences.xml +++ b/app/src/main/res/values-pl-rPL/strings_preferences.xml @@ -12,9 +12,7 @@ <string name="network_desc">Opcje wpływające na wykorzystanie sieci</string> <string name="experimental">Eksperymentalne</string> <string name="experimental_desc">Włącz wcześniejszy dostęp do potencjalnie niestabilnych funkcji</string> - <string name="get_pro">Pobierz Frost Pro</string> - <string name="get_pro_desc">Kup lub przywróć wersję Pro i odblokuj pełny potencjał Frost! Zawiera bloker reklam, własne motywy, pełną konfigurację i wiele więcej w przyszłości!</string> - <string name="about_frost">O aplikacji Frost for Facebook</string> + <string name="about_frost">O aplikacji Frost for Facebook</string> <string name="about_frost_desc">Wersja, podziękowania i FAQ</string> <string name="help_translate">Pomóż tłumaczyć</string> <string name="help_translate_desc">Frost jest tłumaczony w witrynie crowdin. Dołącz, jeśli chcesz zobaczyć go w swoim języku!</string> diff --git a/app/src/main/res/values-pt-rBR/strings_play_store.xml b/app/src/main/res/values-pt-rBR/strings_play_store.xml index bd667651..0c5864f6 100644 --- a/app/src/main/res/values-pt-rBR/strings_play_store.xml +++ b/app/src/main/res/values-pt-rBR/strings_play_store.xml @@ -1,17 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="no"?> <!--Generated by crowdin.com--> <resources> - <string name="found_pro">Frost Pro encontrado!</string> - <string name="found_pro_desc">Parece que você tem Frost Pro! Vamos recarregar o aplicativo para que você possa desfrutar dos recursos incríveis!</string> - <string name="play_purchased_pro">Obrigado pelo seu apoio! Aproveite todos os recursos no Frost.\n\nSe você gosta desse aplicativo, considere avaliá-lo e apoiar este projeto de código aberto.\n\nSe você tiver comentários, não hesite em contatar-me!</string> - <string name="play_store_not_pro">Parece que você é um usuário Pro, mas não conseguimos encontrar suas informações de compras. Se esse erro persistir, tente limpar o cache da Play Store e reinstalar o aplicativo.</string> - <string name="play_store_unsupported">Parece que esta versão do aplicativo não pode comprar Pro. Reinstale da Play Store se este problema persistir. \nSe você quiser doar sem recursos adicionais, você pode fazer através do PayPal.</string> - <string name="play_thank_you">Obrigado!</string> - <string name="purchases_restored">Compras restauradas</string> - <string name="purchases_restored_with_pro">Frost Pro foi restaurado. Aproveite os recursos!</string> - <string name="purchases_restored_without_pro">Parece que você não tem Pro. Se este problema persistir, entre em contato comigo e anexe seu recibo de compra.</string> - <string name="restoring_purchases">Restaurando compras…</string> - <string name="custom_pro">[Pro] personalizado</string> - <string name="uh_oh">Uh Oh</string> + <string name="restoring_purchases">Restaurando compras…</string> + <string name="uh_oh">Uh Oh</string> <string name="reload">Recarregar</string> </resources> diff --git a/app/src/main/res/values-pt-rBR/strings_pref_feed.xml b/app/src/main/res/values-pt-rBR/strings_pref_feed.xml index 5ac33a58..25198ced 100644 --- a/app/src/main/res/values-pt-rBR/strings_pref_feed.xml +++ b/app/src/main/res/values-pt-rBR/strings_pref_feed.xml @@ -7,8 +7,7 @@ <string name="aggressive_recents_desc">Filtra as postagens mais antigas do Feed das postagens recentes. Desative esta opção se o Feed estiver vazio.</string> <string name="composer">Compositor de Status</string> <string name="composer_desc">Mostrar o compositor de status no Feed</string> - <string name="pro_features">Recursos Pro</string> - <string name="suggested_friends">Amigos Sugeridos</string> + <string name="suggested_friends">Amigos Sugeridos</string> <string name="suggested_friends_desc">Mostra \"Pessoas Que Talvez Você Conheça\" no Feed</string> <string name="suggested_groups">Grupos Sugeridos</string> <string name="suggested_groups_desc">Mostra \"Grupos Sugeridos\" no Feed</string> diff --git a/app/src/main/res/values-pt-rBR/strings_preferences.xml b/app/src/main/res/values-pt-rBR/strings_preferences.xml index 60aa7703..ab7d3a43 100644 --- a/app/src/main/res/values-pt-rBR/strings_preferences.xml +++ b/app/src/main/res/values-pt-rBR/strings_preferences.xml @@ -12,9 +12,7 @@ <string name="network_desc">Definir opções que afetam planos de dados</string> <string name="experimental">Experimental</string> <string name="experimental_desc">Permitir acesso antecipado a recursos potencialmente instáveis</string> - <string name="get_pro">Obter Frost Pro</string> - <string name="get_pro_desc">Compre ou restaure o Pro e desbloqueie todo o potencial do Frost! Inclui bloqueadores de anúncios, temas personalizados, configurações completas e muito mais por vir!</string> - <string name="about_frost">Sobre Frost for Facebook</string> + <string name="about_frost">Sobre Frost for Facebook</string> <string name="about_frost_desc">Versão, Créditos, e FAQs</string> <string name="help_translate">Ajudar a Traduzir</string> <string name="help_translate_desc">Frost é traduzido através do Crowdin. Contribua se você o quer em sua língua!</string> diff --git a/app/src/main/res/values-th-rTH/strings_play_store.xml b/app/src/main/res/values-th-rTH/strings_play_store.xml index b83e6a63..38c51dee 100644 --- a/app/src/main/res/values-th-rTH/strings_play_store.xml +++ b/app/src/main/res/values-th-rTH/strings_play_store.xml @@ -1,17 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="no"?> <!--Generated by crowdin.com--> <resources> - <string name="found_pro">พบกับ Frost Pro</string> - <string name="found_pro_desc">ดูเหมือนว่าคุณจะมี frost pro เราจะเริ่มต้นแอพใหม่เพื่อใช้คุณสมบัติที่สุดยอด</string> - <string name="play_purchased_pro">ขอบคุณสำหรับการสนับสนุก ขอให้เพลิดเพลินไปกับคุณสมบัติของ Frost \n\n ถ้าคุณชอบแอพแบบนี้ โปรดพิจารณาให้คะแนนและช่วยในโครงการโอเพนซอร์ซของแอพ \n\n ถ้ามีข้อเสนอแนะ โปรดอย่าลังเลที่จะติดต่อฉัน</string> - <string name="play_store_not_pro">ดูเหมือนว่าคุณจะมีเวอชั่น Pro แต่เราไม่สามารถหาข้อมูลการซื้อของคุณได้ ถ้าข้อผิดพลาดนี้ยังอยู่ กรุณาเคลียร์แคชของ Play Store และติดตั้งแอพนี้อีกครั้ง</string> - <string name="play_store_unsupported">ดูเหมือนว่าแอพเวอชั่นนี้ไม่สามารถซื้อเวอชั้นโปรได้ ถ้ายังเจอปัญหานี้อยู่ กรุณาติดตั้งแอพใหม่อีกครั้งจาก play store \n ถ้าคุณต้องการที่จะบริจาคโดยที่ไม่ได้คุณสมบัติใดๆเพิ่มเติมคุณสามารถทำได้ผ่านทาง Paypal</string> - <string name="play_thank_you">ขอบคุณ!</string> - <string name="purchases_restored">เรียกคืนการซื้อสำเร็จ</string> - <string name="purchases_restored_with_pro">Frost Pro ได้รับการฟื้นฟู สนุกกับการใช้!</string> - <string name="purchases_restored_without_pro">ดูเหมือนว่าคุณไม่มีเวอชั่นPro ถ้ายังเจอปัญหานี้อยู่ กรุณาติดต่อฉันและแนบใบเสร็จมาด้วย</string> - <string name="restoring_purchases">กำลังเรียกคืนการซื้อ</string> - <string name="custom_pro">กำหนดเอง [Pro]</string> - <string name="uh_oh">โอ้โห!</string> + <string name="restoring_purchases">กำลังเรียกคืนการซื้อ</string> + <string name="uh_oh">โอ้โห!</string> <string name="reload">โหลดใหม่</string> </resources> diff --git a/app/src/main/res/values-th-rTH/strings_pref_feed.xml b/app/src/main/res/values-th-rTH/strings_pref_feed.xml index 65c1f106..a491d160 100644 --- a/app/src/main/res/values-th-rTH/strings_pref_feed.xml +++ b/app/src/main/res/values-th-rTH/strings_pref_feed.xml @@ -7,8 +7,7 @@ <string name="aggressive_recents_desc">กรองออกโพสต์เก่าเพิ่มเติมจาก Facebook ในส่วนใหญ่ล่าสุดฟีด ปิดใช้งานนี้ถ้าฟีดของคุณว่างเปล่า</string> <string name="composer">สร้างโพสต์</string> <string name="composer_desc">แสดงสร้างโพสตืในฟีท</string> - <string name="pro_features">คุณสมบัติโปร</string> - <string name="suggested_friends">เพื่อนที่แนะนำ</string> + <string name="suggested_friends">เพื่อนที่แนะนำ</string> <string name="suggested_friends_desc">แสดงเพื่อนที่คุยอาจรู้จักในฟีด</string> <string name="suggested_groups">กลุ่มแนะนำ</string> <string name="suggested_groups_desc">แสดงกลุ่มแนะนำในฟีด</string> diff --git a/app/src/main/res/values-th-rTH/strings_preferences.xml b/app/src/main/res/values-th-rTH/strings_preferences.xml index ce847de5..ea9c590b 100644 --- a/app/src/main/res/values-th-rTH/strings_preferences.xml +++ b/app/src/main/res/values-th-rTH/strings_preferences.xml @@ -12,9 +12,7 @@ <string name="network_desc">กำหนดตัวเลือกที่มีผลต่อปริมาณข้อมูลเครือข่าย</string> <string name="experimental">ทดลอง</string> <string name="experimental_desc">เปิดใช้งานการเข้าถึงคุณลักษณะที่อาจไม่เสถียร</string> - <string name="get_pro">รับ Frost Pro</string> - <string name="get_pro_desc">ซื้อหรือเรียกคืนเวอชั่นโปร และปลดล็อคคุณสมบัติทั้งหมดของ Frost! ประกอบด้วย บล๊อคโฆษณา ธีมแบบกำหนดเอง การตั้งค่าทุกอย่าง และอื่นๆที่จะตามมา</string> - <string name="about_frost">เกี่ยวกับ Frost for Facebook</string> + <string name="about_frost">เกี่ยวกับ Frost for Facebook</string> <string name="about_frost_desc">รุ่น, เครดิต และถามตอบ</string> <string name="help_translate">ช่วยแปล</string> <string name="help_translate_desc">Frost จะถูกแปลผ่าน crowdin คุณสามารถช่วยแปลภาษาของคุณได้ถ้าต้องการ!</string> diff --git a/app/src/main/res/values-tr-rTR/strings_preferences.xml b/app/src/main/res/values-tr-rTR/strings_preferences.xml index 87fa86c4..2ccc5f2b 100644 --- a/app/src/main/res/values-tr-rTR/strings_preferences.xml +++ b/app/src/main/res/values-tr-rTR/strings_preferences.xml @@ -12,8 +12,6 @@ <string name="network_desc">Ölcülen ağları etkiliyen secenekleri tanımlayın</string> <string name="experimental">Deneysel</string> <string name="experimental_desc">Potansiyel olarak kararsız özelliklere erken erişim sağlamayı etkin kıl</string> - <string name="get_pro">Frost Pro al</string> - <string name="get_pro_desc">Pro\'yu satın alın veya yenileyin ve Frost\'un tam potansiyelini açın! Reklam engelleyiciler, özel temalar, tam yapılandırmalar ve daha pek çok şey var!</string> <string name="about_frost">Frost Hakkında Facebook için</string> <string name="about_frost_desc">Versiyon, Crediler, ve SSS</string> <string name="help_translate">Çeviri Yardımı</string> diff --git a/app/src/main/res/values-vi-rVN/strings_play_store.xml b/app/src/main/res/values-vi-rVN/strings_play_store.xml index 3122937d..ee9465ae 100644 --- a/app/src/main/res/values-vi-rVN/strings_play_store.xml +++ b/app/src/main/res/values-vi-rVN/strings_play_store.xml @@ -1,18 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="no"?> <!--Generated by crowdin.com--> <resources> - <string name="found_pro">Tìm thấy bản Pro!</string> - <string name="found_pro_desc">Có vẻ bạn có bản pro! Chúng tôi sẽ tải lại ứng dụng để bạn có thể thưởng thức các tính năng tuyệt vời!</string> - <string name="play_purchased_pro">Cảm ơn bạn đã hỗ trợ! Hãy tận hưởng các tính năng của Frost.\n\nNếu bạn thích ứng dụng này, hãy bình chọn và hỗ trợ dự án mã mở này.\n\nNếu bạn muốn cho ý kiến, hãy liên lạc ngay với tôi!</string> - <string name="play_store_not_pro">Có vẻ bạn là người dùng trả phí, nhưng chung tôi không tìm thấy thông tin mua hàng của bạn. Nếu lỗi này lặp lại, hãy thử xoá bộ nhớ đệm của Ch Play và cài lại ứng dụng.</string> - <string name="play_store_unsupported">Có vẻ như phiên bản này của ứng dụng không thể mua bản pro. Hãy cài lại từ Ch Play nếu lỗi tiếp tục lặp lại. - \nNếu bạn chỉ muốn đóng góp mà không cần các tính năng thêm, bạn có thể làm qua PayPal.</string> - <string name="play_thank_you">Cảm ơn bạn!</string> - <string name="purchases_restored">Đã khôi phục mua hàng</string> - <string name="purchases_restored_with_pro">Frost Pro đã được khôi phục. Hãy thưởng thức các tính năng!</string> - <string name="purchases_restored_without_pro">Có vẻ như bạn không có bản pro. Nếu lỗi tiếp tục lặp lại, hãy liên hệ với tôi và gửi kèm hoá đơn mua hàng.</string> - <string name="restoring_purchases">Đang khôi phục mua hàng…</string> - <string name="custom_pro">Tự chọn [Pro]</string> - <string name="uh_oh">Ồ…</string> + <string name="restoring_purchases">Đang khôi phục mua hàng…</string> + <string name="uh_oh">Ồ…</string> <string name="reload">Tải lại</string> </resources> diff --git a/app/src/main/res/values-vi-rVN/strings_pref_feed.xml b/app/src/main/res/values-vi-rVN/strings_pref_feed.xml index 8e303665..c2f80f99 100644 --- a/app/src/main/res/values-vi-rVN/strings_pref_feed.xml +++ b/app/src/main/res/values-vi-rVN/strings_pref_feed.xml @@ -7,8 +7,7 @@ <string name="aggressive_recents_desc">Lọc bớt những bài đăng cũ trên bảng tin gần đây của Facebook. Tắt nếu bạn thấy bảng tin trống.</string> <string name="composer">Soạn trạng thái</string> <string name="composer_desc">Hiện mục soạn trạng thái trên bảng tin</string> - <string name="pro_features">Tính năng Pro</string> - <string name="suggested_friends">Gợi ý bạn</string> + <string name="suggested_friends">Gợi ý bạn</string> <string name="suggested_friends_desc">Hiện \'Gợi ý nhóm\' trên bảng tin</string> <string name="suggested_groups">Gợi ý nhóm</string> <string name="suggested_groups_desc">Hiện \'Gợi ý nhóm\' trên bảng tin</string> diff --git a/app/src/main/res/values-vi-rVN/strings_preferences.xml b/app/src/main/res/values-vi-rVN/strings_preferences.xml index ced0fd6b..20a9dc48 100644 --- a/app/src/main/res/values-vi-rVN/strings_preferences.xml +++ b/app/src/main/res/values-vi-rVN/strings_preferences.xml @@ -12,9 +12,7 @@ <string name="network_desc">Chọn các tuỳ chọn đối với mạng di động</string> <string name="experimental">Thử nghiệm</string> <string name="experimental_desc">Bật các tính năng chưa hoàn thiện</string> - <string name="get_pro">Mua Frost Pro</string> - <string name="get_pro_desc">Mua hoặc khôi phục bản pro và mở khoá đầy đủ các tính năng của Frost, bao gồm cả chặn quảng cáo, tuỳ chọn kiểu giao diện, tuỳ chỉnh và còn hơn thế nữa!</string> - <string name="about_frost">Giới thiệu về Frost for Facebook</string> + <string name="about_frost">Giới thiệu về Frost for Facebook</string> <string name="about_frost_desc">Phiên bản, tác giả, và câu hỏi thường gặp</string> <string name="help_translate">Tham gia dịch</string> <string name="help_translate_desc">Frost được dịch thông qua crowdin. Hãy đóng góp bản dịch để có ứng dụng theo ngôn ngữ của bạn!</string> diff --git a/app/src/main/res/values-zh-rCN/strings_play_store.xml b/app/src/main/res/values-zh-rCN/strings_play_store.xml index b5d35750..f7ab0f67 100644 --- a/app/src/main/res/values-zh-rCN/strings_play_store.xml +++ b/app/src/main/res/values-zh-rCN/strings_play_store.xml @@ -1,17 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="no"?> <!--Generated by crowdin.com--> <resources> - <string name="found_pro">以找到 Frost Pro!</string> - <string name="found_pro_desc">看起来你蛮喜欢 Frost Pro !我们会重新加载应用程序,所以你可以享受很棒的功能 !</string> - <string name="play_purchased_pro">谢谢您的支持 !享受所有的功能在 Frost.\n\n如果你喜欢这个应用程序,请考虑它评分和支持这个开源项目.\n\n如果你有意见,请不要犹豫与我联系 !</string> - <string name="play_store_not_pro">好像你是 pro 用户,但我们找不到您的采购信息。如果此错误仍然存在,请尝试清除播放存储缓存并重新安装该应用程序。</string> - <string name="play_store_unsupported">好像这个应用程序的版本不能购买临。请如果这是一个持续的问题,重新安装从播放存储。 \nIf 你想捐没有任何额外的功能,你可以这样做通过PayPal。</string> - <string name="play_thank_you">谢谢你!</string> - <string name="purchases_restored">购买恢复</string> - <string name="purchases_restored_with_pro">Frost Pro 已恢复。享受功能 !</string> - <string name="purchases_restored_without_pro">你好像也没有Frost Pro。如果这是一个持续的问题,与我联系并附上您的购买收据。</string> - <string name="restoring_purchases">正在恢复购买…</string> - <string name="custom_pro">自定义 [Pro]</string> - <string name="uh_oh">啊呃!</string> + <string name="restoring_purchases">正在恢复购买…</string> + <string name="uh_oh">啊呃!</string> <string name="reload">重新加载</string> </resources> diff --git a/app/src/main/res/values-zh-rCN/strings_pref_feed.xml b/app/src/main/res/values-zh-rCN/strings_pref_feed.xml index 1ad813e3..1c290152 100644 --- a/app/src/main/res/values-zh-rCN/strings_pref_feed.xml +++ b/app/src/main/res/values-zh-rCN/strings_pref_feed.xml @@ -7,8 +7,7 @@ <string name="aggressive_recents_desc">过滤掉原先Facebook最新更新当中的过时发贴。如果新闻源是空的,请禁用此选项。</string> <string name="composer">状态编辑器</string> <string name="composer_desc">在新闻源中显示状态编辑器</string> - <string name="pro_features">高级版功能</string> - <string name="suggested_friends">推荐好友</string> + <string name="suggested_friends">推荐好友</string> <string name="suggested_friends_desc">在新闻源中现实\"你可能认识的人\"</string> <string name="suggested_groups">推荐群组</string> <string name="suggested_groups_desc">在新闻源中显示\"推荐群组\"</string> diff --git a/app/src/main/res/values-zh-rCN/strings_preferences.xml b/app/src/main/res/values-zh-rCN/strings_preferences.xml index 63b88f64..889af7e9 100644 --- a/app/src/main/res/values-zh-rCN/strings_preferences.xml +++ b/app/src/main/res/values-zh-rCN/strings_preferences.xml @@ -12,9 +12,7 @@ <string name="network_desc">定义影响计量网络的选项</string> <string name="experimental">实验性功能</string> <string name="experimental_desc">启用对潜在不稳定功能</string> - <string name="get_pro">获得Frost Pro</string> - <string name="get_pro_desc">购买或恢复临, 并解开Frost Pro的全部潜力! 包括广告拦截, 自定义主题, 完整配置, 还有更多的东西!</string> - <string name="about_frost">关于Frost</string> + <string name="about_frost">关于Frost</string> <string name="about_frost_desc">版本、学分、归功于和常见问题</string> <string name="help_translate">帮助我们翻译</string> <string name="help_translate_desc">帮助我们翻译说明</string> diff --git a/app/src/main/res/values/strings_no_translate.xml b/app/src/main/res/values/strings_no_translate.xml index 17e6c8f7..fef4ebcd 100644 --- a/app/src/main/res/values/strings_no_translate.xml +++ b/app/src/main/res/values/strings_no_translate.xml @@ -3,7 +3,6 @@ <string name="dev_email" translatable="false">pitchedapps@gmail.com</string> <string name="dev_paypal" translatable="false">https://www.paypal.me/Allanw9</string> <string name="paypal" translatable="false">PayPal</string> - <string name="play_store_package_id" translatable="false">com.pitchedapps.frost</string> <string name="translation_url" translatable="false">https://crwd.in/frost-for-facebook</string> <string name="github_url" translatable="false">https://github.com/AllanWang/Frost-for-Facebook</string> <string name="reddit_url" translatable="false">https://www.reddit.com/r/FrostForFacebook</string> diff --git a/app/src/main/res/values/strings_play_store.xml b/app/src/main/res/values/strings_play_store.xml index 36ad6143..22543802 100644 --- a/app/src/main/res/values/strings_play_store.xml +++ b/app/src/main/res/values/strings_play_store.xml @@ -1,21 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="no"?> <resources> - <string name="found_pro">Found Frost Pro!</string> - <string name="found_pro_desc">Looks like you have frost pro! We\'ll reload the app so you can enjoy the awesome features!</string> - - <string name="play_purchased_pro">Thank you for your support! Enjoy all the features in Frost.\n\nIf you like this app, please consider rating it and supporting this open source project.\n\nIf you have comments, please do not hesitate to contact me!</string> - <string name="play_store_not_pro">It seems like you are a pro user, but we couldn\'t find your purchasing info. If this error persists, please try clearing the Play Store cache and reinstalling the app.</string> - <string name="play_store_unsupported">It seems like this app version can\'t purchase pro. Please reinstall from the play store if this is a persistent issue. - \nIf you would like to donate without any additional features, you may do so through PayPal.</string> - <string name="play_thank_you">Thank you!</string> - - <string name="purchases_restored">Purchases Restored</string> - <string name="purchases_restored_with_pro">Frost Pro has been restored. Enjoy the features!</string> - <string name="purchases_restored_without_pro">It seems like you don\'t have pro. If this is a persistent issue, contact me and attach your purchase receipt.</string> <string name="restoring_purchases">Restoring purchases…</string> - <string name="custom_pro">Custom [Pro]</string> <string name="uh_oh">Uh Oh</string> <string name="reload">Reload</string> </resources> diff --git a/app/src/main/res/values/strings_pref_behaviour.xml b/app/src/main/res/values/strings_pref_behaviour.xml index 93f3ac61..62e94112 100644 --- a/app/src/main/res/values/strings_pref_behaviour.xml +++ b/app/src/main/res/values/strings_pref_behaviour.xml @@ -20,6 +20,6 @@ <string name="exit_confirmation">Exit Confirmation</string> <string name="exit_confirmation_desc">Show confirmation dialog before exiting the app</string> <string name="analytics">Analytics</string> - <string name="analytics_desc">Enable anonymous analytics to help improve the app. No personal information is ever exposed.</string> + <string name="analytics_desc">Enable anonymous analytics and bug reports to help improve the app. No personal information is ever exposed.</string> </resources>
\ No newline at end of file diff --git a/app/src/main/res/values/strings_pref_feed.xml b/app/src/main/res/values/strings_pref_feed.xml index f858ee39..bacd6b32 100644 --- a/app/src/main/res/values/strings_pref_feed.xml +++ b/app/src/main/res/values/strings_pref_feed.xml @@ -8,7 +8,6 @@ <string name="composer">Status Composer</string> <string name="composer_desc">Show status composer in the feed</string> - <string name="pro_features">Pro Features</string> <string name="suggested_friends">Suggested Friends</string> <string name="suggested_friends_desc">Show "People You May Know" in the feed</string> <string name="suggested_groups">Suggested Groups</string> diff --git a/app/src/main/res/values/strings_preferences.xml b/app/src/main/res/values/strings_preferences.xml index a54b95e7..84f39850 100644 --- a/app/src/main/res/values/strings_preferences.xml +++ b/app/src/main/res/values/strings_preferences.xml @@ -16,9 +16,6 @@ <string name="experimental">Experimental</string> <string name="experimental_desc">Enable early access to potentially unstable features</string> - <string name="get_pro">Get Frost Pro</string> - <string name="get_pro_desc">Purchase or restore pro and unlock the full potential of Frost! Includes ad blockers, custom themes, full configurations, and much more to come!</string> - <string name="about_frost">About Frost for Facebook</string> <string name="about_frost_desc">Version, Credits, and FAQs</string> diff --git a/build.gradle b/build.gradle index 0feef653..dde744a2 100644 --- a/build.gradle +++ b/build.gradle @@ -12,7 +12,7 @@ buildscript { classpath "ca.allanwang:kau:${KAU}" classpath 'com.android.tools.build:gradle:3.0.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${KOTLIN}" - classpath 'io.fabric.tools:gradle:1.+' + classpath "com.bugsnag:bugsnag-android-gradle-plugin:${BUGSNAG_PLUGIN}" classpath 'com.github.triplet.gradle:play-publisher:1.2.0' classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.8.2' } diff --git a/gradle.properties b/gradle.properties index 9ba8c9d5..ca2ddb94 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,11 +17,12 @@ APP_GROUP=com.pitchedapps KAU=e97db5c KOTLIN=1.2.30 +BUGSNAG=4.3.2 +BUGSNAG_PLUGIN=3.2.5 COMMONS_TEXT=1.2 CRASHLYTICS=2.9.1 DBFLOW=4.2.4 EXOMEDIA=4.1.0 -IAB=1.0.44 JSOUP=1.11.2 LEAK_CANARY=1.5.4 MATERIAL_DRAWER_KT=1.3.3 diff --git a/tmp/.fdroidvcs-importer b/tmp/.fdroidvcs-importer new file mode 100644 index 00000000..1dd890f6 --- /dev/null +++ b/tmp/.fdroidvcs-importer @@ -0,0 +1 @@ +git https://github.com/AllanWang/Frost-for-Facebook
\ No newline at end of file |