Search in sources :

Example 6 with Folder

use of com.nutomic.syncthingandroid.model.Folder in project syncthing-android by syncthing.

the class FolderActivity method initFolder.

private void initFolder() {
    mFolder = new Folder();
    mFolder.id = (getIntent().hasExtra(EXTRA_FOLDER_ID)) ? getIntent().getStringExtra(EXTRA_FOLDER_ID) : generateRandomFolderId();
    mFolder.label = getIntent().getStringExtra(EXTRA_FOLDER_LABEL);
    mFolder.fsWatcherEnabled = true;
    mFolder.fsWatcherDelayS = 10;
    /**
     * Folder rescan interval defaults to 3600s as it is the default in
     * syncthing when the file watcher is enabled and a new folder is created.
     */
    mFolder.rescanIntervalS = 3600;
    mFolder.paused = false;
    mFolder.type = Constants.FOLDER_TYPE_SEND_RECEIVE;
    mFolder.versioning = new Folder.Versioning();
}
Also used : Folder(com.nutomic.syncthingandroid.model.Folder)

Example 7 with Folder

use of com.nutomic.syncthingandroid.model.Folder in project syncthing-android by syncthing.

the class ShareActivity method onActivityResult.

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == FolderPickerActivity.DIRECTORY_REQUEST_CODE && resultCode == RESULT_OK) {
        Folder selectedFolder = (Folder) mFoldersSpinner.getSelectedItem();
        String folderDirectory = Util.formatPath(selectedFolder.path);
        String subDirectory = data.getStringExtra(FolderPickerActivity.EXTRA_RESULT_DIRECTORY);
        // Remove the parent directory from the string, so it is only the Sub directory that is displayed to the user.
        subDirectory = subDirectory.replace(folderDirectory, "");
        mSubDirectoryTextView.setText(subDirectory);
        PreferenceManager.getDefaultSharedPreferences(this).edit().putString(PREF_FOLDER_SAVED_SUBDIRECTORY + selectedFolder.id, subDirectory).apply();
    }
}
Also used : Folder(com.nutomic.syncthingandroid.model.Folder)

Example 8 with Folder

use of com.nutomic.syncthingandroid.model.Folder in project syncthing-android by syncthing.

the class ShareActivity method onApiChange.

@Override
public void onApiChange(SyncthingService.State currentState) {
    if (currentState != SyncthingService.State.ACTIVE || getApi() == null)
        return;
    List<Folder> folders = getApi().getFolders();
    // Get the index of the previously selected folder.
    int folderIndex = 0;
    String savedFolderId = PreferenceManager.getDefaultSharedPreferences(this).getString(PREF_PREVIOUSLY_SELECTED_SYNCTHING_FOLDER, "");
    for (Folder folder : folders) {
        if (folder.id.equals(savedFolderId)) {
            folderIndex = folders.indexOf(folder);
            break;
        }
    }
    ArrayAdapter<Folder> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, folders);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    Spinner sItems = findViewById(R.id.folders);
    sItems.setAdapter(adapter);
    sItems.setSelection(folderIndex);
}
Also used : Spinner(android.widget.Spinner) Folder(com.nutomic.syncthingandroid.model.Folder) ArrayAdapter(android.widget.ArrayAdapter)

Example 9 with Folder

use of com.nutomic.syncthingandroid.model.Folder in project syncthing-android by syncthing.

the class ShareActivity method onPause.

@Override
protected void onPause() {
    super.onPause();
    if (mFoldersSpinner.getSelectedItem() != null) {
        Folder selectedFolder = (Folder) mFoldersSpinner.getSelectedItem();
        PreferenceManager.getDefaultSharedPreferences(this).edit().putString(PREF_PREVIOUSLY_SELECTED_SYNCTHING_FOLDER, selectedFolder.id).apply();
    }
}
Also used : Folder(com.nutomic.syncthingandroid.model.Folder)

Example 10 with Folder

use of com.nutomic.syncthingandroid.model.Folder in project syncthing-android by syncthing.

the class ShareActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_share);
    getWindow().setSoftInputMode(SOFT_INPUT_STATE_ALWAYS_HIDDEN);
    registerOnServiceConnectedListener(this);
    Button mShareButton = findViewById(R.id.share_button);
    Button mCancelButton = findViewById(R.id.cancel_button);
    Button browseButton = findViewById(R.id.browse_button);
    EditText mShareName = findViewById(R.id.name);
    TextView mShareTitle = findViewById(R.id.namesTitle);
    mSubDirectoryTextView = findViewById(R.id.sub_directory_Textview);
    mFoldersSpinner = findViewById(R.id.folders);
    // TODO: add support for EXTRA_TEXT (notes, memos sharing)
    ArrayList<Uri> extrasToCopy = new ArrayList<>();
    if (getIntent().getAction().equals(Intent.ACTION_SEND)) {
        Uri uri = getIntent().getParcelableExtra(Intent.EXTRA_STREAM);
        if (uri != null)
            extrasToCopy.add(uri);
    } else if (getIntent().getAction().equals(Intent.ACTION_SEND_MULTIPLE)) {
        ArrayList<Uri> extras = getIntent().getParcelableArrayListExtra(Intent.EXTRA_STREAM);
        if (extras != null)
            extrasToCopy = extras;
    }
    if (extrasToCopy.isEmpty()) {
        Toast.makeText(this, getString(R.string.nothing_share), Toast.LENGTH_SHORT).show();
        finish();
    }
    Map<Uri, String> files = new HashMap<>();
    for (Uri sourceUri : extrasToCopy) {
        String displayName = getDisplayNameForUri(sourceUri);
        if (displayName == null) {
            displayName = generateDisplayName();
        }
        files.put(sourceUri, displayName);
    }
    mShareName.setText(TextUtils.join("\n", files.values()));
    if (files.size() > 1) {
        mShareName.setFocusable(false);
        mShareName.setKeyListener(null);
    }
    mShareTitle.setText(getResources().getQuantityString(R.plurals.file_name_title, files.size() > 1 ? 2 : 1));
    mShareButton.setOnClickListener(view -> {
        if (files.size() == 1)
            files.entrySet().iterator().next().setValue(mShareName.getText().toString());
        Folder folder = (Folder) mFoldersSpinner.getSelectedItem();
        File directory = new File(folder.path, getSavedSubDirectory());
        CopyFilesTask mCopyFilesTask = new CopyFilesTask(this, files, folder, directory);
        mCopyFilesTask.execute();
    });
    mFoldersSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            mSubDirectoryTextView.setText(getSavedSubDirectory());
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {
        }
    });
    browseButton.setOnClickListener(view -> {
        Folder folder = (Folder) mFoldersSpinner.getSelectedItem();
        File initialDirectory = new File(folder.path, getSavedSubDirectory());
        startActivityForResult(FolderPickerActivity.createIntent(getApplicationContext(), initialDirectory.getAbsolutePath(), folder.path), FolderPickerActivity.DIRECTORY_REQUEST_CODE);
    });
    mCancelButton.setOnClickListener(view -> finish());
    mSubDirectoryTextView.setText(getSavedSubDirectory());
}
Also used : EditText(android.widget.EditText) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) Folder(com.nutomic.syncthingandroid.model.Folder) Uri(android.net.Uri) View(android.view.View) AdapterView(android.widget.AdapterView) TextView(android.widget.TextView) Button(android.widget.Button) TextView(android.widget.TextView) AdapterView(android.widget.AdapterView) File(java.io.File)

Aggregations

Folder (com.nutomic.syncthingandroid.model.Folder)14 File (java.io.File)3 Uri (android.net.Uri)2 ArrayAdapter (android.widget.ArrayAdapter)2 Spinner (android.widget.Spinner)2 HashMap (java.util.HashMap)2 Map (java.util.Map)2 ContentResolver (android.content.ContentResolver)1 Intent (android.content.Intent)1 Handler (android.os.Handler)1 View (android.view.View)1 AdapterView (android.widget.AdapterView)1 Button (android.widget.Button)1 EditText (android.widget.EditText)1 TextView (android.widget.TextView)1 NonNull (androidx.annotation.NonNull)1 ImmutableMap (com.google.common.collect.ImmutableMap)1 SyncthingActivity (com.nutomic.syncthingandroid.activities.SyncthingActivity)1 ItemFolderListBinding (com.nutomic.syncthingandroid.databinding.ItemFolderListBinding)1 CompletionInfo (com.nutomic.syncthingandroid.model.CompletionInfo)1