Merge remote-tracking branch 'origin/master' into dev

This commit is contained in:
Tobias Kaminsky 2024-08-20 02:32:20 +02:00
commit 8ba06d8024
10 changed files with 375 additions and 210 deletions

View file

@ -104,6 +104,7 @@ android {
}
defaultConfig {
applicationId "com.nextcloud.client"
minSdkVersion 24
targetSdkVersion 34
compileSdk 34
@ -352,7 +353,7 @@ dependencies {
kapt "io.noties:prism4j-bundler:$prismVersion"
// dependencies for image cropping and rotation
implementation 'com.vanniktech:android-image-cropper:4.5.0'
implementation 'com.vanniktech:android-image-cropper:4.6.0'
implementation 'org.osmdroid:osmdroid-android:6.1.18'

View file

@ -148,26 +148,93 @@
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/users_and_groups_searchable" />
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" />
<data android:host="*" />
<data android:pathPattern="/f/..*" />
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" />
<data android:host="*" />
<data android:pathPattern="/..*/f/..*" />
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" />
<data android:host="*" />
<data android:pathPattern="/..*/..*/f/..*" />
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" />
<data android:host="*" />
<data android:pathPattern="/..*/..*/..*/f/..*" />
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" />
<data android:host="*" />
<data android:pathPattern="/f/..*" />
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" />
<data android:host="*" />
<data android:pathPattern="/..*/f/..*" />
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" />
<data android:host="*" />
<data android:pathPattern="/..*/..*/f/..*" />
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" />
<data android:host="*" />
<data android:pathPattern="/..*/..*/..*/f/..*" />
<!-- path pattern to handle deep link -->
<data android:pathPattern="/app/..*" />
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/users_and_groups_searchable" />
</activity>
<activity
android:name=".ui.activity.ManageAccountsActivity"

View file

@ -237,7 +237,7 @@ public class InputStreamBinder extends IInputStreamService.Stub {
case "POST":
method = new PostMethod(requestUrl);
if (requestBodyInputStream != null) {
RequestEntity requestEntity = new InputStreamRequestEntity(requestBodyInputStream);
RequestEntity requestEntity = new InputStreamRequestEntity(requestBodyInputStream, -1);
((PostMethod) method).setRequestEntity(requestEntity);
} else if (request.getRequestBody() != null) {
StringRequestEntity requestEntity = new StringRequestEntity(
@ -251,7 +251,7 @@ public class InputStreamBinder extends IInputStreamService.Stub {
case "PATCH":
method = new PatchMethod(requestUrl);
if (requestBodyInputStream != null) {
RequestEntity requestEntity = new InputStreamRequestEntity(requestBodyInputStream);
RequestEntity requestEntity = new InputStreamRequestEntity(requestBodyInputStream, -1);
((PatchMethod) method).setRequestEntity(requestEntity);
} else if (request.getRequestBody() != null) {
StringRequestEntity requestEntity = new StringRequestEntity(
@ -265,7 +265,7 @@ public class InputStreamBinder extends IInputStreamService.Stub {
case "PUT":
method = new PutMethod(requestUrl);
if (requestBodyInputStream != null) {
RequestEntity requestEntity = new InputStreamRequestEntity(requestBodyInputStream);
RequestEntity requestEntity = new InputStreamRequestEntity(requestBodyInputStream, -1);
((PutMethod) method).setRequestEntity(requestEntity);
} else if (request.getRequestBody() != null) {
StringRequestEntity requestEntity = new StringRequestEntity(

View file

@ -317,22 +317,26 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
mIsFirstAuthAttempt = savedInstanceState.getBoolean(KEY_AUTH_IS_FIRST_ATTEMPT_TAG);
}
boolean webViewLoginMethod;
boolean webViewLoginMethod = false;
String webloginUrl = null;
if (MainApp.isClientBrandedPlus()) {
RestrictionsManager restrictionsManager = (RestrictionsManager) getSystemService(Context.RESTRICTIONS_SERVICE);
AppConfigManager appConfigManager = new AppConfigManager(this, restrictionsManager.getApplicationRestrictions());
webloginUrl = appConfigManager.getBaseUrl(MainApp.isClientBrandedPlus());
if (!TextUtils.isEmpty(appConfigManager.getBaseUrl(MainApp.isClientBrandedPlus()))) {
webloginUrl = appConfigManager.getBaseUrl(MainApp.isClientBrandedPlus()) + WEB_LOGIN;
}
}
if (webloginUrl != null) {
if (!TextUtils.isEmpty(webloginUrl)) {
webViewLoginMethod = true;
} else if (getIntent().getBooleanExtra(EXTRA_USE_PROVIDER_AS_WEBLOGIN, false)) {
webViewLoginMethod = true;
webloginUrl = getString(R.string.provider_registration_server);
} else {
webViewLoginMethod = !TextUtils.isEmpty(getResources().getString(R.string.webview_login_url));
} else if (!TextUtils.isEmpty(getResources().getString(R.string.webview_login_url))) {
webViewLoginMethod = true;
webloginUrl = getResources().getString(R.string.webview_login_url);
showWebViewLoginUrl = getResources().getBoolean(R.bool.show_server_url_input);
}

View file

@ -35,6 +35,7 @@ import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
import android.os.Parcelable;
import android.provider.Settings;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuInflater;
@ -521,7 +522,8 @@ public class FileDisplayActivity extends FileActivity
} else if (RESTART.equals(intent.getAction())) {
finish();
startActivity(intent);
} else // Verify the action and get the query
} else {
// Verify the action and get the query
if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
setIntent(intent);
@ -563,6 +565,9 @@ public class FileDisplayActivity extends FileActivity
setLeftFragment(new GroupfolderListFragment());
getSupportFragmentManager().executePendingTransactions();
} else {
handleOpenFileViaIntent(intent);
}
}
}
@ -2345,7 +2350,6 @@ public class FileDisplayActivity extends FileActivity
@Override
protected void onRestart() {
super.onRestart();
checkForNewDevVersionNecessary(getApplicationContext());
}

View file

@ -368,6 +368,7 @@
<string name="file_list_empty_headline">目前沒有檔案</string>
<string name="file_list_empty_headline_search">在這資料夾中沒有結果</string>
<string name="file_list_empty_headline_server_search">沒有符合搜尋的項目</string>
<string name="file_list_empty_local_search">沒有檔案或資料夾符合您的搜尋</string>
<string name="file_list_empty_moving">這裡空無一物。您可以新增一個資料夾。</string>
<string name="file_list_empty_on_device">已下載的檔案跟資料夾會顯示在這裡。</string>
<string name="file_list_empty_recently_modified">沒有找到最近7日修改的檔案</string>

View file

@ -16,7 +16,7 @@ buildscript {
androidxTestVersion = "1.6.1"
appCompatVersion = '1.7.0'
checkerVersion = "3.21.2"
daggerVersion = "2.51.1"
daggerVersion = "2.52"
documentScannerVersion = "1.1.1"
espressoVersion = "3.6.1"
fidoVersion = "4.1.0-patch2"
@ -28,7 +28,7 @@ buildscript {
mockkVersion = "1.13.12"
prismVersion = "2.0.0"
roomVersion = "2.6.1"
workRuntime = "2.9.0"
workRuntime = "2.9.1"
ciBuild = System.getenv("CI") == "true"
shotTest = System.getenv("SHOT_TEST") == "true"

File diff suppressed because it is too large Load diff

View file

@ -9,6 +9,7 @@
<trust file=".*-sources[.]jar" regex="true"/>
</trusted-artifacts>
<ignored-keys>
<ignored-key id="0AA3E5C3D232E79B" reason="Key couldn't be downloaded from any key server"/>
<ignored-key id="23778689FBFBE047" reason="Key couldn't be downloaded from any key server"/>
</ignored-keys>
<trusted-keys>
@ -108,6 +109,7 @@
<trusting group="pl.droidsonroids.gif" name="android-gif-drawable" version="1.2.28"/>
</trusted-key>
<trusted-key id="3F2A008A91D11A7FAC4A0786F13D3E721D56BD54" group="org.reflections" name="reflections" version="0.10.2"/>
<trusted-key id="4021EEEAFF5DE8404DCD0A270AA3E5C3D232E79B" group="jakarta.inject" name="jakarta.inject-api" version="2.0.1"/>
<trusted-key id="44F4797A52C336FA666CD9271DE461528F1F1B2A" group="org.apache.jackrabbit"/>
<trusted-key id="44FBDBBC1A00FE414F1C1873586654072EAD6677" group="org.sonatype.oss" name="oss-parent" version="9"/>
<trusted-key id="453EA31328DE7D8AAA55AD4ED56C721C1CFF1424" group="^com[.]twelvemonkeys($|([.].*))" regex="true"/>
@ -242,6 +244,7 @@
<trusted-key id="A42FEF087AF29AE864684EAEE6039456D5BBD4F8" group="io.fabric8" name="kubernetes-client-bom" version="5.12.4"/>
<trusted-key id="A5BD02B93E7A40482EB1D66A5F69AD087600B22C" group="org.ow2.asm"/>
<trusted-key id="A5F483CD733A4EBAEA378B2AE88979FB9B30ACF2">
<trusting group="androidx.activity"/>
<trusting group="androidx.annotation"/>
<trusting group="androidx.appcompat"/>
<trusting group="androidx.core"/>
@ -250,6 +253,7 @@
<trusting group="androidx.lifecycle"/>
<trusting group="androidx.transition" name="transition" version="1.5.0"/>
<trusting group="androidx.webkit" name="webkit" version="1.11.0"/>
<trusting group="androidx.work"/>
<trusting group="^androidx[.]compose($|([.].*))" regex="true"/>
<trusting group="^androidx[.]test($|([.].*))" regex="true"/>
<trusting group="^com[.]android($|([.].*))" regex="true"/>
@ -1115,6 +1119,11 @@
<sha256 value="1b96c8eb10c4b40283fdd6e9aa74ffff05fae4f15d54f61ba69d517fcd144695" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.core" name="core" version="1.13.1">
<artifact name="core-1.13.1.aar">
<sha256 value="2c27de199535675005553066597a4b20fa1eea7c228ab4ef6b32b5fe39ca1f59" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.core" name="core" version="1.2.0">
<artifact name="core-1.2.0.aar">
<sha256 value="524b8b88ceb6a74a7e44e6b567a135660f211799904cb218bfee5be1166820b2" origin="Generated by Gradle" reason="Artifact is not signed"/>
@ -9011,6 +9020,14 @@
<sha256 value="42585cb07dda7f23aa04eb5e0940061944a246a67ad3d16942fbe569ff03cd31" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="jakarta.inject" name="jakarta.inject-api" version="2.0.1">
<artifact name="jakarta.inject-api-2.0.1.jar">
<sha256 value="f7dc98062fccf14126abb751b64fab12c312566e8cbdc8483598bffcea93af7c" origin="Generated by Gradle" reason="A key couldn't be downloaded"/>
</artifact>
<artifact name="jakarta.inject-api-2.0.1.pom">
<sha256 value="e7fd7232e96307a575b2494c9367d68cf43ec98244aace3ccc23e1773ffa6fda" origin="Generated by Gradle" reason="A key couldn't be downloaded"/>
</artifact>
</component>
<component group="jakarta.platform" name="jakarta.jakartaee-bom" version="9.1.0">
<artifact name="jakarta.jakartaee-bom-9.1.0.pom">
<sha256 value="df98e0266219fdbb82562826d79a3a20776a8ba02aa787f0f0765a538654c8a4" origin="Generated by Gradle"/>