mirror of
https://gitlab.shinice.net/pixeldroid/PixelDroid
synced 2025-02-03 17:07:31 +01:00
Merge branch 'translation_tweaks' into 'master'
Translation tweaks (#265) Closes #265 See merge request pixeldroid/PixelDroid!266
This commit is contained in:
commit
6483989c09
19
CONTRIBUTING.md
Normal file
19
CONTRIBUTING.md
Normal file
@ -0,0 +1,19 @@
|
||||
If you want to contribute to PixelDroid, you can do so in several ways:
|
||||
|
||||
# Translation
|
||||
|
||||
You can help to translate PixelDroid to your favourite language. Please do not submit Merge Requests directly, but use our weblate at https://weblate.pixeldroid.org/projects/pixeldroid/pixeldroid/ .
|
||||
|
||||
You can add a new language by using the "Start new translation" button on the bottom left of the page.
|
||||
|
||||
Before translating, please take a look at the [TRANSLATION.md](TRANSLATION.md) file for details and some guidance.
|
||||
|
||||
# Creating issues on the issue tracker
|
||||
|
||||
If you encounter a problem or have an idea about how to make PixelDroid better, you should make an issue about it on our [GitLab project](https://gitlab.shinice.net/pixeldroid/PixelDroid/-/issues). If you encountered a problem, please make sure to document how to reproduce it, and include screenshots if possible. If you are making a suggestion, please try to be detailed in your description.
|
||||
|
||||
# Contribute changes or fix bugs
|
||||
|
||||
You can also help us solve one of the existing issues, or improve the application in some other way, by contributing changes yourself. To do this you can fork the project and submit a Merge Request.
|
||||
|
||||
Before starting to work on an issue or an improvement, you can ask us on our Matrix channel (#pixeldroid:gnugen.ch) what we think, or make a comment on the relevant issue, so that we might point you in the right direction, and to make sure someone else is not already working on it.
|
15
TRANSLATION.md
Normal file
15
TRANSLATION.md
Normal file
@ -0,0 +1,15 @@
|
||||
# Register on our Weblate instance
|
||||
|
||||
Sign up on our instance and go to the PixelDroid project here: https://weblate.pixeldroid.org/projects/pixeldroid/pixeldroid/
|
||||
|
||||
No need to specify your real name, obviously, unless you want to.
|
||||
|
||||
# Start translating
|
||||
|
||||
Go to the project's page ( https://weblate.pixeldroid.org/projects/pixeldroid/pixeldroid ). Click on the language you want to work with (for example, Catalan would be at https://weblate.pixeldroid.org/projects/pixeldroid/pixeldroid/ca/ ). Then click the "Translate" button on the right. You can then edit the missing translations and review existing ones.
|
||||
|
||||
For more details, you can check out Weblate's documentation: https://docs.weblate.org/en/latest/user/translating.html
|
||||
|
||||
## Glossaries
|
||||
|
||||
When translating something containing a term specific to Pixelfed, PixelDroid, or the fediverse in general, be sure to add the items to the glossary of the language you are translating to, this helps to keep translating consistent. When translating, make sure to check the glossary to use the proper terms, and if you change an entry in the glossary make sure to also edit the entries containing that term.
|
@ -2,10 +2,9 @@ package com.h.pixeldroid
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import kotlinx.android.synthetic.main.activity_about.*
|
||||
|
||||
class AboutActivity : AppCompatActivity() {
|
||||
class AboutActivity : BaseActivity() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_about)
|
||||
|
58
app/src/main/java/com/h/pixeldroid/BaseActivity.kt
Normal file
58
app/src/main/java/com/h/pixeldroid/BaseActivity.kt
Normal file
@ -0,0 +1,58 @@
|
||||
package com.h.pixeldroid
|
||||
|
||||
import android.content.Context
|
||||
import android.content.res.Configuration
|
||||
import android.content.res.Resources
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.preference.PreferenceManager
|
||||
import com.h.pixeldroid.db.AppDatabase
|
||||
import com.h.pixeldroid.di.PixelfedAPIHolder
|
||||
import java.util.*
|
||||
import javax.inject.Inject
|
||||
|
||||
open class BaseActivity : AppCompatActivity() {
|
||||
|
||||
@Inject
|
||||
lateinit var db: AppDatabase
|
||||
@Inject
|
||||
lateinit var apiHolder: PixelfedAPIHolder
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
(this.application as Pixeldroid).getAppComponent().inject(this)
|
||||
}
|
||||
|
||||
override fun attachBaseContext(base: Context) {
|
||||
super.attachBaseContext(updateBaseContextLocale(base))
|
||||
}
|
||||
|
||||
private fun updateBaseContextLocale(context: Context): Context {
|
||||
val language = PreferenceManager.getDefaultSharedPreferences(context).getString("language", "default") ?: "default"
|
||||
if(language == "default"){
|
||||
return context
|
||||
}
|
||||
val locale = Locale.forLanguageTag(language)
|
||||
Locale.setDefault(locale)
|
||||
return if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N) {
|
||||
updateResourcesLocale(context, locale)
|
||||
} else updateResourcesLocaleLegacy(context, locale)
|
||||
}
|
||||
|
||||
private fun updateResourcesLocale(context: Context, locale: Locale): Context =
|
||||
context.createConfigurationContext(
|
||||
Configuration(context.resources.configuration)
|
||||
.apply { setLocale(locale) }
|
||||
)
|
||||
|
||||
@Suppress("DEPRECATION")
|
||||
private fun updateResourcesLocaleLegacy(context: Context, locale: Locale): Context {
|
||||
val resources: Resources = context.resources
|
||||
val configuration: Configuration = resources.configuration
|
||||
configuration.locale = locale
|
||||
resources.updateConfiguration(configuration, resources.displayMetrics)
|
||||
return context
|
||||
}
|
||||
|
||||
}
|
@ -1,10 +1,9 @@
|
||||
package com.h.pixeldroid
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import com.h.pixeldroid.fragments.CameraFragment
|
||||
|
||||
class CameraActivity : AppCompatActivity() {
|
||||
class CameraActivity : BaseActivity() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_camera)
|
||||
|
@ -1,25 +1,19 @@
|
||||
package com.h.pixeldroid
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import com.h.pixeldroid.db.AppDatabase
|
||||
import com.h.pixeldroid.fragments.feeds.uncachedFeeds.accountLists.AccountListFragment
|
||||
import com.h.pixeldroid.objects.Account
|
||||
import com.h.pixeldroid.objects.Account.Companion.ACCOUNT_ID_TAG
|
||||
import com.h.pixeldroid.objects.Account.Companion.ACCOUNT_TAG
|
||||
import com.h.pixeldroid.objects.Account.Companion.FOLLOWERS_TAG
|
||||
import javax.inject.Inject
|
||||
|
||||
|
||||
class FollowsActivity : AppCompatActivity() {
|
||||
class FollowsActivity : BaseActivity() {
|
||||
private var followsFragment = AccountListFragment()
|
||||
@Inject
|
||||
lateinit var db: AppDatabase
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_followers)
|
||||
(this.application as Pixeldroid).getAppComponent().inject(this)
|
||||
supportActionBar?.setDisplayHomeAsUpEnabled(true)
|
||||
|
||||
|
||||
|
@ -1,11 +1,10 @@
|
||||
package com.h.pixeldroid
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import kotlinx.android.synthetic.main.activity_licenses.*
|
||||
|
||||
|
||||
class LicenseActivity : AppCompatActivity() {
|
||||
class LicenseActivity : BaseActivity() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_licenses)
|
||||
|
@ -10,11 +10,8 @@ import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import android.view.inputmethod.InputMethodManager
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.browser.customtabs.CustomTabsIntent
|
||||
import com.h.pixeldroid.api.PixelfedAPI
|
||||
import com.h.pixeldroid.db.AppDatabase
|
||||
import com.h.pixeldroid.di.PixelfedAPIHolder
|
||||
import com.h.pixeldroid.objects.*
|
||||
import com.h.pixeldroid.utils.DBUtils
|
||||
import com.h.pixeldroid.utils.Utils
|
||||
@ -30,7 +27,6 @@ import okhttp3.HttpUrl
|
||||
import retrofit2.Call
|
||||
import retrofit2.Callback
|
||||
import retrofit2.Response
|
||||
import javax.inject.Inject
|
||||
|
||||
/**
|
||||
Overview of the flow of the login process: (boxes are requests done in parallel,
|
||||
@ -48,7 +44,7 @@ since they do not depend on each other)
|
||||
|
||||
*/
|
||||
|
||||
class LoginActivity : AppCompatActivity() {
|
||||
class LoginActivity : BaseActivity() {
|
||||
|
||||
companion object {
|
||||
private const val PACKAGE_ID = BuildConfig.APPLICATION_ID
|
||||
@ -58,11 +54,6 @@ class LoginActivity : AppCompatActivity() {
|
||||
private lateinit var oauthScheme: String
|
||||
private lateinit var appName: String
|
||||
private lateinit var preferences: SharedPreferences
|
||||
@Inject
|
||||
lateinit var db: AppDatabase
|
||||
|
||||
@Inject
|
||||
lateinit var apiHolder: PixelfedAPIHolder
|
||||
|
||||
private lateinit var pixelfedAPI: PixelfedAPI
|
||||
private var inputVisibility: Int = View.GONE
|
||||
@ -71,7 +62,6 @@ class LoginActivity : AppCompatActivity() {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_login)
|
||||
|
||||
(application as Pixeldroid).getAppComponent().inject(this)
|
||||
loadingAnimation(true)
|
||||
appName = getString(R.string.app_name)
|
||||
oauthScheme = getString(R.string.auth_scheme)
|
||||
|
@ -16,15 +16,13 @@ import androidx.paging.ExperimentalPagingApi
|
||||
import androidx.viewpager2.adapter.FragmentStateAdapter
|
||||
import com.bumptech.glide.Glide
|
||||
import com.google.android.material.tabs.TabLayoutMediator
|
||||
import com.h.pixeldroid.db.AppDatabase
|
||||
import com.h.pixeldroid.db.entities.HomeStatusDatabaseEntity
|
||||
import com.h.pixeldroid.db.entities.PublicFeedStatusDatabaseEntity
|
||||
import com.h.pixeldroid.db.entities.UserDatabaseEntity
|
||||
import com.h.pixeldroid.di.PixelfedAPIHolder
|
||||
import com.h.pixeldroid.fragments.CameraFragment
|
||||
import com.h.pixeldroid.fragments.SearchDiscoverFragment
|
||||
import com.h.pixeldroid.fragments.feeds.cachedFeeds.postFeeds.PostFeedFragment
|
||||
import com.h.pixeldroid.fragments.feeds.cachedFeeds.notifications.NotificationsFragment
|
||||
import com.h.pixeldroid.fragments.feeds.cachedFeeds.postFeeds.PostFeedFragment
|
||||
import com.h.pixeldroid.objects.Account
|
||||
import com.h.pixeldroid.utils.DBUtils
|
||||
import com.h.pixeldroid.utils.Utils.Companion.hasInternet
|
||||
@ -42,15 +40,8 @@ import org.ligi.tracedroid.sending.TraceDroidEmailSender
|
||||
import retrofit2.Call
|
||||
import retrofit2.Callback
|
||||
import retrofit2.Response
|
||||
import java.lang.IllegalArgumentException
|
||||
import javax.inject.Inject
|
||||
|
||||
class MainActivity : AppCompatActivity() {
|
||||
|
||||
@Inject
|
||||
lateinit var db: AppDatabase
|
||||
@Inject
|
||||
lateinit var apiHolder: PixelfedAPIHolder
|
||||
class MainActivity : BaseActivity() {
|
||||
|
||||
private lateinit var header: AccountHeaderView
|
||||
private var user: UserDatabaseEntity? = null
|
||||
@ -65,11 +56,8 @@ class MainActivity : AppCompatActivity() {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_main)
|
||||
|
||||
|
||||
TraceDroidEmailSender.sendStackTraces("contact@pixeldroid.org", this)
|
||||
|
||||
(this.application as Pixeldroid).getAppComponent().inject(this)
|
||||
|
||||
//get the currently active user
|
||||
user = db.userDao().getActiveUser()
|
||||
|
||||
|
@ -21,7 +21,6 @@ import android.view.MenuItem
|
||||
import android.view.View.GONE
|
||||
import android.view.View.VISIBLE
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.app.ActivityCompat
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.net.toFile
|
||||
@ -59,7 +58,7 @@ private const val REQUEST_CODE_PERMISSIONS_SEND_PHOTO = 7
|
||||
private val REQUIRED_PERMISSIONS = arrayOf(android.Manifest.permission.READ_EXTERNAL_STORAGE,
|
||||
android.Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
||||
|
||||
class PhotoEditActivity : AppCompatActivity(), FilterListFragmentListener, EditImageFragmentListener {
|
||||
class PhotoEditActivity : BaseActivity(), FilterListFragmentListener, EditImageFragmentListener {
|
||||
|
||||
internal var saving: Boolean = false
|
||||
private val BITMAP_CONFIG = Bitmap.Config.ARGB_8888
|
||||
|
@ -3,41 +3,27 @@ package com.h.pixeldroid
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import com.h.pixeldroid.api.PixelfedAPI
|
||||
import com.h.pixeldroid.db.AppDatabase
|
||||
import com.h.pixeldroid.di.PixelfedAPIHolder
|
||||
import com.h.pixeldroid.fragments.PostFragment
|
||||
import com.h.pixeldroid.objects.DiscoverPost
|
||||
import com.h.pixeldroid.objects.Status
|
||||
import com.h.pixeldroid.objects.Status.Companion.DISCOVER_TAG
|
||||
import com.h.pixeldroid.objects.Status.Companion.DOMAIN_TAG
|
||||
import com.h.pixeldroid.objects.Status.Companion.POST_TAG
|
||||
import com.h.pixeldroid.utils.DBUtils
|
||||
import kotlinx.android.synthetic.main.activity_post.*
|
||||
import retrofit2.Call
|
||||
import retrofit2.Callback
|
||||
import retrofit2.Response
|
||||
import javax.inject.Inject
|
||||
|
||||
class PostActivity : AppCompatActivity() {
|
||||
class PostActivity : BaseActivity() {
|
||||
private lateinit var postFragment : PostFragment
|
||||
lateinit var domain : String
|
||||
private lateinit var accessToken : String
|
||||
@Inject
|
||||
lateinit var db: AppDatabase
|
||||
@Inject
|
||||
lateinit var apiHolder: PixelfedAPIHolder
|
||||
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_post)
|
||||
supportActionBar?.setDisplayHomeAsUpEnabled(true)
|
||||
|
||||
(this.application as Pixeldroid).getAppComponent().inject(this)
|
||||
|
||||
|
||||
val status = intent.getSerializableExtra(POST_TAG) as Status?
|
||||
val discoverPost: DiscoverPost? = intent.getSerializableExtra(DISCOVER_TAG) as DiscoverPost?
|
||||
|
||||
|
@ -11,16 +11,13 @@ import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Button
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.net.toFile
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.bumptech.glide.Glide
|
||||
import com.google.android.material.textfield.TextInputLayout
|
||||
import com.h.pixeldroid.api.PixelfedAPI
|
||||
import com.h.pixeldroid.db.AppDatabase
|
||||
import com.h.pixeldroid.db.entities.UserDatabaseEntity
|
||||
import com.h.pixeldroid.di.PixelfedAPIHolder
|
||||
import com.h.pixeldroid.interfaces.PostCreationListener
|
||||
import com.h.pixeldroid.objects.Attachment
|
||||
import com.h.pixeldroid.objects.Instance
|
||||
@ -35,13 +32,12 @@ import okhttp3.MultipartBody
|
||||
import retrofit2.Call
|
||||
import retrofit2.Callback
|
||||
import retrofit2.Response
|
||||
import javax.inject.Inject
|
||||
|
||||
private val TAG = "Post Creation Activity"
|
||||
private val MORE_PICTURES_REQUEST_CODE = 0xffff
|
||||
|
||||
|
||||
class PostCreationActivity : AppCompatActivity(), PostCreationListener {
|
||||
class PostCreationActivity : BaseActivity(), PostCreationListener {
|
||||
|
||||
private lateinit var recycler : RecyclerView
|
||||
private lateinit var adapter : PostCreationAdapter
|
||||
@ -58,19 +54,10 @@ class PostCreationActivity : AppCompatActivity(), PostCreationListener {
|
||||
|
||||
private var posts: ArrayList<String> = ArrayList()
|
||||
|
||||
@Inject
|
||||
lateinit var db: AppDatabase
|
||||
|
||||
@Inject
|
||||
lateinit var apiHolder: PixelfedAPIHolder
|
||||
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_post_creation)
|
||||
|
||||
(this.application as Pixeldroid).getAppComponent().inject(this)
|
||||
|
||||
// get image URIs
|
||||
if(intent.clipData != null) {
|
||||
val count = intent.clipData!!.itemCount
|
||||
|
@ -8,7 +8,6 @@ import android.util.Log
|
||||
import android.view.View
|
||||
import android.widget.*
|
||||
import androidx.annotation.StringRes
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.constraintlayout.motion.widget.MotionLayout
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
@ -16,9 +15,7 @@ import androidx.recyclerview.widget.RecyclerView
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
||||
import com.h.pixeldroid.adapters.ProfilePostsRecyclerViewAdapter
|
||||
import com.h.pixeldroid.api.PixelfedAPI
|
||||
import com.h.pixeldroid.db.AppDatabase
|
||||
import com.h.pixeldroid.db.entities.UserDatabaseEntity
|
||||
import com.h.pixeldroid.di.PixelfedAPIHolder
|
||||
import com.h.pixeldroid.objects.Account
|
||||
import com.h.pixeldroid.objects.Relationship
|
||||
import com.h.pixeldroid.objects.Status
|
||||
@ -27,9 +24,8 @@ import com.h.pixeldroid.utils.ImageConverter
|
||||
import retrofit2.Call
|
||||
import retrofit2.Callback
|
||||
import retrofit2.Response
|
||||
import javax.inject.Inject
|
||||
|
||||
class ProfileActivity : AppCompatActivity() {
|
||||
class ProfileActivity : BaseActivity() {
|
||||
private lateinit var pixelfedAPI : PixelfedAPI
|
||||
private lateinit var adapter : ProfilePostsRecyclerViewAdapter
|
||||
private lateinit var recycler : RecyclerView
|
||||
@ -38,20 +34,12 @@ class ProfileActivity : AppCompatActivity() {
|
||||
private lateinit var domain : String
|
||||
private var user: UserDatabaseEntity? = null
|
||||
|
||||
@Inject
|
||||
lateinit var db: AppDatabase
|
||||
|
||||
@Inject
|
||||
lateinit var apiHolder: PixelfedAPIHolder
|
||||
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_profile)
|
||||
supportActionBar?.setDisplayHomeAsUpEnabled(true)
|
||||
|
||||
(this.application as Pixeldroid).getAppComponent().inject(this)
|
||||
|
||||
user = db.userDao().getActiveUser()
|
||||
|
||||
domain = user?.instance_uri.orEmpty()
|
||||
|
@ -1,26 +1,16 @@
|
||||
package com.h.pixeldroid
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import com.h.pixeldroid.db.AppDatabase
|
||||
import com.h.pixeldroid.di.PixelfedAPIHolder
|
||||
import com.h.pixeldroid.objects.Report
|
||||
import com.h.pixeldroid.objects.Status
|
||||
import kotlinx.android.synthetic.main.activity_report.*
|
||||
import retrofit2.Call
|
||||
import retrofit2.Callback
|
||||
import retrofit2.Response
|
||||
import javax.inject.Inject
|
||||
|
||||
class ReportActivity : AppCompatActivity() {
|
||||
|
||||
@Inject
|
||||
lateinit var db: AppDatabase
|
||||
@Inject
|
||||
lateinit var apiHolder: PixelfedAPIHolder
|
||||
|
||||
class ReportActivity : BaseActivity() {
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
@ -30,7 +20,6 @@ class ReportActivity : AppCompatActivity() {
|
||||
|
||||
val status = intent.getSerializableExtra(Status.POST_TAG) as Status?
|
||||
|
||||
(this.application as Pixeldroid).getAppComponent().inject(this)
|
||||
//get the currently active user
|
||||
val user = db.userDao().getActiveUser()
|
||||
|
||||
|
@ -3,8 +3,6 @@ package com.h.pixeldroid
|
||||
import android.app.SearchManager
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.viewpager2.adapter.FragmentStateAdapter
|
||||
import androidx.viewpager2.widget.ViewPager2
|
||||
@ -15,7 +13,7 @@ import com.h.pixeldroid.fragments.feeds.uncachedFeeds.search.SearchHashtagFragme
|
||||
import com.h.pixeldroid.fragments.feeds.uncachedFeeds.search.SearchPostsFragment
|
||||
import com.h.pixeldroid.objects.Results
|
||||
|
||||
class SearchActivity : AppCompatActivity() {
|
||||
class SearchActivity : BaseActivity() {
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
@ -99,18 +97,5 @@ class SearchActivity : AppCompatActivity() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
override fun onNewIntent(intent: Intent) {
|
||||
super.onNewIntent(intent)
|
||||
if (intent.action == Intent.ACTION_SEARCH) {
|
||||
intent.getStringExtra(SearchManager.QUERY)?.also { query ->
|
||||
search(query)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun search(query: String){
|
||||
Log.e("search", "")
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3,14 +3,12 @@ package com.h.pixeldroid
|
||||
import android.content.Intent
|
||||
import android.content.SharedPreferences
|
||||
import android.os.Bundle
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.preference.Preference
|
||||
import androidx.preference.PreferenceFragmentCompat
|
||||
import androidx.preference.PreferenceManager
|
||||
import com.h.pixeldroid.utils.ThemeUtils.Companion.setThemeFromPreferences
|
||||
|
||||
class SettingsActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
private var restartActivitiesOnExit = false
|
||||
class SettingsActivity : BaseActivity(), SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
private var restartMainOnExit = false
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
@ -21,11 +19,8 @@ class SettingsActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferen
|
||||
.replace(R.id.settings, SettingsFragment())
|
||||
.commit()
|
||||
supportActionBar?.setDisplayHomeAsUpEnabled(true)
|
||||
}
|
||||
|
||||
private fun restartCurrentActivity() {
|
||||
intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK
|
||||
super.startActivity(intent)
|
||||
restartMainOnExit = intent.getBooleanExtra("restartMain", false)
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
@ -42,16 +37,43 @@ class SettingsActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferen
|
||||
)
|
||||
}
|
||||
|
||||
override fun onBackPressed() {
|
||||
// If a setting (for example language or theme) was changed, the main activity should be
|
||||
// started without history so that the change is applied to the whole back stack
|
||||
if (restartMainOnExit) {
|
||||
val intent = Intent(this, MainActivity::class.java)
|
||||
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
|
||||
super.startActivity(intent)
|
||||
} else {
|
||||
super.onBackPressed()
|
||||
}
|
||||
}
|
||||
override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences, key: String) {
|
||||
when (key) {
|
||||
"theme" -> setThemeFromPreferences(sharedPreferences, resources)
|
||||
"theme" -> {
|
||||
setThemeFromPreferences(sharedPreferences, resources)
|
||||
recreateWithRestartStatus()
|
||||
}
|
||||
"language" -> {
|
||||
recreateWithRestartStatus()
|
||||
}
|
||||
}
|
||||
|
||||
restartActivitiesOnExit = true
|
||||
restartCurrentActivity()
|
||||
}
|
||||
|
||||
class SettingsFragment : PreferenceFragmentCompat() {
|
||||
/**
|
||||
* Mark main activity to be changed and recreate the current one
|
||||
*/
|
||||
private fun recreateWithRestartStatus() {
|
||||
intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK
|
||||
val savedInstanceState = Bundle().apply {
|
||||
putBoolean("restartMain", true)
|
||||
}
|
||||
intent.putExtras(savedInstanceState)
|
||||
super.startActivity(intent)
|
||||
finish()
|
||||
}
|
||||
|
||||
class SettingsFragment : PreferenceFragmentCompat() {
|
||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||
setPreferencesFromResource(R.xml.root_preferences, rootKey)
|
||||
}
|
||||
|
@ -2,14 +2,11 @@ package com.h.pixeldroid.di
|
||||
|
||||
import android.app.Application
|
||||
import android.content.Context
|
||||
import com.h.pixeldroid.*
|
||||
import com.h.pixeldroid.BaseActivity
|
||||
import com.h.pixeldroid.Pixeldroid
|
||||
import com.h.pixeldroid.db.AppDatabase
|
||||
import com.h.pixeldroid.fragments.BaseFragment
|
||||
import com.h.pixeldroid.fragments.PostFragment
|
||||
import com.h.pixeldroid.fragments.SearchDiscoverFragment
|
||||
import com.h.pixeldroid.fragments.feeds.cachedFeeds.notifications.NotificationsFragment
|
||||
import dagger.Component
|
||||
|
||||
import javax.inject.Singleton
|
||||
|
||||
|
||||
@ -17,19 +14,8 @@ import javax.inject.Singleton
|
||||
@Component(modules = [ApplicationModule::class, DatabaseModule::class, APIModule::class])
|
||||
interface ApplicationComponent {
|
||||
fun inject(application: Pixeldroid?)
|
||||
fun inject(activity: LoginActivity?)
|
||||
fun inject(activity: PostActivity?)
|
||||
fun inject(activity: PostCreationActivity?)
|
||||
fun inject(activity: ProfileActivity?)
|
||||
fun inject(mainActivity: MainActivity?)
|
||||
fun inject(activity: ReportActivity?)
|
||||
fun inject(fragment: PostFragment)
|
||||
fun inject(fragment: SearchDiscoverFragment)
|
||||
|
||||
fun inject(fragment: NotificationsFragment)
|
||||
fun inject(activity: BaseActivity?)
|
||||
fun inject(feedFragment: BaseFragment)
|
||||
fun inject(followsActivity: FollowsActivity)
|
||||
|
||||
|
||||
val context: Context?
|
||||
val application: Application?
|
||||
|
@ -43,7 +43,7 @@ import javax.inject.Inject
|
||||
* This fragment lets you search and use Pixelfed's Discover feature
|
||||
*/
|
||||
|
||||
class SearchDiscoverFragment : Fragment() {
|
||||
class SearchDiscoverFragment : BaseFragment() {
|
||||
private lateinit var api: PixelfedAPI
|
||||
private lateinit var recycler : RecyclerView
|
||||
private lateinit var adapter : DiscoverRecyclerViewAdapter
|
||||
@ -51,14 +51,6 @@ class SearchDiscoverFragment : Fragment() {
|
||||
private lateinit var discoverProgressBar: ProgressBar
|
||||
private lateinit var discoverRefreshLayout: SwipeRefreshLayout
|
||||
|
||||
@Inject
|
||||
lateinit var db: AppDatabase
|
||||
|
||||
@Inject
|
||||
lateinit var apiHolder: PixelfedAPIHolder
|
||||
|
||||
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater, container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
@ -66,9 +58,6 @@ class SearchDiscoverFragment : Fragment() {
|
||||
val view = inflater.inflate(R.layout.fragment_search, container, false)
|
||||
val search = view.findViewById<SearchView>(R.id.search)
|
||||
|
||||
(requireActivity().application as Pixeldroid).getAppComponent().inject(this)
|
||||
|
||||
|
||||
//Configure the search widget (see https://developer.android.com/guide/topics/search/search-dialog#ConfiguringWidget)
|
||||
val searchManager = requireActivity().getSystemService(Context.SEARCH_SERVICE) as SearchManager
|
||||
search.setSearchableInfo(searchManager.getSearchableInfo(requireActivity().componentName))
|
||||
|
9
app/src/main/res/drawable/bug_report_black_24dp.xml
Normal file
9
app/src/main/res/drawable/bug_report_black_24dp.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:pathData="M20,8h-2.81c-0.45,-0.78 -1.07,-1.45 -1.82,-1.96L17,4.41 15.59,3l-2.17,2.17C12.96,5.06 12.49,5 12,5c-0.49,0 -0.96,0.06 -1.41,0.17L8.41,3 7,4.41l1.62,1.63C7.88,6.55 7.26,7.22 6.81,8L4,8v2h2.09c-0.05,0.33 -0.09,0.66 -0.09,1v1L4,12v2h2v1c0,0.34 0.04,0.67 0.09,1L4,16v2h2.81c1.04,1.79 2.97,3 5.19,3s4.15,-1.21 5.19,-3L20,18v-2h-2.09c0.05,-0.33 0.09,-0.66 0.09,-1v-1h2v-2h-2v-1c0,-0.34 -0.04,-0.67 -0.09,-1L20,10L20,8zM14,16h-4v-2h4v2zM14,12h-4v-2h4v2z"
|
||||
android:fillColor="@color/colorDrawing"/>
|
||||
</vector>
|
9
app/src/main/res/drawable/info_black_24dp.xml
Normal file
9
app/src/main/res/drawable/info_black_24dp.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,17h-2v-6h2v6zM13,9h-2L11,7h2v2z"
|
||||
android:fillColor="@color/colorDrawing"/>
|
||||
</vector>
|
9
app/src/main/res/drawable/palette_black_24dp.xml
Normal file
9
app/src/main/res/drawable/palette_black_24dp.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:pathData="M12,3c-4.97,0 -9,4.03 -9,9s4.03,9 9,9c0.83,0 1.5,-0.67 1.5,-1.5 0,-0.39 -0.15,-0.74 -0.39,-1.01 -0.23,-0.26 -0.38,-0.61 -0.38,-0.99 0,-0.83 0.67,-1.5 1.5,-1.5L16,16c2.76,0 5,-2.24 5,-5 0,-4.42 -4.03,-8 -9,-8zM6.5,12c-0.83,0 -1.5,-0.67 -1.5,-1.5S5.67,9 6.5,9 8,9.67 8,10.5 7.33,12 6.5,12zM9.5,8C8.67,8 8,7.33 8,6.5S8.67,5 9.5,5s1.5,0.67 1.5,1.5S10.33,8 9.5,8zM14.5,8c-0.83,0 -1.5,-0.67 -1.5,-1.5S13.67,5 14.5,5s1.5,0.67 1.5,1.5S15.33,8 14.5,8zM17.5,12c-0.83,0 -1.5,-0.67 -1.5,-1.5S16.67,9 17.5,9s1.5,0.67 1.5,1.5 -0.67,1.5 -1.5,1.5z"
|
||||
android:fillColor="@color/colorDrawing"/>
|
||||
</vector>
|
9
app/src/main/res/drawable/translate_black_24dp.xml
Normal file
9
app/src/main/res/drawable/translate_black_24dp.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:pathData="M12.87,15.07l-2.54,-2.51 0.03,-0.03c1.74,-1.94 2.98,-4.17 3.71,-6.53L17,6L17,4h-7L10,2L8,2v2L1,4v1.99h11.17C11.5,7.92 10.44,9.75 9,11.35 8.07,10.32 7.3,9.19 6.69,8h-2c0.73,1.63 1.73,3.17 2.98,4.56l-5.09,5.02L4,19l5,-5 3.11,3.11 0.76,-2.04zM18.5,10h-2L12,22h2l1.12,-3h4.75L21,22h2l-4.5,-12zM15.88,17l1.62,-4.33L19.12,17h-3.24z"
|
||||
android:fillColor="@color/colorDrawing"/>
|
||||
</vector>
|
@ -11,6 +11,7 @@
|
||||
tools:context=".AboutActivity">
|
||||
|
||||
<ImageView
|
||||
android:importantForAccessibility="no"
|
||||
android:id="@+id/imageView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
@ -61,11 +62,64 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:autoLink="web"
|
||||
android:textAlignment="center"
|
||||
android:text="@string/project_website"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/aboutAppDescription" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/contributeTranslationsText"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:autoLink="web"
|
||||
android:drawablePadding="6dp"
|
||||
android:textAlignment="center"
|
||||
android:text="@string/help_translate"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/aboutWebsite"
|
||||
app:drawableLeftCompat="@drawable/translate_black_24dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/contributeTranslationsUrl"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:autoLink="web"
|
||||
android:textAlignment="center"
|
||||
android:text="https://weblate.pixeldroid.org"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/contributeTranslationsText"
|
||||
tools:ignore="HardcodedText" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/contributeForgeText"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:autoLink="web"
|
||||
android:drawablePadding="6dp"
|
||||
android:textAlignment="center"
|
||||
android:text="@string/issues_contribute"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/contributeTranslationsUrl"
|
||||
app:drawableLeftCompat="@drawable/bug_report_black_24dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/contributeForgeUrl"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:autoLink="web"
|
||||
android:textAlignment="center"
|
||||
android:text="https://gitlab.shinice.net/pixeldroid/PixelDroid"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/contributeForgeText"
|
||||
tools:ignore="HardcodedText" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/licensesButton"
|
||||
android:layout_width="wrap_content"
|
||||
@ -74,7 +128,8 @@
|
||||
android:text="@string/dependencies_licenses"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/aboutWebsite" />
|
||||
app:layout_constraintTop_toBottomOf="@+id/contributeForgeUrl" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</ScrollView>
|
@ -47,7 +47,7 @@
|
||||
<string name="dark_theme">داكن</string>
|
||||
<string name="light_theme">فاتح</string>
|
||||
<string name="save_image_success">تم حفظ الصورة بنجاح</string>
|
||||
<string name="default_theme">افتراضي (يتبع النظام)</string>
|
||||
<string name="default_system">افتراضي (يتبع النظام)</string>
|
||||
<string name="description_max_characters">يجب أن يحتوي الوصف على %1$s حرفًا على الأكثر.</string>
|
||||
<string name="upload_post_success">تم تحميل المنشور بنجاح</string>
|
||||
<string name="upload_post_failed">فشل في تحميل المنشور</string>
|
||||
|
@ -93,7 +93,7 @@
|
||||
<string name="permission_denied">Permís denegat</string>
|
||||
<string name="dark_theme">Fosc</string>
|
||||
<string name="light_theme">Clar</string>
|
||||
<string name="default_theme">Per defecte (seguint el sistema)</string>
|
||||
<string name="default_system">Per defecte (seguint el sistema)</string>
|
||||
<string name="media_upload_completed">{gmd_cloud_done} S\'ha completat l\'enviament multimèdia</string>
|
||||
<string name="media_upload_failed">{gmd_cloud_off} L\'enviament multimèdia ha fallat, torna-ho a provar o comprova les condicions de la xarxa</string>
|
||||
<string name="posting_image_accessibility_hint">Imatge que s\'està publicant</string>
|
||||
|
@ -41,7 +41,7 @@
|
||||
<string name="registration_failed">Konnte die App nicht mit diesem Server verbinden</string>
|
||||
<string name="instance_error">Konnte die Informationen der Instanz nicht abrufen</string>
|
||||
<string name="upload_picture_failed">Fehler beim Hochladen!</string>
|
||||
<string name="default_theme">Standard (Systemeinstellung)</string>
|
||||
<string name="default_system">Standard (Systemeinstellung)</string>
|
||||
<string name="permission_denied">Berechtigung verweigert</string>
|
||||
<string name="save_image_failed">Bild kann nicht gespeichert werden</string>
|
||||
<string name="description_max_characters">Die Beschreibung darf höchstens %1$s Zeichen enthalten.</string>
|
||||
|
@ -97,7 +97,7 @@
|
||||
<string name="permission_denied">Permiso denegado</string>
|
||||
<string name="dark_theme">Oscuro</string>
|
||||
<string name="light_theme">Claro</string>
|
||||
<string name="default_theme">Por defecto (Sistema)</string>
|
||||
<string name="default_system">Por defecto (Sistema)</string>
|
||||
<string name="crop_result_error">No se pudo recuperar la imagen después del recorte</string>
|
||||
<string name="busy_dialog_ok_button">Bien, espera.</string>
|
||||
<string name="busy_dialog_text">Procesando imagen, ¡Espera a que termine!</string>
|
||||
|
@ -59,7 +59,7 @@
|
||||
<string name="save_image_failed">Ezinezkoa irudia gordetzea</string>
|
||||
<string name="dark_theme">Iluna</string>
|
||||
<string name="light_theme">Argia</string>
|
||||
<string name="default_theme">Lehenetsia (Sistemaren lehentsia)</string>
|
||||
<string name="default_system">Lehenetsia (Sistemaren lehentsia)</string>
|
||||
<string name="no_description">Deskribapenik ez</string>
|
||||
<string name="description_max_characters">Deskribapenak %1$s karaktere izan behar ditu gehienez.</string>
|
||||
<string name="save_image_success">Irudia behar bezala gorde da</string>
|
||||
|
@ -45,7 +45,7 @@
|
||||
<string name="permission_denied">ممنوعیت دسترسی</string>
|
||||
<string name="save_image_failed">نتوانستیم تصویر را ذخیره کنیم</string>
|
||||
<string name="description_max_characters">توضیحات حداکثر میتوانند تا %1$s حرف داشته باشند.</string>
|
||||
<string name="default_theme">پیشگزیده (پیروی از سامانه)</string>
|
||||
<string name="default_system">پیشگزیده (پیروی از سامانه)</string>
|
||||
<string name="light_theme">روشن</string>
|
||||
<string name="dark_theme">تاریک</string>
|
||||
<string name="upload_post_error">بارگذاری مطلب ناموفق بود</string>
|
||||
|
@ -51,7 +51,7 @@
|
||||
<string name="permission_denied">Permission refusée</string>
|
||||
<string name="dark_theme">Sombre</string>
|
||||
<string name="light_theme">Clair</string>
|
||||
<string name="default_theme">Par défaut (selon votre système)</string>
|
||||
<string name="default_system">Par défaut (selon votre système)</string>
|
||||
<string name="upload_post_failed">Échec du téléversement de la publication</string>
|
||||
<string name="upload_post_success">Téléversement de la publication avec succès</string>
|
||||
<string name="posted_on">Publié le %1$s</string>
|
||||
|
@ -93,7 +93,7 @@
|
||||
<string name="permission_denied">Permiso denegado</string>
|
||||
<string name="dark_theme">Escuro</string>
|
||||
<string name="light_theme">Claro</string>
|
||||
<string name="default_theme">Por omisión (do sistema)</string>
|
||||
<string name="default_system">Por omisión (do sistema)</string>
|
||||
<string name="media_upload_failed">{gmd_cloud_off} Fallou a subida do ficheiro, inténtao outra vez e comproba a conexión</string>
|
||||
<string name="posting_image_accessibility_hint">Imaxe que se publicou</string>
|
||||
<string name="media_upload_completed">{gmd_cloud_done} Subida do ficheiro completada</string>
|
||||
|
@ -97,7 +97,7 @@
|
||||
<string name="media_upload_failed">{gmd_cloud_off} Caricamento dei contenuti non riuscito, riprovare o verificare le condizioni della rete</string>
|
||||
<string name="follow_button_failed">Impossibile visualizzare il tasto segui</string>
|
||||
<string name="follow_status_failed">Impossibile ottenere lo stato segui</string>
|
||||
<string name="default_theme">Predefinito (Segue il sistema)</string>
|
||||
<string name="default_system">Predefinito (Segue il sistema)</string>
|
||||
<string name="crop_result_error">Impossibile recuperare l\'immagine dopo il ritaglio</string>
|
||||
<string name="busy_dialog_ok_button">Ok, aspetta.</string>
|
||||
<string name="busy_dialog_text">Elaborando ancora l\'immagine, attendi che finisca prima!</string>
|
||||
|
@ -97,7 +97,7 @@
|
||||
<string name="permission_denied">権限がありません</string>
|
||||
<string name="dark_theme">ダーク</string>
|
||||
<string name="light_theme">ライト</string>
|
||||
<string name="default_theme">デフォルト(システム設定)</string>
|
||||
<string name="default_system">デフォルト(システム設定)</string>
|
||||
<string name="busy_dialog_ok_button">お待ちください。</string>
|
||||
<string name="busy_dialog_text">画像を処理しています。しばらくお待ちください。</string>
|
||||
<string name="nothing_to_see_here">ここには何もありません!</string>
|
||||
|
@ -74,7 +74,7 @@
|
||||
<string name="upload_post_failed">Kon post niet uploaden</string>
|
||||
<string name="save_image_failed">Kon afbeelding niet opslaan</string>
|
||||
<string name="permission_denied">Toestemming geweigerd</string>
|
||||
<string name="default_theme">Standaard (systeem instelling)</string>
|
||||
<string name="default_system">Standaard (systeem instelling)</string>
|
||||
<string name="instance_error">Kon instance-informatie niet ophalen</string>
|
||||
<string name="likes">%1$s Vind-ik-leuks</string>
|
||||
<string name="request_format_error">Fout bij het uploaden: slecht verzoekformaat</string>
|
||||
|
@ -58,7 +58,7 @@
|
||||
<string name="registration_failed">Nie udało się zarejestrować aplikacji na tym serwerze</string>
|
||||
<string name="instance_error">Nie udało się pobrać informacji o instancji</string>
|
||||
<string name="instance_not_pixelfed_warning">To chyba nie jest instancja Pixelfed. Aplikacja może zachowywać się nieprzewidywalnie.</string>
|
||||
<string name="default_theme">Systemowy</string>
|
||||
<string name="default_system">Systemowy</string>
|
||||
<string name="followed_notification">%1$s obserwujących</string>
|
||||
<string name="liked_notification">%1$s polubień</string>
|
||||
<string name="whats_an_instance">Co to jest instancja\?</string>
|
||||
|
@ -74,7 +74,7 @@
|
||||
<string name="permission_denied">Недостаточно прав</string>
|
||||
<string name="dark_theme">Тёмная</string>
|
||||
<string name="light_theme">Светлая</string>
|
||||
<string name="default_theme">По умолчанию (как в системе)</string>
|
||||
<string name="default_system">По умолчанию (как в системе)</string>
|
||||
<string name="follow_status_failed">Не удалось получить статус подписки</string>
|
||||
<string name="follow_error">Не удалось подписаться</string>
|
||||
<string name="action_not_allowed">Это действие запрещено</string>
|
||||
|
@ -97,7 +97,7 @@
|
||||
<string name="permission_denied">Åtkomst nekas</string>
|
||||
<string name="dark_theme">Mörkt</string>
|
||||
<string name="light_theme">Ljust</string>
|
||||
<string name="default_theme">Standard (Följer systemet)</string>
|
||||
<string name="default_system">Standard (Följer systemet)</string>
|
||||
<string name="nothing_to_see_here">Det finns inget här!</string>
|
||||
<string name="crop_result_error">Kunde inte hämta bilden efter beskärning</string>
|
||||
<string name="busy_dialog_ok_button">OK, vänta på det.</string>
|
||||
|
@ -95,7 +95,7 @@
|
||||
<string name="save_image_success">图片成功保存</string>
|
||||
<string name="save_image_failed">无法保存图像</string>
|
||||
<string name="permission_denied">没有权限</string>
|
||||
<string name="default_theme">默认(跟随系统设置)</string>
|
||||
<string name="default_system">默认(跟随系统设置)</string>
|
||||
<string name="light_theme">浅色</string>
|
||||
<string name="dark_theme">深色</string>
|
||||
<string name="nothing_to_see_here">这里什么也没有!</string>
|
||||
|
@ -6,8 +6,53 @@
|
||||
</string-array>
|
||||
|
||||
<string-array name="theme_entries">
|
||||
<item>@string/default_theme</item>
|
||||
<item>@string/default_system</item>
|
||||
<item>@string/light_theme</item>
|
||||
<item>@string/dark_theme</item>
|
||||
</string-array>
|
||||
|
||||
|
||||
<string-array name="languages_entries">
|
||||
<item>@string/default_system</item>
|
||||
<item>العربية</item>
|
||||
<item>বাংলা (বাংলাদেশ)</item>
|
||||
<item>Català</item>
|
||||
<item>Deutsch</item>
|
||||
<item>Esperanto</item>
|
||||
<item>Euskara</item>
|
||||
<item>فارسی</item>
|
||||
<item>Français</item>
|
||||
<item>Gaeilge</item>
|
||||
<item>Italiano</item>
|
||||
<item>日本語</item>
|
||||
<item>Nederlands</item>
|
||||
<item>Polski</item>
|
||||
<item>Português (Brasil)</item>
|
||||
<item>Русский</item>
|
||||
<item>Svenska</item>
|
||||
<item>Українська</item>
|
||||
<item>中文(简体)</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="languages_values">
|
||||
<item>default</item>
|
||||
<item>ar</item>
|
||||
<item>bn-bd</item>
|
||||
<item>ca</item>
|
||||
<item>de</item>
|
||||
<item>es</item>
|
||||
<item>eu</item>
|
||||
<item>fa</item>
|
||||
<item>fr</item>
|
||||
<item>gl</item>
|
||||
<item>it</item>
|
||||
<item>ja</item>
|
||||
<item>nl</item>
|
||||
<item>pl</item>
|
||||
<item>pt-br</item>
|
||||
<item>ru</item>
|
||||
<item>sv</item>
|
||||
<item>uk</item>
|
||||
<item>zh-CN</item>
|
||||
</string-array>
|
||||
</resources>
|
@ -16,7 +16,7 @@
|
||||
<!-- Theme Preferences -->
|
||||
<string name="theme_title">Application Theme</string>
|
||||
<string name="theme_header">Theme</string>
|
||||
<string name="default_theme">Default (Follows system)</string>
|
||||
<string name="default_system">Default (Follows system)</string>
|
||||
<string name="light_theme">Light</string>
|
||||
<string name="dark_theme">Dark</string>
|
||||
<string name="followed_notification">%1$s followed you</string>
|
||||
@ -143,6 +143,9 @@
|
||||
<string name="OK">OK</string>
|
||||
<string name="delete_dialog">Delete this post?</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="language">Language</string>
|
||||
<string name="help_translate">Help translate PixelDroid to your language:</string>
|
||||
<string name="issues_contribute">Report issues or contribute to the application:</string>
|
||||
|
||||
|
||||
</resources>
|
@ -8,12 +8,23 @@
|
||||
app:entryValues="@array/theme_values"
|
||||
app:key="theme"
|
||||
app:title="@string/theme_title"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
app:useSimpleSummaryProvider="true"
|
||||
app:icon="@drawable/palette_black_24dp"/>
|
||||
</PreferenceCategory>
|
||||
|
||||
<ListPreference
|
||||
app:defaultValue="default"
|
||||
app:entries="@array/languages_entries"
|
||||
app:entryValues="@array/languages_values"
|
||||
app:key="language"
|
||||
app:title="@string/language"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
app:icon="@drawable/translate_black_24dp" />
|
||||
|
||||
<Preference android:title="@string/about"
|
||||
android:key="about"
|
||||
android:summary="@string/about_pixeldroid">
|
||||
android:summary="@string/about_pixeldroid"
|
||||
app:icon="@drawable/info_black_24dp">
|
||||
<intent
|
||||
android:targetPackage="com.h.pixeldroid"
|
||||
android:targetClass="com.h.pixeldroid.AboutActivity"/>
|
||||
|
Loading…
x
Reference in New Issue
Block a user