Merge branch 'master' into signApk

This commit is contained in:
Tobias Kaminsky 2017-12-12 08:00:51 +01:00 committed by GitHub
commit 74786b8429
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
67 changed files with 255 additions and 188 deletions

View file

@ -107,8 +107,8 @@ android {
versionDev {
applicationId "com.nextcloud.android.beta"
dimension "default"
versionCode 20171211
versionName "20171211"
versionCode 20171212
versionName "20171212"
}
}

View file

@ -1,2 +1,2 @@
DO NOT TOUCH; GENERATED BY DRONE
<span class="mdl-layout-title">Lint Report: 335 warnings</span>
<span class="mdl-layout-title">Lint Report: 334 warnings</span>

View file

@ -17,15 +17,20 @@ returnValue=$?
echo "Branch: $3"
if [ $3 = "master" -a $returnValue -eq 0 ]; then
if [ $3 = "master" -a $returnValue -ne 1 ]; then
echo "New master at: https://nextcloud.kaminsky.me/index.php/s/tXwtChzyqMj6I8v"
curl -u $4:$5 -X PUT https://nextcloud.kaminsky.me/remote.php/webdav/droneLogs/master.html --upload-file build/reports/lint/lint.html
exit 0
elif [ $returnValue -eq 1 ]; then
if [ -e $6 ] ; then
else
if [ -e $6 ]; then
6="master-"$(date +%F)
fi
echo "New results at https://nextcloud.kaminsky.me/index.php/s/tXwtChzyqMj6I8v ->" $6.html
curl -u $4:$5 -X PUT https://nextcloud.kaminsky.me/remote.php/webdav/droneLogs/$6.html --upload-file build/reports/lint/lint.html
exit 1
if [ $returnValue -eq 2 ]; then
exit 0
else
exit $returnValue
fi
fi

View file

@ -461,7 +461,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
}
}).show();
}
}, 1000);
}, 60000);
}
private void parseAndLoginFromWebView(String dataString) {

View file

@ -20,6 +20,8 @@
*/
package com.owncloud.android.datamodel;
import android.support.annotation.Nullable;
/*
Model for filesystem data from the database
*/
@ -32,12 +34,13 @@ public class FileSystemDataSet {
private boolean isSentForUpload;
private long foundAt;
private long syncedFolderId;
@Nullable private String crc32;
public FileSystemDataSet() {
}
public FileSystemDataSet(int id, String localPath, long modifiedAt, boolean isFolder,
boolean isSentForUpload, long foundAt, long syncedFolderId) {
boolean isSentForUpload, long foundAt, long syncedFolderId, @Nullable String crc32) {
this.id = id;
this.localPath = localPath;
this.modifiedAt = modifiedAt;
@ -45,6 +48,15 @@ public class FileSystemDataSet {
this.isSentForUpload = isSentForUpload;
this.foundAt = foundAt;
this.syncedFolderId = syncedFolderId;
this.crc32 = crc32;
}
public String getCrc32() {
return crc32;
}
public void setCrc32(String crc32) {
this.crc32 = crc32;
}
public int getId() {

View file

@ -27,8 +27,14 @@ import android.net.Uri;
import com.owncloud.android.db.ProviderMeta;
import com.owncloud.android.lib.common.utils.Log_OC;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashSet;
import java.util.Set;
import java.util.zip.CRC32;
/**
* Provider for stored filesystem data.
@ -119,6 +125,11 @@ public class FilesystemDataProvider {
cv.put(ProviderMeta.ProviderTableMeta.FILESYSTEM_FILE_SENT_FOR_UPLOAD, false);
cv.put(ProviderMeta.ProviderTableMeta.FILESYSTEM_SYNCED_FOLDER_ID, syncedFolder.getId());
long newCrc32 = getFileChecksum(localPath);
if (newCrc32 != -1) {
cv.put(ProviderMeta.ProviderTableMeta.FILESYSTEM_CRC32, Long.toString(newCrc32));
}
Uri result = contentResolver.insert(ProviderMeta.ProviderTableMeta.CONTENT_URI_FILESYSTEM, cv);
if (result == null) {
@ -127,7 +138,11 @@ public class FilesystemDataProvider {
} else {
if (data.getModifiedAt() != modifiedAt) {
cv.put(ProviderMeta.ProviderTableMeta.FILESYSTEM_FILE_SENT_FOR_UPLOAD, 0);
long newCrc32 = getFileChecksum(localPath);
if (data.getCrc32() == null || (newCrc32 != -1 && !data.getCrc32().equals(Long.toString(newCrc32)))) {
cv.put(ProviderMeta.ProviderTableMeta.FILESYSTEM_CRC32, Long.toString(newCrc32));
cv.put(ProviderMeta.ProviderTableMeta.FILESYSTEM_FILE_SENT_FOR_UPLOAD, 0);
}
}
@ -177,11 +192,13 @@ public class FilesystemDataProvider {
isSentForUpload = true;
}
String crc32 = cursor.getString(cursor.getColumnIndex(ProviderMeta.ProviderTableMeta.FILESYSTEM_CRC32));
if (id == -1) {
Log_OC.e(TAG, "Arbitrary value could not be created from cursor");
} else {
dataSet = new FileSystemDataSet(id, localPath, modifiedAt, isFolder, isSentForUpload, foundAt,
syncedFolder.getId());
syncedFolder.getId(), crc32);
}
}
cursor.close();
@ -191,4 +208,24 @@ public class FilesystemDataProvider {
return dataSet;
}
private static long getFileChecksum(String filepath) {
InputStream inputStream = null;
try {
inputStream = new BufferedInputStream(new FileInputStream(filepath));
CRC32 crc = new CRC32();
int cnt;
while ((cnt = inputStream.read()) != -1) {
crc.update(cnt);
}
return crc.getValue();
} catch (FileNotFoundException e) {
return -1;
} catch (IOException e) {
return -1;
}
}
}

View file

@ -68,6 +68,7 @@ import java.io.File;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.lang.ref.WeakReference;
import java.net.URLEncoder;
import java.util.ArrayList;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
@ -293,13 +294,11 @@ public class ThumbnailsCacheManager {
if (serverOCVersion.supportsRemoteThumbnails()) {
GetMethod getMethod = null;
try {
// resized image via gallery app
String uri = mClient.getBaseUri() + "/index.php/apps/gallery/api/preview/" +
Integer.parseInt(file.getRemoteId().substring(0, 8)) + "/" + pxW + "/" + pxH;
Log_OC.d(TAG, "generate resizedImage: " + file.getFileName() + " URI: " + uri);
String uri = mClient.getBaseUri() + "/index.php/core/preview.png?file="
+ URLEncoder.encode(file.getRemotePath())
+ "&x=" + pxW + "&y=" + pxH + "&a=1&mode=cover&forceIcon=0";
getMethod = new GetMethod(uri);
getMethod.setRequestHeader("Cookie",
"nc_sameSiteCookielax=true;nc_sameSiteCookiestrict=true");
int status = mClient.executeMethod(getMethod);
if (status == HttpStatus.SC_OK) {
InputStream inputStream = getMethod.getResponseBodyAsStream();

View file

@ -32,7 +32,7 @@ import com.owncloud.android.MainApp;
public class ProviderMeta {
public static final String DB_NAME = "filelist";
public static final int DB_VERSION = 25;
public static final int DB_VERSION = 26;
private ProviderMeta() {
}
@ -218,5 +218,6 @@ public class ProviderMeta {
public static final String FILESYSTEM_FILE_FOUND_RECENTLY = "found_at";
public static final String FILESYSTEM_FILE_SENT_FOR_UPLOAD = "upload_triggered";
public static final String FILESYSTEM_SYNCED_FOLDER_ID = "syncedfolder_id";
public static final String FILESYSTEM_CRC32 = "crc32";
}
}

View file

@ -38,6 +38,9 @@ import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteQueryBuilder;
import android.net.Uri;
import android.os.Binder;
import android.os.Build;
import android.support.annotation.NonNull;
import android.text.TextUtils;
import com.owncloud.android.MainApp;
@ -63,6 +66,7 @@ import java.util.Locale;
public class FileContentProvider extends ContentProvider {
private DataBaseHelper mDbHelper;
private Context mContext;
private static final int SINGLE_FILE = 1;
private static final int DIRECTORY = 2;
@ -89,9 +93,13 @@ public class FileContentProvider extends ContentProvider {
private static final String UPGRADE_VERSION_MSG = "OUT of the ADD in onUpgrade; oldVersion == %d, newVersion == %d";
@Override
public int delete(Uri uri, String where, String[] whereArgs) {
//Log_OC.d(TAG, "Deleting " + uri + " at provider " + this);
int count = 0;
public int delete(@NonNull Uri uri, String where, String[] whereArgs) {
int count;
if (isCallerNotAllowed()) {
return -1;
}
SQLiteDatabase db = mDbHelper.getWritableDatabase();
db.beginTransaction();
try {
@ -100,11 +108,15 @@ public class FileContentProvider extends ContentProvider {
} finally {
db.endTransaction();
}
getContext().getContentResolver().notifyChange(uri, null);
mContext.getContentResolver().notifyChange(uri, null);
return count;
}
private int delete(SQLiteDatabase db, Uri uri, String where, String[] whereArgs) {
if (isCallerNotAllowed()) {
return -1;
}
int count = 0;
switch (mUriMatcher.match(uri)) {
case SINGLE_FILE:
@ -221,7 +233,7 @@ public class FileContentProvider extends ContentProvider {
}
@Override
public String getType(Uri uri) {
public String getType(@NonNull Uri uri) {
switch (mUriMatcher.match(uri)) {
case ROOT_DIRECTORY:
return ProviderTableMeta.CONTENT_TYPE;
@ -234,8 +246,12 @@ public class FileContentProvider extends ContentProvider {
}
@Override
public Uri insert(Uri uri, ContentValues values) {
Uri newUri = null;
public Uri insert(@NonNull Uri uri, ContentValues values) {
if (isCallerNotAllowed()) {
return null;
}
Uri newUri;
SQLiteDatabase db = mDbHelper.getWritableDatabase();
db.beginTransaction();
try {
@ -244,7 +260,7 @@ public class FileContentProvider extends ContentProvider {
} finally {
db.endTransaction();
}
getContext().getContentResolver().notifyChange(newUri, null);
mContext.getContentResolver().notifyChange(newUri, null);
return newUri;
}
@ -286,7 +302,7 @@ public class FileContentProvider extends ContentProvider {
}
case SHARES:
Uri insertedShareUri = null;
Uri insertedShareUri;
long rowId = db.insert(ProviderTableMeta.OCSHARES_TABLE_NAME, null, values);
if (rowId > 0) {
insertedShareUri =
@ -299,7 +315,7 @@ public class FileContentProvider extends ContentProvider {
return insertedShareUri;
case CAPABILITIES:
Uri insertedCapUri = null;
Uri insertedCapUri;
long id = db.insert(ProviderTableMeta.CAPABILITIES_TABLE_NAME, null, values);
if (id > 0) {
insertedCapUri =
@ -311,7 +327,7 @@ public class FileContentProvider extends ContentProvider {
return insertedCapUri;
case UPLOADS:
Uri insertedUploadUri = null;
Uri insertedUploadUri;
long uploadId = db.insert(ProviderTableMeta.UPLOADS_TABLE_NAME, null, values);
if (uploadId > 0) {
insertedUploadUri =
@ -323,7 +339,7 @@ public class FileContentProvider extends ContentProvider {
return insertedUploadUri;
case SYNCED_FOLDERS:
Uri insertedSyncedFolderUri = null;
Uri insertedSyncedFolderUri;
long syncedFolderId = db.insert(ProviderTableMeta.SYNCED_FOLDERS_TABLE_NAME, null, values);
if (syncedFolderId > 0) {
insertedSyncedFolderUri =
@ -335,7 +351,7 @@ public class FileContentProvider extends ContentProvider {
return insertedSyncedFolderUri;
case EXTERNAL_LINKS:
Uri insertedExternalLinkUri = null;
Uri insertedExternalLinkUri;
long externalLinkId = db.insert(ProviderTableMeta.EXTERNAL_LINKS_TABLE_NAME, null, values);
if (externalLinkId > 0) {
insertedExternalLinkUri =
@ -347,7 +363,7 @@ public class FileContentProvider extends ContentProvider {
return insertedExternalLinkUri;
case ARBITRARY_DATA:
Uri insertedArbitraryDataUri = null;
Uri insertedArbitraryDataUri;
long arbitraryDataId = db.insert(ProviderTableMeta.ARBITRARY_DATA_TABLE_NAME, null, values);
if (arbitraryDataId > 0) {
insertedArbitraryDataUri =
@ -369,11 +385,11 @@ public class FileContentProvider extends ContentProvider {
return insertedVirtualUri;
case FILESYSTEM:
Uri insertedFilesystemUri = null;
long filesystedId = db.insert(ProviderTableMeta.FILESYSTEM_TABLE_NAME, null, values);
if (filesystedId > 0) {
Uri insertedFilesystemUri;
long filesystemId = db.insert(ProviderTableMeta.FILESYSTEM_TABLE_NAME, null, values);
if (filesystemId > 0) {
insertedFilesystemUri =
ContentUris.withAppendedId(ProviderTableMeta.CONTENT_URI_FILESYSTEM, filesystedId);
ContentUris.withAppendedId(ProviderTableMeta.CONTENT_URI_FILESYSTEM, filesystemId);
} else {
throw new SQLException("ERROR " + uri);
}
@ -412,8 +428,13 @@ public class FileContentProvider extends ContentProvider {
@Override
public boolean onCreate() {
mDbHelper = new DataBaseHelper(getContext());
mContext = getContext();
String authority = getContext().getResources().getString(R.string.authority);
if (mContext == null) {
return false;
}
String authority = mContext.getResources().getString(R.string.authority);
mUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
mUriMatcher.addURI(authority, null, ROOT_DIRECTORY);
mUriMatcher.addURI(authority, "file/", SINGLE_FILE);
@ -437,15 +458,24 @@ public class FileContentProvider extends ContentProvider {
@Override
public Cursor query(
Uri uri,
String[] projection,
String selection,
String[] selectionArgs,
String sortOrder
) {
public Cursor query(@NonNull Uri uri, String[] projection, String selection, String[] selectionArgs,
String sortOrder) {
Cursor result = null;
// skip check for files as they need to be queried to get access via document provider
switch (mUriMatcher.match(uri)) {
case ROOT_DIRECTORY:
case SINGLE_FILE:
case DIRECTORY:
break;
default:
if (isCallerNotAllowed()) {
return null;
}
}
Cursor result;
SQLiteDatabase db = mDbHelper.getReadableDatabase();
db.beginTransaction();
try {
@ -592,21 +622,26 @@ public class FileContentProvider extends ContentProvider {
sqlQuery.setProjectionMap(projectionMap);
}
if (selectionArgs == null) {
// if both are null, let them pass to query
if (selectionArgs == null && selection != null) {
selectionArgs = new String[]{selection};
selection = "(?)";
}
sqlQuery.setStrict(true);
Cursor c = sqlQuery.query(db, projectionArray, selection, selectionArgs, null, null, order);
c.setNotificationUri(getContext().getContentResolver(), uri);
c.setNotificationUri(mContext.getContentResolver(), uri);
return c;
}
@Override
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
public int update(@NonNull Uri uri, ContentValues values, String selection, String[] selectionArgs) {
int count = 0;
if (isCallerNotAllowed()) {
return -1;
}
int count;
SQLiteDatabase db = mDbHelper.getWritableDatabase();
db.beginTransaction();
try {
@ -615,7 +650,7 @@ public class FileContentProvider extends ContentProvider {
} finally {
db.endTransaction();
}
getContext().getContentResolver().notifyChange(uri, null);
mContext.getContentResolver().notifyChange(uri, null);
return count;
}
@ -635,8 +670,7 @@ public class FileContentProvider extends ContentProvider {
case CAPABILITIES:
return db.update(ProviderTableMeta.CAPABILITIES_TABLE_NAME, values, selection, selectionArgs);
case UPLOADS:
int ret = db.update(ProviderTableMeta.UPLOADS_TABLE_NAME, values, selection, selectionArgs);
return ret;
return db.update(ProviderTableMeta.UPLOADS_TABLE_NAME, values, selection, selectionArgs);
case SYNCED_FOLDERS:
return db.update(ProviderTableMeta.SYNCED_FOLDERS_TABLE_NAME, values, selection, selectionArgs);
case ARBITRARY_DATA:
@ -648,8 +682,9 @@ public class FileContentProvider extends ContentProvider {
}
}
@NonNull
@Override
public ContentProviderResult[] applyBatch(ArrayList<ContentProviderOperation> operations)
public ContentProviderResult[] applyBatch(@NonNull ArrayList<ContentProviderOperation> operations)
throws OperationApplicationException {
Log_OC.d("FileContentProvider", "applying batch in provider " + this +
" (temporary: " + isTemporary() + ")");
@ -674,7 +709,7 @@ public class FileContentProvider extends ContentProvider {
class DataBaseHelper extends SQLiteOpenHelper {
public DataBaseHelper(Context context) {
DataBaseHelper(Context context) {
super(context, ProviderMeta.DB_NAME, null, ProviderMeta.DB_VERSION);
}
@ -685,7 +720,7 @@ public class FileContentProvider extends ContentProvider {
Log_OC.i(SQL, "Entering in onCreate");
createFilesTable(db);
// Create ocshares table
// Create OCShares table
createOCSharesTable(db);
// Create capabilities table
@ -796,7 +831,7 @@ public class FileContentProvider extends ContentProvider {
ADD_COLUMN + ProviderTableMeta.FILE_PUBLIC_LINK + " TEXT " +
" DEFAULT NULL");
// Create table ocshares
// Create table OCShares
createOCSharesTable(db);
upgraded = true;
@ -1189,6 +1224,21 @@ public class FileContentProvider extends ContentProvider {
}
}
if (oldVersion < 26 && newVersion >= 26) {
Log_OC.i(SQL, "Entering in the #26 Adding CRC32 column to filesystem table");
db.beginTransaction();
try {
db.execSQL(ALTER_TABLE + ProviderTableMeta.FILESYSTEM_TABLE_NAME +
ADD_COLUMN + ProviderTableMeta.FILESYSTEM_CRC32 + " TEXT ");
upgraded = true;
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
}
if (!upgraded) {
Log_OC.i(SQL, String.format(Locale.ENGLISH, UPGRADE_VERSION_MSG, oldVersion, newVersion));
}
@ -1243,7 +1293,7 @@ public class FileContentProvider extends ContentProvider {
}
private void createOCSharesTable(SQLiteDatabase db) {
// Create ocshares table
// Create OCShares table
db.execSQL("CREATE TABLE " + ProviderTableMeta.OCSHARES_TABLE_NAME + "("
+ ProviderTableMeta._ID + " INTEGER PRIMARY KEY, "
+ ProviderTableMeta.OCSHARES_FILE_SOURCE + INTEGER
@ -1380,6 +1430,7 @@ public class FileContentProvider extends ContentProvider {
+ ProviderTableMeta.FILESYSTEM_FILE_FOUND_RECENTLY + " LONG, "
+ ProviderTableMeta.FILESYSTEM_FILE_SENT_FOR_UPLOAD + " INTEGER, "
+ ProviderTableMeta.FILESYSTEM_SYNCED_FOLDER_ID + " STRING, "
+ ProviderTableMeta.FILESYSTEM_CRC32 + " STRING, "
+ ProviderTableMeta.FILESYSTEM_FILE_MODIFIED + " LONG );"
);
}
@ -1499,4 +1550,15 @@ public class FileContentProvider extends ContentProvider {
c.close();
}
}
private boolean isCallerNotAllowed() {
String callingPackage;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
callingPackage = getCallingPackage();
} else {
callingPackage = mContext.getPackageManager().getNameForUid(Binder.getCallingUid());
}
return callingPackage == null || !callingPackage.contains(mContext.getPackageName());
}
}

View file

@ -1335,53 +1335,50 @@ public abstract class DrawerActivity extends ToolbarActivity implements DisplayU
*/
public void fetchExternalLinks(final boolean force) {
if (getBaseContext().getResources().getBoolean(R.bool.show_external_links)) {
Thread t = new Thread(new Runnable() {
public void run() {
// fetch capabilities as early as possible
if ((getCapabilities() == null || getCapabilities().getAccountName().isEmpty())
&& getStorageManager() != null) {
GetCapabilitiesOperarion getCapabilities = new GetCapabilitiesOperarion();
getCapabilities.execute(getStorageManager(), getBaseContext());
}
Thread t = new Thread(() -> {
// fetch capabilities as early as possible
if ((getCapabilities() == null || getCapabilities().getAccountName().isEmpty())
&& getStorageManager() != null) {
GetCapabilitiesOperarion getCapabilities = new GetCapabilitiesOperarion();
getCapabilities.execute(getStorageManager(), getBaseContext());
}
Account account = AccountUtils.getCurrentOwnCloudAccount(DrawerActivity.this);
Account account = AccountUtils.getCurrentOwnCloudAccount(DrawerActivity.this);
if (account != null && getStorageManager() != null &&
getStorageManager().getCapability(account.name) != null &&
getStorageManager().getCapability(account.name).getExternalLinks().isTrue()) {
externalLinksProvider.deleteAllExternalLinks();
int count = sharedPreferences.getInt(EXTERNAL_LINKS_COUNT, -1);
if (count > 10 || count == -1 || force) {
if (force) {
Log_OC.d("ExternalLinks", "force update");
if (account != null && getStorageManager() != null &&
getStorageManager().getCapability(account.name) != null &&
getStorageManager().getCapability(account.name).getExternalLinks().isTrue()) {
int count = sharedPreferences.getInt(EXTERNAL_LINKS_COUNT, -1);
if (count > 10 || count == -1 || force) {
if (force) {
Log_OC.d("ExternalLinks", "force update");
}
sharedPreferences.edit().putInt(EXTERNAL_LINKS_COUNT, 0).apply();
Log_OC.d("ExternalLinks", "update via api");
RemoteOperation getExternalLinksOperation = new ExternalLinksOperation();
RemoteOperationResult result = getExternalLinksOperation.execute(account, DrawerActivity.this);
if (result.isSuccess() && result.getData() != null) {
externalLinksProvider.deleteAllExternalLinks();
ArrayList<ExternalLink> externalLinks = (ArrayList<ExternalLink>) (Object) result.getData();
for (ExternalLink link : externalLinks) {
externalLinksProvider.storeExternalLink(link);
}
sharedPreferences.edit().putInt(EXTERNAL_LINKS_COUNT, 0).apply();
Log_OC.d("ExternalLinks", "update via api");
ExternalLinksProvider externalLinksProvider = new ExternalLinksProvider(getContentResolver());
RemoteOperation getExternalLinksOperation = new ExternalLinksOperation();
RemoteOperationResult result = getExternalLinksOperation.execute(account, DrawerActivity.this);
if (result.isSuccess() && result.getData() != null) {
externalLinksProvider.deleteAllExternalLinks();
ArrayList<ExternalLink> externalLinks = (ArrayList<ExternalLink>) (Object) result.getData();
for (ExternalLink link : externalLinks) {
externalLinksProvider.storeExternalLink(link);
}
runOnUiThread(() -> updateExternalLinksInDrawer());
}
} else {
sharedPreferences.edit().putInt(EXTERNAL_LINKS_COUNT, count + 1).apply();
}
} else {
Log_OC.d("ExternalLinks", "links disabled");
sharedPreferences.edit().putInt(EXTERNAL_LINKS_COUNT, count + 1).apply();
}
} else {
Log_OC.d("ExternalLinks", "links disabled");
}
runOnUiThread(() -> updateExternalLinksInDrawer());
});
t.start();

View file

@ -1449,9 +1449,6 @@ public class FileDisplayActivity extends HookActivity
case OCFileListFragment.DOWNLOAD_SEND:
sendDownloadedFile();
break;
case OCFileListFragment.DOWNLOAD_SET_AS:
setPictureAs();
break;
default:
// do nothing
break;
@ -1609,7 +1606,7 @@ public class FileDisplayActivity extends HookActivity
mUploaderBinder = null;
}
}
};
}
private MediaServiceConnection newMediaConnection(){
return new MediaServiceConnection();
@ -1639,7 +1636,7 @@ public class FileDisplayActivity extends HookActivity
mMediaServiceBinder = null;
}
}
};
}
/**
* Updates the view associated to the activity after the finish of some operation over files
@ -1986,12 +1983,6 @@ public class FileDisplayActivity extends HookActivity
mWaitingToSend = null;
}
private void setPictureAs() {
getFileOperationsHelper().setPictureAs(mWaitingToSend);
mWaitingToSend = null;
}
/**
* Requests the download of the received {@link OCFile} , updates the UI
* to monitor the download progress and prepares the activity to send the file

View file

@ -1,20 +1,20 @@
/**
/*
* ownCloud Android client application
*
* @author masensio
* @author David A. Velasco
* @author Juan Carlos González Cabrero
* Copyright (C) 2015 ownCloud Inc.
* <p/>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2,
* as published by the Free Software Foundation.
* <p/>
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p/>
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
@ -32,6 +32,7 @@ import android.support.v4.app.FragmentTransaction;
import com.owncloud.android.R;
import com.owncloud.android.datamodel.OCFile;
import com.owncloud.android.lib.common.OwnCloudAccount;
import com.owncloud.android.lib.common.accounts.AccountUtils;
import com.owncloud.android.lib.common.operations.RemoteOperation;
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
@ -313,7 +314,19 @@ public class ShareActivity extends FileActivity implements ShareFragmentListener
intentToShareLink.putExtra(Intent.EXTRA_TEXT, link);
intentToShareLink.setType("text/plain");
String username = AccountUtils.getUsernameForAccount(getAccount());
String username;
try {
OwnCloudAccount oca = new OwnCloudAccount(getAccount(), this);
if (oca.getDisplayName() != null && !oca.getDisplayName().isEmpty()) {
username = oca.getDisplayName();
} else {
username = AccountUtils.getUsernameForAccount(getAccount());
}
} catch (Exception e) {
username = AccountUtils.getUsernameForAccount(getAccount());
}
if (username != null) {
intentToShareLink.putExtra(
Intent.EXTRA_SUBJECT,

View file

@ -129,7 +129,6 @@ public class OCFileListFragment extends ExtendedListFragment implements OCFileLi
public static final String DOWNLOAD_BEHAVIOUR = "DOWNLOAD_BEHAVIOUR";
public static final String DOWNLOAD_SEND = "DOWNLOAD_SEND";
public static final String DOWNLOAD_SET_AS = "DOWNLOAD_SET_AS";
public static final String SEARCH_EVENT = "SEARCH_EVENT";
@ -985,12 +984,7 @@ public class OCFileListFragment extends ExtendedListFragment implements OCFileLi
}
}
case R.id.action_set_as_wallpaper: {
if (singleFile.isDown()) {
mContainerActivity.getFileOperationsHelper().setPictureAs(singleFile);
} else {
Log_OC.d(TAG, singleFile.getRemotePath() + " : File must be downloaded");
((FileDisplayActivity) mContainerActivity).startDownloadForSending(singleFile, DOWNLOAD_SET_AS);
}
mContainerActivity.getFileOperationsHelper().setPictureAs(singleFile, getView());
return true;
}
}

View file

@ -30,9 +30,10 @@ import android.content.pm.ResolveInfo;
import android.net.Uri;
import android.os.Build;
import android.support.annotation.Nullable;
import android.support.design.widget.Snackbar;
import android.support.v4.content.FileProvider;
import android.view.View;
import android.webkit.MimeTypeMap;
import android.widget.Toast;
import com.owncloud.android.MainApp;
import com.owncloud.android.R;
@ -56,6 +57,7 @@ import com.owncloud.android.ui.events.FavoriteEvent;
import com.owncloud.android.ui.events.SyncEventFinished;
import com.owncloud.android.utils.DisplayUtils;
import com.owncloud.android.utils.FileStorageUtils;
import com.owncloud.android.utils.UriUtils;
import org.greenrobot.eventbus.EventBus;
@ -580,32 +582,36 @@ public class FileOperationsHelper {
}
}
public void setPictureAs(OCFile file) {
public void setPictureAs(OCFile file, View view) {
if (file != null) {
if (file.isDown()) {
Context context = MainApp.getAppContext();
Context context = MainApp.getAppContext();
Intent intent = new Intent(Intent.ACTION_ATTACH_DATA);
Uri uri;
try {
try {
if (file.isDown()) {
File externalFile = new File(file.getStoragePath());
Intent intent = new Intent(Intent.ACTION_ATTACH_DATA);
Uri sendUri;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
sendUri = FileProvider.getUriForFile(context,
uri = FileProvider.getUriForFile(context,
context.getResources().getString(R.string.file_provider_authority), externalFile);
} else {
sendUri = Uri.fromFile(externalFile);
uri = Uri.fromFile(externalFile);
}
intent.setDataAndType(sendUri, file.getMimetype());
intent.putExtra("mimeType", file.getMimetype());
mFileActivity.startActivityForResult(Intent.createChooser(intent,
mFileActivity.getString(R.string.set_as)), 200);
} catch (ActivityNotFoundException exception) {
Toast.makeText(context, R.string.picture_set_as_no_app, Toast.LENGTH_LONG).show();
} else {
uri = Uri.parse(UriUtils.URI_CONTENT_SCHEME +
context.getResources().getString(R.string.image_cache_provider_authority) +
file.getRemotePath());
}
intent.setDataAndType(uri, file.getMimetype());
mFileActivity.startActivityForResult(Intent.createChooser(intent,
mFileActivity.getString(R.string.set_as)), 200);
intent.setDataAndType(uri, file.getMimetype());
} catch (ActivityNotFoundException exception) {
Snackbar.make(view, R.string.picture_set_as_no_app, Snackbar.LENGTH_LONG).show();
}
} else {
Log_OC.wtf(TAG, "Trying to send a NULL OCFile");

View file

@ -452,7 +452,7 @@ public class PreviewImageFragment extends FileFragment {
return true;
case R.id.action_set_as_wallpaper:
mContainerActivity.getFileOperationsHelper().setPictureAs(getFile());
mContainerActivity.getFileOperationsHelper().setPictureAs(getFile(), getImageView());
return true;
default:

View file

@ -356,7 +356,6 @@
<string name="pref_behaviour_entries_keep_file">guardáu en carpeta orixinal</string>
<string name="pref_behaviour_entries_move">movíu a la carpeta d\'aplicaciones</string>
<string name="prefs_storage_path">Camín d\'almacenamientu</string>
<string name="prefs_common">Común</string>
<string name="share_dialog_title">Compartiendo</string>
<string name="share_file">Compartir %1$s</string>

View file

@ -300,7 +300,6 @@
<string name="pref_behaviour_entries_move">премествани в папката на приложението</string>
<string name="pref_behaviour_entries_delete_file">изтривани</string>
<string name="prefs_storage_path">Път до хранилището</string>
<string name="prefs_common">Познато</string>
<string name="share_dialog_title">Споделяне</string>
<string name="share_file">Споделяне на %1$s</string>

View file

@ -392,7 +392,6 @@
<string name="pref_behaviour_entries_move">mogut a la carpeta de l\'aplicació</string>
<string name="pref_behaviour_entries_delete_file">eliminat</string>
<string name="prefs_storage_path">Ruta d\'emmagatzematge</string>
<string name="prefs_common">Comú</string>
<string name="share_dialog_title">Compartint</string>
<string name="share_file">Comparteix %1$s</string>

View file

@ -467,7 +467,6 @@
<string name="pref_behaviour_entries_move">přesunut do adresáře aplikace</string>
<string name="pref_behaviour_entries_delete_file">smazáno</string>
<string name="prefs_storage_path">Cesta k úložišti</string>
<string name="prefs_common">Obvyklý</string>
<string name="share_dialog_title">Sdílení</string>
<string name="share_file">Sdílet %1$s</string>

View file

@ -346,7 +346,6 @@
<string name="select_all">Vælg alle</string>
<string name="pref_behaviour_entries_delete_file">Slettet</string>
<string name="prefs_common">Almindelig</string>
<string name="share_dialog_title">Deling</string>
<string name="share_file">Del %1$s</string>

View file

@ -470,7 +470,6 @@
<string name="pref_behaviour_entries_move">in den App-Ordner verschoben</string>
<string name="pref_behaviour_entries_delete_file">gelöscht</string>
<string name="prefs_storage_path">Speicherort</string>
<string name="prefs_common">Allgemein</string>
<string name="share_dialog_title">Teilen</string>
<string name="share_file">Teile %1$s</string>

View file

@ -470,7 +470,6 @@
<string name="pref_behaviour_entries_move">in den App-Ordner verschoben</string>
<string name="pref_behaviour_entries_delete_file">gelöscht</string>
<string name="prefs_storage_path">Speicherort</string>
<string name="prefs_common">Allgemein</string>
<string name="share_dialog_title">Teilen</string>
<string name="share_file">Teile %1$s</string>

View file

@ -421,7 +421,6 @@
<string name="pref_behaviour_entries_move">μετακινήθηκε στον φάκελο εφαρμογών</string>
<string name="pref_behaviour_entries_delete_file">διαγράφηκε</string>
<string name="prefs_storage_path">Διαδρομή αποθηκευτικού χώρου</string>
<string name="prefs_common">Κοινό</string>
<string name="share_dialog_title">Γίνεται διαμοιρασμός</string>
<string name="share_file">Διαμοιρασμός %1$s</string>

View file

@ -469,7 +469,6 @@
<string name="pref_behaviour_entries_move">moved to app folder</string>
<string name="pref_behaviour_entries_delete_file">deleted</string>
<string name="prefs_storage_path">Storage path</string>
<string name="prefs_common">Common</string>
<string name="share_dialog_title">Sharing</string>
<string name="share_file">Share %1$s</string>

View file

@ -416,7 +416,6 @@
<string name="pref_behaviour_entries_move">movido a la capreta de la aplicación</string>
<string name="pref_behaviour_entries_delete_file">Borrado</string>
<string name="prefs_storage_path">Ruta de almacenamiento</string>
<string name="prefs_common">Común</string>
<string name="share_dialog_title">Compartiendo</string>
<string name="share_file">Compartir %1$s</string>

View file

@ -469,7 +469,6 @@
<string name="pref_behaviour_entries_move">movido a la capreta de la aplicación</string>
<string name="pref_behaviour_entries_delete_file">Borrado</string>
<string name="prefs_storage_path">Ruta de almacenamiento</string>
<string name="prefs_common">Común</string>
<string name="share_dialog_title">Compartiendo</string>
<string name="share_file">Compartir %1$s</string>

View file

@ -469,7 +469,6 @@
<string name="pref_behaviour_entries_move">movido a la capreta de la aplicación</string>
<string name="pref_behaviour_entries_delete_file">Borrado</string>
<string name="prefs_storage_path">Ruta de almacenamiento</string>
<string name="prefs_common">Común</string>
<string name="share_dialog_title">Compartiendo</string>
<string name="share_file">Compartir %1$s</string>

View file

@ -469,7 +469,6 @@
<string name="pref_behaviour_entries_move">movido a la capreta de la aplicación</string>
<string name="pref_behaviour_entries_delete_file">Borrado</string>
<string name="prefs_storage_path">Ruta de almacenamiento</string>
<string name="prefs_common">Común</string>
<string name="share_dialog_title">Compartiendo</string>
<string name="share_file">Compartir %1$s</string>

View file

@ -469,7 +469,6 @@
<string name="pref_behaviour_entries_move">movido a la capreta de la aplicación</string>
<string name="pref_behaviour_entries_delete_file">Borrado</string>
<string name="prefs_storage_path">Ruta de almacenamiento</string>
<string name="prefs_common">Común</string>
<string name="share_dialog_title">Compartiendo</string>
<string name="share_file">Compartir %1$s</string>

View file

@ -469,7 +469,6 @@
<string name="pref_behaviour_entries_move">movido a la capreta de la aplicación</string>
<string name="pref_behaviour_entries_delete_file">Borrado</string>
<string name="prefs_storage_path">Ruta de almacenamiento</string>
<string name="prefs_common">Común</string>
<string name="share_dialog_title">Compartiendo</string>
<string name="share_file">Compartir %1$s</string>

View file

@ -469,7 +469,6 @@
<string name="pref_behaviour_entries_move">movido a la capreta de la aplicación</string>
<string name="pref_behaviour_entries_delete_file">Borrado</string>
<string name="prefs_storage_path">Ruta de almacenamiento</string>
<string name="prefs_common">Común</string>
<string name="share_dialog_title">Compartiendo</string>
<string name="share_file">Compartir %1$s</string>

View file

@ -469,7 +469,6 @@
<string name="pref_behaviour_entries_move">movido a la capreta de la aplicación</string>
<string name="pref_behaviour_entries_delete_file">Borrado</string>
<string name="prefs_storage_path">Ruta de almacenamiento</string>
<string name="prefs_common">Común</string>
<string name="share_dialog_title">Compartiendo</string>
<string name="share_file">Compartir %1$s</string>

View file

@ -469,7 +469,6 @@
<string name="pref_behaviour_entries_move">movido a la capreta de la aplicación</string>
<string name="pref_behaviour_entries_delete_file">Borrado</string>
<string name="prefs_storage_path">Ruta de almacenamiento</string>
<string name="prefs_common">Común</string>
<string name="share_dialog_title">Compartiendo</string>
<string name="share_file">Compartir %1$s</string>

View file

@ -469,7 +469,6 @@
<string name="pref_behaviour_entries_move">movido a la capreta de la aplicación</string>
<string name="pref_behaviour_entries_delete_file">Borrado</string>
<string name="prefs_storage_path">Ruta de almacenamiento</string>
<string name="prefs_common">Común</string>
<string name="share_dialog_title">Compartiendo</string>
<string name="share_file">Compartir %1$s</string>

View file

@ -469,7 +469,6 @@
<string name="pref_behaviour_entries_move">movido a la capreta de la aplicación</string>
<string name="pref_behaviour_entries_delete_file">Borrado</string>
<string name="prefs_storage_path">Ruta de almacenamiento</string>
<string name="prefs_common">Común</string>
<string name="share_dialog_title">Compartiendo</string>
<string name="share_file">Compartir %1$s</string>

View file

@ -469,7 +469,6 @@
<string name="pref_behaviour_entries_move">movido a la capreta de la aplicación</string>
<string name="pref_behaviour_entries_delete_file">Borrado</string>
<string name="prefs_storage_path">Ruta de almacenamiento</string>
<string name="prefs_common">Común</string>
<string name="share_dialog_title">Compartiendo</string>
<string name="share_file">Compartir %1$s</string>

View file

@ -469,7 +469,6 @@
<string name="pref_behaviour_entries_move">movido a la capreta de la aplicación</string>
<string name="pref_behaviour_entries_delete_file">Borrado</string>
<string name="prefs_storage_path">Ruta de almacenamiento</string>
<string name="prefs_common">Común</string>
<string name="share_dialog_title">Compartiendo</string>
<string name="share_file">Compartir %1$s</string>

View file

@ -469,7 +469,6 @@
<string name="pref_behaviour_entries_move">movido a la capreta de la aplicación</string>
<string name="pref_behaviour_entries_delete_file">Borrado</string>
<string name="prefs_storage_path">Ruta de almacenamiento</string>
<string name="prefs_common">Común</string>
<string name="share_dialog_title">Compartiendo</string>
<string name="share_file">Compartir %1$s</string>

View file

@ -469,7 +469,6 @@
<string name="pref_behaviour_entries_move">movido a la capreta de la aplicación</string>
<string name="pref_behaviour_entries_delete_file">Borrado</string>
<string name="prefs_storage_path">Ruta de almacenamiento</string>
<string name="prefs_common">Común</string>
<string name="share_dialog_title">Compartiendo</string>
<string name="share_file">Compartir %1$s</string>

View file

@ -469,7 +469,6 @@
<string name="pref_behaviour_entries_move">movido a la capreta de la aplicación</string>
<string name="pref_behaviour_entries_delete_file">Borrado</string>
<string name="prefs_storage_path">Ruta de almacenamiento</string>
<string name="prefs_common">Común</string>
<string name="share_dialog_title">Compartiendo</string>
<string name="share_file">Compartir %1$s</string>

View file

@ -469,7 +469,6 @@
<string name="pref_behaviour_entries_move">movido a la carpeta de la app</string>
<string name="pref_behaviour_entries_delete_file">borrado</string>
<string name="prefs_storage_path">Ruta de almacenamiento</string>
<string name="prefs_common">Común</string>
<string name="share_dialog_title">Compartiendo</string>
<string name="share_file">Compartir %1$s</string>

View file

@ -363,7 +363,6 @@ Mesedez, baimendu berriz</string>
<string name="pref_behaviour_entries_move">Aplikazioaren karpetara mugitu</string>
<string name="pref_behaviour_entries_delete_file">Borratua</string>
<string name="prefs_storage_path">Biltegiratze helbidea</string>
<string name="prefs_common">Komuna</string>
<string name="share_dialog_title">Partekatzea</string>
<string name="share_file">Partekatu %1$s</string>

View file

@ -366,7 +366,6 @@
<string name="pref_behaviour_entries_move">siirretään sovelluskansioon</string>
<string name="pref_behaviour_entries_delete_file">poistettu</string>
<string name="prefs_storage_path">Tallennustilan polku</string>
<string name="prefs_common">Yleinen</string>
<string name="share_dialog_title">Jakaminen</string>
<string name="share_file">Jaa %1$s</string>

View file

@ -471,7 +471,6 @@ Attention la suppression est irréversible.</string>
<string name="pref_behaviour_entries_move">déplacé vers le dossier de l\'application</string>
<string name="pref_behaviour_entries_delete_file">supprimé</string>
<string name="prefs_storage_path">Chemin de stockage</string>
<string name="prefs_common">Commun</string>
<string name="share_dialog_title">Partage</string>
<string name="share_file">Partager %1$s</string>

View file

@ -470,7 +470,6 @@
<string name="pref_behaviour_entries_move">áthelyezve az alkalmazás mappába</string>
<string name="pref_behaviour_entries_delete_file">törölt</string>
<string name="prefs_storage_path">Tároló útvonal</string>
<string name="prefs_common">Általános</string>
<string name="share_dialog_title">Megosztás</string>
<string name="share_file">%1$s megosztása</string>

View file

@ -417,7 +417,6 @@
<string name="pref_behaviour_entries_move">Dipindahkan ke folder aplikasi</string>
<string name="pref_behaviour_entries_delete_file">terhapus</string>
<string name="prefs_storage_path">Jalur penyimpanan</string>
<string name="prefs_common">Umum</string>
<string name="share_dialog_title">Berbagi</string>
<string name="share_file">Bagikan %1$s</string>

View file

@ -463,7 +463,6 @@ Smelltu hér til að fá þér einn frá þjónustuaðila.</string>
<string name="pref_behaviour_entries_move">færð í forritsmöppu</string>
<string name="pref_behaviour_entries_delete_file">eytt</string>
<string name="prefs_storage_path">Slóð á gagnageymslu</string>
<string name="prefs_common">Algengt</string>
<string name="share_dialog_title">Deiling</string>
<string name="share_file">Deila %1$s</string>

View file

@ -469,7 +469,6 @@
<string name="pref_behaviour_entries_move">spostato nella cartella dell\'applicazione</string>
<string name="pref_behaviour_entries_delete_file">eliminato</string>
<string name="prefs_storage_path">Percorso di archiviazione</string>
<string name="prefs_common">Comune</string>
<string name="share_dialog_title">Condivisione</string>
<string name="share_file">Condividi %1$s</string>

View file

@ -334,7 +334,6 @@
<string name="pref_behaviour_entries_move">アプリフォルダに移動</string>
<string name="pref_behaviour_entries_delete_file">削除されました</string>
<string name="prefs_storage_path">ストレージの場所</string>
<string name="prefs_common">共通の</string>
<string name="share_dialog_title">共有</string>
<string name="share_file">%1$s を共有</string>

View file

@ -465,7 +465,6 @@
<string name="pref_behaviour_entries_move">გადატანილია აპლიკაციის დირექტორიაში</string>
<string name="pref_behaviour_entries_delete_file">გაუქმებულია</string>
<string name="prefs_storage_path">საცავის მისამართი</string>
<string name="prefs_common">ჩვეული</string>
<string name="share_dialog_title">გაზიარება</string>
<string name="share_file">%1$s-ის გაზიარება</string>

View file

@ -429,7 +429,6 @@
<string name="pref_behaviour_entries_move">perkelti į app aplanką</string>
<string name="pref_behaviour_entries_delete_file">Ištrintas</string>
<string name="prefs_storage_path">Saugojimo kelias</string>
<string name="prefs_common">Bendras pavadinimas:</string>
<string name="share_dialog_title">Dalijimasis</string>
<string name="share_file">Dalintis %1$s</string>

View file

@ -469,7 +469,6 @@
<string name="pref_behaviour_entries_move">flyttet til program-mappe</string>
<string name="pref_behaviour_entries_delete_file">slettet</string>
<string name="prefs_storage_path">Lagrings-sti</string>
<string name="prefs_common">Felles</string>
<string name="share_dialog_title">Deling</string>
<string name="share_file">Del %1$s</string>

View file

@ -470,7 +470,6 @@ Kies er eentje van een provider.</string>
<string name="pref_behaviour_entries_move">verplaatst worden naar app-map</string>
<string name="pref_behaviour_entries_delete_file">verwijderd worden</string>
<string name="prefs_storage_path">Opslagpad</string>
<string name="prefs_common">Gemeenschappelijk</string>
<string name="share_dialog_title">Delen</string>
<string name="share_file">Deel %1$s</string>

View file

@ -453,7 +453,6 @@
<string name="pref_behaviour_entries_move">przeniesiony do folderu aplikacji</string>
<string name="pref_behaviour_entries_delete_file">usunięty</string>
<string name="prefs_storage_path">Ścieżka przechowywania</string>
<string name="prefs_common">Wspólny</string>
<string name="share_dialog_title">Udostępnianie</string>
<string name="share_file">Współdziel %1$s</string>

View file

@ -469,7 +469,6 @@
<string name="pref_behaviour_entries_move">movido para a pasta aplicativos</string>
<string name="pref_behaviour_entries_delete_file">excluído</string>
<string name="prefs_storage_path">Caminho do armazenamento</string>
<string name="prefs_common">Comum</string>
<string name="share_dialog_title">Compartilhamento</string>
<string name="share_file">Compartilhar %1$s</string>

View file

@ -294,7 +294,6 @@
<string name="pref_behaviour_entries_move">mutate în dosarul aplicației</string>
<string name="pref_behaviour_entries_delete_file">șterge</string>
<string name="prefs_storage_path">Calea către spațiul de depozitare</string>
<string name="prefs_common">General</string>
<string name="share_dialog_title">Partajare</string>
<string name="share_file">Partajare %1$s</string>

View file

@ -477,7 +477,6 @@
<string name="pref_behaviour_entries_move">перемещен в каталог приложения</string>
<string name="pref_behaviour_entries_delete_file">удалён</string>
<string name="prefs_storage_path">Путь к хранилищу</string>
<string name="prefs_common">Основные</string>
<string name="share_dialog_title">Общий доступ</string>
<string name="share_file">Общий ресурс «%1$s»</string>

View file

@ -347,7 +347,6 @@
<string name="pref_behaviour_entries_move">presunuté do aplikačného priečinka</string>
<string name="pref_behaviour_entries_delete_file">vymazané</string>
<string name="prefs_storage_path">Cesta úložiska</string>
<string name="prefs_common">Bežný</string>
<string name="share_dialog_title">Sprístupnenie</string>
<string name="share_file">Sprístupni %1$s</string>

View file

@ -416,7 +416,6 @@
<string name="pref_behaviour_entries_move">premakni v mapo programa</string>
<string name="pref_behaviour_entries_delete_file">pobrisano</string>
<string name="prefs_storage_path">Mesto shrambe</string>
<string name="prefs_common">Splošno</string>
<string name="share_dialog_title">Souporaba</string>
<string name="share_file">Omogoči souporabo %1$s</string>

View file

@ -444,7 +444,6 @@
<string name="pref_behaviour_entries_move">u kalua te dosja e aplikacionit</string>
<string name="pref_behaviour_entries_delete_file">të fshira</string>
<string name="prefs_storage_path">Rruga e hapsirës ruajtëse</string>
<string name="prefs_common">E përbashkët</string>
<string name="share_dialog_title">Ndarje me të tjerët</string>
<string name="share_file">Ndajeni %1$s</string>

View file

@ -473,7 +473,6 @@
<string name="pref_behaviour_entries_move">премештен у фасциклу апликације</string>
<string name="pref_behaviour_entries_delete_file">обрисано</string>
<string name="prefs_storage_path">Путања до складишта</string>
<string name="prefs_common">Опште</string>
<string name="share_dialog_title">Дељење</string>
<string name="share_file">Подели %1$s</string>

View file

@ -421,7 +421,6 @@
<string name="pref_behaviour_entries_move">flyttas till Nextcloud-mapp</string>
<string name="pref_behaviour_entries_delete_file">raderas</string>
<string name="prefs_storage_path">Lagringsplats</string>
<string name="prefs_common">Vanlig</string>
<string name="share_dialog_title">Dela</string>
<string name="share_file">Dela %1$s</string>

View file

@ -469,7 +469,6 @@
<string name="pref_behaviour_entries_move">app klasörüne taşındı</string>
<string name="pref_behaviour_entries_delete_file">silindi</string>
<string name="prefs_storage_path">Depolama yolu</string>
<string name="prefs_common">Genel</string>
<string name="share_dialog_title">Paylaşım</string>
<string name="share_file">%1$s paylaş</string>

View file

@ -437,7 +437,6 @@
<string name="pref_behaviour_entries_move">移动到应用文件夹</string>
<string name="pref_behaviour_entries_delete_file">删除</string>
<string name="prefs_storage_path">存储路径</string>
<string name="prefs_common">普通</string>
<string name="share_dialog_title">共享</string>
<string name="share_file">分享 %1$s</string>

View file

@ -446,7 +446,6 @@
<string name="pref_behaviour_entries_move">移動到應用程式資料夾</string>
<string name="pref_behaviour_entries_delete_file">已刪除</string>
<string name="prefs_storage_path">儲存路徑</string>
<string name="prefs_common">共用</string>
<string name="share_dialog_title">分享</string>
<string name="share_file">分享 %1$s</string>

View file

@ -471,7 +471,6 @@
<string name="pref_behaviour_entries_move">moved to app folder</string>
<string name="pref_behaviour_entries_delete_file">deleted</string>
<string name="prefs_storage_path">Storage path</string>
<string name="prefs_common">Common</string>
<string name="share_dialog_title">Sharing</string>
<string name="share_file">Share %1$s</string>

View file

@ -16,6 +16,7 @@
<string name="default_display_name_for_root_folder">Nextcloud dev</string>
<bool name="logger_enabled">true</bool>
<string name="dev_changelog">https://github.com/nextcloud/android/commits/master</string>
<!--Destination mail for sending log files -->
<string name="mail_logger">android@nextcloud.com</string>