This Android App is one of my hobby projects. If you want to support the app, you are more than welcomed to participate by submitting code contributions.
6 |
If you relay on PairDrop in your daily life, you are welcome to support the community via a donation. This app causes quite some server load, so it's always good to get some server costs sponsored.
If you want to support the developer of this Android app, you are welcome to by me a coffe or hot chocolate :)
17 |
18 |
--------------------------------------------------------------------------------
/PRIVACY.md:
--------------------------------------------------------------------------------
1 | # PairDrop for Android Privacy Policy
2 |
3 | "PairDrop for Android" is an open-source project designed to provide an easy-to-use, cross-platform file-sharing solution that integrates well with the Android™ system.
4 |
5 | Unlike standalone services, our app does not have its own backend or servers. Instead, it relies entirely on web-based services selected by the user within the app (e.g. https://pairdrop.net/ by default). Because of this, the privacy and security of your data depend on the specific website you choose to use. We strongly recommend that users review the privacy policy of the selected web service before using it.
6 |
7 | ## Server Connections
8 |
9 | To enable device discovery on your local network, the app connects to the chosen web-based service. For example, if you use https://pairdrop.net/, your public IP address is temporarily processed to create a shared "room" for all devices in the same network. Any information handled by the web service is subject to its own privacy policy.
10 |
11 | ## User Rights
12 |
13 | Since we do not operate our own servers or store any user data, we cannot provide options to delete your information. If you want to stop using the app, simply uninstall it from your device. Any files received through the app will remain on your device until you manually delete them.
14 |
15 | ## Permissions
16 |
17 | The app requires the following permissions:
18 |
19 | - **Storage Access:** Necessary for sending and receiving files on some Android versions. We do not process your files beyond what is explicitly selected for sharing.
20 | - **WiFi State Access:** Used only locally to check network conditions and is not transmitted outside your device.
21 |
22 | ## Support Email
23 |
24 | For support inquiries, you can contact us at: **snapdrop-android[at]googlegroups.com**
25 |
26 | Emails sent to this address will be forwarded to our core developers. We do not share your emails with third parties. Emails are not automatically deleted, but you can request removal by contacting us.
27 |
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | /release
--------------------------------------------------------------------------------
/app/oldRelease/.gitignore:
--------------------------------------------------------------------------------
1 | *.apk
--------------------------------------------------------------------------------
/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/app/src/androidTest/java/com/fmsys/snapdrop/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.fmsys.snapdrop;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.test.ext.junit.runners.AndroidJUnit4;
6 | import androidx.test.platform.app.InstrumentationRegistry;
7 |
8 | import org.junit.Test;
9 | import org.junit.runner.RunWith;
10 | import static org.junit.Assert.*;
11 |
12 | /**
13 | * Instrumented test, which will execute on an Android device.
14 | *
15 | * @see Testing documentation
16 | */
17 | @RunWith(AndroidJUnit4.class)
18 | public class ExampleInstrumentedTest {
19 |
20 | /**
21 |
22 | // InstrumentedTests are currently not executed in our CI
23 | // If it should be necessary in the future, following GitHub Actions workflow might help
24 |
25 | jobs:
26 | test:
27 | runs-on: macOS-latest
28 | steps:
29 | - name: checkout
30 | uses: actions/checkout@v1
31 | with:
32 | fetch-depth: 1
33 |
34 | - name: run tests
35 | uses: reactivecircus/android-emulator-runner@v1
36 | with:
37 | api-level: 29
38 | script: ./gradlew connectedCheck
39 | */
40 |
41 |
42 | @Test
43 | public void useAppContext() {
44 | // Context of the app under test.
45 | final Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
46 | assertEquals("com.example.snapdrop", appContext.getPackageName());
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/app/src/main/assets/closeDialogs.js:
--------------------------------------------------------------------------------
1 | document.querySelectorAll('[close]').forEach(el => {
2 | if (el.innerText == "CLOSE" || el.innerText == "IGNORE" || el.innerText == "CANCEL"){
3 | el.click();
4 | }
5 | });
6 |
--------------------------------------------------------------------------------
/app/src/main/ic_about-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/app/src/main/ic_about-playstore.png
--------------------------------------------------------------------------------
/app/src/main/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/app/src/main/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/app/src/main/java/com/fmsys/snapdrop/AboutLibrariesListener.java:
--------------------------------------------------------------------------------
1 | package com.fmsys.snapdrop;
2 |
3 | import android.view.View;
4 |
5 | import androidx.annotation.NonNull;
6 |
7 | import com.mikepenz.aboutlibraries.LibsConfiguration;
8 |
9 | /**
10 | * Default listener implementing all methods we do not really need
11 | */
12 | public abstract class AboutLibrariesListener implements LibsConfiguration.LibsListener {
13 | @Override
14 | public boolean onLibraryAuthorClicked(final @NonNull View view, final @NonNull com.mikepenz.aboutlibraries.entity.Library library) {
15 | return false;
16 | }
17 |
18 | @Override
19 | public boolean onLibraryContentClicked(final @NonNull View view, final @NonNull com.mikepenz.aboutlibraries.entity.Library library) {
20 | return false;
21 | }
22 |
23 | @Override
24 | public boolean onLibraryBottomClicked(final @NonNull View view, final @NonNull com.mikepenz.aboutlibraries.entity.Library library) {
25 | return false;
26 | }
27 |
28 | @Override
29 | public boolean onLibraryAuthorLongClicked(final @NonNull View view, final @NonNull com.mikepenz.aboutlibraries.entity.Library library) {
30 | return false;
31 | }
32 |
33 | @Override
34 | public boolean onLibraryContentLongClicked(final @NonNull View view, final @NonNull com.mikepenz.aboutlibraries.entity.Library library) {
35 | return false;
36 | }
37 |
38 | @Override
39 | public boolean onLibraryBottomLongClicked(final @NonNull View view, final @NonNull com.mikepenz.aboutlibraries.entity.Library library) {
40 | return false;
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/app/src/main/java/com/fmsys/snapdrop/DarkModeSetting.java:
--------------------------------------------------------------------------------
1 | package com.fmsys.snapdrop;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.annotation.NonNull;
6 | import androidx.annotation.StringRes;
7 | import androidx.appcompat.app.AppCompatDelegate;
8 |
9 | /**
10 | * Possible values of the Dark Mode Setting.
11 | *
12 | * The Dark Mode Setting can be stored in {@link android.content.SharedPreferences} as String by using {@link DarkModeSetting#getPreferenceValue(Context)} and received via {@link DarkModeSetting#valueOf(String)}.
13 | *
14 | * Additionally, the equivalent {@link AppCompatDelegate}-Mode can be received via {@link #getModeId()}.
15 | *
16 | * @see AppCompatDelegate#MODE_NIGHT_YES
17 | * @see AppCompatDelegate#MODE_NIGHT_NO
18 | * @see AppCompatDelegate#MODE_NIGHT_FOLLOW_SYSTEM
19 | */
20 | public enum DarkModeSetting {
21 |
22 | /**
23 | * Always use light mode.
24 | */
25 | LIGHT(AppCompatDelegate.MODE_NIGHT_NO, R.string.pref_value_theme_light),
26 | /**
27 | * Always use dark mode.
28 | */
29 | DARK(AppCompatDelegate.MODE_NIGHT_YES, R.string.pref_value_theme_dark),
30 | /**
31 | * Follow the global system setting for dark mode.
32 | */
33 | SYSTEM_DEFAULT(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM, R.string.pref_value_theme_system_default);
34 |
35 | private final @AppCompatDelegate.NightMode
36 | int modeId;
37 | private final @StringRes
38 | int preferenceValue;
39 |
40 | DarkModeSetting(final @AppCompatDelegate.NightMode int modeId, final @StringRes int preferenceValue) {
41 | this.modeId = modeId;
42 | this.preferenceValue = preferenceValue;
43 | }
44 |
45 | public int getModeId() {
46 | return modeId;
47 | }
48 |
49 | public String getPreferenceValue(final @NonNull Context context) {
50 | return context.getString(preferenceValue);
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/app/src/main/java/com/fmsys/snapdrop/FileBrowserActivity.java:
--------------------------------------------------------------------------------
1 | package com.fmsys.snapdrop;
2 |
3 | import android.app.DownloadManager;
4 | import android.content.ActivityNotFoundException;
5 | import android.content.Intent;
6 | import android.os.Build;
7 | import android.os.Bundle;
8 | import android.provider.DocumentsContract;
9 | import android.widget.Toast;
10 |
11 | import androidx.activity.result.ActivityResultLauncher;
12 | import androidx.activity.result.contract.ActivityResultContracts;
13 | import androidx.annotation.Nullable;
14 | import androidx.appcompat.app.AppCompatActivity;
15 |
16 | public class FileBrowserActivity extends AppCompatActivity {
17 |
18 | private final ActivityResultLauncher viewFileResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> openStorageFolder());
19 |
20 | private final ActivityResultLauncher fileBrowserResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
21 | if (result.getData() != null) {
22 | try {
23 | viewFileResultLauncher.launch(new Intent(Intent.ACTION_VIEW).setData(result.getData().getData()));
24 | } catch (ActivityNotFoundException e) {
25 | Toast.makeText(this, R.string.err_no_app, Toast.LENGTH_SHORT).show();
26 | }
27 | } else {
28 | finish();
29 | }
30 | });
31 |
32 | @Override
33 | protected void onCreate(@Nullable Bundle savedInstanceState) {
34 | super.onCreate(savedInstanceState);
35 | openStorageFolder();
36 | }
37 |
38 | private void openStorageFolder() {
39 | if (MainActivity.isCustomSaveLocation() && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
40 | final Intent i = new Intent(Intent.ACTION_OPEN_DOCUMENT);
41 | i.addCategory(Intent.CATEGORY_OPENABLE);
42 | i.setType("*/*");
43 | i.putExtra(DocumentsContract.EXTRA_INITIAL_URI, MainActivity.getSaveLocation().getUri());
44 | fileBrowserResultLauncher.launch(i);
45 | } else {
46 | startActivity(new Intent(DownloadManager.ACTION_VIEW_DOWNLOADS));
47 | finish();
48 | }
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/app/src/main/java/com/fmsys/snapdrop/FloatingTextActivity.java:
--------------------------------------------------------------------------------
1 | package com.fmsys.snapdrop;
2 |
3 | import android.content.ComponentName;
4 | import android.content.Intent;
5 | import android.os.Build;
6 | import android.os.Bundle;
7 |
8 | import androidx.annotation.RequiresApi;
9 | import androidx.appcompat.app.AppCompatActivity;
10 | import androidx.core.content.IntentSanitizer;
11 |
12 | public class FloatingTextActivity extends AppCompatActivity {
13 |
14 | @RequiresApi(api = Build.VERSION_CODES.M)
15 | @Override
16 | protected void onCreate(final Bundle savedInstanceState) {
17 | super.onCreate(savedInstanceState);
18 | final Intent intent = new IntentSanitizer.Builder()
19 | .allowComponent(new ComponentName(getApplicationContext(), MainActivity.class))
20 | .allowAction(Intent.ACTION_PROCESS_TEXT)
21 | .allowType("text/plain")
22 | .allowExtra(Intent.EXTRA_PROCESS_TEXT, String.class)
23 | .allowExtra(Intent.EXTRA_PROCESS_TEXT_READONLY, Boolean.class)
24 | .build()
25 | .sanitizeByFiltering(getIntent().setClass(this, MainActivity.class));
26 | if (!isTaskRoot()) {
27 | intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
28 | }
29 | startActivity(intent);
30 | finish();
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/app/src/main/java/com/fmsys/snapdrop/ObservableProperty.java:
--------------------------------------------------------------------------------
1 | package com.fmsys.snapdrop;
2 |
3 | import androidx.core.util.Consumer;
4 |
5 | import java.util.Objects;
6 |
7 | public class ObservableProperty {
8 | private T value;
9 | private Consumer listener;
10 |
11 | public ObservableProperty(final T value) {
12 | this.value = value;
13 | }
14 |
15 | public void set(final T value) {
16 | if (Objects.equals(this.value, value)) {
17 | return;
18 | }
19 | this.value = value;
20 | if (listener != null) {
21 | listener.accept(value);
22 | }
23 | }
24 |
25 | public T get() {
26 | return value;
27 | }
28 |
29 | public void setOnChangedListener(final Consumer listener) {
30 | this.listener = listener;
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/app/src/main/java/com/fmsys/snapdrop/OnboardingActivity.java:
--------------------------------------------------------------------------------
1 | package com.fmsys.snapdrop;
2 |
3 | import android.app.Activity;
4 | import android.content.Intent;
5 | import android.os.Bundle;
6 |
7 | import androidx.activity.OnBackPressedCallback;
8 | import androidx.appcompat.app.AppCompatActivity;
9 | import androidx.lifecycle.ViewModelProvider;
10 | import androidx.preference.PreferenceManager;
11 |
12 |
13 | public class OnboardingActivity extends AppCompatActivity {
14 | private static final String EXTRA_ONLY_SERVER_SELECTION = "extra_server";
15 |
16 | OnboardingViewModel viewModel;
17 |
18 | public OnboardingActivity() {
19 | super(R.layout.activity_onboarding);
20 | }
21 |
22 | public static void launchOnboarding(final Activity context) {
23 | context.startActivity(new Intent(context, OnboardingActivity.class));
24 | context.finish();
25 | }
26 |
27 | public static Intent getServerSelectionIntent(final Activity context) {
28 | final Intent intent = new Intent(context, OnboardingActivity.class);
29 | intent.putExtra(EXTRA_ONLY_SERVER_SELECTION, true);
30 | return intent;
31 | }
32 |
33 | @Override
34 | protected void onCreate(final Bundle savedInstanceState) {
35 | super.onCreate(savedInstanceState);
36 |
37 | viewModel = new ViewModelProvider(this).get(OnboardingViewModel.class);
38 | viewModel.setOnlyServerSelection(getIntent().getBooleanExtra(EXTRA_ONLY_SERVER_SELECTION, false));
39 |
40 | viewModel.getFragment().observe(this, fragment -> getSupportFragmentManager()
41 | .beginTransaction()
42 | .setReorderingAllowed(true)
43 | .add(R.id.fragment_container_view, fragment, null)
44 | .commit());
45 |
46 | viewModel.getUrl().observe(this, url -> PreferenceManager.getDefaultSharedPreferences(this).edit()
47 | .putBoolean(getString(R.string.pref_first_use), false)
48 | .putString(getString(R.string.pref_baseurl), url)
49 | .apply());
50 |
51 | if (savedInstanceState == null) {
52 | if (viewModel.isOnlyServerSelection()) {
53 | viewModel.launchFragment(OnboardingFragment2.class);
54 | } else {
55 | viewModel.launchFragment(OnboardingFragment1.class);
56 | }
57 | }
58 |
59 | getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(!viewModel.isOnlyServerSelection()) {
60 | @Override
61 | public void handleOnBackPressed() {
62 | // block back press while onboarding
63 | }
64 | });
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/app/src/main/java/com/fmsys/snapdrop/OnboardingFragment1.java:
--------------------------------------------------------------------------------
1 | package com.fmsys.snapdrop;
2 |
3 | import android.content.pm.PackageManager;
4 | import android.os.Build;
5 | import android.os.Bundle;
6 | import android.view.View;
7 | import android.view.animation.DecelerateInterpolator;
8 |
9 | import androidx.annotation.NonNull;
10 | import androidx.core.content.ContextCompat;
11 | import androidx.fragment.app.Fragment;
12 | import androidx.lifecycle.ViewModelProvider;
13 |
14 | import com.fmsys.snapdrop.databinding.FragmentOnboarding1Binding;
15 | import com.fmsys.snapdrop.utils.ViewUtils;
16 |
17 | public class OnboardingFragment1 extends Fragment {
18 | public OnboardingFragment1() {
19 | super(R.layout.fragment_onboarding_1);
20 | }
21 |
22 | @Override
23 | public void onViewCreated(final @NonNull View view, final Bundle savedInstanceState) {
24 | final FragmentOnboarding1Binding binding = FragmentOnboarding1Binding.bind(view);
25 | final OnboardingViewModel viewModel = new ViewModelProvider(requireActivity()).get(OnboardingViewModel.class);
26 |
27 | view.postDelayed(() -> {
28 | binding.appIcon.animate().alpha(1).setDuration(1000).setInterpolator(new DecelerateInterpolator()).start();
29 | binding.appName.animate().alpha(1).translationY(ViewUtils.dpToPixel(20)).setDuration(1000).setInterpolator(new DecelerateInterpolator()).start();
30 | binding.slogan.animate().setStartDelay(750).alpha(1).setInterpolator(new DecelerateInterpolator()).start();
31 | binding.continueButton.animate().setStartDelay(750).alpha(1).setInterpolator(new DecelerateInterpolator()).start();
32 | }, 500);
33 |
34 | binding.continueButton.setOnClickListener(v -> {
35 | viewModel.url("https://pairdrop.net");
36 | if ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && Build.VERSION.SDK_INT < Build.VERSION_CODES.Q)
37 | && (ContextCompat.checkSelfPermission(requireContext(), android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)) {
38 | viewModel.launchFragment(OnboardingFragmentPermission.class);
39 | } else {
40 | viewModel.launchFragment(OnboardingFragment3.class);
41 | }
42 | });
43 | binding.continueButton.requestFocus();
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/app/src/main/java/com/fmsys/snapdrop/OnboardingFragment3.java:
--------------------------------------------------------------------------------
1 | package com.fmsys.snapdrop;
2 |
3 | import android.content.Intent;
4 | import android.os.Bundle;
5 | import android.view.View;
6 |
7 | import androidx.annotation.NonNull;
8 | import androidx.fragment.app.Fragment;
9 | import androidx.lifecycle.ViewModelProvider;
10 |
11 | import com.fmsys.snapdrop.databinding.FragmentOnboarding3Binding;
12 |
13 | public class OnboardingFragment3 extends Fragment {
14 |
15 | public OnboardingFragment3() {
16 | super(R.layout.fragment_onboarding_3);
17 | }
18 |
19 | @Override
20 | public void onViewCreated(final @NonNull View view, final Bundle savedInstanceState) {
21 | final FragmentOnboarding3Binding binding = FragmentOnboarding3Binding.bind(view);
22 | final OnboardingViewModel viewModel = new ViewModelProvider(requireActivity()).get(OnboardingViewModel.class);
23 |
24 | binding.description.setText(getString(R.string.onboarding_howto_summary, viewModel.getUrl().getValue()));
25 | binding.continueButton.setOnClickListener(v -> {
26 | startActivity(new Intent(requireActivity(), MainActivity.class));
27 | requireActivity().finish();
28 | });
29 | binding.continueButton.requestFocus();
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/app/src/main/java/com/fmsys/snapdrop/OnboardingFragmentPermission.java:
--------------------------------------------------------------------------------
1 | package com.fmsys.snapdrop;
2 |
3 | import android.Manifest;
4 | import android.content.pm.PackageManager;
5 | import android.os.Build;
6 | import android.os.Bundle;
7 | import android.view.View;
8 |
9 | import androidx.activity.result.ActivityResultLauncher;
10 | import androidx.activity.result.contract.ActivityResultContracts;
11 | import androidx.annotation.NonNull;
12 | import androidx.core.content.ContextCompat;
13 | import androidx.fragment.app.Fragment;
14 | import androidx.lifecycle.ViewModelProvider;
15 |
16 | import com.fmsys.snapdrop.databinding.FragmentOnboardingPermissionBinding;
17 |
18 | public class OnboardingFragmentPermission extends Fragment {
19 |
20 | OnboardingViewModel viewModel;
21 | private final ActivityResultLauncher permissionResult = registerForActivityResult(new ActivityResultContracts.RequestPermission(), granted -> {
22 | if (granted) {
23 | viewModel.launchFragment(OnboardingFragment2.class);
24 | }
25 | });
26 |
27 | public OnboardingFragmentPermission() {
28 | super(R.layout.fragment_onboarding_permission);
29 | }
30 |
31 | @Override
32 | public void onViewCreated(final @NonNull View view, final Bundle savedInstanceState) {
33 | final FragmentOnboardingPermissionBinding binding = FragmentOnboardingPermissionBinding.bind(view);
34 | viewModel = new ViewModelProvider(requireActivity()).get(OnboardingViewModel.class);
35 |
36 | binding.continueButton.setOnClickListener(v -> {
37 | if ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && Build.VERSION.SDK_INT < Build.VERSION_CODES.Q)
38 | && (ContextCompat.checkSelfPermission(requireContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)) {
39 | permissionResult.launch(Manifest.permission.WRITE_EXTERNAL_STORAGE);
40 | } else {
41 | viewModel.launchFragment(OnboardingFragment2.class);
42 | }
43 | });
44 | binding.continueButton.requestFocus();
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/app/src/main/java/com/fmsys/snapdrop/OnboardingViewModel.java:
--------------------------------------------------------------------------------
1 | package com.fmsys.snapdrop;
2 |
3 | import androidx.fragment.app.Fragment;
4 | import androidx.lifecycle.LiveData;
5 | import androidx.lifecycle.MutableLiveData;
6 | import androidx.lifecycle.ViewModel;
7 |
8 | public class OnboardingViewModel extends ViewModel {
9 | private final MutableLiveData> fragment = new MutableLiveData<>();
10 | private final MutableLiveData url = new MutableLiveData<>();
11 | private boolean onlyServerSelection;
12 |
13 | public void launchFragment(final Class extends Fragment> item) {
14 | fragment.setValue(item);
15 | }
16 |
17 | public LiveData> getFragment() {
18 | return fragment;
19 | }
20 |
21 | public void url(final String url) {
22 | this.url.setValue(url);
23 | }
24 |
25 | public LiveData getUrl() {
26 | return url;
27 | }
28 |
29 | public boolean isOnlyServerSelection() {
30 | return onlyServerSelection;
31 | }
32 |
33 | public void setOnlyServerSelection(final boolean onlyServerSelection) {
34 | this.onlyServerSelection = onlyServerSelection;
35 | }
36 |
37 | }
38 |
--------------------------------------------------------------------------------
/app/src/main/java/com/fmsys/snapdrop/OpenUrlActivity.java:
--------------------------------------------------------------------------------
1 | package com.fmsys.snapdrop;
2 |
3 | import android.content.Intent;
4 | import android.net.Uri;
5 | import android.os.Bundle;
6 |
7 | import androidx.annotation.Nullable;
8 | import androidx.appcompat.app.AppCompatActivity;
9 |
10 | public class OpenUrlActivity extends AppCompatActivity {
11 | @Override
12 | protected void onCreate(@Nullable final Bundle savedInstanceState) {
13 | super.onCreate(savedInstanceState);
14 | startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(getIntent().getStringExtra(Intent.EXTRA_TEXT))));
15 | finish();
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/java/com/fmsys/snapdrop/PrefixEditText.java:
--------------------------------------------------------------------------------
1 | package com.fmsys.snapdrop;
2 |
3 | import android.content.Context;
4 | import android.graphics.Canvas;
5 | import android.util.AttributeSet;
6 |
7 | import com.google.android.material.textfield.TextInputEditText;
8 |
9 |
10 | /**
11 | * Custom view for adding a prefix to EditText
12 | * code by: https://medium.com/@ali.muzaffar/adding-a-prefix-to-an-edittext-2a17a62c77e1
13 | **/
14 | public class PrefixEditText extends TextInputEditText {
15 | private float mOriginalLeftPadding = -1;
16 |
17 | public PrefixEditText(final Context context) {
18 | super(context);
19 | }
20 |
21 | public PrefixEditText(final Context context, final AttributeSet attrs) {
22 | super(context, attrs);
23 | }
24 |
25 | public PrefixEditText(final Context context, final AttributeSet attrs,
26 | final int defStyleAttr) {
27 | super(context, attrs, defStyleAttr);
28 | }
29 |
30 | @Override
31 | protected void onMeasure(final int widthMeasureSpec,
32 | final int heightMeasureSpec) {
33 | super.onMeasure(widthMeasureSpec, heightMeasureSpec);
34 | calculatePrefix();
35 | }
36 |
37 | private void calculatePrefix() {
38 | if (mOriginalLeftPadding == -1) {
39 | final String prefix = (String) getTag();
40 | float textWidth = 0;
41 | if (prefix != null) {
42 | final float[] widths = new float[prefix.length()];
43 | getPaint().getTextWidths(prefix, widths);
44 | for (float w : widths) {
45 | textWidth += w;
46 | }
47 | }
48 | mOriginalLeftPadding = getCompoundPaddingLeft();
49 | setPadding((int) (textWidth + mOriginalLeftPadding),
50 | getPaddingRight(), getPaddingTop(),
51 | getPaddingBottom());
52 | }
53 | }
54 |
55 | @Override
56 | protected void onDraw(final Canvas canvas) {
57 | super.onDraw(canvas);
58 | final String prefix = (String) getTag();
59 | if (prefix != null) {
60 | canvas.drawText(prefix, mOriginalLeftPadding,
61 | getLineBounds(0, null), getPaint());
62 | }
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/app/src/main/java/com/fmsys/snapdrop/QuickTileService.java:
--------------------------------------------------------------------------------
1 | package com.fmsys.snapdrop;
2 |
3 | import android.annotation.SuppressLint;
4 | import android.app.PendingIntent;
5 | import android.content.Intent;
6 | import android.os.Build;
7 | import android.service.quicksettings.Tile;
8 | import android.service.quicksettings.TileService;
9 |
10 | import androidx.annotation.RequiresApi;
11 |
12 | @RequiresApi(api = Build.VERSION_CODES.N)
13 | public class QuickTileService extends TileService {
14 |
15 | @Override
16 | public void onStartListening() {
17 | super.onStartListening();
18 |
19 | final Tile tile = getQsTile();
20 | if (tile != null) {
21 | tile.setState(Tile.STATE_INACTIVE);
22 | tile.updateTile();
23 | }
24 | }
25 |
26 | @Override
27 | public void onClick() {
28 | super.onClick();
29 |
30 | if (isLocked()) {
31 | unlockAndRun(this::startSnapdrop);
32 | } else {
33 | startSnapdrop();
34 | }
35 | }
36 |
37 | @SuppressLint("StartActivityAndCollapseDeprecated")
38 | private void startSnapdrop() {
39 | final Intent intent = new Intent(this, MainActivity.class).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
40 |
41 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
42 | startActivityAndCollapse(
43 | PendingIntent.getActivity(
44 | this,
45 | 0,
46 | intent,
47 | PendingIntent.FLAG_IMMUTABLE
48 | )
49 | );
50 | } else {
51 | startActivityAndCollapse(intent);
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/app/src/main/java/com/fmsys/snapdrop/SettingsActivity.java:
--------------------------------------------------------------------------------
1 | package com.fmsys.snapdrop;
2 |
3 | import android.app.Activity;
4 | import android.os.Bundle;
5 | import android.view.MenuItem;
6 |
7 | import androidx.annotation.NonNull;
8 | import androidx.appcompat.app.AppCompatActivity;
9 | import androidx.appcompat.widget.Toolbar;
10 |
11 | public class SettingsActivity extends AppCompatActivity {
12 |
13 | @Override
14 | protected void onCreate(final Bundle savedInstanceState) {
15 | super.onCreate(savedInstanceState);
16 | SnapdropApplication.setAppTheme(this);
17 |
18 | setContentView(R.layout.activity_settings);
19 | final Toolbar toolbar = findViewById(R.id.toolbar);
20 | setSupportActionBar(toolbar);
21 | getSupportActionBar().setDisplayHomeAsUpEnabled(true);
22 |
23 | getSupportFragmentManager()
24 | .beginTransaction()
25 | .replace(R.id.settings_fragment_root, new SettingsFragment())
26 | .commit();
27 |
28 | setResult(Activity.RESULT_OK);
29 | }
30 |
31 | @Override
32 | public boolean onOptionsItemSelected(@NonNull final MenuItem item) {
33 | if (item.getItemId() == android.R.id.home) {
34 | finish();
35 | return true;
36 | }
37 | return super.onOptionsItemSelected(item);
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/app/src/main/java/com/fmsys/snapdrop/SnapdropApplication.java:
--------------------------------------------------------------------------------
1 | package com.fmsys.snapdrop;
2 |
3 | import android.app.Application;
4 | import android.content.Context;
5 | import android.content.SharedPreferences;
6 | import android.content.res.Configuration;
7 |
8 | import androidx.annotation.NonNull;
9 | import androidx.appcompat.app.AppCompatDelegate;
10 | import androidx.preference.PreferenceManager;
11 |
12 | import com.fmsys.snapdrop.utils.LogUtils;
13 |
14 |
15 | public class SnapdropApplication extends Application {
16 |
17 | private static SnapdropApplication instance;
18 |
19 | public SnapdropApplication() {
20 | instance = this;
21 | }
22 |
23 | public static Application getInstance() {
24 | return instance;
25 | }
26 |
27 | @Override
28 | public void onCreate() {
29 | LogUtils.installUncaughtExceptionHandler();
30 | setAppTheme(getApplicationContext());
31 | super.onCreate();
32 | }
33 |
34 | public static void setAppTheme(final @NonNull Context context) {
35 | setAppTheme(getAppTheme(context));
36 | context.setTheme(R.style.AppTheme);
37 | }
38 |
39 | public static void setAppTheme(final DarkModeSetting setting) {
40 | AppCompatDelegate.setDefaultNightMode(setting.getModeId());
41 | }
42 |
43 | private static DarkModeSetting getAppTheme(final @NonNull Context context) {
44 | final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
45 | return DarkModeSetting.valueOf(prefs.getString(context.getString(R.string.pref_theme_setting), DarkModeSetting.SYSTEM_DEFAULT.getPreferenceValue(context)));
46 | }
47 |
48 | private static boolean isDarkThemeActive(final @NonNull Context context, final DarkModeSetting setting) {
49 | if (setting == DarkModeSetting.SYSTEM_DEFAULT) {
50 | return isDarkThemeActive(context);
51 | } else {
52 | return setting == DarkModeSetting.DARK;
53 | }
54 | }
55 |
56 | private static boolean isDarkThemeActive(final @NonNull Context context) {
57 | final int uiMode = context.getResources().getConfiguration().uiMode;
58 | return (uiMode & Configuration.UI_MODE_NIGHT_MASK) == Configuration.UI_MODE_NIGHT_YES;
59 | }
60 |
61 | public static boolean isDarkTheme(final @NonNull Context context) {
62 | return isDarkThemeActive(context, getAppTheme(context));
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/app/src/main/java/com/fmsys/snapdrop/WebsiteLocalizer.java:
--------------------------------------------------------------------------------
1 | package com.fmsys.snapdrop;
2 |
3 | import android.content.Context;
4 | import android.text.TextUtils;
5 | import android.webkit.WebView;
6 |
7 | import androidx.annotation.StringRes;
8 |
9 | public class WebsiteLocalizer {
10 |
11 | private enum TranslationElement {
12 |
13 | NO_PEERS_INFO("x-no-peers>h2", R.string.website_no_peers_info),
14 | INSTRUCTION_DESKTOP("x-instructions", "setAttribute('desktop', %s)", R.string.website_instruction),
15 | INSTRUCTION_MOBILE("x-instructions", "setAttribute('mobile', %s)", R.string.website_instruction),
16 | FILE_RECEIVED("#receiveDialog>x-background>x-paper>h3", R.string.website_file_received),
17 | FILE_ASK_EACH_TIME("label[for='autoDownload']", R.string.website_file_ask_before_download),
18 | FILE_DOWNLOAD("#download", R.string.website_file_download),
19 | FOOTER_DISCOVERY("footer>div.font-body2", R.string.website_footer_discovery),
20 | ABOUT_SUBHEADING("x-about>section>div.font-subheading", R.string.website_about_subheading),
21 | ;
22 |
23 | final String selector;
24 | final String modifier;
25 | final @StringRes int translationRes;
26 |
27 | TranslationElement(final String selector, final String modifier, final @StringRes int translationRes) {
28 | this.selector = selector;
29 | this.modifier = modifier;
30 | this.translationRes = translationRes;
31 | }
32 |
33 | TranslationElement(final String selector, final @StringRes int translationRes) {
34 | this.selector = selector;
35 | this.modifier = "innerHTML=%s";
36 | this.translationRes = translationRes;
37 | }
38 | }
39 |
40 | private WebsiteLocalizer() {
41 | // no instances
42 | }
43 |
44 | public static void localizeIfNotBuiltIn(final WebView webView) {
45 | webView.evaluateJavascript("(function() { return !!document.getElementById('language-selector'); })();", localizationBuiltIn -> {
46 | if (localizationBuiltIn.equals("false")) {
47 | //Localization is not built into instance. Localize via snapdrop-android.
48 | localize(webView);
49 | }
50 | });
51 | }
52 |
53 | public static void localize(final WebView webView) {
54 | for (TranslationElement element : TranslationElement.values()) {
55 | webView.evaluateJavascript(getTranslationJS(element, webView.getContext()), null);
56 | }
57 | }
58 |
59 | private static String getTranslationJS(final TranslationElement element, final Context context) {
60 | return "javascript: " +
61 | "var x = document.querySelector(\"" + element.selector + "\")." + String.format(element.modifier, "\"" + TextUtils.htmlEncode(context.getString(element.translationRes)) + "\"") + ";";
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/app/src/main/java/com/fmsys/snapdrop/utils/ClipboardUtils.java:
--------------------------------------------------------------------------------
1 | package com.fmsys.snapdrop.utils;
2 |
3 | import android.content.ClipData;
4 | import android.content.ClipboardManager;
5 | import android.content.Context;
6 |
7 | public class ClipboardUtils {
8 | private ClipboardUtils() {
9 | // utility class
10 | }
11 |
12 | public static void copy(final Context context, final String text) {
13 | final ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
14 | final ClipData clip = ClipData.newPlainText("SnapdropAndroid", text);
15 | clipboard.setPrimaryClip(clip);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/java/com/fmsys/snapdrop/utils/Link.java:
--------------------------------------------------------------------------------
1 | package com.fmsys.snapdrop.utils;
2 |
3 | import androidx.annotation.StringRes;
4 |
5 | public class Link {
6 |
7 | public String url;
8 |
9 | public @StringRes
10 | int description;
11 |
12 | private Link(final String url, final @StringRes int description) {
13 | this.url = url;
14 | this.description = description;
15 | }
16 |
17 | public static Link bind(final String url, final @StringRes int description) {
18 | return new Link(url, description);
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/app/src/main/java/com/fmsys/snapdrop/utils/LiveCallback.java:
--------------------------------------------------------------------------------
1 | package com.fmsys.snapdrop.utils;
2 |
3 | import androidx.annotation.NonNull;
4 | import androidx.lifecycle.LifecycleOwner;
5 | import androidx.lifecycle.MutableLiveData;
6 |
7 | public class LiveCallback {
8 | private final MutableLiveData liveData = new MutableLiveData<>();
9 |
10 | /**
11 | * Call the registered observers.
12 | */
13 | public void call() {
14 | liveData.setValue(null);
15 | }
16 |
17 | /**
18 | * Posts a task to a main thread to call the registered observers.
19 | */
20 | public void post() {
21 | liveData.postValue(null);
22 | }
23 |
24 | /**
25 | * Adds the given observer to the observers list within the lifespan of the given owner.
26 | * The events are dispatched on the main thread.
27 | * If a call was already triggered, the given action gets called directly.
28 | */
29 | public void observe(final @NonNull LifecycleOwner owner, final @NonNull Runnable action) {
30 | liveData.observe(owner, none -> action.run());
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/app/src/main/java/com/fmsys/snapdrop/utils/Nullable.java:
--------------------------------------------------------------------------------
1 | package com.fmsys.snapdrop.utils;
2 |
3 | import androidx.core.util.Consumer;
4 |
5 | public class Nullable {
6 |
7 | private final T object;
8 |
9 | private Nullable(T object) {
10 | this.object = object;
11 | }
12 |
13 | public static Nullable of(T object) {
14 | return new Nullable<>(object);
15 | }
16 |
17 | public Nullable ifNotNull(Consumer consumer) {
18 | if (object != null) {
19 | consumer.accept(object);
20 | }
21 | return this;
22 | }
23 |
24 | public Nullable ifNull(Runnable runnable) {
25 | if (object == null) {
26 | runnable.run();
27 | }
28 | return this;
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/app/src/main/java/com/fmsys/snapdrop/utils/ShareUtils.java:
--------------------------------------------------------------------------------
1 | package com.fmsys.snapdrop.utils;
2 |
3 | import android.content.ActivityNotFoundException;
4 | import android.content.Context;
5 | import android.content.Intent;
6 | import android.net.Uri;
7 |
8 | import androidx.fragment.app.Fragment;
9 |
10 | import com.fmsys.snapdrop.OpenUrlActivity;
11 | import com.fmsys.snapdrop.R;
12 | import com.google.android.material.snackbar.Snackbar;
13 |
14 | public class ShareUtils {
15 | private ShareUtils() {
16 | // utility class
17 | }
18 |
19 | public static void shareUrl(final Context context, final String text) {
20 | final Intent sendIntent = new Intent()
21 | .setAction(Intent.ACTION_SEND)
22 | .setType("text/plain")
23 | .putExtra(Intent.EXTRA_TEXT, text);
24 |
25 | final Intent[] extraIntents = { new Intent(context, OpenUrlActivity.class)
26 | .putExtra(Intent.EXTRA_TEXT, text) };
27 |
28 | final Intent shareIntent = Intent.createChooser(sendIntent, null); // pass null as title, as it will otherwise trigger the ugly EMUI share sheet
29 | shareIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, extraIntents);
30 |
31 | context.startActivity(shareIntent);
32 | }
33 |
34 | public static void openUrl(final Fragment fragment, final String url) {
35 | try {
36 | fragment.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
37 | } catch (ActivityNotFoundException e) {
38 | Snackbar.make(fragment.requireView(), R.string.err_no_browser, Snackbar.LENGTH_LONG).show();
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/app/src/main/java/com/fmsys/snapdrop/utils/StateHandler.java:
--------------------------------------------------------------------------------
1 | package com.fmsys.snapdrop.utils;
2 |
3 | import java.util.concurrent.atomic.AtomicInteger;
4 |
5 | public class StateHandler {
6 | private boolean currentlyOffline = false;
7 | private boolean currentlyLoading = true;
8 | private boolean currentlyStarting = true;
9 |
10 | private final AtomicInteger loadProgress = new AtomicInteger();
11 |
12 | public boolean isCurrentlyOffline() {
13 | return currentlyOffline;
14 | }
15 |
16 | public void setCurrentlyOffline(final boolean currentlyOffline) {
17 | this.currentlyOffline = currentlyOffline;
18 | }
19 |
20 | public boolean isCurrentlyLoading() {
21 | return currentlyLoading;
22 | }
23 |
24 | public void setCurrentlyLoading(final boolean currentlyLoading) {
25 | this.currentlyLoading = currentlyLoading;
26 |
27 | if (!currentlyLoading) {
28 | currentlyStarting = false;
29 | }
30 | }
31 |
32 | public boolean isCurrentlyStarting() {
33 | return currentlyStarting;
34 | }
35 |
36 | public int getLoadProgress() {
37 | return loadProgress.get();
38 | }
39 |
40 | public void setLoadProgress(final int newProgress) {
41 | loadProgress.set(newProgress);
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/app/src/main/java/com/fmsys/snapdrop/utils/ViewUtils.java:
--------------------------------------------------------------------------------
1 | package com.fmsys.snapdrop.utils;
2 |
3 | import android.content.res.Resources;
4 | import android.view.ContextThemeWrapper;
5 | import android.view.LayoutInflater;
6 | import android.view.View;
7 | import android.widget.EditText;
8 | import android.widget.TextView;
9 |
10 | import androidx.appcompat.app.AlertDialog;
11 | import androidx.core.util.Consumer;
12 | import androidx.fragment.app.Fragment;
13 |
14 | import com.fmsys.snapdrop.R;
15 | import com.fmsys.snapdrop.SnapdropApplication;
16 |
17 | public class ViewUtils {
18 |
19 | private static final Resources APP_RESOURCES = SnapdropApplication.getInstance() == null || SnapdropApplication.getInstance().getApplicationContext() == null ? null : SnapdropApplication.getInstance().getApplicationContext().getResources();
20 |
21 | private ViewUtils() {
22 | //no instance
23 | }
24 |
25 | public static int dpToPixel(final float dp) {
26 | return (int) (dp * (APP_RESOURCES == null ? 20f : APP_RESOURCES.getDisplayMetrics().density));
27 | }
28 |
29 | public static void showEditTextWithResetPossibility(final Fragment fragment, final CharSequence title, final String prefix, final String initialValue, final Link link, final Consumer resultCallback) {
30 | final View dialogView = LayoutInflater.from(new ContextThemeWrapper(fragment.requireContext(), R.style.AlertDialogTheme)).inflate(R.layout.edit_text_dialog, null);
31 | final EditText editText = dialogView.findViewById(R.id.textInput);
32 | editText.setTag(prefix);
33 | editText.setText(initialValue);
34 | editText.requestFocus();
35 |
36 | if (link != null) {
37 | final TextView helperText = dialogView.findViewById(R.id.helperText);
38 | helperText.setVisibility(View.VISIBLE);
39 | helperText.setText(link.description);
40 | helperText.setOnClickListener(v -> ShareUtils.openUrl(fragment, link.url));
41 | }
42 |
43 | final AlertDialog.Builder builder = new AlertDialog.Builder(fragment.requireContext())
44 | .setTitle(title)
45 | .setView(dialogView)
46 | .setPositiveButton(android.R.string.ok, (dialog, id) -> resultCallback.accept(editText.getText().toString().trim()))
47 | .setNegativeButton(R.string.reset, (dialog, id) -> resultCallback.accept(null));
48 | builder.create().show();
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/app/src/main/java/com/fmsys/snapdrop/utils/ZipUtils.java:
--------------------------------------------------------------------------------
1 | package com.fmsys.snapdrop.utils;
2 |
3 | import android.content.Context;
4 | import android.net.Uri;
5 |
6 | import androidx.documentfile.provider.DocumentFile;
7 |
8 | import java.io.ByteArrayOutputStream;
9 | import java.io.IOException;
10 | import java.io.InputStream;
11 | import java.io.OutputStream;
12 | import java.util.List;
13 | import java.util.zip.ZipEntry;
14 | import java.util.zip.ZipOutputStream;
15 |
16 | public class ZipUtils {
17 |
18 | private ZipUtils() {
19 | // utility class
20 | }
21 |
22 | public static void createZipFromUris(final Context context, final List uris, final OutputStream outputStream) throws IOException {
23 | final ZipOutputStream zipOutputStream = new ZipOutputStream(outputStream);
24 | final byte[] buffer = new byte[1024];
25 |
26 | for (Uri uri : uris) {
27 | try (InputStream inputStream = context.getContentResolver().openInputStream(uri)) {
28 | if (inputStream == null) {
29 | continue;
30 | }
31 | final String fileName = getFileNameFromUri(context, uri);
32 | zipOutputStream.putNextEntry(new ZipEntry(fileName));
33 |
34 | int length;
35 | while ((length = inputStream.read(buffer)) > 0) {
36 | zipOutputStream.write(buffer, 0, length);
37 | }
38 | zipOutputStream.closeEntry();
39 | }
40 | }
41 |
42 | zipOutputStream.finish();
43 | zipOutputStream.close();
44 | }
45 |
46 | private static String getFileNameFromUri(final Context context, final Uri uri) {
47 | final DocumentFile file = DocumentFile.fromSingleUri(context, uri);
48 | if (file != null) {
49 | return file.getName();
50 | }
51 | return uri.getLastPathSegment();
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_launcher_actionbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/app/src/main/res/drawable-xxxhdpi/ic_launcher_actionbar.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_download.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_launcher_foreground.xml:
--------------------------------------------------------------------------------
1 |
6 |
8 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_open_url.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_settings.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_snapdrop.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/network_off.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/onboarding_folder_open.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/onboarding_sample_devices.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/app/src/main/res/drawable/onboarding_sample_devices.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/phonelink_off.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/pref_about.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/pref_baseurl.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/pref_community.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
13 |
16 |
19 |
22 |
23 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/pref_connectivity_card.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/pref_debug.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
13 |
14 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/pref_floatingtext.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/pref_license.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/pref_localization.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/pref_location_metadata.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/pref_name.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/pref_notifications.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/pref_savelocation.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/pref_screen.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/pref_theme.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/snackbar.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/snackbar_larger_margin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/tv_banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/app/src/main/res/drawable/tv_banner.png
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_onboarding.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
12 |
13 |
19 |
20 |
21 |
25 |
26 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/debug_logs_dialog.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
10 |
11 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/edit_text_dialog.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
14 |
15 |
20 |
21 |
22 |
23 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_onboarding_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
23 |
24 |
36 |
37 |
50 |
51 |
52 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_onboarding_3.xml:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
14 |
23 |
24 |
35 |
36 |
47 |
48 |
59 |
60 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_onboarding_permission.xml:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
14 |
23 |
24 |
35 |
36 |
37 |
45 |
46 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/preference_switch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/progress_dialog.xml:
--------------------------------------------------------------------------------
1 |
2 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/servercard.xml:
--------------------------------------------------------------------------------
1 |
2 |
14 |
15 |
21 |
22 |
32 |
33 |
42 |
43 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/actionbar.xml:
--------------------------------------------------------------------------------
1 |
2 |
15 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/values-hi-rIN/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | ब्राउज़र नहीं खुल रहा
4 | इस फ़ाइल को खोलने के लिए कोई ऐप मौजूद नहीं है
5 | url_खोलें
6 |
7 |
8 | फ़ाइल संग्रहीत करना। कृपया थोड़ा धैर्य रखें...
9 | डाउनलोड पूरा हुआ है
10 | डाउनलोड सम्पन्न हुआ
11 |
12 | खोलें
13 | रीसेट करें
14 | नकल बनाएँ
15 |
16 | डीबग लॉग
17 | रूपांतर
18 | डिवाइस का नाम
19 | अपनी पसंद का डिवाइस नेम रखें
20 | (अनुशंसित) स्क्रीन बंद होने पर कई उपकरणों में स्थानांतरण बाधित होने की समस्या होती है
21 | ट्रांसफर करते समय स्क्रीन ऑन रखें।
22 | फ्लोटिंग टेक्स्ट सिलेक्शन
23 | अन्य ऐप्स में टेक्स्ट को सिलेक्ट करते समय, \"स्नैपड्रॉप के साथ भेजें\" विकल्प दिखाया जाएगा।
24 | स्नैपड्रॉप के साथ भेजें
25 | थीम
26 |
27 | सिस्टम डिफ़ॉल्ट का इस्तेमाल करें
28 | प्रकाश
29 | डार्क
30 |
31 | स्थान सहेजें
32 |
33 | साझा करने के लिए एक फ़ाइल का चयन किया गया है
34 | फ़ाइलें साझा करने के लिए चुनी गई हैं
35 | सामग्री को साझा करने के लिए चुना गया है
36 | फ़ाइल चयनकर्ता खोला नहीं जा सकता
37 | कृपया सत्यापित करें कि आप वाईफाई नेटवर्क से जुड़े हुए हैं
38 | मुझे वैसे भी आने दो
39 | क्षमा करें!
40 |
41 | फ़ाइलें भेजने के लिए टैप करें या संदेश भेजने के लिए लंबा टैप करें
42 | फाइल प्राप्त हुई
43 | फ़ाइल सहेजने से पहले हमेशा पूछें
44 | बचाना
45 | आप इस नेटवर्क पर सभी के द्वारा खोजे जा सकते हैं
46 | आप %s के नाम से जाने जाते हैं
47 | सभी डिवाइस में फ़ाइलें स्थानांतरित करने का सबसे आसान तरीका
48 |
49 |
--------------------------------------------------------------------------------
/app/src/main/res/values-hr-rHR/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Preglednik nedostupan
4 | Nema aplikacije za otvaranje datoteke ovog tipa
5 | Otvori URL adresu
6 |
7 |
8 | Spremanje datoteke. Pričekajte trenutak…
9 | Preuzimanje je uspješno
10 | Preuzimanje je završeno
11 |
12 | otvori
13 | ponovno pokreni
14 | kopiraj
15 |
16 | Postavke
17 | Debug Dnevnici
18 | Pritisni za prikaz
19 | Verzija
20 | Naziv uređaja
21 | Postavite svoj naziv uređaja
22 | (Preporučeno) Mnogi uređaji imaju problem s prekinutim prijenosima kada se ekran isključi
23 | Održi ekran upaljen za vrijeme prijenosa
24 | Tema
25 |
26 | Zadano sustavom
27 | Svijetlo
28 | Tamno
29 |
30 | Mjesto spremanja
31 |
32 | Datoteka je označena za dijeljenje
33 | Datoteke su označene za dijeljenje
34 | Sadržaj je označen za dijeljenje
35 | Izbornik datoteka nedostupan
36 | Molimo provjerite jeste li spojeni na WiFi mrežu
37 | Svejedno me pusti unutra
38 |
39 | Kliknite za slanje datoteka ili držite za slanje poruke
40 | Datoteka primljena
41 | Uvijek pitaj prije spremanja datoteke
42 | Spremi
43 | Možete biti otkriveni sa svakog na istom internetu
44 | Budete prepoznati kao %s
45 | Najlakši način prijenos datoteka preko uređaja
46 |
47 |
--------------------------------------------------------------------------------
/app/src/main/res/values-iw-rIL/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | אי אפשר לפתוח דפדפן
4 | לא נמצא יישום לפתיחת קובץ זה
5 | פתח קישור אינטרנט
6 |
7 |
8 | מאחסן את הקובץ. בבקשה הראה קצת סבלנות...
9 | ההורדה הושלמה
10 | ההורדה הושלמה
11 |
12 | פתח
13 | אפס
14 | העתק
15 |
16 | הגדרות
17 | יומני איתור באגים
18 | לחץ להצגה
19 | גירסה
20 | שם המכשיר
21 | בחר שם משתמש למכשירך
22 | (מומלץ) להמון מכשירים יש בעיות שהעברת הקבצים נקטעת כשמכבים את מסך המכשיר
23 | השאר מסך דולק במשך העברת הקבצים
24 | בחירת טקסט צף
25 | כשתבחר שורת טקסט ביישום אחר, יפתח אפשרות של \"שתף עם סנאפדרופ\"
26 | שתף עם סנאפדרופ
27 | ערכת נושא
28 |
29 | ברירת מחדל של המערכת
30 | בהיר
31 | כהה
32 |
33 | שמור מיקום
34 |
35 | קובץ מצורף נבחר לשיתוף
36 | קבצים מצורפים נבחרו לשיתוף
37 | תוכן נבחר לשיתוף
38 | אין אפשרות לפתוח את בוחר הקבצים
39 | אנא ודא שאתה מחובר לרשת WiFi
40 | תן לי להיכנס בכל מקרה
41 | אופס, סליחה!
42 |
43 | לחץ כדי לשלוח קבצים או לחץ לחיצה ארוכה כדי לשלוח הודעה
44 | הקובץ התקבל
45 | שאל תמיד לפני שמירת קובץ
46 | שמור
47 | כולם ברשת זו יכולים לגלות אותך
48 | אתה ידוע בתור %s
49 | הדרך הקלה ביותר לשלוח קבצים בין מכשירים
50 |
51 |
--------------------------------------------------------------------------------
/app/src/main/res/values-mk-rMK/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Не може да се отвори прелистувачот
4 | Нема апликација инсталирана за да се отвори оваа датотека
5 | Отвори URL
6 |
7 |
8 | Се зачувува датотеката. Ве молиме имајте стрплење…
9 | Преземањето е успешно
10 | Преземањето е завршено
11 |
12 | отвори
13 | ресетирај
14 | копирај
15 |
16 | Поставки
17 | Дебагирани влезови
18 | Допрете за да се прикаже
19 | Верзија
20 | Име на уредот
21 | Поставете сопствено име на уредот
22 | Овозможете ја оваа опција ако имате проблеми со прекинување на трансферите кога екранот е исклучен
23 | Чувајте го екранот вклучен
24 | Тема
25 |
26 | Системски одбрано
27 | Светла
28 | Темна
29 |
30 | Зачувај локација
31 |
32 | Датотека е избрана за споделување
33 | Датотеките се избрани за споделување
34 | Содржината е избрана за споделување
35 | Не може да се отвори избирачот на датотеки
36 | Ве молиме, проверете дали сте поврзани со WiFi мрежа
37 | Игнорирај и продолжи
38 |
39 |
40 |
--------------------------------------------------------------------------------
/app/src/main/res/values-night/colors_dark.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | false
4 |
5 | #121212
6 | #424242
7 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/values-no-rNO/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Kan ikke åpne nettleseren
4 | Ingen apper installert for å åpne denne filen
5 | Åpne URL
6 |
7 |
8 | Lagrer filen. Vennligst ha litt tålmodighet…
9 | Nedlasting vellykket
10 | Nedlastingen er fullført
11 |
12 | åpne
13 | nullstill
14 | kopier
15 |
16 | Innstillinger
17 | Feilsøk-logger
18 | Trykk for å vise
19 | Versjon
20 | Enhetsnavn
21 | Angi et brukerdefinert enhetsnavn
22 | (Anbefalt) Mange enheter har problemer med at overføring blir avbrutt når skjermen slås av
23 | Hold skjermen påslått mens du overfører
24 | Tema
25 |
26 | Systemstandard
27 | Lys
28 | Mørk
29 |
30 | Lagringssted
31 |
32 | En fil er valgt for deling
33 | Filer er valgt for deling
34 | Innhold er valgt for deling
35 | Kan ikke åpne filvelgeren
36 | Vennligst bekreft at du er tilkoblet et WiFi-nettverk
37 | Slipp meg inn likevel
38 | Oops, beklager!
39 |
40 | Trykk for å sende filer eller trykk lenge for å sende en melding
41 | Fil mottatt
42 | Spør alltid før lagring av filer
43 | Lagre
44 | Du kan bli funnet av alle i dette nettverket
45 | Du er kjent som %s
46 | Den enkleste måten å overføre filer mellom enheter
47 |
48 |
--------------------------------------------------------------------------------
/app/src/main/res/values-sv-rSE/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Kan inte öppna webbläsare
4 | Ingen applikation hittades som kan öppna denna fil
5 | Öppna URL
6 |
7 | Tips: Enheter måste vara anslutna till samma WiFi-nätverk. Det kanske inte fungerar om en VPN är aktiverad.
8 |
9 | Lagrar filen. Var god och vänta…
10 | Nerladdning lyckades
11 | Nedladdning klar
12 |
13 | öppna
14 | installera
15 | återställ
16 | kopiera
17 |
18 | Om
19 | Om denna app
20 | Inställningar
21 | Felsökningsloggar
22 | Tryck för att visa
23 | läs mer
24 | Enhetsnamn
25 | Ange ett användardefinierat enhetsnamn
26 | (Rekommenderas) Många enheter har problem med överföringar som avbryts när skärmen stängs av
27 | Behåll skärmen på vid överföring
28 | Tema
29 |
30 | Systemstandard
31 | Ljus
32 | Mörk
33 |
34 | Spara platsen
35 |
36 | En fil är markerad för delning
37 | Filer är markerade för delning
38 | Innehållet är markerat för delning
39 | Kan inte öppna filväljaren
40 | Kontrollera att du är ansluten till ett WiFi-nätverk
41 | Släpp in mig ändå
42 | Oops, sorry!
43 |
44 | Tryck för att skicka filer eller tryck och håll ned för att skicka ett meddelande
45 | Fil mottagen
46 | Fråga alltid innan en fil sparas
47 | Spara
48 | Du kan upptäckas av alla på detta nätverk
49 | Du är känd som %s
50 | Det enklaste sättet att överföra filer mellan enheter
51 |
52 |
--------------------------------------------------------------------------------
/app/src/main/res/values-v23/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/values-v27/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/values-vi-rVN/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Không thể mở trình duyệt
4 | Không có ứng dụng nào có thể mở tập tin này
5 | Mở liên kết URL
6 |
7 |
8 | Đang tải về tệp. Vui lòng đợi…
9 | Tải xuống thành công
10 | Tải xuống hoàn tất
11 |
12 | mở
13 | đặt lại
14 | sao chép
15 |
16 | Cài đặt
17 | Nhật ký hoạt động
18 | Chạm để hiển thị
19 | Phiên bản
20 | Tên thiết bị
21 | Đặt tên thiết bị tùy chỉnh
22 | (Khuyến khích) Một số thiết bị trong lúc truyền sẽ bị ngắt nếu màn hình bị tắt
23 | Giữ màn hình bật khi đang truyền
24 | Hộp thoại nổi khi bôi đen chữ
25 | Khi bôi đen văn bản trên ứng dụng khác, lựa chọn \"Gửi bằng Snapdrop\" sẽ hiện lên
26 | Gửi bằng Snapdrop
27 | Giao diện
28 |
29 | Mặc định theo hệ thống
30 | Sáng
31 | Tối
32 |
33 | Vị trí lưu
34 |
35 | Đã chọn 1 file để chia sẻ
36 | Các tập tin đã được chọn để chia sẻ
37 | Nội dung đã được chọn để chia sẻ
38 | Không thể mở trình chọn tập tin
39 | Vui lòng xác minh rằng bạn được kết nối với mạng WiFi
40 | Cứ cho tôi vào đi
41 | Ầu, xin lỗi!
42 |
43 | Nhấn để truyền tập tin hoặc nhấn giữ để gửi tin nhắn
44 | Tập tin đã được nhận
45 | Luôn hỏi trước khi lưu tập tin
46 | Lưu
47 | Bạn có thể được tìn thấy bởi bất kì ai trong cùng mạng bạn đang kết nối
48 | Tên hiển thị của bạn là %s
49 | Cách dễ nhất để truyền các tập tin giữa các thiết bị
50 |
51 |
--------------------------------------------------------------------------------
/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FFFFFF
4 | #FF2200
5 |
6 | #4285F4
7 | #FFFFFF
8 | true
9 |
10 | #FFFFFF
11 | #323232
12 | #FFFFFF
13 |
14 |
15 | #4285F4
16 |
17 |
--------------------------------------------------------------------------------
/app/src/main/res/values/preference_keys.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | keep_screen_on
4 | floating_text_selection
5 | show_connectivity_card
6 | device_name
7 | first_use
8 | custom_servers
9 | notify
10 | baseurl
11 | save_location
12 | retain_location_metadata
13 |
14 |
15 | theme_setting
16 | LIGHT
17 | DARK
18 | SYSTEM_DEFAULT
19 |
20 | @string/pref_value_theme_system_default
21 | @string/pref_value_theme_light
22 | @string/pref_value_theme_dark
23 |
24 |
25 | app_components
26 | app_support
27 |
28 | last_crash
29 |
30 |
--------------------------------------------------------------------------------
/app/src/main/res/values/strings_not_translatable.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | https://snapdrop.net/
5 |
6 | https://pairdrop.net
7 | https://snapdrop.net
8 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/network_security_config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | snapdrop.net
11 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/provider_paths.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/shortcuts.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
16 |
17 |
--------------------------------------------------------------------------------
/app/src/test/java/com/fmsys/snapdrop/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.fmsys.snapdrop;
2 |
3 | import org.junit.Test;
4 | import static org.junit.Assert.*;
5 |
6 | /**
7 | * Example local unit test, which will execute on the development machine (host).
8 | *
9 | * These tests are also integrated in our build CI
10 | *
11 | * @see Testing documentation
12 | */
13 | public class ExampleUnitTest {
14 | @Test
15 | public void additionIsCorrect() {
16 | assertEquals(4, 2 + 2);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 | buildscript {
3 | repositories {
4 | google()
5 | mavenCentral()
6 | }
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:8.8.0'
9 |
10 | // NOTE: Do not place your application dependencies here; they belong
11 | // in the individual module build.gradle files
12 | }
13 | }
14 |
15 | plugins {
16 | id 'com.mikepenz.aboutlibraries.plugin' version '11.2.3'
17 | }
18 |
19 | allprojects {
20 | repositories {
21 | google()
22 | mavenCentral()
23 | maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
24 | }
25 | }
26 |
27 | task clean(type: Delete) {
28 | delete rootProject.buildDir
29 | }
30 |
--------------------------------------------------------------------------------
/crowdin.yml:
--------------------------------------------------------------------------------
1 | "project_id_env": "CROWDIN_PROJECT_ID"
2 | "api_token_env": "CROWDIN_PERSONAL_TOKEN"
3 |
4 | files:
5 | - source: /app/src/main/res/values/strings.xml
6 | translation: /app/src/main/res/values-%android_code%/%original_file_name%
7 | translate_attributes: 0
8 | content_segmentation: 0
9 | - source: /fastlane/metadata/android/en-US/short_description.txt
10 | translation: /fastlane/metadata/android/%locale%/%original_file_name%
11 | - source: /fastlane/metadata/android/en-US/title.txt
12 | translation: /fastlane/metadata/android/%locale%/%original_file_name%
13 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/ar-SA/full_description.txt:
--------------------------------------------------------------------------------
1 | سناب درُوب لِنِظامِ أندُروِيد هُوَ عَميلُ أندرويد™ لِلحل المَجانيّ، مَفتوحُ المَصدَر لِمُشاركةِ المِلفات https://snapdrop.net/.
2 |
3 | هل تُواجهُ فِي بَعضِ الأحيانِ مُشكِلَةَ اِحتياجِكَ إلَى نَقلِ مِلَفٍ بِسُرعَةٍ مِن هاتِفَكَ المَحمولِ إلَى الحاسِبِ الشَخصيّ فَقَط؟
4 |
5 | الناقِلُ التَسلسُليُّ العَام (USB)؟ - موضةٌ قَديمة!
6 | بلوتوث؟ - مُرهِقَةٌ جِدًا وَبَطيئَة!
7 | البَريدِ الإلِكتُرُونيّ؟ - مِن فَضلِك، لَن أكتُبَ بَريدًا إلِكتُرُونيًا آخَرَ لِنَفسي!
8 |
9 | سناب درُوب!
10 |
11 | سناب درُوب هُوَ حَلٌّ لِمُشارَكَةِ المِلفَاتِ مَحليًّا وَالَّذي يَعمَلُ بِالكامِلِ فِي المُتَصَفِّحِ الخَاصِ بِك. يُشبِهُ قليلاً اير درُوب الخَاصِ بِشَرِكَةِ أبل، لكِن ليسَ فَقَط لِأجهِزَةِ أبل. لينكس، ماك، ويندوز، أندرويد، أيفون - لَا تُوجَدُ مُشكِلَةٌ عَلَى الإطلَاق!
12 |
13 | مَعَ ذَلِك، حَتَّى لَو كانَ يَعمَل نَظريًا بِشَكلٍ كَامِلٍ فِي المُتَصَفِح الخَاص بِك، سَوفَ تُحِب هَذَا التَطبيق إذَا كانَت لديكَ الرغبَة فِي اِستخدام سناب درُوب أكثر فِي حياتِكَ اليوميَّة. بِفَضلِ التَكامُلِ المِثاليّ مَعَ نِظامِ أندرويد، يتم إرسال المِلفات بِشكلٍ أسرَع. يُمكِنُكَ تَحديد سناب درُوب مُباشرَةً مِن دَاخِلِ التَطبيقاتِ الأُخرَى لِمُشارَكَةِ المِلفاتِ عَبرَه.
14 |
15 | بفضل بساطتها الجذرية، "Snaplow for Android" يجعل الحياة اليومية لآلاف المستخدمين أسهل. كَمشروعٌ مَفتوحُ المَصدَر ليسَ لَدينا أيُّ مَصاِلحَ تِجاريَّة، لكِن نُريدُ جَعلَ العالم أفضَلَ قليلاً. اِنضَم وَاقنِع نَفسَك!
16 |
17 | مَصدَرُ التَعليمَاتِ البَرمَجِيَّة:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | شكر:
21 | التطبيق مدعوم من قبل مشروع Snapdrop Open Source ، الذي يتم استضافته وصيانته من قبل RobinLinus. ألقِ نَظرَتًا عَلَى https://www.github.com/robinlinus/snapdrop
22 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/ar-SA/short_description.txt:
--------------------------------------------------------------------------------
1 | نقل الملفات بسلاسة بين جميع أجهزتك - Snapllow
--------------------------------------------------------------------------------
/fastlane/metadata/android/ar-SA/title.txt:
--------------------------------------------------------------------------------
1 | سناب درُوب اقترن واسقط لِنِظامِ أندُروِيد
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/bg-BG/full_description.txt:
--------------------------------------------------------------------------------
1 | Snapdrop за Андроид е клиент за безплатното решение за споделяне на файлове https://snapdrop.net/.
2 |
3 | И ти ли понякога имаш проблем с това, че искаш просто бързо и лесно да изпратиш файл между две устройства или до компютъра ти?
4 |
5 | USB? - Старомодно!
6 | Bluetooth? - Бавно и тегаво!
7 | E-mail? - О, не и отново да пиша имейл до себе си!
8 |
9 | Snapdrop!
10 |
11 | Snapdrop е локално решение което работи изцяло в браузъра ти. Почти като Apple Airdrop, но за Андроид устройства. Windows, Linux, Android, IPhone, Mac - няма никакъв проблем!
12 |
13 | Благодарение на перфектната интеграция с Андроид, файловете биват пращани по-бързо. Можеш да изпращаш чрез Snapdrop директно от менюто за споделяне.
14 |
15 | Благодарение на елементарния начин на ползване, "Snapdrop за Андроид" прави работата на хиляди потребители по-лесна. Проект с отворен код без лична изгода, но с желание да направи света малко по-прост. Присъедини се и се убеди сам!
16 |
17 | ОТВОРЕН КОД:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | ЗАСЛУГИ:
21 | Приложението работи благодарение на проекта Snapdrop Open Source, създаден от RobinLinus. Виж повече на https://www.github.com/robinlinus/snapdrop
22 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/bg-BG/short_description.txt:
--------------------------------------------------------------------------------
1 | Споделяй файлове без усилия между всички твои устройства - Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/bg-BG/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & PairDrop for Android
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/ca-ES/full_description.txt:
--------------------------------------------------------------------------------
1 | Snapdrop per a Android és un client de Android™ per la solució d'intercanvi local d'arxius lliure i de codi obert https://snapdrop.net.
2 |
3 | De vegades també tens el problema de necessitar transferir un arxiu rapidament del teu telèfon al teu PC?
4 |
5 | USB? - Passat de moda!
6 | Bluetooth? - Massa complicat i lent!
7 | E-mail? - Si us plau no un altre correu que m'envio a mi mateix!
8 |
9 | Snapdrop!
10 |
11 | Snapdrop és una solució de transferència de fitxers local que funciona completament al teu navegador. Una mica com el Airdrop de Apple, pero no només per els dispositius d'Apple. Windows, Linux, Android, iPhone, Mac - cap mena de problema!
12 |
13 | Tot i així, encara que en teoria funciona completament en el teu navegador, aquesta aplicació t'encantarà si vols fer servir Snapdrop sovint. Gràcies a la perfecte integració amb el sistema operatiu Android, els fitxers són enviats encara més rapidament. Directament des de dins d'altres aplicacions pots selccionar per compartir amb Snapdrop.
14 |
15 | Gràcies a la seva gran simplicitat, "Snapdrop per a Android" fa la vida quotidiana més fàcil per a milers d'usuaris. Com a projecte de codi obert no tenim cap interés comercial pero volem fer el mon una mica millor. Uneix-te i convence't!
16 |
17 | CODI FONT:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | CRÈDITS:
21 | Aquesta aplicació està impulsada pel projecte de codi obert Snapdrop, el qual està mantingut i allotjat per RobinLinus. Vegeu també https://www.github.com/robinlinus/snapdrop
22 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/ca-ES/short_description.txt:
--------------------------------------------------------------------------------
1 | Transfereix arxius fàcilment entre tots els teus dispositius - Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/ca-ES/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop i PairDrop per a l'Android
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/cs-CZ/full_description.txt:
--------------------------------------------------------------------------------
1 | Snapdrop for Android je Android™ klient pro bezplatné a open source lokální sdílení souborů https://snapdrop.net/.
2 |
3 | Taky míváte problém, kdy potřebujete rychle přesunout soubor z telefonu do počítače?
4 |
5 | USB? - Staromódní!
6 | Bluetooth? - Příliš těžkopádné a pomalé!
7 | E-mail? - Prosím ne, další email který píšu sám sobě!
8 |
9 | Snapdrop!
10 |
11 | Snapdrop je lokální řešení pro sdílení souborů, které plně funguje ve vašem prohlížeči. Trochu jako Apple Airdrop, ale nejen pro Apple zařízení. Windows, Linux, Android, IPhone, Mac - žádný problém!
12 |
13 | I kdyby to teoreticky fungovalo v prohlížeči, tuto aplikaci budete milovat, pokud chcete používat Snapdrop častěji ve svém každodenním životě. Díky dokonalé integraci do operačního systému Android jsou soubory posílány ještě rychleji. Můžete sdílet přímo z ostatních aplikací do Snapdropu.
14 |
15 | Díky své radikální jednoduchosti usnadňuje Snapdrop pro Android každodenní život tisícům uživatelů. Jako open source projekt nemáme žádné komerční zájmy, ale chceme svět trochu lepší. Připojte se a přesvědčte se sami!
16 |
17 | ZDROJOVÝ KÓD:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | TVŮRCI:
21 | Aplikace je poháněna projektem Snapdrop Open Source hostujícím a spravovaným RobinLinus. Viz také https://www.github.com/robinlinus/snapdrop
22 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/cs-CZ/short_description.txt:
--------------------------------------------------------------------------------
1 | Přenášejte soubory hladce mezi všemi zařízeními - Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/cs-CZ/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & PairDrop pro Android
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/de-DE/full_description.txt:
--------------------------------------------------------------------------------
1 | Snapdrop für Android ist ein Android™ Client für https://snapdrop.net/, eine kostenlose Open-Source-Lösung zum Teilen lokaler Dateien.
2 |
3 | Haben Sie auch manchmal das Problem, dass Sie nur schnell eine Datei von Ihrem Telefon auf den PC übertragen müssen?
4 |
5 | USB? - Altmodisch!
6 | Bluetooth? - Viel zu umständlich und langsam!
7 | E-Mail? - Bitte nicht noch eine E-Mail, die ich an mich selber schreibe!
8 |
9 | Snapdrop!
10 |
11 | Snapdrop ist eine Lösung für den Austausch von Dateien im Heimnetzwerk, die vollständig in Ihrem Browser funktioniert. Ein bisschen wie Apple's Airdrop, aber eben nicht nur für Apple-Geräte. Windows, Linux, Android, IPhone, Mac - alles kein Problem!
12 |
13 | Aber selbst wenn es theoretisch vollständig in Ihrem Browser funktionieren würde, werden Sie diese App dennoch lieben, wenn Sie Snapdrop häufiger in ihrem täglichen Leben verwenden möchten. Dank perfekter Integration in das Android-Betriebssystem, können sie ihre Dateien noch schneller versenden. Direkt von anderen Apps aus können Sie Snapdrop zum Teilen auswählen.
14 |
15 | Dank seiner radikalen Einfachheit erleichtert "Snapdrop for Android" den Alltag von tausenden Benutzern. Als Open-Source-Projekt haben wir keinerlei kommerzielles Interesse, sondern wollen viel lieber die Welt ein Stückchen besser machen. Schließen Sie sich an und überzeugen Sie sich selbst!
16 |
17 | QUELLCODE:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | DANKSAGUNG:
21 | Die App basiert auf dem Snapdrop Open-Source-Projekt, das von RobinLinus gehostet und gepflegt wird. Siehe auch https://www.github.com/robinlinus/snapdrop
22 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/de-DE/short_description.txt:
--------------------------------------------------------------------------------
1 | Übertrage Dateien nahtlos zwischen all deinen Geräten - Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/de-DE/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & PairDrop für Android
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/el-GR/short_description.txt:
--------------------------------------------------------------------------------
1 | Μεταφέρετε αρχεία με αξιοπιστία μεταξύ όλων των συσκευών σας - Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/el-GR/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & PairDrop για Android
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/full_description.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & PairDrop for Android is an Android™ client for the free and open source local file sharing solutions https://snapdrop.net/ and https://pairdrop.net/.
2 |
3 | Do you also sometimes have the problem that you just need to quickly transfer a file from your phone to the PC?
4 |
5 | USB? - Old fashioned!
6 | Bluetooth? - Much too cumbersome and slow!
7 | E-mail? - Please not another email I write to myself!
8 |
9 | Snapdrop!
10 |
11 | Snapdrop (as well as the enhanced version "PairDrop") is a local file sharing solution which completely works in your browser. A bit like Apple's Airdrop, but not only for Apple devices. Windows, Linux, Android, IPhone, Mac - no problem at all!
12 |
13 | However, even if it theoretically would fully work in your browser, you will love this app if you want to use Snapdrop or PairDrop more often in your daily life. Thanks to perfect integration into the Android operating system, files are sent even faster. Directly from within other apps you can select Snapdrop to share with.
14 |
15 | Thanks to its radical simplicity, "Snapdrop & PairDrop for Android" makes the everyday life of thousands of users easier. As an open source project we don't have any commercial interests but want to make the world a little bit better. Join and convince yourself!
16 |
17 | SOURCE CODE:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | CREDIT:
21 | The app is powered by the Snapdrop Open Source project, which is hosted and maintained by RobinLinus. See also https://www.github.com/robinlinus/snapdrop
22 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/featureGraphic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/featureGraphic.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/featureGraphic_new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/featureGraphic_new.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/icon.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/7.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshots.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/Screenshots.pptx
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/crossplatform_graphic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/crossplatform_graphic.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/1.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/2.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/2021-11-23 18_50_59-featureGraphic.png (PNG-Grafik, 1280 × 640 Pixel) - Skaliert (96%).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/2021-11-23 18_50_59-featureGraphic.png (PNG-Grafik, 1280 × 640 Pixel) - Skaliert (96%).png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/3.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/4.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20210311_145814.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20210311_145814.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20210311_145814_framed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20210311_145814_framed.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20210311_205218.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20210311_205218.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20210311_205218_framed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20210311_205218_framed.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20210311_205647.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20210311_205647.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20210311_205647_framed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20210311_205647_framed.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20210311_205718.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20210311_205718.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20210311_205718_framed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20210311_205718_framed.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20210311_205840.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20210311_205840.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20210311_205840_framed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20210311_205840_framed.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20211123_185301_framed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20211123_185301_framed.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20211123_185411_framed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20211123_185411_framed.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220125_105528.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220125_105528.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220125_105528_framed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220125_105528_framed.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220125_110311.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220125_110311.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220125_110311_framed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220125_110311_framed.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220125_110653.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220125_110653.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220125_110653_framed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220125_110653_framed.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220125_110748.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220125_110748.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220125_110748_framed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220125_110748_framed.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220125_110853.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220125_110853.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220125_110853_framed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220125_110853_framed.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220125_111023.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220125_111023.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220125_111023_framed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220125_111023_framed.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220129_213116.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220129_213116.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220129_213116_framed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220129_213116_framed.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220129_213116_framed_dimmed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/Screenshot_20220129_213116_framed_dimmed.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/crossplatform_graphic.pdn:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/crossplatform_graphic.pdn
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/favicon.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/icon_with_text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/fastlane/metadata/android/en-US/images/phoneScreenshots/raw/icon_with_text.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/short_description.txt:
--------------------------------------------------------------------------------
1 | Transfer files seamlessly between all your devices - Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & PairDrop for Android
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/es-ES/full_description.txt:
--------------------------------------------------------------------------------
1 | Snapdrop para Android™ es un cliente de Android™ para la solución de intercambio de archivos locales gratuita y de código abierto https://snapdrop.net/.
2 |
3 | ¿A veces también tienes el problema de que sólo necesitas transferir rápidamente un archivo desde tu teléfono al PC?
4 |
5 | ¿USB? - ¡Anticuado!
6 | ¿Bluetooth? - ¡Demasiado engorroso y lento!
7 | ¿Correo electrónico? - ¡Por favor! ¡No otro correo electrónico que deba escribir a mí mismo!
8 |
9 | ¡Snapdrop!
10 |
11 | Snapdrop es una solución local para compartir archivos que funciona completamente en tu navegador. Algo así como Airdrop de Apple, pero no sólo para dispositivos Apple. Windows, Linux, Android, IPhone, Mac - ¡no hay ningún problema!
12 |
13 | Sin embargo, incluso si teóricamente funcionaría completamente en tu navegador, te encantará esta aplicación si quieres usar Snapdrop más a menudo en tu vida diaria. Gracias a la perfecta integración en el sistema operativo Android, los archivos se envían aún más rápido. Directamente desde otras aplicaciones con las que puedes seleccionar Snapdrop para compartir.
14 |
15 | Gracias a su simplicidad radical, "Snapdrop para Android" facilita la vida cotidiana de cientos de usuarios. Como proyecto de código abierto, no tenemos ningún interés comercial, sino que queremos hacer el mundo un poco mejor. ¡Únase y convénzase a si mismo!
16 |
17 | CÓDIGO FUENTE:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | CRÉDITOS:
21 | La aplicación y su icono se basan en el proyecto de codigo abierto Snapdrop, que es alojado y mantenido por RobinLinus. Vea también https://www.github.com/robinlinus/snapdrop
22 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/es-ES/short_description.txt:
--------------------------------------------------------------------------------
1 | Transfiera archivos sin problemas entre todos tus dispositivos - Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/es-ES/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & Pairdrop para Android
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr-FR/full_description.txt:
--------------------------------------------------------------------------------
1 | Snapdrop pour Android est un client Android™ pour la méthode de partage local de fichier, gratuite et open source, de https://snapdrop.net/.
2 |
3 | Vous avez besoin de transférer rapidement un fichier de votre téléphone à votre PC !
4 | Comment faire ?
5 |
6 | Avec un câble USB ? - Vieux jeu !
7 | Via Bluetooth ? - Beaucoup trop pénible et lent !
8 | Par e-mail ? - Oh non, pas encore un e-mail que je m'écris à moi-même !
9 |
10 | Snapdrop !
11 |
12 | Snapdrop est une solution de partage local de fichier qui fonctionne depuis votre navigateur. Un peu comme le Airdrop d'Apple, mais pas uniquement pour les appareils Apple. Windows, Linux, Android, IPhone, Mac - aucun problème !
13 |
14 | Toutefois, même si, en théorie cela fonctionnerait parfaitement depuis votre navigateur, vous adorerez cette application si vous souhaitez utiliser Snapdrop plus souvent dans votre vie quotidienne. Grâce à une intégration parfaite dans le système d'exploitation Android, les fichiers sont envoyés encore plus rapidement. Directement à partir d'autres applications, vous pouvez sélectionner Snapdrop pour partager.
15 |
16 | Grâce à sa simplicité radicale, "Snapdrop pour Android" facilite la vie quotidienne de milliers d'utilisateurs. En tant que projet open source, nous n'avons aucun intérêt commercial, mais nous voulons rendre le monde un peu meilleur. Rejoignez-nous et laissez-vous convaincre !
17 |
18 | CODE SOURCE :
19 | https://github.com/fm-sys/snapdrop-android
20 |
21 | CRÉDIT:
22 | L'application est basée sur le projet Open Source Snapdrop qui est hébergé et maintenu par RobinLinus. Voir aussi https://www.github.com/robinlinus/snapdrop
23 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr-FR/short_description.txt:
--------------------------------------------------------------------------------
1 | Transférer des fichiers sans difficulté entre tous vos appareils - Snapshot
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr-FR/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & PairDrop pour Android
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/he-IL/full_description.txt:
--------------------------------------------------------------------------------
1 | סנאפדרופ לאנדרואיד הוא יישום חינמי ובקוד פתוח לשרת שיתוף קבצים ברשת המקומית https://snapdrop.net/.
2 |
3 | גם לך לפעמים יש את הרגע הזה שאתה חייב להעביר קובץ במהירות מהטלפון הנייד שלך למחשב?
4 |
5 | USB? - מיושן!
6 | Bluetooth? - מסורבל ואיטי!
7 | מייל? - עוד מייל שאני שולח לעצמי!
8 |
9 | סנאפדרופ!
10 |
11 | סנאפדרופ זה פתרון מושלם להעברת קבצים ברשת המקומית שעובד מעולה בדפדפן שלך. קצת דומה לאיר-דרופ של אפל, אבל לא רק למכשירי אפל. ווינדוס, לינוקס, אנדרואיד, אייפון, מק - לא בעיה בכלל!
12 |
13 | עדיין, אפילו שתאורטית זה אמור לעבוד חלק בדפדפן שלך, אתה תאהב את האפליקציה אם אתה רוצה להשתמש עם סנאפדרופ בתכיפות יותר גבוהה. הודות לשילוב מושלם עם מערכת ההפעלה אנדרואיד, קבצים נשלחים אפילו מהר יותר. אתה יכול לבחור ישירות מיישומים אחרים לשתף עם סנאפדרופ.
14 |
15 | תודות לפשטות השימוש, "סנאפדרופ לאנדרואיד" מיקל על חיי אלפי המשתמשים ביישום. פרויקט בקוד פתוח ואין לנו שום מניעים אישיים אלא רוצים לעשות את העולם קצת טוב יותר. הצטרף ושכנע את עצמך!
16 |
17 | קוד מקור:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | קרדיט:
21 | היישום מונע ע"י פרויקט בקוד פתוח סנאפדרופ, שמאוחסן ומתוחזק על ידי RobinLinus. ראה עוד
22 | https://www.github.com/robinlinus/snapdrop
23 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/he-IL/short_description.txt:
--------------------------------------------------------------------------------
1 | העברת קבצים בצורה חלקה בין כל מכשירך - סנאפדרופ
--------------------------------------------------------------------------------
/fastlane/metadata/android/he-IL/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & PairDrop for Android
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/hi-IN/full_description.txt:
--------------------------------------------------------------------------------
1 | Android के लिए Snapdrop निःशुल्क और ओपन सोर्स स्थानीय फ़ाइल साझाकरण समाधान क्लाइंट है https://snapdrop.net/
2 |
3 | क्या आपको भी कभी-कभी यह समस्या होती है कि आपको बस अपने फ़ोन से कम्प्युटर पर फ़ाइल को जल्दी से स्थानांतरित करने की आवश्यकता होती है?
4 |
5 | USB? - पुराने ज़माने का!
6 | Bluetooth? - बहुत अधिक बोझिल और धीमा!
7 | ईमेल? - कृपया एक और ईमेल न करें जो मैं खुद को लिखता हूँ!
8 |
9 | Snapdrop!
10 |
11 | Snapdrop एक स्थानीय फ़ाइल साझाकरण समाधान है जो आपके ब्राउज़र में पूरी तरह से काम करता है। थोड़ा सा Apple के Airdrop जैसा, लेकिन केवल Apple उपकरणों के लिए नहीं। विंडोज, लिनक्स, एंड्रॉइड, आईफोन, मैक - कोई समस्या नहीं!
12 |
13 | हालाँकि, भले ही यह सैद्धांतिक रूप से आपके ब्राउज़र में पूरी तरह से काम करेगा, अगर आप अपने दैनिक जीवन में स्नैपड्रॉप का अधिक बार उपयोग करना चाहते हैं तो आपको यह ऐप पसंद आएगा। Android ऑपरेटिंग सिस्टम में सही एकीकरण के लिए धन्यवाद, फाइलें और भी तेजी से भेजी जाती हैं। सीधे अन्य ऐप्स के भीतर से आप साझा करने के लिए Snapdrop का चयन कर सकते हैं।
14 |
15 | इसकी मौलिक सादगी के लिए धन्यवाद, "Android के लिए Snapdrop" हजारों उपयोगकर्ताओं के दैनिक जीवन को आसान बनाता है। एक ओपन सोर्स प्रोजेक्ट के रूप में हमारा कोई व्यावसायिक हित नहीं है, लेकिन हम दुनिया को थोड़ा बेहतर बनाना चाहते हैं। शामिल हों और अपने आप को विश्वास दिलाएं!
16 |
17 | सोर्स कोड:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | श्रेय:
21 | Snapdrop ऐप ओपन सोर्स प्रोजेक्ट द्वारा संचालित है, जिसे RobinLinus द्वारा होस्ट और रखरखाव किया जाता है। यह सभी देखें https://www.github.com/robinlinus/snapdrop
22 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/hi-IN/short_description.txt:
--------------------------------------------------------------------------------
1 | अपने सभी उपकरणों के बीच निर्बाध रूप से फ़ाइलें स्थानांतरित करें - Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/hi-IN/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & PairDrop for Android
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/hr-HR/full_description.txt:
--------------------------------------------------------------------------------
1 | Snapdrop za Android je Android™ klijent za besplatni i otvoreni servis dijeljenja datoteka https://snapdrop.net/.
2 |
3 | Nalazite li se ponekad u situaciji kada trebate brzo prenijeti datoteku s mobilnog uređaja na kompjuter?
4 |
5 | USB? - Staromodan!
6 | Bluetooth? - Nespretan i spor!
7 | E-pošta? - Samo ne još jedan e-mail koji moram sam/a sebi poslati!
8 |
9 | Snapdrop!
10 |
11 | Snapdrop je usluga za lokalno dijeljenje datoteka koja radi u potpunosti unutar web preglednika. Sličan Apple-ovom Airdropu, ali ne samo za Apple uređaje. Windows, Linux, Android, iPhone, Mac - nikakav problem!
12 |
13 | Međutim, čak iako bi teoretski funkcionirao u potpunosti unutar web preglednika, ova aplikacija je savršena za češće korištenje Snapdropa u svakodnevnom životu. Zahvaljujući savršenoj integraciji u Android operativni sustav, datoteke se mogu slati još brže. Iz drugih aplikacija možete direktno odabrati Snapdrop za dijeljenje datoteka.
14 |
15 | Zahvaljujući jednostavnosti, "Snapdrop za Androida" olakšava dnevni dan za hiljadu od korisnika. Kao projekt otvorenog koda, nemamo nikakve komercijalne namjere, već samo želimo učiniti svijet nešto boljim. Pridružite se i uvjerite se sami!
16 |
17 | IZVORNI KOD:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | ZASLUGE:
21 | Ova aplikacija je na temelju otvorenog koda projekta Snapdropu, koju RobinLinus održava. Također pogledajte https://www.github.com/robinlinus/snapdrop
22 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/hr-HR/short_description.txt:
--------------------------------------------------------------------------------
1 | Bezbrižno prenesite datoteke između svih vaših uređaja - Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/hr-HR/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & PairDrop for Android
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/hu-HU/full_description.txt:
--------------------------------------------------------------------------------
1 | A Snapdrop Androidra, egy Android™ kliens az ingyenes és nyílt forráskódú helyi fájlmegosztáshoz https://snapdrop.net/.
2 |
3 | Te is néha abban a helyzetben vagy, hogy gyorsan át kell küldened fájlokat a telefonodról a számítógépedre?
4 |
5 | USB? - Régimódi!
6 | Bluetooth? - Nehézkes és lassú!
7 | E-mail? - Ne, mégegy email amit magamnak írok!
8 |
9 | Snapdrop!
10 |
11 | A Snapdrop egy helyi fájlmegosztási megoldás, ami teljes mértékben a böngésződben működik. Egy kicsit hasonlít az Apple Airdrop-ra, de ez nem csak Apple eszközökre elérhető. Windows, Linux, Android, iPhone, Mac - semmi probléma!
12 |
13 | Azonban, bármennyire tökéletesen működik a böngésződben, szeretni fogod az alkalmazást ha gyakrabban akarod használni a Snapdropot a mindennapi életedben. A tökéletes Android rendszerbe való integrációnak köszönhetően a fájlok küldése méggyorsabb. Közvetlenül más alkalmazásokból választhatod a Snapdrop-ot a megosztáshoz.
14 |
15 | Az alapvető egyszerűségnek köszönhetően, a "Snapdrop Androidra" többezer felhasználó mindennapi életét könnyíti meg. Nyílt forráskódú projektként nincsen kereskedelmi érdeklődésünk, de szeretnénk a világot egy kicsit jobbá tenni. Csatlakozz, és győzd meg magad!
16 |
17 | FORRÁSKÓD:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | KÉSZÍTŐK:
21 | Az alkalmazást a Snapdrop Nyilt Forráskódú projekt alapján működik, aminek gazdája és karbantartója RobinLinus. Továbbá: https://www.github.com/robinlinus/snapdrop
22 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/hu-HU/short_description.txt:
--------------------------------------------------------------------------------
1 | Küldj fájlokat az összes eszközöd között zökkenőmentesen - Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/hu-HU/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & PairDrop for Android
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/id-ID/full_description.txt:
--------------------------------------------------------------------------------
1 | Snapdrop untuk Android adalah klien Android™ untuk solusi berbagi file lokal sumber terbuka dan gratis https://snapdrop.net/.
2 |
3 | Apakah Anda juga terkadang memiliki masalah bahwa Anda hanya perlu mentransfer file dengan cepat dari ponsel ke PC?
4 |
5 | USB? - Model lama!
6 | Bluetooth? - Terlalu rumit dan lambat!
7 | E-mail? - Tolong jangan email lain yang saya tulis untuk diri saya sendiri!
8 |
9 | Snapdrop!
10 |
11 | Snapdrop adalah solusi berbagi file lokal yang sepenuhnya berfungsi di browser Anda. Sedikit seperti Airdrop Apple, tetapi tidak hanya untuk perangkat Apple. Windows, Linux, Android, IPhone, Mac - tidak ada masalah sama sekali!
12 |
13 | Namun, meskipun secara teoritis akan berfungsi sepenuhnya di browser Anda, Anda akan menyukai aplikasi ini jika Anda ingin lebih sering menggunakan Snapdrop dalam kehidupan sehari-hari. Berkat integrasi sempurna ke dalam sistem operasi Android, file dikirim lebih cepat. Langsung dari dalam aplikasi lain Anda dapat memilih Snapdrop untuk berbagi.
14 |
15 | Berkat kesangat-sederhanaannya, "Snapdrop untuk Android" membuat kehidupan sehari-hari ratusan pengguna menjadi lebih mudah. Sebagai proyek open source kami tidak memiliki kepentingan komersial tetapi ingin membuat dunia sedikit lebih baik. Bergabunglah dan yakinkan diri Anda!
16 |
17 | KODE SUMBER:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | PENGHARGAAN:
21 | Aplikasi ini didukung oleh proyek Sumber Terbuka Snapdrop, yang di-host dan dikelola oleh RobinLinus. Lihat juga https://www.github.com/robinlinus/snapdrop
22 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/id-ID/short_description.txt:
--------------------------------------------------------------------------------
1 | Mentransfer file dengan mudah antarsemua perangkat Anda - Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/id-ID/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & PairDrop untuk Android
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/it-IT/full_description.txt:
--------------------------------------------------------------------------------
1 | Snapdrop per Android è un client Android™ per la condivisione gratuita e open source di file in locale https://snapdrop.net/.
2 |
3 | Anche tu hai bisogno di trasferire velocemente un file dal telefono al PC?
4 |
5 | USB? - Roba vecchia!
6 | Bluetooth? - Troppo lento e scomodo!
7 | Email? - Per favore, non scrivo un'altra email a me stesso!
8 |
9 | Snapdrop!
10 |
11 | Snapdrop è una soluzione di condivisione di file in locale che funziona completamente nel tuo browser. Un po' come Airdrop di Apple, ma non solo per i dispositivi Apple. Windows, Linux, Android, IPhone, Mac - nessun problema!
12 |
13 | Anche se funzionerebbe perfettamente nel browser, ti piacerà questa app se vuoi usare Snapdrop più spesso nella tua vita quotidiana. Grazie alla perfetta integrazione nel sistema operativo Android, i file vengono inviati ancora più velocemente. Puoi selezionare da qualsiasi app di condividere tramite Snapdrop.
14 |
15 | Grazie alla sua estrema semplicità, "Snapdrop for Android" semplifica la vita quotidiana di migliaia di utenti. Essendo un progetto open source non abbiamo alcun interesse commerciale, ma vogliamo rendere il mondo un po' migliore. Unisciti e prova tu stesso!
16 |
17 | CODICE SORGENTE:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | CREDITI:
21 | L'applicazione è alimentata dal progetto Open Source "Snapdrop", ospitato e mantenuto da RobinLinus. Vedi anche https://www.github.com/robinlinus/snapdrop
22 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/it-IT/short_description.txt:
--------------------------------------------------------------------------------
1 | Trasferisci i file in modo semplice e veloce tra tutti i tuoi dispositivi - Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/it-IT/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & PairDrop for Android
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/ja-JP/full_description.txt:
--------------------------------------------------------------------------------
1 | Snapdrop for Androidは無料でオープンソースのローカルファイルシェアリングソリューションのhttps://snapdrop.net/のAndroid™クライエントです。
2 |
3 | あなたもたまに携帯からPCにファイルを転送することに問題がありましたか?
4 |
5 | USB? - 古すぎます!
6 | Bluetooth? - 面倒で遅いです!
7 | メール? - また自分を宛先にしてメールを送るつもりですか?
8 |
9 | Snapdrop!
10 |
11 | Snapdropはあなたのブラウザで完璧に動作するローカルファイルシェアリングソリューションです。 AppleのAirdropに似ていますが、Appleのデバイスだけではありません。 Windows、Linux、Android、iPhone、Mac - 全然問題ありません!
12 |
13 | しかし、理論的にあなたのブラウザで完璧に作動するとしてもSnapdropをよく使うならこのアプリが気にいるでしょう。 Android OSとの完璧な統合により、ファイルはさらに早く送信されます。 他のアプリでSnapdropでシェアすることができます。
14 |
15 | Snapdrop for Android は究極のシンプルさにより、何千人ものユーザーの日常生活を向上させます。 オープンソースプロジェクトなので商業的利益を出しませんが、私たちは世界をより良くしたいです。 使用してみてください!
16 |
17 | ソースコード:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | クレジット:
21 | このアプリはRobinLinusにより維持されているSnapdropオープンソースプロジェクトに基づきます。 https://www.github.com/robinlinus/snapdropをご参照ください
22 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/ja-JP/short_description.txt:
--------------------------------------------------------------------------------
1 | あらゆるデバイス間で手軽なファイル共有を実現します - Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/ja-JP/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & PairDrop for Android
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/ko-KR/full_description.txt:
--------------------------------------------------------------------------------
1 | 안드로이드용 Snapdrop은 무료이며 오픈소스인 로컬 파일 공유 솔루션 https://snapdrop.net/ 의 Android™ 클라이언트입니다.
2 |
3 | 당신도 스마트폰에서 PC로 파일을 빠르게 전송하려할 때 문제를 겪은 적이 있으신가요?
4 |
5 | USB? - 너무 낡았죠!
6 | 블루투스요? - 너무 성가시고 느려요!
7 | 이메일이요? - 또 메일을 자신에게 쓸 건가요?
8 |
9 | Snapdrop을 이용해보세요!
10 |
11 | Snapdrop은 브라우저에서 완벽하게 작동하는 로컬 파일 공유 솔루션입니다. Apple의 Airdrop과 약간 비슷하지만, Apple 기기만을 위한 것은 아닙니다. 윈도우, 리눅스, 안드로이드, 아이폰, 맥 모두 문제 없습니다!
12 |
13 | 이론적으로는 브라우저에서 완벽히 작동하더라도, 일상 생활에서 Snapdrop을 자주 사용한다면 이 앱을 좋아할 겁니다. Android OS에 완벽하게 탑재한 덕에 파일을 더 빠르게 전송할 수 있습니다. 다른 앱에서 직접 공유할 앱으로 Snapdrop을 선택할 수 있습니다.
14 |
15 | 이러한 엄청난 간편함에 힘입어 "안드로이드용 Snapdrop"은 매일 수천명의 사용자들의 삶을 편하게 만들고 있습니다. 오픈소스 프로젝트로서, 우리는 어떤 상업적 목적도 없지만 세상을 조금 더 낫게 만드려고 합니다. 사용하고 직접 확인하세요!
16 |
17 | 소스 코드:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | 개발자:
21 | 이 앱은 Robinlinus가 운영하고 관리하는 Snapdrop 오픈 소스 프로젝트에 기반해 만들어졌어요. https://www.github.com/robinlinus/snapdrop 에서 자세한 정보를 확인하세요.
22 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/ko-KR/short_description.txt:
--------------------------------------------------------------------------------
1 | 당신의 모든 기기간의 파일 전송을 매끄럽게 하세요 - Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/ko-KR/title.txt:
--------------------------------------------------------------------------------
1 | Android 용 Snapdrop 및 PairDrop
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/mk-MK/full_description.txt:
--------------------------------------------------------------------------------
1 | Snapdrop за Android е Android™ клиент бесплатно решение со отворен извор за локално споделување на датотеки https://snapdrop.net/.
2 |
3 | Дали понекогаш имате проблем што треба само брзо да префрлите датотека од вашиот телефон на компјутер?
4 |
5 | УСБ? - Старомодно!
6 | Bluetooth? - Премногу незгодно и бавно!
7 | Е-пошта? - Ве молам, не друга е-пошта што си ја пишувам на себе!
8 |
9 | Snapdrop!
10 |
11 | Snapdrop е локално решение за споделување датотеки кое целосно работи во вашиот прелистувач. Нешто како Airdrop на Apple, но не само за уредите на Apple. Windows, Linux, Android, IPhone, Mac - воопшто нема проблем!
12 |
13 | Сепак, дури и теоретски да работи целосно во вашиот прелистувач, оваа апликација ќе ја обожавате доколку сакате да користите Snapdrop почесто во вашиот секојдневен живот. Благодарение на совршената интеграција во оперативниот систем Android, датотеките се испраќаат уште побрзо. Директно од другите апликации можете да изберете Snapdrop за споделување.
14 |
15 | Thanks to its radical simplicity, "Snapdrop for Android" makes the everyday life of thousands of users easier. As an open source project we don't have any commercial interests but want to make the world a little bit better. Придружете се и убедете се!
16 |
17 | ИЗВОРЕН КОД:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | КРЕДИТ:
21 | The app is powered by the Snapdrop Open Source project, which is hosted and maintained by RobinLinus. Исто така види https://www.github.com/robinlinus/snapdrop
22 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/mk-MK/short_description.txt:
--------------------------------------------------------------------------------
1 | Transfer files seamlessly between all your devices - Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/mk-MK/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & PairDrop for Android
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/ne-NP/full_description.txt:
--------------------------------------------------------------------------------
1 | Android को लागि Snapdrop नि:शुल्क र खुला स्रोत, स्थानीय फाइल साझेदारी समाधान क्लाइन्ट हो https://snapdrop.net/
2 |
3 | के तपाईलाई पनि कहिलेकाहीँ समस्या छ कि तपाईलाई तपाईको फोनबाट कम्प्युटरमा द्रुत रूपमा फाईल स्थानान्तरण गर्न आवश्यक छ?
4 |
5 | USB? - पुरानो जमाना!
6 | Bluetooth? - धेरै धेरै बोझिलो र ढिलो!
7 | इमेल? - कृपया मैले आफैले आफैलाई अर्को इमेल लेखन नपरोस् !
8 |
9 | Snapdrop!
10 |
11 | Snapdrop एक स्थानीय फाइल साझेदारी समाधान हो जुन पूर्ण रूपमा तपाईंको ब्राउजरमा काम गर्दछ। एप्पलको एयरड्रप जस्तै, तर एप्पल उपकरणहरूको लागि मात्र होइन। विन्डोज, लिनक्स, एन्ड्रोइड, आईफोन, म्याक - कुनै पनि समस्या छैन!
12 |
13 | यद्यपि, यदि यो सैद्धान्तिक रूपमा तपाइँको ब्राउजरमा पूर्ण रूपमा काम गर्दछ भने, तपाइँ यो एपलाई मन पराउनुहुनेछ यदि तपाइँ आफ्नो दैनिक जीवनमा धेरै पटक Snapdrop प्रयोग गर्न चाहनुहुन्छ भने। एन्ड्रोइड अपरेटिङ सिस्टममा सही एकीकरणका कारण, फाइलहरू अझ छिटो पठाइन्छ। सीधा अन्य अनुप्रयोगहरू भित्रबाट तपाईंले साझेदारी गर्न Snapdrop चयन गर्न सक्नुहुन्छ।
14 |
15 | यसको कट्टरपन्थी सरलताको लागि धन्यवाद, "Android को लागि Snapdrop" ले हजारौं प्रयोगकर्ताहरूको दैनिक जीवनलाई सजिलो बनाउँछ। खुला स्रोत परियोजनाको रूपमा हामीसँग कुनै व्यावसायिक चासो छैन तर संसारलाई थोरै राम्रो बनाउन चाहन्छौं। सामेल हुनुहोस् र आफैलाई विश्वस्त गर्नुहोस्!
16 |
17 | स्रोत कोड:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | क्रेडिट:
21 | Snapdrop एप ओपन सोर्स प्रोजेक्टद्वारा संचालित छ, जुन RobinLinus द्वारा होस्ट र मर्मत गरिएको छ।. यो पनि हेर्नुहोस् https://www.github.com/robinlinus/snapdrop
22 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/ne-NP/short_description.txt:
--------------------------------------------------------------------------------
1 | तपाईंको सबै यन्त्रहरू बीच निर्बाध रूपमा फाइलहरू स्थानान्तरण गर्नुहोस् - Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/ne-NP/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & PairDrop for Android
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/nl-NL/full_description.txt:
--------------------------------------------------------------------------------
1 | Snapdrop voor Android is een Android™-client voor de gratis en open source oplossing voor het lokaal delen van bestanden https://snapdrop.net/.
2 |
3 | Heeft u soms ook het probleem dat u alleen maar snel een bestand van uw telefoon naar uw PC wilt overzetten?
4 |
5 | USB? - Oubollig!
6 | Bluetooth? - Veel te omslachtig en traag!
7 | E-mail? - Alsjeblieft, niet wéér een e-mail naar mezelf schrijven!
8 |
9 | Snapdrop!
10 |
11 | Snapdrop is een lokale oplossing voor het delen van bestanden die volledig werkt in uw browser. Een beetje zoals Apple's Airdrop, maar niet alleen voor Apple apparaten. Windows, Linux, Android, iPhone, Mac - helemaal geen probleem!
12 |
13 | Maar zelfs als het theoretisch gezien volledig in uw browser werkt, zult u deze app geweldig vinden als u Snapdrop vaak gebruikt in uw dagelijks leven. Dankzij de perfecte integratie in het Android™ besturingssysteem worden bestanden nog sneller verzonden. Vanuit andere apps kunt u Snapdrop selecteren om te delen.
14 |
15 | Dankzij zijn eenvoud maakt "Snapdrop voor Android" het dagelijkse leven van duizenden gebruikers gemakkelijker. Als open source project hebben we geen commerciële belangen, maar willen we de wereld een beetje beter maken. Doe mee en overtuig jezelf!
16 |
17 | SOURCE CODE:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | CREDIT:
21 | De app is gebaseerd op het Snapdrop Open Source project, dat wordt gehost en onderhouden door RobinLinus. Zie ook https://www.github.com/robinlinus/snapdrop
22 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/nl-NL/short_description.txt:
--------------------------------------------------------------------------------
1 | Bestanden probleemloos overzetten tussen al uw apparaten - Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/nl-NL/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & PairDrop voor Android
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/no-NO/full_description.txt:
--------------------------------------------------------------------------------
1 | Snapdrop for Android er en gratis fildelingsløsning fra åpen kildekode
2 | https://snapdrop.net/.
3 |
4 | Må du også noen ganger raskt overføre filer fra telefonen til PC-en?
5 |
6 | USB? - Gammeldags!
7 | Bluetooth? - Altfor tungvint og tregt!
8 | E-post? - Please, ikke enda en e-post jeg sender til meg selv!
9 |
10 | Snapdrop!
11 |
12 | Snapdrop er en lokal fildelingsløsning som fungerer i nettleseren. Litt som Apple's Airdrop, men ikke bare for Apple-enheter. Windows, Linux, Android, IPhone, Mac - ikke noe problem i det hele tatt!
13 |
14 | Men selv om det teoretisk sett ville fungere fint i nettleseren, vil du elske denne appen hvis du ønsker å bruke Snapdrop oftere i ditt daglige liv. Takket være perfekt integrering i Android operativsystemet, sendes filer enda raskere. Du kan dele filer direkte fra andre apper via Snapdrop.
15 |
16 | Takket være den radikale enkelheten gjør "Snapdrop for Android" hverdagen til tusenvis av brukere enklere. Som et åpent kildekode-prosjekt har vi ikke noen kommersielle interesser, men ønsker å gjøre verden litt bedre. Bli med og overbevis deg selv!
17 |
18 | KILDEKODE:
19 | https://github.com/fm-sys/snapdrop-android
20 |
21 | KREDITT:
22 | Appen drives av Snapdrop åpen kildekode-prosjektet, som blir vedlikeholdt av RobinLinus. Se også https://www.github.com/robinlinus/snapdrop
23 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/no-NO/short_description.txt:
--------------------------------------------------------------------------------
1 | Overfør filer sømløst mellom alle enhetene dine - Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/no-NO/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & PairDrop for Android
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/pl-PL/full_description.txt:
--------------------------------------------------------------------------------
1 | Snapdrop dla Android jest darmową i otwarto-źródłową aplikacją na Android™ do udostępniania plików https://snapdrop.net/.
2 |
3 | Czasami masz również problem, że musisz szybko przenieść plik z telefonu do komputera?
4 |
5 | USB? Przestarzałe!
6 | Bluetooth? - Zbyt uciążliwy i powolny!
7 | E-mail? - Proszę, nie kolejny e-mail, który piszę do siebie!
8 |
9 | Snapdrop!
10 |
11 | Snapdrop to rozwiązanie do udostępniania plików lokalnych, które całkowicie działa w przeglądarce. Trochę jak AirDrop Apple'a, ale nie tylko dla urządzeń Apple'a. Windows, Linux, Android, IPhone, Mac - nie ma żadnego problemu!
12 |
13 | Jednak nawet jeśli teoretycznie będzie to w pełni działać w przeglądarce, pokochasz tę aplikację, jeśli chcesz używać Snapdrop częściej w swoim codziennym życiu. Dzięki idealnej integracji z systemem operacyjnym Android, pliki są wysyłane jeszcze szybciej. Bezpośrednio z innych aplikacji możesz wybrać Snapdrop do udostępniania.
14 |
15 | Dzięki radykalnej prostocie "Snapdrop dla Androida" ułatwia życie codzienne tysięcy użytkowników. Jako projekt open source, nie mamy żadnego zysku, ale chcemy uczynić świat nieco lepszym. Dołącz i przekonaj się!
16 |
17 | KOD ŹRÓDŁOWY:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | TWÓRCY:
21 | Aplikacja jest wspierana przez projekt Open Source Snapdrop, który jest hostowany i utrzymywany przez RobinLinus. Zobacz również: https://www.github.com/robinlinus/snapdrop
22 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/pl-PL/short_description.txt:
--------------------------------------------------------------------------------
1 | Przesyłaj pliki bezproblemowo między wszystkimi urządzeniami - Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/pl-PL/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & PairDrop dla Androida
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/pt-BR/full_description.txt:
--------------------------------------------------------------------------------
1 | Snapdrop para Android é um cliente Android™ de compartilhamento de arquivos, gratuito e de código aberto https://snapdrop.net/.
2 |
3 | Você às vezes tem problema, porque só precisa transferir rapidamente um arquivo do seu telefone para o PC?
4 |
5 | USB? - À moda antiga!
6 | Bluetooth? - Muito complicado e lento!
7 | Email? - Por favor, não quero escrever outro e-mail para mim mesmo!
8 |
9 | Snapdrop!
10 |
11 | O Snapdrop é uma solução local de compartilhamento de arquivos que funciona diretamente do seu navegador. É quase como o Airdrop da Apple, mas não restrito apenas para dispositivos da Apple. Windows, Linux, Android, IPhone, Mac - sem problema nenhum!
12 |
13 | No entanto, mesmo que teoricamente funcione direto do seu navegador, você vai adorar este app se você quiser utilizá-lo com mais frequência em sua vida cotidiana. Graças a uma integração perfeita com Android, os arquivos serão enviados ainda mais rápido. Você pode selecionar Snapdrop direto de outros aplicativos para compartilhar.
14 |
15 | Graças à sua extrema simplicidade, "Snapdrop para Android" facilita a vida cotidiana de centenas de usuários. Como um projeto de código aberto, não temos nenhum interesse comercial, apenas queremos tornar o mundo um pouco melhor. Participe e se convença!
16 |
17 | CÓDIGO-FONTE:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | CRÉDITOS:
21 | O app é movido pelo projeto Snapdrop Open Source, que é hospedado e mantido pelo RobinLinus. Veja também https://www.github.com/robinlinus/snapdrop
22 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/pt-BR/short_description.txt:
--------------------------------------------------------------------------------
1 | Transfira arquivos facilmente entre todos os seus dispositivos - Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/pt-BR/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & PairDrop para Android
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/pt-PT/full_description.txt:
--------------------------------------------------------------------------------
1 | O Snapdrop para o Android é um cliente android para a solução de compartilhamento de arquivos local gratuita e de código aberto https://snapdrop.net/.
2 |
3 | Você também às vezes tem o problema de que você só precisa transferir rapidamente um arquivo do seu telefone para o PC?
4 |
5 | USB? - Moda antiga!
6 | Bluetooth? - Muito pesado e lento!
7 | E-mail? - Por favor, não mais um e-mail que eu escrevo para mim!
8 |
9 | Snapdrop!
10 |
11 | O Snapdrop é uma solução local de compartilhamento de arquivos que funciona completamente em seu navegador. Um pouco como o Airdrop da Apple, mas não apenas para dispositivos Apple. Windows, Linux, Android, IPhone, Mac - sem qualquer problema!
12 |
13 | No entanto, mesmo que teoricamente funcione totalmente no seu navegador, você vai adorar este aplicativo se quiser usar o Snapdrop com mais frequência em sua vida diária. Graças a uma integração perfeita no sistema operacional Android, os arquivos são enviados ainda mais rápido. Você pode selecionar Snapdrop direto de outros aplicativos para compartilhar.
14 |
15 | Graças à sua simplicidade radical, "Snapdrop para Android" torna a vida cotidiana de centenas de usuários mais fácil. Como um projeto de código aberto, não temos nenhum interesse comercial, mas queremos tornar o mundo um pouco melhor. Junte-se e convença-se!
16 |
17 | CÓDIGO DE FONTE:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | CRÉDITOS:
21 | O aplicativo é fornecido pelo projeto Snapdrop Open Source, que é hospedado e mantido por RobinLinus. Veja também https://www.github.com/robinlinus/snapdrop
22 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/pt-PT/short_description.txt:
--------------------------------------------------------------------------------
1 | Transfira arquivos facilmente entre todos os seus dispositivos - Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/pt-PT/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & PairDrop for Android
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/ro-RO/full_description.txt:
--------------------------------------------------------------------------------
1 | Snapdrop pentru Android este un client Android™ gratuit și care are codul sursă disponibil pentru toată lumea și este folosit pentru partajarea fișierelor
2 | https://snapdrop.net/.
3 |
4 | Și tu întâmpini situația în care ai de transferat rapid un fișier de pe telefon pe PC?
5 |
6 | USB? - demodat!
7 | Bluetooth? - Mult prea greoi și lent!
8 | E-Mail? Nu încă un email pe care mi-l scriu singur!
9 |
10 | Snapdrop!
11 |
12 | Snapdrop este o soluție locală de partajare a fișierelor care funcționează complet în browser-ul dvs. Un pic ca Airdrop de la Apple, dar nu doar pentru dispozitivele Apple. Windows, Linux, Android, IPhone, Mac - nicio problemă!
13 |
14 | Cu toate acestea, chiar dacă teoretic ar funcționa complet în browser-ul dvs., vei iubi această aplicație dacă vrei să folosești Snapdrop mai des în viața ta de zi cu zi. Datorită integrării perfecte în sistemul de operare Android, fișierele sunt trimise și mai rapid. Direct din interiorul altor aplicații puteți selecta Snapdrop ca și cale de partajare.
15 |
16 | Datorită simplității sale radicale, "Snapdrop pentru Android" ușurează viața de zi cu zi a mii de utilizatori. Ca proiect care are codul sursă deschisă nu avem interese comerciale, ci vrem să facem lumea un pic mai bună. Alătură-te și convinge-te!
17 |
18 | CODUL SURSĂ:
19 | https://github.com/fm-sys/snapdrop-android
20 |
21 | CREDITE:
22 | Aplicația este alimentată de proiectul cu sursă deschisă Snapdrop, găzduit și întreținut de RobinLinus. Vezi și https://www.github.com/robinlinus/snapdrop
23 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/ro-RO/short_description.txt:
--------------------------------------------------------------------------------
1 | Transferă fișiere între toate dispozitivele tale. - Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/ro-RO/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & PairDrop for Android
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/ru-RU/full_description.txt:
--------------------------------------------------------------------------------
1 | Snapdrop для Android - это Android™ клиент бесплатного и открытого сервиса локального обмена файлами https://snapdrop.net/.
2 |
3 | У Вас также иногда возникает проблема, когда вам просто нужно быстро передать файл с телефона на ПК?
4 |
5 | USB? - Старомодно!
6 | Bluetooth? - Слишком громоздкий и медленный!
7 | Эл. почта? - Пожалуйста, только не еще одно письмо, которое я пишу сам себе!
8 |
9 | Snapdrop!
10 |
11 | Snapdrop - это решение для локального обмена файлами, которое полностью работает в вашем браузере. Немного напоминает Airdrop от Apple, но не только для устройств Apple. Windows, Linux, Android, IPhone, Mac - никаких проблем!
12 |
13 | Однако, даже если теоретически всё будет полностью работать в вашем браузере, вам понравится это приложение, если вы хотите использовать Snapdrop чаще в своей повседневной жизни. Благодаря идеальной интеграции в операционную систему Android файлы отправляются еще быстрее. Прямо из других приложений вы можете выбрать для отправки Snapdrop.
14 |
15 | Благодаря своей радикальной простоте, "Snapdrop для Android" облегчает повседневную жизнь сотен пользователей. Будучи проектом с открытым исходным кодом, мы не преследуем никаких коммерческих интересов и хотим сделать мир немного лучше. Присоединяйтесь и убедитесь сами!
16 |
17 | ИСХОДНЫЙ КОД:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | АВТОРЫ:
21 | Приложение работает на основе "Snapdrop Open Source project", который размещен и поддерживается RobinLinus. См. также https://www.github.com/robinlinus/snapdrop
22 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/ru-RU/short_description.txt:
--------------------------------------------------------------------------------
1 | Легко перемещайте файлы между всеми вашими устройствами - Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/ru-RU/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & PairDrop для Android
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/sk-SK/full_description.txt:
--------------------------------------------------------------------------------
1 | Snapdrop pre Android je Android™ klient pre bezplatné a open source riešenie pre zdieľanie miestnych súborov https://snapdrop.net/.
2 |
3 | Máte aj vy niekedy problém, že potrebuje rýchlo preniesť súbor z vášho mobilu do počítača?
4 |
5 | USB? - Zastaralé!
6 | Bluetooth? - Príliš ťažké a pomalé!
7 | E-mail? - Prosím len nie ďalší email, ktorý napíšem sám sebe!
8 |
9 | Snapdrop!
10 |
11 | Snapdrop je riešenie zdieľania miestnych súborov, ktoré kompletne funguje vo vašom internetovom prehliadači. Trochu ako Airdrop od Apple, ale nie iba pre Apple zariadenia. Windows, Linux, Android, iPhone, Mac - absolútne žiadny problém!
12 |
13 | Avšak, aj keď by to teoreticky kompletne fungovalo vo vašom internetovom prehliadači, zamilujete túto aplikáciu, ak chcete používať Snapdrop častejšie vo vašom každodennom živote. Vďaka perfektnej integrácii s operačným systémom Android, sa súbory posielajú ešte rýchlejšie. Priamo z ďalších aplikácií môžete vybrať zdieľanie cez Snapdrop.
14 |
15 | Vďaka svojej extrémnej jednoduchosti, "Snapdrop pre Android" Zjednodušuje každodenný život tisícom používateľov. Ako open source projekt, nemáme žiadne komerčné záujmy ale chceme aspoň trochu zlepšiť svet. Pridajte sa a sami sa presvedčte!
16 |
17 | ZDROJOVÝ KÓD:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | ZÁSLUHA:
21 | Aplikácia je založená na Open source projekte Snapdrop, ktorý vedie RobinLinus. Pozrite si aj
22 | https://www.github.com/robinlinus/snapdrop
23 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/sk-SK/short_description.txt:
--------------------------------------------------------------------------------
1 | Bezproblémovo prenášate súbory medzi všetkými vašimi zariadeniami - Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/sk-SK/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & PairDrop for Android
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/sl-SI/full_description.txt:
--------------------------------------------------------------------------------
1 | Snapdrop za Android je aplikacija na platformi Android™ za brezplačno in odprtokodno lokalno deljenje datotek https://snapdrop.net/.
2 |
3 | Ali imate tudi vi včasih težavo, da morate na hitro prenesti datoteko iz telefona na računalnik?
4 |
5 | USB? - Staromodno!
6 | Bluetooth? - Preveč okorno in počasno!
7 | E-pošta? - Prosim ne še eno e-poštno sporočilo, ki ga pišem sam/a sebi!
8 |
9 | Snapdrop!
10 |
11 | Snapdrop je rešitev za lokalno deljenje datotek, ki deluje celotno v vašem brskalniku. Podobno kot Applov Airdrop, vendar ne samo za Apple naprave. Windows, Linux, Android, IPhone, Mac - sploh ni problema!
12 |
13 | Kakorkoli, tudi če teoretično v celoti deluje v vašem brskalniku, vam bo ta aplikacija všeč, če želite Snapdrop pogosteje uporabljati v vsakdanjem življenju. Zahvaljujoč popolni integraciji v operacijski sistem Android se datoteke pošiljajo še hitreje. V drugih aplikacijah lahko neposredno izberete Snapdrop kot način deljenja.
14 |
15 | Zahvaljujoč svoji radikalni preprostosti "Snapdrop za Android" olajša vsakdanje življenje tisočem uporabnikov. Kot odprtokodni projekt nimamo nobenih komercialnih interesov, ampak želimo svet malo izboljšati. Pridružite se nam in se prepričajte!
16 |
17 | IZVORNA KODA:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | ZASLUGE:
21 | Aplikacijo poganja odprtokodni projekt Snapdrop, ki ga gosti in vzdržuje RobinLinus. Poglejte tudi https://www.github.com/robinlinus/snapdrop
22 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/sl-SI/short_description.txt:
--------------------------------------------------------------------------------
1 | Enostavno prenašanje datotek med vašimi napravami – Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/sl-SI/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & PairDrop za Android
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/sv-SE/full_description.txt:
--------------------------------------------------------------------------------
1 | Snapdrop för Android är en Android™-klient för den lokala fildelningslösningen för öppen källkod https://snapdrop.net/.
2 |
3 | Har du också behovet att snabbt kunna föra över filer från mobilen till datorn?
4 |
5 | USB? - Gammaldags!
6 | Bluetooth? - Alltför besvärligt och långsamt!
7 | E-post? - Snälla inte ett till email, skriver jag till mig själv!
8 |
9 | Snapdrop!
10 |
11 | Snapdrop är en lokal fildelningslösning som fungerar helt i din webbläsare. Lite som Apples Airdrop, fast inte bara för Apple-enheter. Windows, Linux, Android, iPhone, Mac - inga problem alls!
12 |
13 | Men även om det teoretiskt skulle fungera fullt ut i din webbläsare, du kommer att älska denna app om du vill använda Snapdrop oftare i ditt dagliga liv. Tack vare perfekt integration i Android-operativsystemet, skickas filer ännu snabbare. Direkt från andra appar kan du välja Snapdrop att dela med.
14 |
15 | Tack vare sin radikala enkelhet, gör "Snapdrop för Android" vardagen enklare för tusentals användare. Som ett öppen-källkodsprojekt har vi inga kommersiella intressen men vill göra världen lite bättre. Gå med och övertyga dig själv!
16 |
17 | KÄLLKOD:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | CREDIT:
21 | Appen drivs av projektet Snapdrop Open Source, som drivs och underhålls av RobinLinus. Se även
22 | https://www.github.com/robinlinus/snapdrop
23 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/sv-SE/short_description.txt:
--------------------------------------------------------------------------------
1 | Överför filer somlöst mellan alla dina enheter - Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/sv-SE/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & PairDrop for Android
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/tr-TR/full_description.txt:
--------------------------------------------------------------------------------
1 | Android için Snapdrop; Android™ için ücretsiz ve açık kaynak kodlu yerel dosya paylaşım çözümüdür
2 | https://snapdrop.net/.
3 |
4 | Sen de telefondan PC'ye hızlıca dosya transfer etmek istediğinde problem yaşıyor musun?
5 |
6 | USB? - Eski moda!
7 | Bluetooth? - Çok hantal ve yavaş!
8 | E-posta? - Lütfen kendime başka bir e-posta daha atmayayım!
9 |
10 | Snapdrop!
11 |
12 | Snapdrop tamamen tarayıcıda çalışan bir yerel paylaşım çözümüdür. Apple'ın Airdrop'u gibi fakat sadece Apple cihazları için değil. Windows, Linux, Android, IPhone, Mac - hiç problem değil!
13 |
14 | Aslında teorik olarak tarayıcınızda tam olarak çalışsa bile, Snapdrop'u günlük yaşamınızda daha sık kullanmak istiyorsanız bu uygulamayı seveceksiniz. Android işletim sistemi ile olan harika uyumu sayesinde dosya göndermek çok daha hızlı. Diğer uygulamaların paylaşım seçenekleri içinden doğrudan paylaşım yapmak için Snapdrop'u seçebilirsiniz.
15 |
16 | "Android için Snapdroid" radikal sadeliği sayesinde binlerce kullanıcının günlük hayatını kolaylaştırmakta. Açık kaynak kodlu bir proje olarak herhangi bir ticari çıkarımız yok ama dünyayı biraz daha iyi hale getirmek istiyoruz. Katılın ve kendinizi ikna edin!
17 |
18 | KAYNAK KODU:
19 | https://github.com/fm-sys/snapdrop-android
20 |
21 | KREDİ:
22 | Bu uygulama RobinLinus tarafından barındırılan ve sürdürülen Snapdrop Açık Kaynak projesi ile hayat bulmuştur. Ayrıca bakın https://www.github.com/robinlinus/snapdrop
23 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/tr-TR/short_description.txt:
--------------------------------------------------------------------------------
1 | Dosyaları tüm cihazlarınız arasında sorunsuz bir şekilde aktarın - Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/tr-TR/title.txt:
--------------------------------------------------------------------------------
1 | Android için Snapdrop & PairDrop
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/uk-UA/full_description.txt:
--------------------------------------------------------------------------------
1 | Snapdrop для Android – це Android™ клієнт, безкоштовного та відкритого сервісу локального обміну файлами https://snapdrop.net/.
2 |
3 | У Вас також іноді виникає проблема, коли вам просто необхідно швидко передати файл з телефону на ПК?
4 |
5 | USB? – Старомодно!
6 | Bluetooth? – Занадто громіздкий та повільний!
7 | E-mail? – Будь ласка, тільки не ще один лист, який я пишу сам собі!
8 |
9 | Snapdrop!
10 |
11 | Snapdrop – це рішення для локального обміну файлами, яке повністю працює у вашому браузері. Воно дещо нагадує Airdrop від Apple, але працює не тільки з пристроями від Apple. Windows, Linux, Android, iPhone, Mac – жодних проблем!
12 |
13 | Однак, навіть якщо теоретично все повністю працюватиме й у вашому браузері, Вам точно сподобається дана програма, якщо Ви хочете використовувати Snapdrop частіше у своєму повсякденному житті. Завдяки ідеальній інтеграції в операційну систему Android, файли надсилаються ще швидше. Прямо з інших програм Ви зможете вибрати Snapdrop для надсилання.
14 |
15 | Завдяки своїй радикальній простоті, "Snapdrop для Android" полегшує повсякденне життя сотням користувачів. Як проєкт з відкритим вихідним кодом, ми не переслідуємо жодних комерційних інтересів і хочемо зробити світ трішки кращим. Приєднуйтесь та переконайтесь самі!
16 |
17 | ВИХІДНИЙ КОД:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | АВТОРИ:
21 | Програма працює на основі "Snapdrop Open Source project", який розміщений на GitHub та підтримується RobinLinus. Дивитися також: https://www.github.com/robinlinus/snapdrop
22 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/uk-UA/short_description.txt:
--------------------------------------------------------------------------------
1 | Легко обмінюйтесь файлами між усіма вашими пристроями за допомогою Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/uk-UA/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop і PairDrop для Android
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/vi-VN/full_description.txt:
--------------------------------------------------------------------------------
1 | Snapdrop cho Android là một Android™ client của https://snapdrop.net/ - một giải pháp chia sẻ file cục bộ miễn phí và nguồn mở.
2 |
3 | Đôi khi bạn cần phải chuyển một tệp tin từ điện thoại sang PC một cách nhanh chóng?
4 |
5 | USB á? -Lỗi thời rồi!
6 | Bluetooth? - Vừa rườm rà vừa chậm chạp!
7 | E-mail sao? - Lại một bức thư nữa bạn viết cho chính mình!
8 |
9 | Snapdrop!
10 |
11 | Snapdrop là một giải pháp chia sẻ tệp tin nội bộ hoạt động hoàn toàn trên trình duyệt của bạn. Nó kiểu như Airdrop vậy nhưng không chỉ cho thiết bị Apple. Windows, Linux, Android, IPhone, Mac - không vấn đề!
12 |
13 | Tuy nhiên, ngay cả khi nó hoàn toàn hoạt động trên nền web, bạn sẽ thích ứng dụng này nếu bạn muốn sử dụng Snapdrop thường xuyên hơn trong cuộc sống của mình. Nhờ tích hợp hoàn hảo vào hệ điều hành Android, các tệp được gửi nhanh hơn. Trực tiếp ở ứng dụng khác, bạn có thể chọn Snapdrop để chia sẻ.
14 |
15 | Nhờ tính đơn giản, "Snapdrop for Android" giúp cuộc sống hằng ngày của hàng trăm người dùng trở nên dễ dàng hơn. Là một dự án mã nguồn mở, chúng tôi không có bất kỳ lợi ích thương mại nào mà muốn làm cho thế giới tốt đẹp hơn một chút. Hãy dùng thử nó!
16 |
17 | MÃ NGUỒN:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | CREDIT:
21 | Ứng dụng và biểu tượng của nó dựa trên dự
22 | án Nguồn mở Snapdrop, được lưu trữ và duy
23 | trì bởi RobinLinus. Xem thêm https://www.github.com/robinlinus/snapdrop
24 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/vi-VN/short_description.txt:
--------------------------------------------------------------------------------
1 | Truyền tải tệp liên tục giữa tất cả các thiết bị - Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/vi-VN/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & PairDrop for Android
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/full_description.txt:
--------------------------------------------------------------------------------
1 | Snapdrop for Android 是免费且开源的本地文件共享解决方案的Android™客户端。访问 https://snapdrop.net/ 来了解 Snapdrop。
2 |
3 | 您是否总是为无法便捷地将文件从您的手机传输到PC而苦恼?
4 |
5 | USB? ——老式!
6 | 蓝牙? ——又烦又慢!
7 | 电子邮件? ——再给我自己写一封邮件?算了吧!
8 |
9 | Snapdrop!
10 |
11 | Snapdrop 是一个本地文件共享解决方案,并且只使用您的浏览器。 有点像苹果的 Airdrop ,但不限于苹果设备。 Windows,Linux,Android,IPhone,Mac ——完全没有问题!
12 |
13 | 然而,即使讲道理您只需要浏览器就能使用 Snapdrop,但这个应用会使频繁使用 Snapdrop 变得更舒适。 由于完全整合到 Android 操作系统,文件发送速度更快。 您还能直接从其他应用中选择用 Snapdrop 来分享文件。
14 |
15 | 得益于其操作轻松方便,“Snapdrop 安卓版”已为成千上万的用户的日常生活中带来了便利。 作为一个开源项目,我们没有获得任何商业利益,只是想让世界变得更加美好。 立即下载,体验便捷!
16 |
17 | 源代码:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | 致谢:
21 | 本程序由Snapdrop开源项目提供支持,该项目由RobinLinus托管和维护。 请参见 https://www.github.com/robinlinus/snapdrop
22 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/short_description.txt:
--------------------------------------------------------------------------------
1 | Snapdrop:在您所有设备间无缝传输文件
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop PairDrop 安卓版
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-TW/full_description.txt:
--------------------------------------------------------------------------------
1 | Snapdrop for Android is an Android™ 是免費且開源的用戶端,開放原始碼的本機檔案分享方案 https://snapdrop.net/。
2 |
3 | 你是否時常因為無法快速的將檔案從手機傳輸到電腦而苦惱呢?
4 |
5 | USB? - 早就過時了!
6 | 藍牙? - 既麻煩又慢!
7 | 電子郵件? - 拜託請別再給自己寄信了!
8 |
9 | Snapdrop!
10 |
11 | Snapdrop 是一個本機檔案分享方案,可在您的瀏覽器中完美運作。 有點像是 Apple 的 Airdrop,但不限於 Apple 裝置。 Windows、Linux、Android、IPhone、Mac - 完全沒問題!
12 |
13 | 然而,即使只需瀏覽器就能完美運作,但在您有頻繁使用的需求時,相信您會愛上 Snapdrop 這個應用程式。 得益於與 Android 作業系統的完美整合,檔案傳輸變得更加快速。 您還能直接在其他應用程式中使用 Snapdrop 來分享檔案。
14 |
15 | 得益於它徹底的簡潔性,「Snapdrop for Android」使成千上萬的使用者更加便利。 作為一個開放原始碼專案,我們沒有任何商業利益,只是希望世界變得更好一點。 加入並相信自己!
16 |
17 | 原始碼:
18 | https://github.com/fm-sys/snapdrop-android
19 |
20 | 製作群:
21 | 這個應用程式及圖示源於 RobinLinus 建立並維護的開放原始碼專案 Snapdrop。 請參閱 https://www.github.com/robinlinus/snapdrop
22 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-TW/short_description.txt:
--------------------------------------------------------------------------------
1 | 在您的裝置間無縫傳輸檔案 - Snapdrop
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-TW/title.txt:
--------------------------------------------------------------------------------
1 | Snapdrop & PairDrop for Android
2 |
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 | # IDE (e.g. Android Studio) users:
3 | # Gradle settings configured through the IDE *will override*
4 | # any settings specified in this file.
5 | # For more details on how to configure your build environment visit
6 | # http://www.gradle.org/docs/current/userguide/build_environment.html
7 | # Specifies the JVM arguments used for the daemon process.
8 | # The setting is particularly useful for tweaking memory settings.
9 | org.gradle.jvmargs=-Xmx2048m
10 | # When configured, Gradle will run in incubating parallel mode.
11 | # This option should only be used with decoupled projects. More details, visit
12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
13 | # org.gradle.parallel=true
14 | # AndroidX package structure to make it clearer which packages are bundled with the
15 | # Android operating system, and which are packaged with your app"s APK
16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn
17 | android.useAndroidX=true
18 | # Automatically convert third-party libraries to use AndroidX
19 | android.enableJetifier=true
20 | # Turn on experimental gradle cache
21 | #org.gradle.unsafe.configuration-cache=true
22 | org.gradle.configuration-cache=true
23 | android.defaults.buildfeatures.buildconfig=true
24 | android.nonTransitiveRClass=false
25 | android.nonFinalResIds=false
26 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fm-sys/snapdrop-android/537f43b1cd35c45739b337231808b4750f54007b/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sat Feb 04 14:16:26 CET 2023
2 | distributionBase=GRADLE_USER_HOME
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
4 | distributionPath=wrapper/dists
5 | zipStorePath=wrapper/dists
6 | zipStoreBase=GRADLE_USER_HOME
7 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | set DIRNAME=%~dp0
12 | if "%DIRNAME%" == "" set DIRNAME=.
13 | set APP_BASE_NAME=%~n0
14 | set APP_HOME=%DIRNAME%
15 |
16 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
17 | set DEFAULT_JVM_OPTS=
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windows variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 |
53 | :win9xME_args
54 | @rem Slurp the command line arguments.
55 | set CMD_LINE_ARGS=
56 | set _SKIP=2
57 |
58 | :win9xME_args_slurp
59 | if "x%~1" == "x" goto execute
60 |
61 | set CMD_LINE_ARGS=%*
62 |
63 | :execute
64 | @rem Setup the command line
65 |
66 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
67 |
68 | @rem Execute Gradle
69 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
70 |
71 | :end
72 | @rem End local scope for the variables with windows NT shell
73 | if "%ERRORLEVEL%"=="0" goto mainEnd
74 |
75 | :fail
76 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
77 | rem the _cmd.exe /c_ return code!
78 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
79 | exit /b 1
80 |
81 | :mainEnd
82 | if "%OS%"=="Windows_NT" endlocal
83 |
84 | :omega
85 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | rootProject.name = "Snapdrop"
--------------------------------------------------------------------------------
/suppressions.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/translation-validation-bot/Dockerfile:
--------------------------------------------------------------------------------
1 | # action will be run in python3 container
2 | FROM python:3
3 |
4 | # copying requirements.txt and install the action dependencies
5 | COPY requirements.txt /requirements.txt
6 | RUN pip install -r /requirements.txt
7 |
8 | # script.py is the file that will contain the codes that we want to run for this action.
9 | COPY script.py /script.py
10 |
11 | # we will just run our script.py as our docker entrypoint by python script.py
12 | CMD ["python", "/script.py"]
13 |
--------------------------------------------------------------------------------
/translation-validation-bot/action.yaml:
--------------------------------------------------------------------------------
1 | name: Translation Checker
2 | description: Create computer-generated reverse translations
3 |
4 | inputs:
5 | pr: # name of variable. In action script it will be available in workflow as environment variable with name INPUT_PR
6 | required: true
7 | description: The number of the PR
8 |
9 | # definition how we want our action
10 | runs:
11 | using: docker
12 | image: 'Dockerfile'
13 |
--------------------------------------------------------------------------------
/translation-validation-bot/requirements.txt:
--------------------------------------------------------------------------------
1 | googletrans==4.0.0-rc1
2 | requests==2.32.2
3 |
--------------------------------------------------------------------------------
/translation-validation-bot/script.py:
--------------------------------------------------------------------------------
1 | import os
2 | import time
3 | from googletrans import Translator
4 | import requests
5 | import re
6 |
7 | # extracting all the input from environments
8 | INPUT_PR_NUMBER = os.environ['INPUT_PR']
9 |
10 | print("PR number: " + INPUT_PR_NUMBER)
11 |
12 | printcache=""
13 | def print2cache(str):
14 | global printcache
15 | printcache += str
16 | printcache += "\n"
17 |
18 | url = 'https://github.com/fm-sys/snapdrop-android/pull/' + INPUT_PR_NUMBER + '.diff'
19 | r = requests.get(url + "", allow_redirects=True)
20 | text = r.content.decode()
21 |
22 | translator = Translator()
23 |
24 | table_initialized = False
25 | counter = 0
26 |
27 | for line in text.splitlines():
28 | if line.startswith("+"):
29 | match = re.search("(.*)", line)
30 | if match:
31 | if not table_initialized:
32 | table_initialized = True
33 | print2cache("ID|Translation|Reverse translated source string\n-|-|-")
34 | success = False
35 | while not success:
36 | counter = counter + 1
37 | try:
38 | translation = translator.translate(match.group(2).replace("\\n", " \\n "))
39 | print("API call #" + str(counter) + " ok")
40 | success = True
41 | except:
42 | print("API call #" + str(counter) + " blocked, wait some seconds and try again...")
43 | time.sleep(60)
44 | print2cache(f"{match.group(1)}|{translation.origin} ({translation.src})|{translation.text} ({translation.dest})")
45 | elif line.startswith("+++"):
46 | print2cache("\n\n" + line + "\n")
47 | table_initialized = False
48 |
49 |
50 | ACTION_ENV_DELIMITER = "__ENV_DELIMITER__"
51 | def _build_file_input(name, value):
52 | return (
53 | f"{name}"
54 | f"<<{ACTION_ENV_DELIMITER}\n"
55 | f"{value}\n"
56 | f"{ACTION_ENV_DELIMITER}\n".encode("utf-8")
57 | )
58 |
59 | with open(os.environ["GITHUB_OUTPUT"], "ab") as f:
60 | f.write(_build_file_input("content", printcache.strip()))
61 |
--------------------------------------------------------------------------------