mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-27 04:43:54 +01:00
Synced branch with master and fixed bugs specific to accessing of files in Nougat and above
This commit is contained in:
commit
fe57db580e
52 changed files with 865 additions and 261 deletions
|
|
@ -13,7 +13,7 @@ dependencies {
|
|||
compile 'org.mediawiki:api:1.3'
|
||||
compile 'commons-codec:commons-codec:1.10'
|
||||
compile 'com.github.pedrovgs:renderers:3.3.3'
|
||||
compile 'com.google.code.gson:gson:2.8.0'
|
||||
compile 'com.google.code.gson:gson:2.8.1'
|
||||
compile 'com.jakewharton.timber:timber:4.5.1'
|
||||
compile 'info.debatty:java-string-similarity:0.24'
|
||||
compile ('com.mapbox.mapboxsdk:mapbox-android-sdk:5.1.0@aar'){
|
||||
|
|
@ -24,6 +24,8 @@ dependencies {
|
|||
compile "com.android.support:appcompat-v7:${project.supportLibVersion}"
|
||||
compile "com.android.support:design:${project.supportLibVersion}"
|
||||
|
||||
compile "com.android.support:cardview-v7:${project.supportLibVersion}"
|
||||
|
||||
compile "com.jakewharton:butterknife:$BUTTERKNIFE_VERSION"
|
||||
annotationProcessor "com.jakewharton:butterknife-compiler:$BUTTERKNIFE_VERSION"
|
||||
|
||||
|
|
@ -43,12 +45,12 @@ dependencies {
|
|||
compile 'com.facebook.stetho:stetho:1.5.0'
|
||||
|
||||
testCompile 'junit:junit:4.12'
|
||||
testCompile 'org.robolectric:robolectric:3.3.2'
|
||||
testCompile 'org.robolectric:robolectric:3.4'
|
||||
|
||||
testCompile 'com.squareup.okhttp3:mockwebserver:3.8.1'
|
||||
androidTestCompile 'com.squareup.okhttp3:mockwebserver:3.8.1'
|
||||
androidTestCompile "com.android.support:support-annotations:${project.supportLibVersion}"
|
||||
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
|
||||
androidTestCompile 'com.android.support.test.espresso:espresso-core:3.0.1'
|
||||
|
||||
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5.1'
|
||||
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1'
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
android:name=".CommonsApplication"
|
||||
android:icon="@drawable/ic_launcher"
|
||||
android:label="@string/app_name"
|
||||
android:theme="@style/Theme.AppCompat"
|
||||
android:theme="@style/LightAppTheme"
|
||||
android:supportsRtl="true" >
|
||||
<activity android:name="org.acra.CrashReportDialog"
|
||||
android:theme="@android:style/Theme.Dialog"
|
||||
|
|
|
|||
|
|
@ -5,57 +5,66 @@ import android.app.ProgressDialog;
|
|||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.ColorRes;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.StringRes;
|
||||
import android.support.v4.app.NavUtils;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
import android.support.v7.app.AppCompatDelegate;
|
||||
import android.text.Editable;
|
||||
import android.text.TextWatcher;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import fr.free.nrw.commons.BuildConfig;
|
||||
import fr.free.nrw.commons.CommonsApplication;
|
||||
import fr.free.nrw.commons.R;
|
||||
import fr.free.nrw.commons.WelcomeActivity;
|
||||
|
||||
import fr.free.nrw.commons.PageTitle;
|
||||
import fr.free.nrw.commons.R;
|
||||
import fr.free.nrw.commons.Utils;
|
||||
import fr.free.nrw.commons.WelcomeActivity;
|
||||
import fr.free.nrw.commons.contributions.ContributionsActivity;
|
||||
import timber.log.Timber;
|
||||
|
||||
import static android.view.KeyEvent.KEYCODE_ENTER;
|
||||
import static android.view.inputmethod.EditorInfo.IME_ACTION_DONE;
|
||||
|
||||
|
||||
public class LoginActivity extends AccountAuthenticatorActivity {
|
||||
|
||||
public static final String PARAM_USERNAME = "fr.free.nrw.commons.login.username";
|
||||
|
||||
private SharedPreferences prefs = null;
|
||||
|
||||
private Button loginButton;
|
||||
private EditText usernameEdit;
|
||||
private EditText passwordEdit;
|
||||
private EditText twoFactorEdit;
|
||||
ProgressDialog progressDialog;
|
||||
private LoginTextWatcher textWatcher = new LoginTextWatcher();
|
||||
@BindView(R.id.loginButton) Button loginButton;
|
||||
@BindView(R.id.signupButton) Button signupButton;
|
||||
@BindView(R.id.loginUsername) EditText usernameEdit;
|
||||
@BindView(R.id.loginPassword) EditText passwordEdit;
|
||||
@BindView(R.id.loginTwoFactor) EditText twoFactorEdit;
|
||||
@BindView(R.id.error_message_container) ViewGroup errorMessageContainer;
|
||||
@BindView(R.id.error_message) TextView errorMessage;
|
||||
|
||||
private CommonsApplication app;
|
||||
ProgressDialog progressDialog;
|
||||
private AppCompatDelegate delegate;
|
||||
private SharedPreferences prefs = null;
|
||||
private LoginTextWatcher textWatcher = new LoginTextWatcher();
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
setTheme(Utils.isDarkTheme(this) ? R.style.DarkAppTheme : R.style.LightAppTheme);
|
||||
getDelegate().installViewFactory();
|
||||
getDelegate().onCreate(savedInstanceState);
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
app = CommonsApplication.getInstance();
|
||||
|
||||
setContentView(R.layout.activity_login);
|
||||
|
||||
loginButton = (Button) findViewById(R.id.loginButton);
|
||||
Button signupButton = (Button) findViewById(R.id.signupButton);
|
||||
usernameEdit = (EditText) findViewById(R.id.loginUsername);
|
||||
passwordEdit = (EditText) findViewById(R.id.loginPassword);
|
||||
twoFactorEdit = (EditText) findViewById(R.id.loginTwoFactor);
|
||||
ButterKnife.bind(this);
|
||||
|
||||
prefs = getSharedPreferences("fr.free.nrw.commons", MODE_PRIVATE);
|
||||
|
||||
|
|
@ -64,45 +73,17 @@ public class LoginActivity extends AccountAuthenticatorActivity {
|
|||
twoFactorEdit.addTextChangedListener(textWatcher);
|
||||
passwordEdit.setOnEditorActionListener(newLoginInputActionListener());
|
||||
|
||||
loginButton.setOnClickListener(this::performLogin);
|
||||
signupButton.setOnClickListener(this::signUp);
|
||||
}
|
||||
|
||||
private class LoginTextWatcher implements TextWatcher {
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence charSequence, int start, int count, int after) {
|
||||
loginButton.setOnClickListener(view -> performLogin());
|
||||
signupButton.setOnClickListener(view -> signUp());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTextChanged(CharSequence charSequence, int start, int count, int after) {
|
||||
protected void onPostCreate(Bundle savedInstanceState) {
|
||||
super.onPostCreate(savedInstanceState);
|
||||
getDelegate().onPostCreate(savedInstanceState);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterTextChanged(Editable editable) {
|
||||
if (usernameEdit.getText().length() != 0 && passwordEdit.getText().length() != 0 &&
|
||||
(BuildConfig.DEBUG || twoFactorEdit.getText().length() != 0 || twoFactorEdit.getVisibility() != View.VISIBLE)) {
|
||||
loginButton.setEnabled(true);
|
||||
} else {
|
||||
loginButton.setEnabled(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private TextView.OnEditorActionListener newLoginInputActionListener() {
|
||||
return (textView, actionId, keyEvent) -> {
|
||||
if (loginButton.isEnabled()) {
|
||||
if (actionId == IME_ACTION_DONE) {
|
||||
performLogin(textView);
|
||||
return true;
|
||||
} else if ((keyEvent != null) && keyEvent.getKeyCode() == KEYCODE_ENTER) {
|
||||
performLogin(textView);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
}
|
||||
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
if (prefs.getBoolean("firstrun", true)) {
|
||||
|
|
@ -127,15 +108,104 @@ public class LoginActivity extends AccountAuthenticatorActivity {
|
|||
usernameEdit.removeTextChangedListener(textWatcher);
|
||||
passwordEdit.removeTextChangedListener(textWatcher);
|
||||
twoFactorEdit.removeTextChangedListener(textWatcher);
|
||||
delegate.onDestroy();
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
private void performLogin(View view) {
|
||||
@Override
|
||||
protected void onStart() {
|
||||
super.onStart();
|
||||
delegate.onStart();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStop() {
|
||||
super.onStop();
|
||||
delegate.onStop();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostResume() {
|
||||
super.onPostResume();
|
||||
getDelegate().onPostResume();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setContentView(View view, ViewGroup.LayoutParams params) {
|
||||
getDelegate().setContentView(view, params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case android.R.id.home:
|
||||
NavUtils.navigateUpFromSameTask(this);
|
||||
return true;
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
@Override
|
||||
@NonNull
|
||||
public MenuInflater getMenuInflater() {
|
||||
return getDelegate().getMenuInflater();
|
||||
}
|
||||
|
||||
public void askUserForTwoFactorAuth() {
|
||||
if (BuildConfig.DEBUG) {
|
||||
twoFactorEdit.setVisibility(View.VISIBLE);
|
||||
showMessageAndCancelDialog(R.string.login_failed_2fa_needed);
|
||||
} else {
|
||||
showMessageAndCancelDialog(R.string.login_failed_2fa_not_supported);
|
||||
}
|
||||
}
|
||||
|
||||
public void showMessageAndCancelDialog(@StringRes int resId) {
|
||||
showMessage(resId, R.color.secondaryDarkColor);
|
||||
progressDialog.cancel();
|
||||
}
|
||||
|
||||
public void showSuccessAndDismissDialog() {
|
||||
showMessage(R.string.login_success, R.color.primaryDarkColor);
|
||||
progressDialog.dismiss();
|
||||
}
|
||||
|
||||
public void emptySensitiveEditFields() {
|
||||
passwordEdit.setText("");
|
||||
twoFactorEdit.setText("");
|
||||
}
|
||||
|
||||
public void startMainActivity() {
|
||||
ContributionsActivity.startYourself(this);
|
||||
finish();
|
||||
}
|
||||
|
||||
private void performLogin() {
|
||||
Timber.d("Login to start!");
|
||||
LoginTask task = getLoginTask();
|
||||
task.execute();
|
||||
}
|
||||
|
||||
private void signUp() {
|
||||
Intent intent = new Intent(this, SignupActivity.class);
|
||||
startActivity(intent);
|
||||
}
|
||||
|
||||
private TextView.OnEditorActionListener newLoginInputActionListener() {
|
||||
return (textView, actionId, keyEvent) -> {
|
||||
if (loginButton.isEnabled()) {
|
||||
if (actionId == IME_ACTION_DONE) {
|
||||
performLogin();
|
||||
return true;
|
||||
} else if ((keyEvent != null) && keyEvent.getKeyCode() == KEYCODE_ENTER) {
|
||||
performLogin();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
}
|
||||
|
||||
private LoginTask getLoginTask() {
|
||||
return new LoginTask(
|
||||
this,
|
||||
|
|
@ -154,57 +224,33 @@ public class LoginActivity extends AccountAuthenticatorActivity {
|
|||
return new PageTitle(username).getText();
|
||||
}
|
||||
|
||||
private void showMessage(@StringRes int resId, @ColorRes int colorResId) {
|
||||
errorMessage.setText(getString(resId));
|
||||
errorMessage.setTextColor(ContextCompat.getColor(this, colorResId));
|
||||
errorMessageContainer.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
private AppCompatDelegate getDelegate() {
|
||||
if (delegate == null) {
|
||||
delegate = AppCompatDelegate.create(this, null);
|
||||
}
|
||||
return delegate;
|
||||
}
|
||||
|
||||
private class LoginTextWatcher implements TextWatcher {
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case android.R.id.home:
|
||||
NavUtils.navigateUpFromSameTask(this);
|
||||
return true;
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
public void beforeTextChanged(CharSequence charSequence, int start, int count, int after) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when Sign Up button is clicked.
|
||||
* @param view View
|
||||
*/
|
||||
public void signUp(View view) {
|
||||
Intent intent = new Intent(this, SignupActivity.class);
|
||||
startActivity(intent);
|
||||
@Override
|
||||
public void onTextChanged(CharSequence charSequence, int start, int count, int after) {
|
||||
}
|
||||
|
||||
public void askUserForTwoFactorAuth() {
|
||||
if (BuildConfig.DEBUG) {
|
||||
twoFactorEdit.setVisibility(View.VISIBLE);
|
||||
showUserToastAndCancelDialog(R.string.login_failed_2fa_needed);
|
||||
} else {
|
||||
showUserToastAndCancelDialog(R.string.login_failed_2fa_not_supported);
|
||||
@Override
|
||||
public void afterTextChanged(Editable editable) {
|
||||
boolean enabled = usernameEdit.getText().length() != 0 && passwordEdit.getText().length() != 0 &&
|
||||
(BuildConfig.DEBUG || twoFactorEdit.getText().length() != 0 || twoFactorEdit.getVisibility() != View.VISIBLE);
|
||||
loginButton.setEnabled(enabled);
|
||||
}
|
||||
}
|
||||
|
||||
public void showUserToastAndCancelDialog(int resId) {
|
||||
showUserToast(resId);
|
||||
progressDialog.cancel();
|
||||
}
|
||||
|
||||
private void showUserToast(int resId) {
|
||||
Toast.makeText(this, resId, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
||||
public void showSuccessToastAndDismissDialog() {
|
||||
Toast successToast = Toast.makeText(this, R.string.login_success, Toast.LENGTH_SHORT);
|
||||
successToast.show();
|
||||
progressDialog.dismiss();
|
||||
}
|
||||
|
||||
public void emptySensitiveEditFields() {
|
||||
passwordEdit.setText("");
|
||||
twoFactorEdit.setText("");
|
||||
}
|
||||
|
||||
public void startMainActivity() {
|
||||
ContributionsActivity.startYourself(this);
|
||||
finish();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ class LoginTask extends AsyncTask<String, String, String> {
|
|||
}
|
||||
|
||||
private void handlePassResult() {
|
||||
loginActivity.showSuccessToastAndDismissDialog();
|
||||
loginActivity.showSuccessAndDismissDialog();
|
||||
|
||||
AccountAuthenticatorResponse response = null;
|
||||
|
||||
|
|
@ -99,27 +99,27 @@ class LoginTask extends AsyncTask<String, String, String> {
|
|||
private void handleOtherResults(String result) {
|
||||
if (result.equals("NetworkFailure")) {
|
||||
// Matches NetworkFailure which is created by the doInBackground method
|
||||
loginActivity.showUserToastAndCancelDialog(R.string.login_failed_network);
|
||||
loginActivity.showMessageAndCancelDialog(R.string.login_failed_network);
|
||||
} else if (result.toLowerCase().contains("nosuchuser".toLowerCase()) || result.toLowerCase().contains("noname".toLowerCase())) {
|
||||
// Matches nosuchuser, nosuchusershort, noname
|
||||
loginActivity.showUserToastAndCancelDialog(R.string.login_failed_username);
|
||||
loginActivity.showMessageAndCancelDialog(R.string.login_failed_username);
|
||||
loginActivity.emptySensitiveEditFields();
|
||||
} else if (result.toLowerCase().contains("wrongpassword".toLowerCase())) {
|
||||
// Matches wrongpassword, wrongpasswordempty
|
||||
loginActivity.showUserToastAndCancelDialog(R.string.login_failed_password);
|
||||
loginActivity.showMessageAndCancelDialog(R.string.login_failed_password);
|
||||
loginActivity.emptySensitiveEditFields();
|
||||
} else if (result.toLowerCase().contains("throttle".toLowerCase())) {
|
||||
// Matches unknown throttle error codes
|
||||
loginActivity.showUserToastAndCancelDialog(R.string.login_failed_throttled);
|
||||
loginActivity.showMessageAndCancelDialog(R.string.login_failed_throttled);
|
||||
} else if (result.toLowerCase().contains("userblocked".toLowerCase())) {
|
||||
// Matches login-userblocked
|
||||
loginActivity.showUserToastAndCancelDialog(R.string.login_failed_blocked);
|
||||
loginActivity.showMessageAndCancelDialog(R.string.login_failed_blocked);
|
||||
} else if (result.equals("2FA")) {
|
||||
loginActivity.askUserForTwoFactorAuth();
|
||||
} else {
|
||||
// Occurs with unhandled login failure codes
|
||||
Timber.d("Login failed with reason: %s", result);
|
||||
loginActivity.showUserToastAndCancelDialog(R.string.login_failed_generic);
|
||||
loginActivity.showMessageAndCancelDialog(R.string.login_failed_generic);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ import android.support.annotation.NonNull;
|
|||
import android.text.TextUtils;
|
||||
|
||||
import fr.free.nrw.commons.CommonsApplication;
|
||||
import fr.free.nrw.commons.data.Category;
|
||||
import fr.free.nrw.commons.data.DBOpenHelper;
|
||||
import timber.log.Timber;
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package fr.free.nrw.commons.settings;
|
|||
import android.Manifest;
|
||||
import android.app.AlertDialog;
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.PackageManager;
|
||||
|
|
@ -18,6 +19,7 @@ import android.preference.PreferenceManager;
|
|||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
import android.support.v4.content.FileProvider;
|
||||
import android.widget.Toast;
|
||||
|
||||
import java.io.File;
|
||||
|
|
@ -120,7 +122,13 @@ public class SettingsFragment extends PreferenceFragment {
|
|||
private void sendAppLogsViaEmail() {
|
||||
String appLogs = Utils.getAppLogs();
|
||||
File appLogsFile = FileUtils.createAndGetAppLogsFile(appLogs);
|
||||
Uri appLogsFilePath = Uri.fromFile(appLogsFile);
|
||||
|
||||
Context applicationContext = getActivity().getApplicationContext();
|
||||
Uri appLogsFilePath = FileProvider.getUriForFile(
|
||||
getActivity(),
|
||||
applicationContext.getPackageName() + ".provider",
|
||||
appLogsFile
|
||||
);
|
||||
|
||||
Intent feedbackIntent = new Intent(Intent.ACTION_SEND);
|
||||
feedbackIntent.setType("message/rfc822");
|
||||
|
|
|
|||
5
app/src/main/res/drawable/blue_rinse_circle.xml
Normal file
5
app/src/main/res/drawable/blue_rinse_circle.xml
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="oval">
|
||||
<solid android:color="@color/primarySuperLightColor" />
|
||||
</shape>
|
||||
195
app/src/main/res/layout-land/activity_login.xml
Normal file
195
app/src/main/res/layout-land/activity_login.xml
Normal file
|
|
@ -0,0 +1,195 @@
|
|||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="400sp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginTop="8dp">
|
||||
|
||||
<android.support.v7.widget.CardView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="32dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginStart="16dp"
|
||||
app:cardCornerRadius="4dp"
|
||||
app:cardElevation="4dp">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/primaryColor"
|
||||
android:gravity="center"
|
||||
android:paddingBottom="32dp"
|
||||
android:paddingTop="32dp"
|
||||
android:text="@string/login_to_your_account"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="24sp" />
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/error_message_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/title"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/error_message"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:paddingBottom="8dp"
|
||||
android:paddingTop="8dp"
|
||||
android:textColor="@color/secondaryDarkColor"
|
||||
tools:text="Check your password, something doesnt look right" />
|
||||
</FrameLayout>
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:id="@+id/username_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/error_message_container"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="16dp">
|
||||
|
||||
<android.support.design.widget.TextInputEditText
|
||||
android:id="@+id/loginUsername"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/username"
|
||||
android:imeOptions="flagNoExtractUi"
|
||||
android:inputType="textNoSuggestions">
|
||||
|
||||
<requestFocus />
|
||||
|
||||
</android.support.design.widget.TextInputEditText>
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:id="@+id/password_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/username_container"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginStart="16dp"
|
||||
app:passwordToggleEnabled="false">
|
||||
|
||||
<android.support.design.widget.TextInputEditText
|
||||
android:id="@+id/loginPassword"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/password"
|
||||
android:imeOptions="flagNoExtractUi"
|
||||
android:inputType="textPassword" />
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:id="@+id/two_factor_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/password_container"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:visibility="gone"
|
||||
app:passwordToggleEnabled="false"
|
||||
tools:visibility="visible">
|
||||
|
||||
<android.support.design.widget.TextInputEditText
|
||||
android:id="@+id/loginTwoFactor"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/_2fa_code"
|
||||
android:imeOptions="flagNoExtractUi"
|
||||
android:inputType="textNoSuggestions"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible" />
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/two_factor_container"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginStart="16dp">
|
||||
|
||||
<Button
|
||||
android:id="@+id/signupButton"
|
||||
android:layout_width="0dp"
|
||||
style="@style/Widget.AppCompat.Button.Borderless.Colored"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/signup" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/loginButton"
|
||||
android:layout_width="0dp"
|
||||
style="@style/Widget.AppCompat.Button.Colored"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_weight="1"
|
||||
android:enabled="false"
|
||||
android:text="@string/login" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</RelativeLayout>
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
<android.support.v7.widget.AppCompatImageView
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="64dp"
|
||||
android:elevation="8dp"
|
||||
tools:ignore="UnusedAttribute"
|
||||
android:layout_gravity="center_horizontal"
|
||||
app:srcCompat="@drawable/blue_rinse_circle" />
|
||||
|
||||
<android.support.v7.widget.AppCompatImageView
|
||||
android:layout_width="42dp"
|
||||
tools:ignore="UnusedAttribute"
|
||||
android:layout_height="42dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="8dp"
|
||||
android:elevation="8dp"
|
||||
app:srcCompat="@drawable/commons_logo_large" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</ScrollView>
|
||||
195
app/src/main/res/layout-xlarge/activity_login.xml
Normal file
195
app/src/main/res/layout-xlarge/activity_login.xml
Normal file
|
|
@ -0,0 +1,195 @@
|
|||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="400sp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginTop="8dp">
|
||||
|
||||
<android.support.v7.widget.CardView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="32dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginStart="16dp"
|
||||
app:cardCornerRadius="4dp"
|
||||
app:cardElevation="4dp">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/primaryColor"
|
||||
android:gravity="center"
|
||||
android:paddingBottom="32dp"
|
||||
android:paddingTop="32dp"
|
||||
android:text="@string/login_to_your_account"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="24sp" />
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/error_message_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/title"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/error_message"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:paddingBottom="8dp"
|
||||
android:paddingTop="8dp"
|
||||
android:textColor="@color/secondaryDarkColor"
|
||||
tools:text="Check your password, something doesnt look right" />
|
||||
</FrameLayout>
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:id="@+id/username_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/error_message_container"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="16dp">
|
||||
|
||||
<android.support.design.widget.TextInputEditText
|
||||
android:id="@+id/loginUsername"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/username"
|
||||
android:imeOptions="flagNoExtractUi"
|
||||
android:inputType="textNoSuggestions">
|
||||
|
||||
<requestFocus />
|
||||
|
||||
</android.support.design.widget.TextInputEditText>
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:id="@+id/password_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/username_container"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginStart="16dp"
|
||||
app:passwordToggleEnabled="false">
|
||||
|
||||
<android.support.design.widget.TextInputEditText
|
||||
android:id="@+id/loginPassword"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/password"
|
||||
android:imeOptions="flagNoExtractUi"
|
||||
android:inputType="textPassword" />
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:id="@+id/two_factor_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/password_container"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:visibility="gone"
|
||||
app:passwordToggleEnabled="false"
|
||||
tools:visibility="visible">
|
||||
|
||||
<android.support.design.widget.TextInputEditText
|
||||
android:id="@+id/loginTwoFactor"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/_2fa_code"
|
||||
android:imeOptions="flagNoExtractUi"
|
||||
android:inputType="textNoSuggestions"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible" />
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/two_factor_container"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginStart="16dp">
|
||||
|
||||
<Button
|
||||
android:id="@+id/signupButton"
|
||||
android:layout_width="0dp"
|
||||
style="@style/Widget.AppCompat.Button.Borderless.Colored"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/signup" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/loginButton"
|
||||
android:layout_width="0dp"
|
||||
style="@style/Widget.AppCompat.Button.Colored"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_weight="1"
|
||||
android:enabled="false"
|
||||
android:text="@string/login" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</RelativeLayout>
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
<android.support.v7.widget.AppCompatImageView
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="64dp"
|
||||
android:elevation="8dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
app:srcCompat="@drawable/blue_rinse_circle"
|
||||
tools:ignore="UnusedAttribute" />
|
||||
|
||||
<android.support.v7.widget.AppCompatImageView
|
||||
android:layout_width="42dp"
|
||||
android:layout_height="42dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="8dp"
|
||||
tools:ignore="UnusedAttribute"
|
||||
android:elevation="8dp"
|
||||
app:srcCompat="@drawable/commons_logo_large" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</ScrollView>
|
||||
|
|
@ -1,34 +1,78 @@
|
|||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<LinearLayout
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_margin="16dp"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical"
|
||||
>
|
||||
android:layout_marginTop="8dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/loginSubtitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="48dp"
|
||||
android:drawablePadding="8dp"
|
||||
android:drawableTop="@drawable/commons_logo_large"
|
||||
android:gravity="center_horizontal"
|
||||
android:text="@string/app_name"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
/>
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
<android.support.v7.widget.CardView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
>
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="32dp"
|
||||
app:cardCornerRadius="4dp"
|
||||
app:cardElevation="4dp">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/primaryColor"
|
||||
android:gravity="center"
|
||||
android:paddingBottom="32dp"
|
||||
android:paddingTop="32dp"
|
||||
android:text="@string/login_to_your_account"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="24sp" />
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/error_message_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/title"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/error_message"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:paddingBottom="8dp"
|
||||
android:paddingTop="8dp"
|
||||
android:textColor="@color/secondaryDarkColor"
|
||||
tools:text="Check your password, something doesnt look right" />
|
||||
</FrameLayout>
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:id="@+id/username_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/error_message_container"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="16dp">
|
||||
|
||||
<android.support.design.widget.TextInputEditText
|
||||
android:id="@+id/loginUsername"
|
||||
|
|
@ -36,8 +80,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:hint="@string/username"
|
||||
android:imeOptions="flagNoExtractUi"
|
||||
android:inputType="textNoSuggestions"
|
||||
>
|
||||
android:inputType="textNoSuggestions">
|
||||
|
||||
<requestFocus />
|
||||
|
||||
|
|
@ -46,10 +89,16 @@
|
|||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:id="@+id/password_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:passwordToggleEnabled="false"
|
||||
>
|
||||
android:layout_below="@id/username_container"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginStart="16dp"
|
||||
app:passwordToggleEnabled="false">
|
||||
|
||||
<android.support.design.widget.TextInputEditText
|
||||
android:id="@+id/loginPassword"
|
||||
|
|
@ -57,16 +106,23 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:hint="@string/password"
|
||||
android:imeOptions="flagNoExtractUi"
|
||||
android:inputType="textPassword"
|
||||
/>
|
||||
android:inputType="textPassword" />
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:id="@+id/two_factor_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/password_container"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:visibility="gone"
|
||||
app:passwordToggleEnabled="false"
|
||||
>
|
||||
tools:visibility="visible">
|
||||
|
||||
<android.support.design.widget.TextInputEditText
|
||||
android:id="@+id/loginTwoFactor"
|
||||
|
|
@ -76,25 +132,64 @@
|
|||
android:imeOptions="flagNoExtractUi"
|
||||
android:inputType="textNoSuggestions"
|
||||
android:visibility="gone"
|
||||
/>
|
||||
tools:visibility="visible" />
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
<Button
|
||||
android:id="@+id/loginButton"
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:enabled="false"
|
||||
android:text="@string/login"
|
||||
/>
|
||||
android:layout_below="@id/two_factor_container"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginStart="16dp">
|
||||
|
||||
<Button
|
||||
android:id="@+id/signupButton"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_width="0dp"
|
||||
style="@style/Widget.AppCompat.Button.Borderless.Colored"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:text="@string/signup"
|
||||
/>
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/signup" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/loginButton"
|
||||
android:layout_width="0dp"
|
||||
style="@style/Widget.AppCompat.Button.Colored"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_weight="1"
|
||||
android:enabled="false"
|
||||
android:text="@string/login" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</RelativeLayout>
|
||||
</android.support.v7.widget.CardView>
|
||||
|
||||
<android.support.v7.widget.AppCompatImageView
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="64dp"
|
||||
android:elevation="8dp"
|
||||
tools:ignore="UnusedAttribute"
|
||||
android:layout_gravity="center_horizontal"
|
||||
app:srcCompat="@drawable/blue_rinse_circle" />
|
||||
|
||||
<android.support.v7.widget.AppCompatImageView
|
||||
android:layout_width="42dp"
|
||||
android:layout_height="42dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="8dp"
|
||||
tools:ignore="UnusedAttribute"
|
||||
android:elevation="8dp"
|
||||
app:srcCompat="@drawable/commons_logo_large" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</ScrollView>
|
||||
|
|
|
|||
|
|
@ -2,21 +2,18 @@
|
|||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="?attr/commonsAppBlue"
|
||||
>
|
||||
android:background="@color/primaryColor">
|
||||
|
||||
<android.support.v4.view.ViewPager
|
||||
android:id="@+id/welcomePager"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fadingEdge="none"
|
||||
/>
|
||||
android:fadingEdge="none" />
|
||||
|
||||
<com.viewpagerindicator.CirclePageIndicator
|
||||
android:id="@+id/welcomePagerIndicator"
|
||||
android:layout_height="24dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_gravity="bottom"
|
||||
/>
|
||||
android:layout_gravity="bottom" />
|
||||
|
||||
</FrameLayout>
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item android:id="@+id/menu_upload_single"
|
||||
android:title="@string/menu_upload_single"
|
||||
android:icon="?attr/iconSend"
|
||||
android:icon="@drawable/ic_send_white_24dp"
|
||||
android:enabled="false"
|
||||
app:showAsAction="always" />
|
||||
</menu>
|
||||
|
|
|
|||
|
|
@ -4,6 +4,6 @@
|
|||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item android:id="@+id/menu_save_categories"
|
||||
android:title="@string/menu_save_categories"
|
||||
android:icon="?attr/iconSave"
|
||||
android:icon="@drawable/ic_save_white_24dp"
|
||||
app:showAsAction="always" />
|
||||
</menu>
|
||||
|
|
@ -3,12 +3,12 @@
|
|||
<item android:id="@+id/menu_from_camera"
|
||||
android:title="@string/menu_from_camera"
|
||||
app:showAsAction="ifRoom|withText"
|
||||
android:icon="?attr/iconCamera"
|
||||
android:icon="@drawable/ic_photo_camera_white_24dp"
|
||||
/>
|
||||
<item android:id="@+id/menu_from_gallery"
|
||||
android:title="@string/menu_from_gallery"
|
||||
app:showAsAction="ifRoom|withText"
|
||||
android:icon="?attr/iconPhoto"
|
||||
android:icon="@drawable/ic_photo_white_24dp"
|
||||
/>
|
||||
<!--<item android:id="@+id/menu_nearby"-->
|
||||
<!--android:title="@string/menu_nearby"-->
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
<item
|
||||
android:id="@+id/menu_retry_current_image"
|
||||
android:enabled="false"
|
||||
android:icon="?attr/iconUndo"
|
||||
android:icon="@drawable/ic_undo_white_24dp"
|
||||
android:title="@string/menu_retry_upload"
|
||||
android:visible="false"
|
||||
app:showAsAction="ifRoom|withText" />
|
||||
|
|
|
|||
|
|
@ -6,6 +6,6 @@
|
|||
<item android:id="@+id/menu_upload_multiple"
|
||||
android:title="@string/share_upload_button"
|
||||
app:showAsAction="always|withText"
|
||||
android:icon="?attr/iconSend"
|
||||
android:icon="@drawable/ic_send_white_24dp"
|
||||
/>
|
||||
</menu>
|
||||
|
|
@ -189,4 +189,5 @@
|
|||
<string name="nearby_info_menu_wikidata_article">উইকিউপাত্ত পদ</string>
|
||||
<string name="give_permission">অনুমতি দিন</string>
|
||||
<string name="use_external_storage">বাহ্যিক সঞ্চয়স্থান ব্যবহার করুন</string>
|
||||
<string name="login_to_your_account">আপনার অ্যাকাউন্টে প্রবেশ করুন</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@
|
|||
<string name="title_activity_settings">Paràmetres</string>
|
||||
<string name="title_activity_signup">Registre</string>
|
||||
<string name="menu_about">Quant a</string>
|
||||
<string name="about_license" fuzzy="true">Programari de codi obert distribuït sota la <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\">llicència Apache v2</a></string>
|
||||
<string name="about_license">L’aplicació de codi obert Wikimedia Commons fou creada per, i rep manteniment de, cessionaris i voluntaris de la comunitat de Wikimedia. La Fundació Wikimedia no està involucrada en la creació, el desenvolupament ni el manteniment de l’aplicació.</string>
|
||||
<string name="about_improve" fuzzy="true">Codi a <a href=\"https://github.com/commons-app/apps-android-commons\">GitHub</a>. Informes d\'error a <a href=\" https://github.com/commons-app/apps-android-commons/issues\">Github</a>.</string>
|
||||
<string name="about_privacy_policy" fuzzy="true">Wikimedia:Commons-android-texts-sobre privacitat/ca</string>
|
||||
<string name="title_activity_about">Quant a</string>
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@
|
|||
<string name="menu_about">O aplikaci</string>
|
||||
<string name="about_license" fuzzy="true">Open Source software dostupný za podmínek <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\">Apache License v2</a>. %1$s a logo %1$s jsou ochranné známky Wikimedia Foundation a jsou použity se svolením Wikimedia Foundation. Nejsme podporováni Wikimedia Foundation ani nejsme její součástí.</string>
|
||||
<string name="about_improve"><a href=\"https://github.com/commons-app/apps-android-commons\">Zdrojový kód</a>, <a href=\"https://commons-app.github.io/\">webová stránka</a> a <a href=\"https://github.com/commons-app/apps-android-commons/issues\">hlášení chyb a sdílení nápadů</a> na GitHubu.</string>
|
||||
<string name="about_privacy_policy" fuzzy="true"><a href=\"https://wikimediafoundation.org/wiki/Ochrana_osobních_údajů\">Ochrana osobních údajů</a></string>
|
||||
<string name="about_privacy_policy"><a href=\"https://github.com/commons-app/apps-android-commons/wiki/Privacy-policy\">Ochrana osobních údajů</a></string>
|
||||
<string name="about_credits"><a href=\"https://github.com/commons-app/apps-android-commons/blob/master/CREDITS\">Autoři</a></string>
|
||||
<string name="title_activity_about">O aplikaci</string>
|
||||
<string name="menu_feedback">Poslat názory (e-mailem)</string>
|
||||
|
|
|
|||
|
|
@ -73,9 +73,9 @@
|
|||
<string name="title_activity_settings">Indstillinger</string>
|
||||
<string name="title_activity_signup">Opret konto</string>
|
||||
<string name="menu_about">Om</string>
|
||||
<string name="about_license" fuzzy="true">Open Source-programmer udgivet under <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\">Apache License v2</a>. %1$s og dets logo er varemærker for Wikimedia Foundation og bruges med tilladelse fra Wikimedia Foundation. Vi er hverken støttet af eller forbundet med Wikimedia Foundation.</string>
|
||||
<string name="about_license">Wikimedia Commons-programmet oprettet og udviklet af frivillige i Wikimediafællesskabet. Wikimedia Foundation er ikke involveret i oprettelse, udvikling eller vedligeholdelse af programmet.</string>
|
||||
<string name="about_improve"><a href=\"https://github.com/commons-app/apps-android-commons\">Kilde</a> og <a href=\"https://commons-app.github.io/\">hjemmeside</a> på GitHub. Opret en ny <a href=\"https://github.com/commons-app/apps-android-commons/issues\">GitHub-sag</a> for fejlrapporter og forslag.</string>
|
||||
<string name="about_privacy_policy" fuzzy="true"><a href=\"https://wikimediafoundation.org/wiki/Privacy_policy\">Privacy policy</a></string>
|
||||
<string name="about_privacy_policy"><a href=\"https://github.com/commons-app/apps-android-commons/wiki/Privacy-policy\">Privatlivspolitik</a></string>
|
||||
<string name="about_credits"><a href=\"https://github.com/commons-app/apps-android-commons/blob/master/CREDITS\">Bidragsydere</a></string>
|
||||
<string name="title_activity_about">Om</string>
|
||||
<string name="menu_feedback">Send tilbagemelding (med e-mail)</string>
|
||||
|
|
@ -195,6 +195,8 @@
|
|||
<string name="error_while_cache">Fejl under mellemlagring af billeder</string>
|
||||
<string name="title_info">En unik beskrivelse for filen, som vil fungere som et filnavn. Du kan bruge normalt sprog med mellemrum. Udelad filendelsen.</string>
|
||||
<string name="description_info">Beskriv mediet så godt som muligt: Hvor blev det taget? Hvad viser det? Hvad er konteksten? Beskriv objekterne eller personerne. Giv information som ikke nemt kan gættes, for eksempel hvornår på dagen billedet blev taget, om det er et landskabsbillede. Om billedet viser noget usædvanligt, forklar hvad som gør det usædvanlig.</string>
|
||||
<string name="give_permission">Giv tilladelse</string>
|
||||
<string name="use_external_storage">Brug eksternt lager</string>
|
||||
<string name="use_external_storage_summary">Gem billeder taget med din enheds program på kameraet</string>
|
||||
<string name="login_to_your_account">Log ind på din konto</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -198,4 +198,5 @@
|
|||
<string name="give_permission">Berechtigung geben</string>
|
||||
<string name="use_external_storage">Externen Speicher verwenden</string>
|
||||
<string name="use_external_storage_summary">Mit der In-App-Kamera aufgenommene Bilder auf deinem Gerät speichern</string>
|
||||
<string name="login_to_your_account">Bei deinem Benutzerkonto anmelden</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -73,9 +73,9 @@
|
|||
<string name="title_activity_settings">Ajustes</string>
|
||||
<string name="title_activity_signup">Regístrate</string>
|
||||
<string name="menu_about">Acerca de</string>
|
||||
<string name="about_license" fuzzy="true">Programa de código abierto publicado bajo la <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\">Licencia Apache ver. 2</a>. %1$s y su logotipo son marcas registradas de la Fundación Wikimedia y se utilizan con su permiso. No hemos sido acreditados por la Fundación Wikimedia ni estamos afiliados con ella.</string>
|
||||
<string name="about_license">La aplicación de código abierto Wikimedia Commons fue creada por, y recibe mantenimiento de, cesionarios y voluntarios de la comunidad de Wikimedia. La Fundación Wikimedia no está involucrada en la creación, el desarrollo ni el mantenimiento de la aplicación.</string>
|
||||
<string name="about_improve"><a href=\"https://github.com/commons-app/apps-android-commons\">Código fuente</a> y <a href=\"https://commons-app.github.io/\">sitio web</a> en GitHub. Crea <a href=\"https://github.com/commons-app/apps-android-commons/issues\">incidencias</a> para informar de problemas y sugerencias.</string>
|
||||
<string name="about_privacy_policy" fuzzy="true"><a href=\"https://wikimediafoundation.org/wiki/Privacy_policy\">Normativa de privacidad</a></string>
|
||||
<string name="about_privacy_policy"><a href=\"https://github.com/commons-app/apps-android-commons/wiki/Privacy-policy\">Normativa de privacidad</a></string>
|
||||
<string name="about_credits"><a href=\"https://github.com/commons-app/apps-android-commons/blob/master/CREDITS\">Créditos</a></string>
|
||||
<string name="title_activity_about">Acerca de</string>
|
||||
<string name="menu_feedback">Enviar comentarios (por correo)</string>
|
||||
|
|
@ -195,6 +195,8 @@
|
|||
<string name="error_while_cache">Error mientras se guardaban imágenes en la caché</string>
|
||||
<string name="title_info">Un título único descriptivo para el archivo, que servirá como un nombre de archivo. Puede usar un lenguaje claro con espacios. No incluya la extensión del archivo.</string>
|
||||
<string name="description_info">Por favor, describa el elemento multimedia tanto como sea posible: ¿dónde fue tomado?, ¿qué muestra?, ¿cuál es el contexto? Por favor, describa los objetos o personas. Ofrezca la información que no puede ser inferida tan facilmente, por ejemplo el momento del día si es un paisaje. Si el medio muestra algo inusual, explique qué lo hace insual.</string>
|
||||
<string name="give_permission">Otorgar permiso</string>
|
||||
<string name="use_external_storage">Utilizar almacenamiento externo</string>
|
||||
<string name="use_external_storage_summary">Guardar en el dispositivo imágenes capturadas con la cámara de la aplicación</string>
|
||||
<string name="login_to_your_account">Accede a tu cuenta</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -73,9 +73,9 @@
|
|||
<string name="title_activity_settings">تنظیمات</string>
|
||||
<string name="title_activity_signup">ثبت نام</string>
|
||||
<string name="menu_about">درباره</string>
|
||||
<string name="about_license" fuzzy="true">نرمافزار متنباز آزاد تحت <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\">مجوز آپاچی نسخهٔ ۲</a>\n\n%1$s و نشانش یک نشان تجاریست و با اجازهٔ بنیاد ویکیمدیا استفاده میشود. ما زیرمجموعه یا شعبهٔ بنیاد نیستیم.</string>
|
||||
<string name="about_license">اپلیکیشن ویکیانبار بنیاد ویکیمدیا یک نرمافزار آزاد است که توسط کاربران داوطلب و پاداشبگیر ایجاد و نگهداری میشود. بنیاد ویکیمدیا در ایجاد، نگهداری و توسعهٔ آن دخالتی ندارد.</string>
|
||||
<string name="about_improve"><a href=\"https://github.com/commons-app/apps-android-commons\">Source</a> and <a href=\"https://commons-app.github.io/\">وبسایت</a> در گیتهاب. ایجاد یک <a href=\"https://github.com/commons-app/apps-android-commons/issues\">درخواست در گیتهاب</a> برای گزارش باگ و یا پیشنهاد یک خصوصیت جدید.</string>
|
||||
<string name="about_privacy_policy" fuzzy="true"><a href=\"https://wikimediafoundation.org/wiki/Privacy_policy\">سیاست حفظ حریم خصوصی</a></string>
|
||||
<string name="about_privacy_policy"><a href=\"https://github.com/commons-app/apps-android-commons/wiki/Privacy-policy\">سیاست حفظ حریم خصوصی</a></string>
|
||||
<string name="about_credits"><a href=\"https://github.com/commons-app/apps-android-commons/blob/master/CREDITS\">مجوز</a></string>
|
||||
<string name="title_activity_about">درباره</string>
|
||||
<string name="menu_feedback">ارسال بازخورد (از طریق ایمیل)</string>
|
||||
|
|
@ -195,6 +195,8 @@
|
|||
<string name="error_while_cache">خطا در زمان دریافت تصاویر</string>
|
||||
<string name="title_info">عنوانی توصیفی و یکتا برای پرونده که به عنوان نام پرونده در نظر گرفته خواهد شد. ترجیحاً به زبان ساده باشد، میتوانید فاصله هم به کار ببرید. پسوند پرونده را ننویسید.</string>
|
||||
<string name="description_info">لطفاً تصویر را تا حد توان شرح دهید. کجا گرفته شدهاست؟ شامل چه چیزی میشود؟ لطفاً اشیا یا افراد را شرح دهید. اطلاعاتی که به راحتی قابل مشاهده هستند را صرفهنظر کنید. اگر چیزی در تصویر غیر طبیعی به نظر میرسد آن را شرح دهید.</string>
|
||||
<string name="give_permission">اجازه بده</string>
|
||||
<string name="use_external_storage">استفاده از حافظهٔ خارجی</string>
|
||||
<string name="use_external_storage_summary">ذخیرهٔ تصویرهای گرفته شده توسط دوربین درونکار اپلیکیشن بر روی دستگاه شما</string>
|
||||
<string name="login_to_your_account">ورود به حساب کاربریتان</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -198,4 +198,5 @@
|
|||
<string name="give_permission">Accorder le droit</string>
|
||||
<string name="use_external_storage">Utiliser le stockage externe</string>
|
||||
<string name="use_external_storage_summary">Enregistrer les images prises avec l’appareil photo de votre appareil</string>
|
||||
<string name="login_to_your_account">Connectez-vous à votre compte</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -73,9 +73,9 @@
|
|||
<string name="title_activity_settings">Configuracións</string>
|
||||
<string name="title_activity_signup">Rexistrarse</string>
|
||||
<string name="menu_about">Acerca de</string>
|
||||
<string name="about_license" fuzzy="true">Software de código aberto liberado baixo a <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\">licenza Apache v2</a>. %1$s e o seu logo son marcas rexistradas da Fundación Wikimedia e úsanse coa súa autorización. Non fomos acreditados pola Fundación Wikimedia nin estamos afiliados con ela.</string>
|
||||
<string name="about_license">A aplicación Wikimedia Commons é unha aplicación de código aberto creada e mantida polos cesionarios e voluntarios da comunidade de Wikimedia. A Fundación Wikimedia non está involucrada na creación, desenvolvemento ou mantemento da aplicación.</string>
|
||||
<string name="about_improve"><a href=\"https://github.com/commons-app/apps-android-commons\">Código fonte</a> e <a href=\"https://commons-app.github.io/\">sitio web</a> en GitHub. Crear unha nova <a href=\"https://github.com/commons-app/apps-android-commons/issues\">incidencia</a> para informar de problemas e suxestións.</string>
|
||||
<string name="about_privacy_policy" fuzzy="true"><a href=\"https://wikimediafoundation.org/wiki/Política_de_protección_de_datos_(gl)\">Política de protección de datos</a></string>
|
||||
<string name="about_privacy_policy"><a href=\"https://github.com/commons-app/apps-android-commons/wiki/Privacy-policy\">Política de privacidade</a></string>
|
||||
<string name="about_credits"><a href=\"https://github.com/commons-app/apps-android-commons/blob/master/CREDITS\">Créditos</a></string>
|
||||
<string name="title_activity_about">Acerca de</string>
|
||||
<string name="menu_feedback">Enviar comentarios (por correo electrónico)</string>
|
||||
|
|
@ -195,6 +195,8 @@
|
|||
<string name="error_while_cache">Erro mentras se gardaban as imaxes na caché</string>
|
||||
<string name="title_info">Un título único descritivo para o ficheiro, que servirá como un nome de ficheiro. Pode usar unha linguaxe clara con espazos. Non inclúa a extensión do ficheiro</string>
|
||||
<string name="description_info">Por favor, describa o ficheiro todo o posibleː Onde se gravou? Cal é o contexto? Por favor, describa os obxectos ou persoas. Indique información que non pode ser adiviñada de forma doada, por exemplo, a hora do día se é unha paisaxe. Se o ficheiro amosa algo pouco habitual, por favor, explique que é o que o fai excepcional.</string>
|
||||
<string name="give_permission">Outorgar permiso</string>
|
||||
<string name="use_external_storage">Usar o almacenamento externo</string>
|
||||
<string name="use_external_storage_summary">Gardar as imaxes capturadas coa cámara do seu dispositivo</string>
|
||||
<string name="login_to_your_account">Comezar sesión na súa conta</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@
|
|||
<string name="title_activity_settings">Beállítások</string>
|
||||
<string name="title_activity_signup">Regisztráció</string>
|
||||
<string name="menu_about">Névjegy</string>
|
||||
<string name="about_license" fuzzy="true">Nyílt forráskódú szoftver <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\">Apache License v2</a> alatt kiadva. A Wikimédia Commons és a logója a Wikimédia Alapítvány védjegyei, és a Wikimédia Alapítvány engedélyével vannak használva. Az alkalmazás fejlesztői nincsenek semmilyen kapcsolatban Wikimédia Alapítvánnyal.</string>
|
||||
<string name="about_license">A Wikimedia Commons applikáció egy nyílt forráskódú szoftver, amit a Wikimedia-közösség önkéntesei készítettek és tartanak karban. A Wikimédia Alapítvány nem vesz részt az applikáció megalkotásában, fejlesztésében és üzemeltetésében.</string>
|
||||
<string name="about_improve"><a href=\"https://github.com/commons-app/apps-android-commons\">Forráskód</a> és <a href=\"https://commons-app.github.io/\">weboldal</a> a GitHubon. Nyiss egy új <a href=\"https://github.com/commons-app/apps-android-commons/issues\">GitHub-problémát</a> hibabejelentéssel vagy fejlesztési javaslattal.</string>
|
||||
<string name="about_privacy_policy" fuzzy="true"><a href=\"https://wikimediafoundation.org/wiki/Adatvédelmi_irányelv\">Adatvédelmi irányelvek</a></string>
|
||||
<string name="about_credits"><a href=\"https://github.com/commons-app/apps-android-commons/blob/master/CREDITS\">Köszönetnyilvánítás</a></string>
|
||||
|
|
@ -86,6 +86,7 @@
|
|||
<string name="menu_retry_upload">Újra</string>
|
||||
<string name="menu_cancel_upload">Mégse</string>
|
||||
<string name="share_license_summary">Ez a kép %1$s licenc alatt kerül feltöltésre</string>
|
||||
<string name="media_upload_policy">A kép feltöltésével kijelentem, hogy ez a saját munkám és nem tartalmaz jogvédett anyagot, nem szelfi és megfelel a<a href=\"https://commons.wikimedia.org/wiki/Commons:Policies_and_guidelines\">Wikimedia Commons irányelveinek</a>.</string>
|
||||
<string name="menu_download">Letöltés</string>
|
||||
<string name="preference_license">Licenc</string>
|
||||
<string name="use_previous">Előző cím/leírás használata</string>
|
||||
|
|
@ -134,6 +135,7 @@
|
|||
<string name="detail_license_empty">Ismeretlen licenc</string>
|
||||
<string name="menu_refresh">Frissítés</string>
|
||||
<string name="read_storage_permission_rationale">Szükséges engedély: Külső tárhely olvasása. Az alkalmazás nem működik enélkül.</string>
|
||||
<string name="write_storage_permission_rationale">Szükséges engedély: Külső tárhely írása. Az alkalmazás nem működik enélkül.</string>
|
||||
<string name="location_permission_rationale">Lehetséges engedély: Jelenlegi hely megszerzése, a kategóriajavaslatok lehetőségéért.</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="title_activity_nearby">Közeli helyek</string>
|
||||
|
|
@ -147,6 +149,9 @@
|
|||
<string name="media_detail_description">Leírás</string>
|
||||
<string name="media_detail_description_explanation">A média leírása kerül ide. Ez akár egészen hosszú is lehet, és több sorba fog kerülni. Azért reméljük, jól néz majd ki.</string>
|
||||
<string name="media_detail_uploaded_date">Feltöltési dátum</string>
|
||||
<string name="media_detail_license">Licenc</string>
|
||||
<string name="media_detail_coordinates">Koordináták</string>
|
||||
<string name="media_detail_coordinates_empty">Nincs megadva</string>
|
||||
<string name="become_a_tester_title">Béta tesztelővé válás</string>
|
||||
<string name="become_a_tester_description">Jelentkezz a béta csatornánkra a Google Playen, hogy hamarabb megkapd a hibajavításokat és az új funkciókat</string>
|
||||
<string name="use_wikidata">Wikidata használata</string>
|
||||
|
|
@ -162,6 +167,13 @@
|
|||
<string name="background_image">Háttérkép</string>
|
||||
<string name="no_image_found">Nem található kép</string>
|
||||
<string name="upload_image">Kép feltöltése</string>
|
||||
<string name="welcome_image_mount_zao">Zaō-hegy</string>
|
||||
<string name="welcome_image_llamas">Lámák</string>
|
||||
<string name="welcome_image_rainbow_bridge">Rainbow Bridge</string>
|
||||
<string name="welcome_image_tulip">Tulipán</string>
|
||||
<string name="welcome_image_no_selfies">Csak semmi szelfi</string>
|
||||
<string name="welcome_image_proprietary">Szabadalmaztatott kép</string>
|
||||
<string name="welcome_image_welcome_wikipedia">Üdvözlünk a Wikipédián</string>
|
||||
<string name="welcome_image_sydney_opera_house">Sydney Operaház</string>
|
||||
<string name="cancel">Mégse</string>
|
||||
<string name="navigation_drawer_open">Megnyitás</string>
|
||||
|
|
@ -174,7 +186,12 @@
|
|||
<string name="navigation_item_feedback">Visszajelzés</string>
|
||||
<string name="navigation_item_logout">Kijelentkezés</string>
|
||||
<string name="navigation_item_info">Bevezető</string>
|
||||
<string name="nearby_needs_permissions">Közeli helyek nem megjeleníthetőek a helyadatokhoz való hozzáférés engedélyezése nélkül</string>
|
||||
<string name="no_description_found">nincs leírás</string>
|
||||
<string name="nearby_info_menu_commons_article" fuzzy="true">Commons szócikk</string>
|
||||
<string name="nearby_info_menu_commons_article">Commons leírólap</string>
|
||||
<string name="nearby_info_menu_wikidata_article">Wikidata-elem</string>
|
||||
<string name="description_info">Kérlek a lehető legteljesebb módon írd le a fájlt: hol készült, mit ábrázol, mi a kontextus? Kérlek add meg az objektumokat vagy személyeket a képen, valamint a nehezen kitalálható információkat (például a kép készítésének dátumát, ha az egy tájkép). Amennyiben a média valami szokatlant ábrázol, kérlek fejtsd ki, hogy mi teszi szokatlanná.</string>
|
||||
<string name="give_permission">Engedély adása</string>
|
||||
<string name="use_external_storage">Külső tárhely használata</string>
|
||||
<string name="login_to_your_account">Bejelentkezés a fiókodba</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -166,4 +166,5 @@
|
|||
<string name="no_description_found">nessuna descrizione trovata</string>
|
||||
<string name="nearby_info_menu_commons_article">Pagina di Commons del file</string>
|
||||
<string name="nearby_info_menu_wikidata_article">Elemento Wikidata</string>
|
||||
<string name="login_to_your_account">Accedi alla tua utenza</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -73,9 +73,9 @@
|
|||
<string name="title_activity_settings">Iɣewwaṛen</string>
|
||||
<string name="title_activity_signup">Jerred</string>
|
||||
<string name="menu_about">Ɣef</string>
|
||||
<string name="about_license" fuzzy="true">Iseɣzanen n uɣbalu yeldin ffɣen-d ddaw n <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\">turagt Apache v2</a>. %1$s akked ulugu-is d ticraḍ yersen n tesbeddit Wikimedia i yettwaseqdacen s tsiregt n tesbeddit Wikimedia. Ur nettwasireg ara sɣuṛ tasbeddit Wikimedia udiɣ ur nttekka ra ɣur-s.</string>
|
||||
<string name="about_license">Asnas Wikipedia Commons d asnas n uɣbalu yeldin i d-yennulfan udiɣ yettwarfed sɣur iwiziwen d wid i t-iḍemnen n tmezdagnut Wikimedia. Tasbeddit Wikimedia ur tetteka ara deg usnulfu-is, tanfelit-is, neɣ aseggem n usnas.</string>
|
||||
<string name="about_improve"><a href=\"https://github.com/commons-app/apps-android-commons\">Iɣbula</a> akked <a href=\"https://commons-app.github.io/\">usmel web</a> di GitHub. Rnu <a href=\"https://github.com/commons-app/apps-android-commons/issues\">tummla GitHub</a> tamaynut akken ad temmleḍ ibugen neɣ ad d-mudded isumar.</string>
|
||||
<string name="about_privacy_policy" fuzzy="true"><a href=\"https://wikimediafoundation.org/wiki/Privacy_policy\">Tasertit n tbaḍnit</a></string>
|
||||
<string name="about_privacy_policy"><a href=\"https://github.com/commons-app/apps-android-commons/wiki/Privacy-policy\">Tasertit n tbaḍnit</a></string>
|
||||
<string name="about_credits"><a href=\"https://github.com/commons-app/apps-android-commons/blob/master/CREDITS\">Ismaden</a></string>
|
||||
<string name="title_activity_about">Ɣef</string>
|
||||
<string name="menu_feedback">Azen tikti (s yimayl)</string>
|
||||
|
|
@ -195,6 +195,8 @@
|
|||
<string name="error_while_cache">Tuccḍa di tririt n tugniwin ar tuffirt</string>
|
||||
<string name="title_info">Azwul n useglem asuf i ufaylu, ara ttwasqedcen d isem n ufaylu. Tzemreḍ ad tesqedceḍ tutlayt fessusen s isekkilen ilmawen. Ur sedday ara asiɣzef n ufaylu</string>
|
||||
<string name="description_info">Ma ulac aɣilf, seglem amidya s wayen akk i tzemreḍ: Anida yettwasekles? Acu i d-yemmal? D acu-t usatal-is? Seglem tiɣawsiwin neɣ imdanen. Mudd-d talɣut ur yezmiren ad tettwaf s wudem fessusen, amedya akud n wass ma yella d agama. Ma yella admidya yaskan-d ayen ur nuɣ ara tanumi, ini-d d aci i tyettarran d ayen ifazen.</string>
|
||||
<string name="give_permission">Mudd tasiregt</string>
|
||||
<string name="use_external_storage">Seqdec asekles azɣaray</string>
|
||||
<string name="use_external_storage_summary">Sekles tiwlafin yettwaṭṭfen s tkamirat yellan deg ibenk</string>
|
||||
<string name="login_to_your_account">Qqen ar umiḍan-ik</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -195,4 +195,5 @@
|
|||
<string name="give_permission">권한 부여</string>
|
||||
<string name="use_external_storage">외부 저장소 사용하기</string>
|
||||
<string name="use_external_storage_summary">장치의 인앱 카메라로 찍은 사진 저장하기</string>
|
||||
<string name="login_to_your_account">자신의 계정으로 로그인</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@
|
|||
<string name="menu_about">Iwwer</string>
|
||||
<string name="about_license" fuzzy="true">\'Open-Source-Software\' verëffentlecht ënner der <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\">Apache Lizenz v2</a>. %1$s a säi Logo si Markenzeeche vun der Wikimedia Foundation a gi mat der Autorisatioun vun der Wikimedia Foundation benotzt. Mir sinn net confirméiert vun oder liéiert mat der Wikimedia Foundation.</string>
|
||||
<string name="about_improve"><a href=\"https://github.com/commons-app/apps-android-commons\">Quell</a> an <a href=\"https://commons-app.github.io/\">Internetsite</a> vu GitHub.\nLeet w.e.g. <a href=\"https://github.com/commons-app/apps-android-commons/issues\"> e GitHub Problem</a> fir Problemer ze mellen a Proposen ze maachen.</string>
|
||||
<string name="about_privacy_policy" fuzzy="true"><a href=\"https://wikimediafoundation.org/wiki/Privacy_policy\">Dateschutzerklärung</a></string>
|
||||
<string name="about_privacy_policy"><a href=\"https://github.com/commons-app/apps-android-commons/wiki/Privacy-policy\">Dateschutzerklärung</a></string>
|
||||
<string name="about_credits"><a href=\"https://github.com/commons-app/apps-android-commons/blob/master/CREDITS\">Merci</a></string>
|
||||
<string name="title_activity_about">Iwwer</string>
|
||||
<string name="menu_feedback">Feedback schécken (per E-Mail)</string>
|
||||
|
|
@ -188,4 +188,5 @@
|
|||
<string name="give_permission">Autorisatioun ginn</string>
|
||||
<string name="use_external_storage">Externe Späicher benotzen</string>
|
||||
<string name="use_external_storage_summary">Biller späicheren déi mat der in-app Kamera vun Ärem Apparat gemaach goufen</string>
|
||||
<string name="login_to_your_account">An Äre Benotzerkont aloggen</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@
|
|||
<string name="title_activity_settings">Nustatymai</string>
|
||||
<string name="title_activity_signup">Užsiregistruoti</string>
|
||||
<string name="menu_about">Apie</string>
|
||||
<string name="about_privacy_policy" fuzzy="true"><a href=\"https://wikimediafoundation.org/wiki/Privacy_policy\">Privatumo politika</a></string>
|
||||
<string name="about_privacy_policy"><a href=\"https://github.com/commons-app/apps-android-commons/wiki/Privacy-policy\">Privatumo politika</a></string>
|
||||
<string name="title_activity_about">Apie</string>
|
||||
<string name="menu_feedback">Siųsti Atsiliepimą (El. paštu)</string>
|
||||
<string name="no_email_client">Nėra įdiegtos el. pašto tvarkyklės</string>
|
||||
|
|
@ -116,4 +116,5 @@
|
|||
<string name="no">Ne</string>
|
||||
<string name="media_detail_title">Pavadinimas</string>
|
||||
<string name="media_detail_description">Aprašymas</string>
|
||||
<string name="give_permission">Suteikti leidimą</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -94,5 +94,6 @@
|
|||
<string name="navigation_item_logout">Iziet</string>
|
||||
<string name="navigation_item_info">Apmācība</string>
|
||||
<string name="no_description_found">apraksts nav atrasts</string>
|
||||
<string name="give_permission">Atļaut</string>
|
||||
<string name="use_external_storage">Izmantot ārējo krātuvi</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -73,9 +73,9 @@
|
|||
<string name="title_activity_settings">Нагодувања</string>
|
||||
<string name="title_activity_signup">Регистрација</string>
|
||||
<string name="menu_about">За извршникот</string>
|
||||
<string name="about_license" fuzzy="true">Програм со отворен код, издаден под лиценцата <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\">Апачи вер. 2</a>. %1$s и нејзиното лого се заштитни знаци на Фондацијата Викимедија и се користат со нејзина дозвола. Ние не сме поддржани и поврзани со Фондацијата Викимедија.</string>
|
||||
<string name="about_license">Прилогот на Ризницата има отворен код. Негови творци и оддржувачи се примателите на наменските средства од Викимедиината заедница како и членовите на заедницата. Фондацијата Викимедија нема учество во нејзиното создавање, разработка и одржување.</string>
|
||||
<string name="about_improve"><a href=\"https://github.com/commons-app/apps-android-commons\">Извор</a> и <a href=\"https://commons-app.github.io/\">мреж. место</a> на GitHub</a>. Создајте нов <a href=\"https://github.com/commons-app/apps-android-commons/issues\">случај на GitHub</a> за пријавување грешки и давање предлози.</string>
|
||||
<string name="about_privacy_policy" fuzzy="true"><a href=\"https://wikimediafoundation.org/wiki/Заштита на личните податоци\">Заштита_на_личните_податоци</a></string>
|
||||
<string name="about_privacy_policy"><a href=\"https://github.com/commons-app/apps-android-commons/wiki/Privacy-policy\">Заштита на личните податоци</a></string>
|
||||
<string name="about_credits"><a href=\"https://github.com/commons-app/apps-android-commons/blob/master/CREDITS\">Заслуги</a></string>
|
||||
<string name="title_activity_about">За извршникот</string>
|
||||
<string name="menu_feedback">Испратете Ваше мислење (по е-пошта)</string>
|
||||
|
|
@ -198,4 +198,5 @@
|
|||
<string name="give_permission">Дај дозвола</string>
|
||||
<string name="use_external_storage">Користи надворешен склад</string>
|
||||
<string name="use_external_storage_summary">Зачувување на направените слики во прилогот со камерата на вашиот уред</string>
|
||||
<string name="login_to_your_account">Најавете се со вашата сметка</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -73,9 +73,9 @@
|
|||
<string name="title_activity_settings">Innstillinger</string>
|
||||
<string name="title_activity_signup">Registrer deg</string>
|
||||
<string name="menu_about">Om</string>
|
||||
<string name="about_license" fuzzy="true">Programvare med åpen kildekode sluppet under <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\">Apache License v2</a>. %1$s og dets logo er varemerker fra Wikimedia Foundation og brukes med tillatelse fra dem. Vi er verken støttet av eller koblet til Wikimedia Foundation.</string>
|
||||
<string name="about_license">Wikimedia Commons-appen er åpen kildekode og er skapt og vedlikeholdt av stipendiater og frivillige fra Wikimedia-fellesskapet. Wikimedia Foundation er ikke involvert i utviklingen eller vedlikeholdet av appen.</string>
|
||||
<string name="about_improve"><a href=\"https://github.com/commons-app/apps-android-commons\">Kildekode</a> og <a href=\"https://commons-app.github.io/\">nettside</a> på GitHub. Opprett en ny <a href=\"https://github.com/commons-app/apps-android-commons/issues\">GitHub-sak</a> for feilrapporter og forslag.</string>
|
||||
<string name="about_privacy_policy" fuzzy="true"><a href=\"https://wikimediafoundation.org/wiki/Privacy_policy\">Personvernpolicy</a></string>
|
||||
<string name="about_privacy_policy"><a href=\"https://github.com/commons-app/apps-android-commons/wiki/Privacy-policy\">Personvernpolicy</a></string>
|
||||
<string name="about_credits"><a href=\"https://github.com/commons-app/apps-android-comons/blob/master/CREDITS\">Bidragsytere</a></string>
|
||||
<string name="title_activity_about">Om</string>
|
||||
<string name="menu_feedback">Send tilbakemelding (via Epost)</string>
|
||||
|
|
@ -198,4 +198,5 @@
|
|||
<string name="give_permission">Gi tillatelse</string>
|
||||
<string name="use_external_storage">Bruk ekstern lagring</string>
|
||||
<string name="use_external_storage_summary">Lagre bilder som er tatt med kameraet i appen på enheten din</string>
|
||||
<string name="login_to_your_account">Logg inn med kontoen din</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -182,4 +182,5 @@
|
|||
<string name="no_description_found">nie znaleziono opisu</string>
|
||||
<string name="nearby_info_menu_wikidata_article">Element Wikidanych</string>
|
||||
<string name="title_info">Podaj krótką, opisową i unikalną nazwę, która będzie służyła jako nazwa pliku. Możesz używać prostego języka i spacji. Nie dodawaj rozszerzenia pliku.</string>
|
||||
<string name="login_to_your_account">Zaloguj się na swoje konto</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -198,4 +198,5 @@
|
|||
<string name="give_permission">Dé ël përmess</string>
|
||||
<string name="use_external_storage">Dovré n\'anmagasinament estern</string>
|
||||
<string name="use_external_storage_summary">Argistré le plance pijà con la màchina fòto ëd sò angign</string>
|
||||
<string name="login_to_your_account">Ch\'as colega a sò cont</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@
|
|||
<string name="menu_about">О приложении</string>
|
||||
<string name="about_license" fuzzy="true">Приложение с открытым исходным кодом, выпущено по лицензии <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\">Apache License v2</a>. %1$s и его логотип являются товарными знаками Фонда Викимедиа и используются с разрешения Фонда Викимедиа. Мы не поддерживаемся и не связаны с Фондом Викимедиа.</string>
|
||||
<string name="about_improve"><a href=\"https://github.com/commons-app/apps-android-commons\">Исходный код</a> и <a href=\"https://commons-app.github.io/\">сайт</a> на GitHub. Создайте новый <a href=\"https://github.com/commons-app/apps-android-commons/issues\">запрос на GitHub</a>, чтоб сообщить об ошибке или внести предложение.</string>
|
||||
<string name="about_privacy_policy" fuzzy="true"><a href=\"https://wikimediafoundation.org/wiki/Privacy_policy/ru\">Политика конфиденциальности</a></string>
|
||||
<string name="about_privacy_policy"><a href=\"https://github.com/commons-app/apps-android-commons/wiki/Privacy-policy\">Политика конфиденциальности</a></string>
|
||||
<string name="about_credits"><a href=\"https://github.com/commons-app/apps-android-commons/blob/master/CREDITS\">Благодарности</a></string>
|
||||
<string name="title_activity_about">О приложении</string>
|
||||
<string name="menu_feedback">Отправить отзыв (по эл. почте)</string>
|
||||
|
|
@ -196,6 +196,7 @@
|
|||
<string name="nearby_info_menu_commons_article">Страница файла на Викискладе</string>
|
||||
<string name="nearby_info_menu_wikidata_article">Элемент Викиданных</string>
|
||||
<string name="error_while_cache">Ошибка при кэшировании картинок</string>
|
||||
<string name="give_permission">Дать разрешение</string>
|
||||
<string name="use_external_storage">Использовать внешнее хранилище</string>
|
||||
<string name="use_external_storage_summary">Сохранять изображения, сделанные с помощью встроенной камеры на устройстве</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -99,4 +99,6 @@
|
|||
<string name="navigation_item_feedback">تہاڈی رائے</string>
|
||||
<string name="navigation_item_logout">لاگ آؤٹ</string>
|
||||
<string name="nearby_info_menu_wikidata_article">وکی ڈیٹا آئٹم</string>
|
||||
<string name="give_permission">اجازت ݙیوو</string>
|
||||
<string name="login_to_your_account">آپݨے کھاتے وچ لاگ ان تھیوو</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -73,9 +73,9 @@
|
|||
<string name="title_activity_settings">Поставке</string>
|
||||
<string name="title_activity_signup">Отвори налог</string>
|
||||
<string name="menu_about">О апликацији</string>
|
||||
<string name="about_license" fuzzy="true">Софтвер отвореног кода доступан под лиценцом <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\">Apache вер. 2</a> Викимедијина Остава и њен лого су заштитни знаци Викимедијине Фондације и користе се са дозволом Викимедијине Фондацине. Ми не одобравамо или подржавмо Викимедијину Фондацију.</string>
|
||||
<string name="about_license">Софтвер отвореног кода доступан под лиценцом <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\">Apache вер. 2</a> Викимедијина Остава и њен лого су заштитни знаци Викимедијине Фондације и користе се са дозволом Викимедијине Фондацине. Ми не одобравамо или подржавмо Викимедијину Фондацију.\n\nАпликација за Викимедијину оставу је апликација отвореног кода која је направљена и која се одржава помоћу грантова и волонтера Викимедијине заједнице. Задужбина Викимедија није укључена у стварање, развој или одржавање апликације.</string>
|
||||
<string name="about_improve"><a href=\"https://github.com/commons-app/apps-android-commons\">Изворни кôд</a> и <a href=\"https://commons-app.github.io/\">веб-сајт</a> на GitHub-у. Направите нови <a href=\"https://github.com/commons-app/apps-android-commons/issues\">захтев на GitHub-у</a> да бисте пријавили грешке или дали предлоге.</string>
|
||||
<string name="about_privacy_policy" fuzzy="true"><a href=\"https://wikimediafoundation.org/wiki/Privacy_policy\">Политика приватности</a></string>
|
||||
<string name="about_privacy_policy"><a href=\"https://github.com/commons-app/apps-android-commons/wiki/Privacy-policy\">Политика приватности</a></string>
|
||||
<string name="about_credits"><a href=\"https://github.com/commons-app/apps-android-commons/blob/master/CREDITS\">Заслуге</a></string>
|
||||
<string name="title_activity_about">О апликацији</string>
|
||||
<string name="menu_feedback">Пошаљите повратне информације (путем е-поште)</string>
|
||||
|
|
@ -86,6 +86,7 @@
|
|||
<string name="menu_retry_upload">Покушај поново</string>
|
||||
<string name="menu_cancel_upload">Откажи</string>
|
||||
<string name="share_license_summary">Слика ће се водити под лиценцом %1$s</string>
|
||||
<string name="media_upload_policy">Слањем ове слике, ја тврдим да је у питању мој рад, да не садржи материјал или селфије заштићене ауторским правима, те да је на остале начине у складу са <a href=\"https://commons.wikimedia.org/wiki/Commons:Policies_and_guidelines\">смерницама Викимедијине оставе</a>.</string>
|
||||
<string name="menu_download">Преузми</string>
|
||||
<string name="preference_license">Лиценца</string>
|
||||
<string name="use_previous">Користи претходан наслов/опис</string>
|
||||
|
|
@ -134,6 +135,7 @@
|
|||
<string name="detail_license_empty">Непозната лиценца</string>
|
||||
<string name="menu_refresh">Освежи</string>
|
||||
<string name="read_storage_permission_rationale">Потребна дозвола: Провера спољашње меморије. Апликација без овога не може да функционише.</string>
|
||||
<string name="write_storage_permission_rationale">Неопходна дозвола: Писање спољашњег складишта. Апликација не може да функционише без овога.</string>
|
||||
<string name="location_permission_rationale">Опциона дозвола: Преузми тренутну локацију за предлоге категорија</string>
|
||||
<string name="ok">У реду</string>
|
||||
<string name="title_activity_nearby">Места у близини</string>
|
||||
|
|
@ -149,6 +151,7 @@
|
|||
<string name="media_detail_uploaded_date">Датум отпремања</string>
|
||||
<string name="media_detail_license">Лиценца</string>
|
||||
<string name="media_detail_coordinates">Координате</string>
|
||||
<string name="media_detail_coordinates_empty">Ништа није унето</string>
|
||||
<string name="become_a_tester_title">Постани Бета Тестер</string>
|
||||
<string name="become_a_tester_description">Прикључите се на наш бета канал на Гугл плеју и приступајте новим информацијама и поправкама багова</string>
|
||||
<string name="use_wikidata">Користи Википодатке</string>
|
||||
|
|
@ -184,6 +187,15 @@
|
|||
<string name="navigation_item_settings">Подешавања</string>
|
||||
<string name="navigation_item_feedback">Повратне информације</string>
|
||||
<string name="navigation_item_logout">Одјави ме</string>
|
||||
<string name="nearby_info_menu_commons_article" fuzzy="true">Чланак на Остави</string>
|
||||
<string name="nearby_info_menu_wikidata_article" fuzzy="true">Чланак на Википодацима</string>
|
||||
<string name="navigation_item_info">Туторијал</string>
|
||||
<string name="nearby_needs_permissions">Оближња места не могу да се приказују без дозвола за локацију</string>
|
||||
<string name="no_description_found">опис није пронађен</string>
|
||||
<string name="nearby_info_menu_commons_article">Страница датотеке на Остави</string>
|
||||
<string name="nearby_info_menu_wikidata_article">Ставка на Википодацима</string>
|
||||
<string name="error_while_cache">Грешка при кеширању слика</string>
|
||||
<string name="title_info">Јединствен описни наслов за датотеку, који ће бити име датотеке. Можете да користите обични језик са размацима. Не треба уносити екстензију датотеке</string>
|
||||
<string name="description_info">Молимо да опишете датотеку колико је то могуће: Где је направљена? Шта приказује? Шта је контекст? Опишите објекте и/или особе. Откријте информације које се не могу лако погодити, на пример доба дана ако је у питању пејзаж. Ако датотека приказује нешто необично, молимо да објасните шта је то чини необичном.</string>
|
||||
<string name="give_permission">Давање дозволе</string>
|
||||
<string name="use_external_storage">Употреба спољашњег складишта</string>
|
||||
<string name="use_external_storage_summary">Спремање слика направљених камером апликације на Вашем уређају</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -198,4 +198,5 @@
|
|||
<string name="give_permission">Ge behörighet</string>
|
||||
<string name="use_external_storage">Använd extern lagring</string>
|
||||
<string name="use_external_storage_summary">Spara bilder som tas med kameran i appen på din enhet</string>
|
||||
<string name="login_to_your_account">Logga in på ditt konto</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -81,9 +81,9 @@
|
|||
<string name="title_activity_settings">Налаштування</string>
|
||||
<string name="title_activity_signup">Зареєструватися</string>
|
||||
<string name="menu_about">Про програму</string>
|
||||
<string name="about_license" fuzzy="true">Програмне забезпечення з відкритим кодом випущено під <a href=\"https://github.com/commons-app/apps-android-commons/blob/master/COPYING\">ліцензією Apache в.2</a>. 1$s і його логотип є товарними знаками Фонду Вікімедіа і використовуються за дозволом Фонду Вікімедіа. Ми не користуємось підтримкою Фонду Вікімедіа і не є його афіліатом.</string>
|
||||
<string name="about_license">Додаток «Вікісховище» — це програма з відкритим кодом, яку створили отримувачі грантів та волонтери спільноти Вікімедіа. Фонд Вікімедіа не брав участі у створенні, розробці чи обслуговуванні цього додатка.</string>
|
||||
<string name="about_improve"><a href=\"https://github.com/commons-app/apps-android-commons\">Вихідний код</a> і <a href=\"https://commons-app.github.io/\">веб-сайт</a> на GitHub. Створіть нове <a href=\"https://github.com/commons-app/apps-android-commons/issues\">завдання на GitHub</a> для повідомлення про баги або для висловлення пропозицій.</string>
|
||||
<string name="about_privacy_policy" fuzzy="true"><a href=\"https://wikimediafoundation.org/wiki/Privacy_policy\">Політика приватності</a></string>
|
||||
<string name="about_privacy_policy"><a href=\"https://github.com/commons-app/apps-android-commons/wiki/Privacy-policy\">Політика конфіденційності</a></string>
|
||||
<string name="about_credits"><a href=\"https://github.com/commons-app/apps-android-commons/blob/master/CREDITS\">Автори</a></string>
|
||||
<string name="title_activity_about">Про програму</string>
|
||||
<string name="menu_feedback">Надіслати відгук (електронною поштою)</string>
|
||||
|
|
@ -143,6 +143,7 @@
|
|||
<string name="detail_license_empty">Невідома ліцензія</string>
|
||||
<string name="menu_refresh">Оновити</string>
|
||||
<string name="read_storage_permission_rationale">Обов\'язковий дозвіл: читання зовнішньої пам\'яті. Програмка не може працювати без цього.</string>
|
||||
<string name="write_storage_permission_rationale">Необхідний дозвіл: записування на зовнішнє сховище. Додаток не може працювати без цього.</string>
|
||||
<string name="location_permission_rationale">Додатковий дозвіл: отримувати поточне розташування для підказок категорій</string>
|
||||
<string name="ok">Гаразд</string>
|
||||
<string name="title_activity_nearby">Місця поблизу</string>
|
||||
|
|
@ -202,4 +203,8 @@
|
|||
<string name="error_while_cache">Помилка кешування зображень</string>
|
||||
<string name="title_info">Унікальна описова назва файлу. Ви можете використовувати простий текст з пробілами. Не вказуйте розширення файлу</string>
|
||||
<string name="description_info">Будь ласка, докладно опишіть файл: де його було зроблено? що на ньому зображено? який контекст? Будь ласка, опишіть об\'єкти чи осіб. Додайте інформацію, яку не можна легко здогадатися, наприклад, пору доби для фотографії пейзажу. Якщо зображено щось незвичайне, постарайтеся пояснити, що робить його незвичайним.</string>
|
||||
<string name="give_permission">Надати дозвіл</string>
|
||||
<string name="use_external_storage">Використовувати зовнішнє сховище</string>
|
||||
<string name="use_external_storage_summary">Зберігати зображення, виконані вбудованою в додатку камерою Вашого пристрою</string>
|
||||
<string name="login_to_your_account">Увійдіть у свій обліковий запис</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -198,4 +198,5 @@
|
|||
<string name="give_permission">給予權限</string>
|
||||
<string name="use_external_storage">使用外部存儲裝置</string>
|
||||
<string name="use_external_storage_summary">在您的裝置上使用照相機應用程式來儲存照片</string>
|
||||
<string name="login_to_your_account">登入您的帳號</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -198,4 +198,5 @@
|
|||
<string name="give_permission">提供权限</string>
|
||||
<string name="use_external_storage">使用外部存储</string>
|
||||
<string name="use_external_storage_summary">在您的设备上,使用应用中的照相机保存照片</string>
|
||||
<string name="login_to_your_account">登录您的账户</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -2,17 +2,11 @@
|
|||
<resources>
|
||||
<attr name="mainBackground" format="reference"/>
|
||||
<attr name="semitransparentText" format="reference"/>
|
||||
<attr name="commonsAppBlue" format="reference"/>
|
||||
<attr name="subBackground" format="reference"/>
|
||||
<attr name="fragmentCategorisationBackground" format="reference"/>
|
||||
<attr name="buttonBackground" format="reference"/>
|
||||
<attr name="uploadOverlayBackground" format="reference"/>
|
||||
<attr name="spinnerTheme" format="reference"/>
|
||||
<attr name="iconSend" format="reference"/>
|
||||
<attr name="iconSave" format="reference"/>
|
||||
<attr name="iconCamera" format="reference"/>
|
||||
<attr name="iconPhoto" format="reference"/>
|
||||
<attr name="iconUndo" format="reference"/>
|
||||
|
||||
<declare-styleable name="CompatTextView">
|
||||
<attr name="drawablePadding" format="dimension"/>
|
||||
|
|
|
|||
|
|
@ -1,16 +1,26 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Main application background color -->
|
||||
<color name="main_background_dark">#303030</color>
|
||||
<color name="main_background_light">#fafafa</color>
|
||||
|
||||
<!-- Colors used by newer Android + Support library for material design theme -->
|
||||
<color name="primaryColor">#0c609c</color>
|
||||
<color name="primaryDarkColor">#00376d</color>
|
||||
<color name="primaryLightColor">#528dcd</color>
|
||||
<color name="primarySuperLightColor">#d7e8fb</color>
|
||||
<color name="secondaryColor">#f38b04</color>
|
||||
<color name="secondaryDarkColor">#ba5d00</color>
|
||||
<color name="secondaryLightColor">#ffbc46</color>
|
||||
<color name="primaryTextColor">#ffffff</color>
|
||||
<color name="secondaryTextColor">#000000</color>
|
||||
|
||||
<!-- Some colours are same for dark/light themes. They are written two times in case
|
||||
we want to change light ones later.
|
||||
-->
|
||||
<color name="item_white_background">#ffffffff</color>
|
||||
<color name="main_background_dark">#000000</color>
|
||||
<color name="main_background_light">#ffffff</color>
|
||||
<color name="commons_app_blue_dark">#33FFFFFF</color>
|
||||
<color name="commons_app_blue_light">#33FFFFFF</color>
|
||||
<color name="activity_welcome_background_dark">#0c609c</color>
|
||||
<color name="activity_welcome_background_light">#0c609c</color>
|
||||
<color name="action_bar_blue">#0c609c</color>
|
||||
<color name="status_bar_blue">#08436d</color>
|
||||
<color name="sub_background_dark">#20ffffff</color>
|
||||
<color name="sub_background_light">#20ffffff</color>
|
||||
|
|
@ -20,4 +30,5 @@
|
|||
<color name="button_background_light">#B0000000</color>
|
||||
<color name="upload_overlay_background_dark">#77000000</color>
|
||||
<color name="upload_overlay_background_light">#44000000</color>
|
||||
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -209,4 +209,5 @@ Tap this message (or hit back) to skip this step.</string>
|
|||
<string name="use_external_storage_summary">Save pictures taken with the in-app camera on your device</string>
|
||||
<string name="send_logs">Send Logs</string>
|
||||
<string name="send_logs_description">Send logs to developers via email</string>
|
||||
<string name="login_to_your_account">Login to your account</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -2,36 +2,30 @@
|
|||
|
||||
<style name="DarkAppTheme" parent="Theme.AppCompat.NoActionBar">
|
||||
<item name="mainBackground">@color/main_background_dark</item>
|
||||
<item name="colorPrimary">@color/primaryColor</item>
|
||||
<item name="colorPrimaryDark">@color/primaryDarkColor</item>
|
||||
<item name="colorAccent">@color/primaryColor</item>
|
||||
<item name="colorButtonNormal">@color/primaryColor</item>
|
||||
|
||||
<item name="semitransparentText">@color/commons_app_blue_dark</item>
|
||||
<item name="commonsAppBlue">@color/activity_welcome_background_dark</item>
|
||||
<item name="subBackground">@color/sub_background_dark</item>
|
||||
<item name="fragmentCategorisationBackground">@color/fragment_categorisation_background_dark</item>
|
||||
<item name="buttonBackground">@color/button_background_dark</item>
|
||||
<item name="uploadOverlayBackground">@color/upload_overlay_background_dark</item>
|
||||
<item name="iconSend">@drawable/ic_send_white_24dp</item>
|
||||
<item name="iconSave">@drawable/ic_save_white_24dp</item>
|
||||
<item name="iconCamera">@drawable/ic_photo_camera_white_24dp</item>
|
||||
<item name="iconPhoto">@drawable/ic_photo_white_24dp</item>
|
||||
<item name="iconUndo">@drawable/ic_undo_white_24dp</item>
|
||||
<item name="spinnerTheme">@style/DarkSpinnerTheme</item>
|
||||
</style>
|
||||
|
||||
<style name="LightAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
|
||||
<item name="mainBackground">@color/main_background_light</item>
|
||||
<item name="colorPrimaryDark">@color/primaryDarkColor</item>
|
||||
<item name="colorAccent">@color/primaryColor</item>
|
||||
<item name="colorButtonNormal">@color/primaryColor</item>
|
||||
|
||||
<item name="semitransparentText">@color/commons_app_blue_light</item>
|
||||
<item name="commonsAppBlue">@color/activity_welcome_background_light</item>
|
||||
<item name="subBackground">@color/sub_background_light</item>
|
||||
<item name="fragmentCategorisationBackground">@color/fragment_categorisation_background_light</item>
|
||||
<item name="buttonBackground">@color/button_background_light</item>
|
||||
<item name="uploadOverlayBackground">@color/upload_overlay_background_light</item>
|
||||
<item name="iconSend">@drawable/ic_send_white_24dp</item>
|
||||
<item name="iconSave">@drawable/ic_save_white_24dp</item>
|
||||
<item name="iconCamera">@drawable/ic_photo_camera_white_24dp</item>
|
||||
<item name="iconPhoto">@drawable/ic_photo_white_24dp</item>
|
||||
<item name="iconUndo">@drawable/ic_undo_white_24dp</item>
|
||||
|
||||
<item name="colorPrimary">@color/action_bar_blue</item>
|
||||
<item name="colorPrimaryDark">@color/status_bar_blue</item>
|
||||
<item name="spinnerTheme">@style/LightSpinnerTheme</item>
|
||||
</style>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<paths xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<paths>
|
||||
<cache-path name="images" path="images/" />
|
||||
<external-path name="logs"/>
|
||||
</paths>
|
||||
|
|
@ -14,13 +14,10 @@ import java.io.UnsupportedEncodingException;
|
|||
import java.net.URLDecoder;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Observer;
|
||||
import java.util.Set;
|
||||
|
||||
import fr.free.nrw.commons.BuildConfig;
|
||||
import io.reactivex.Single;
|
||||
import io.reactivex.observers.TestObserver;
|
||||
import io.reactivex.subscribers.TestSubscriber;
|
||||
import okhttp3.HttpUrl;
|
||||
import okhttp3.mockwebserver.MockResponse;
|
||||
import okhttp3.mockwebserver.MockWebServer;
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
package fr.free.nrw.commons.utils;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
public class StringSortingUtilsTest {
|
||||
|
||||
|
|
|
|||
|
|
@ -16,5 +16,6 @@ allprojects {
|
|||
repositories {
|
||||
jcenter()
|
||||
maven { url "https://jitpack.io" }
|
||||
maven { url "https://maven.google.com" }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
gradleVersion = 2.3.3
|
||||
|
||||
supportLibVersion = 25.3.1
|
||||
supportLibVersion = 26.1.0
|
||||
|
||||
compileSdkVersion = android-25
|
||||
compileSdkVersion = android-26
|
||||
buildToolsVersion = 26.0.1
|
||||
|
||||
minSdkVersion = 15
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue