Use product name on rich document, if available

use placeholder for string
reset to master-snapshot
fix analysis warning
use new translatable string
use var vor qa flavor too

Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
This commit is contained in:
tobiasKaminsky 2019-05-07 17:00:22 +02:00
parent 9b0a789d3b
commit 403a3e062c
No known key found for this signature in database
GPG key ID: 0E00D4D47D0C5AF7
8 changed files with 51 additions and 14 deletions

View file

@ -48,6 +48,7 @@ configurations.all {
ext { ext {
jacocoVersion = "0.8.2" jacocoVersion = "0.8.2"
androidLibraryVersion = "master-SNAPSHOT"
travisBuild = System.getenv("TRAVIS") == "true" travisBuild = System.getenv("TRAVIS") == "true"
@ -236,10 +237,10 @@ dependencies {
// dependencies for app building // dependencies for app building
implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.multidex:multidex:2.0.1'
// implementation project('nextcloud-android-library') // implementation project('nextcloud-android-library')
genericImplementation 'com.github.nextcloud:android-library:master-SNAPSHOT' genericImplementation "com.github.nextcloud:android-library:$androidLibraryVersion"
gplayImplementation 'com.github.nextcloud:android-library:master-SNAPSHOT' gplayImplementation "com.github.nextcloud:android-library:$androidLibraryVersion"
versionDevImplementation 'com.github.nextcloud:android-library:master-SNAPSHOT' versionDevImplementation "com.github.nextcloud:android-library:$androidLibraryVersion"
qaImplementation 'com.github.nextcloud:android-library:master-SNAPSHOT' qaImplementation 'com.github.nextcloud:android-library:$androidLibraryVersion'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.google.android.material:material:1.0.0' implementation 'com.google.android.material:material:1.0.0'

View file

@ -55,10 +55,10 @@ else
# check library, only if base branch is master # check library, only if base branch is master
baseBranch=$(scripts/analysis/getBranchBase.sh $1 $2 $7 | tr -d "\"") baseBranch=$(scripts/analysis/getBranchBase.sh $1 $2 $7 | tr -d "\"")
if [ $baseBranch = "master" -a $(grep "android-library:master" build.gradle -c) -ne 4 ]; then if [ $baseBranch = "master" -a $(grep "androidLibraryVersion = \"master-SNAPSHOT\"" build.gradle -c) -ne 1 ]; then
checkLibraryMessage="<h1>Android-library is not set to master branch in build.gradle</h1>" checkLibraryMessage="<h1>Android-library is not set to master branch in build.gradle</h1>"
checkLibrary=1 checkLibrary=1
elif [ $baseBranch != "master" -a $baseBranch = $stableBranch -a $(grep "android-library:.*SNAPSHOT" build.gradle -c) -ne 0 ]; then elif [ $baseBranch != "master" -a $baseBranch = $stableBranch -a $(grep "androidLibraryVersion.*SNAPSHOT" build.gradle -c) -ne 0 ]; then
checkLibraryMessage="<h1>Android-library is set to a SNAPSHOT in build.gradle</h1>" checkLibraryMessage="<h1>Android-library is set to a SNAPSHOT in build.gradle</h1>"
checkLibrary=1 checkLibrary=1
else else

View file

@ -1969,6 +1969,7 @@ public class FileDataStorageManager {
.getValue()); .getValue());
cv.put(ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_TEMPLATES, capability.getRichDocumentsTemplatesAvailable() cv.put(ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_TEMPLATES, capability.getRichDocumentsTemplatesAvailable()
.getValue()); .getValue());
cv.put(ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_PRODUCT_NAME, capability.getRichDocumentsProductName());
if (capabilityExists(account.name)) { if (capabilityExists(account.name)) {
if (getContentResolver() != null) { if (getContentResolver() != null) {
@ -2146,6 +2147,8 @@ public class FileDataStorageManager {
optionalMimetypes = ""; optionalMimetypes = "";
} }
capability.setRichDocumentsOptionalMimeTypeList(Arrays.asList(optionalMimetypes.split(","))); capability.setRichDocumentsOptionalMimeTypeList(Arrays.asList(optionalMimetypes.split(",")));
capability.setRichDocumentsProductName(
c.getString(c.getColumnIndex(ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_PRODUCT_NAME)));
} }
return capability; return capability;
} }

View file

@ -31,7 +31,7 @@ import com.owncloud.android.MainApp;
*/ */
public class ProviderMeta { public class ProviderMeta {
public static final String DB_NAME = "filelist"; public static final String DB_NAME = "filelist";
public static final int DB_VERSION = 47; public static final int DB_VERSION = 48;
private ProviderMeta() { private ProviderMeta() {
// No instance // No instance
@ -190,6 +190,7 @@ public class ProviderMeta {
"richdocument_optional_mimetype_list"; "richdocument_optional_mimetype_list";
public static final String CAPABILITIES_RICHDOCUMENT_DIRECT_EDITING = "richdocument_direct_editing"; public static final String CAPABILITIES_RICHDOCUMENT_DIRECT_EDITING = "richdocument_direct_editing";
public static final String CAPABILITIES_RICHDOCUMENT_TEMPLATES = "richdocument_direct_templates"; public static final String CAPABILITIES_RICHDOCUMENT_TEMPLATES = "richdocument_direct_templates";
public static final String CAPABILITIES_RICHDOCUMENT_PRODUCT_NAME = "richdocument_product_name";
public static final String CAPABILITIES_DEFAULT_SORT_ORDER = CAPABILITIES_ACCOUNT_NAME public static final String CAPABILITIES_DEFAULT_SORT_ORDER = CAPABILITIES_ACCOUNT_NAME
+ " collate nocase asc"; + " collate nocase asc";

View file

@ -106,7 +106,7 @@ public class FileMenuFilter {
List<Integer> toShow = new ArrayList<>(); List<Integer> toShow = new ArrayList<>();
List<Integer> toHide = new ArrayList<>(); List<Integer> toHide = new ArrayList<>();
filter(toShow, toHide, inSingleFileFragment); filter(toShow, toHide, inSingleFileFragment, menu);
for (int i : toShow) { for (int i : toShow) {
showMenuItem(menu.findItem(i)); showMenuItem(menu.findItem(i));
@ -162,7 +162,7 @@ public class FileMenuFilter {
* @param toHide List to save the options that must be shown in the menu. * @param toHide List to save the options that must be shown in the menu.
* @param inSingleFileFragment True if this is not listing, but single file fragment, like preview or details. * @param inSingleFileFragment True if this is not listing, but single file fragment, like preview or details.
*/ */
private void filter(List<Integer> toShow, List<Integer> toHide, boolean inSingleFileFragment) { private void filter(List<Integer> toShow, List<Integer> toHide, boolean inSingleFileFragment, Menu menu) {
boolean synchronizing = anyFileSynchronizing(); boolean synchronizing = anyFileSynchronizing();
OCCapability capability = mComponentsGetter.getStorageManager().getCapability(mAccount.name); OCCapability capability = mComponentsGetter.getStorageManager().getCapability(mAccount.name);
boolean endToEndEncryptionEnabled = capability.getEndToEndEncryption().isTrue(); boolean endToEndEncryptionEnabled = capability.getEndToEndEncryption().isTrue();
@ -184,7 +184,7 @@ public class FileMenuFilter {
filterUnsetEncrypted(toShow, toHide, endToEndEncryptionEnabled); filterUnsetEncrypted(toShow, toHide, endToEndEncryptionEnabled);
filterSetPictureAs(toShow, toHide); filterSetPictureAs(toShow, toHide);
filterStream(toShow, toHide); filterStream(toShow, toHide);
filterOpenAsRichDocument(toShow, toHide, capability); filterOpenAsRichDocument(toShow, toHide, capability, menu);
} }
private void filterShareFile(List<Integer> toShow, List<Integer> toHide, OCCapability capability) { private void filterShareFile(List<Integer> toShow, List<Integer> toHide, OCCapability capability) {
@ -247,12 +247,25 @@ public class FileMenuFilter {
} }
} }
private void filterOpenAsRichDocument(List<Integer> toShow, List<Integer> toHide, OCCapability capability) { private void filterOpenAsRichDocument(List<Integer> toShow,
List<Integer> toHide,
OCCapability capability,
Menu menu) {
String mimeType = mFiles.iterator().next().getMimeType(); String mimeType = mFiles.iterator().next().getMimeType();
if (isSingleFile() && android.os.Build.VERSION.SDK_INT >= RichDocumentsWebView.MINIMUM_API && if (isSingleFile() && android.os.Build.VERSION.SDK_INT >= RichDocumentsWebView.MINIMUM_API &&
(capability.getRichDocumentsMimeTypeList().contains(mimeType) || (capability.getRichDocumentsMimeTypeList().contains(mimeType) ||
capability.getRichDocumentsOptionalMimeTypeList().contains(mimeType)) && capability.getRichDocumentsOptionalMimeTypeList().contains(mimeType)) &&
capability.getRichDocumentsDirectEditing().isTrue()) { capability.getRichDocumentsDirectEditing().isTrue()) {
String openWith = mContext.getResources().getString(R.string.actionbar_open_as_richdocument_parameter);
String productName = capability.getRichDocumentsProductName();
MenuItem item = menu.findItem(R.id.action_open_file_as_richdocument);
if (item != null) {
item.setTitle(String.format(openWith, productName));
}
toShow.add(R.id.action_open_file_as_richdocument); toShow.add(R.id.action_open_file_as_richdocument);
} else { } else {
toHide.add(R.id.action_open_file_as_richdocument); toHide.add(R.id.action_open_file_as_richdocument);

View file

@ -771,7 +771,8 @@ public class FileContentProvider extends ContentProvider {
+ ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_DIRECT_EDITING + INTEGER + ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_DIRECT_EDITING + INTEGER
+ ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_TEMPLATES + INTEGER + ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_TEMPLATES + INTEGER
+ ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_OPTIONAL_MIMETYPE_LIST + TEXT + ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_OPTIONAL_MIMETYPE_LIST + TEXT
+ ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_ASK_FOR_OPTIONAL_PASSWORD + " INTEGER );"); + ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_ASK_FOR_OPTIONAL_PASSWORD + INTEGER
+ ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_PRODUCT_NAME + " TEXT );");
} }
private void createUploadsTable(SQLiteDatabase db) { private void createUploadsTable(SQLiteDatabase db) {
@ -1966,6 +1967,24 @@ public class FileContentProvider extends ContentProvider {
if (!upgraded) { if (!upgraded) {
Log_OC.i(SQL, String.format(Locale.ENGLISH, UPGRADE_VERSION_MSG, oldVersion, newVersion)); Log_OC.i(SQL, String.format(Locale.ENGLISH, UPGRADE_VERSION_MSG, oldVersion, newVersion));
} }
if (oldVersion < 48 && newVersion >= 48) {
Log_OC.i(SQL, "Entering in the #48 add product name to capabilities table");
db.beginTransaction();
try {
db.execSQL(ALTER_TABLE + ProviderTableMeta.CAPABILITIES_TABLE_NAME +
ADD_COLUMN + ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_PRODUCT_NAME + " TEXT ");
upgraded = true;
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
}
if (!upgraded) {
Log_OC.i(SQL, String.format(Locale.ENGLISH, UPGRADE_VERSION_MSG, oldVersion, newVersion));
}
} }
@Override @Override

View file

@ -86,7 +86,7 @@
<item <item
android:id="@+id/action_open_file_as_richdocument" android:id="@+id/action_open_file_as_richdocument"
android:title="@string/actionbar_open_as_richdocument" android:title="@string/actionbar_open_as_richdocument_parameter"
app:showAsAction="never" app:showAsAction="never"
android:showAsAction="never"/> android:showAsAction="never"/>

View file

@ -794,7 +794,7 @@
<string name="stream_not_possible_headline">Internal streaming not possible</string> <string name="stream_not_possible_headline">Internal streaming not possible</string>
<string name="stream_not_possible_message">Please download media instead or use external app.</string> <string name="stream_not_possible_message">Please download media instead or use external app.</string>
<string name="folder_already_exists">Folder already exists</string> <string name="folder_already_exists">Folder already exists</string>
<string name="actionbar_open_as_richdocument">Open with Collabora</string> <string name="actionbar_open_as_richdocument_parameter">Open with %1$s</string>
<string name="notification_icon">Notification icon</string> <string name="notification_icon">Notification icon</string>
<string name="folder_confirm_create">Create</string> <string name="folder_confirm_create">Create</string>
<string name="file_delete">Delete</string> <string name="file_delete">Delete</string>