Skip to content

Commit fb6b11f

Browse files
Use product name on rich document, if available (#3971)
Use product name on rich document, if available
2 parents 9b0a789 + 4197d3b commit fb6b11f

File tree

8 files changed

+51
-14
lines changed

8 files changed

+51
-14
lines changed

build.gradle

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ configurations.all {
4848

4949
ext {
5050
jacocoVersion = "0.8.2"
51+
androidLibraryVersion = "master-SNAPSHOT"
5152

5253
travisBuild = System.getenv("TRAVIS") == "true"
5354

@@ -236,10 +237,10 @@ dependencies {
236237
// dependencies for app building
237238
implementation 'androidx.multidex:multidex:2.0.1'
238239
// implementation project('nextcloud-android-library')
239-
genericImplementation 'com.github.nextcloud:android-library:master-SNAPSHOT'
240-
gplayImplementation 'com.github.nextcloud:android-library:master-SNAPSHOT'
241-
versionDevImplementation 'com.github.nextcloud:android-library:master-SNAPSHOT'
242-
qaImplementation 'com.github.nextcloud:android-library:master-SNAPSHOT'
240+
genericImplementation "com.github.nextcloud:android-library:$androidLibraryVersion"
241+
gplayImplementation "com.github.nextcloud:android-library:$androidLibraryVersion"
242+
versionDevImplementation "com.github.nextcloud:android-library:$androidLibraryVersion"
243+
qaImplementation "com.github.nextcloud:android-library:$androidLibraryVersion"
243244
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
244245
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
245246
implementation 'com.google.android.material:material:1.0.0'

scripts/analysis/analysis-wrapper.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,10 @@ else
5555

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

src/main/java/com/owncloud/android/datamodel/FileDataStorageManager.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1969,6 +1969,7 @@ public OCCapability saveCapabilities(OCCapability capability) {
19691969
.getValue());
19701970
cv.put(ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_TEMPLATES, capability.getRichDocumentsTemplatesAvailable()
19711971
.getValue());
1972+
cv.put(ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_PRODUCT_NAME, capability.getRichDocumentsProductName());
19721973

19731974
if (capabilityExists(account.name)) {
19741975
if (getContentResolver() != null) {
@@ -2146,6 +2147,8 @@ private OCCapability createCapabilityInstance(Cursor c) {
21462147
optionalMimetypes = "";
21472148
}
21482149
capability.setRichDocumentsOptionalMimeTypeList(Arrays.asList(optionalMimetypes.split(",")));
2150+
capability.setRichDocumentsProductName(
2151+
c.getString(c.getColumnIndex(ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_PRODUCT_NAME)));
21492152
}
21502153
return capability;
21512154
}

src/main/java/com/owncloud/android/db/ProviderMeta.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
*/
3232
public class ProviderMeta {
3333
public static final String DB_NAME = "filelist";
34-
public static final int DB_VERSION = 47;
34+
public static final int DB_VERSION = 48;
3535

3636
private ProviderMeta() {
3737
// No instance
@@ -190,6 +190,7 @@ static public class ProviderTableMeta implements BaseColumns {
190190
"richdocument_optional_mimetype_list";
191191
public static final String CAPABILITIES_RICHDOCUMENT_DIRECT_EDITING = "richdocument_direct_editing";
192192
public static final String CAPABILITIES_RICHDOCUMENT_TEMPLATES = "richdocument_direct_templates";
193+
public static final String CAPABILITIES_RICHDOCUMENT_PRODUCT_NAME = "richdocument_product_name";
193194

194195
public static final String CAPABILITIES_DEFAULT_SORT_ORDER = CAPABILITIES_ACCOUNT_NAME
195196
+ " collate nocase asc";

src/main/java/com/owncloud/android/files/FileMenuFilter.java

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ public void filter(Menu menu, boolean inSingleFileFragment) {
106106
List<Integer> toShow = new ArrayList<>();
107107
List<Integer> toHide = new ArrayList<>();
108108

109-
filter(toShow, toHide, inSingleFileFragment);
109+
filter(toShow, toHide, inSingleFileFragment, menu);
110110

111111
for (int i : toShow) {
112112
showMenuItem(menu.findItem(i));
@@ -162,7 +162,7 @@ public static void hideMenuItems(MenuItem... items) {
162162
* @param toHide List to save the options that must be shown in the menu.
163163
* @param inSingleFileFragment True if this is not listing, but single file fragment, like preview or details.
164164
*/
165-
private void filter(List<Integer> toShow, List<Integer> toHide, boolean inSingleFileFragment) {
165+
private void filter(List<Integer> toShow, List<Integer> toHide, boolean inSingleFileFragment, Menu menu) {
166166
boolean synchronizing = anyFileSynchronizing();
167167
OCCapability capability = mComponentsGetter.getStorageManager().getCapability(mAccount.name);
168168
boolean endToEndEncryptionEnabled = capability.getEndToEndEncryption().isTrue();
@@ -184,7 +184,7 @@ private void filter(List<Integer> toShow, List<Integer> toHide, boolean inSingle
184184
filterUnsetEncrypted(toShow, toHide, endToEndEncryptionEnabled);
185185
filterSetPictureAs(toShow, toHide);
186186
filterStream(toShow, toHide);
187-
filterOpenAsRichDocument(toShow, toHide, capability);
187+
filterOpenAsRichDocument(toShow, toHide, capability, menu);
188188
}
189189

190190
private void filterShareFile(List<Integer> toShow, List<Integer> toHide, OCCapability capability) {
@@ -247,12 +247,25 @@ private void filterSetPictureAs(List<Integer> toShow, List<Integer> toHide) {
247247
}
248248
}
249249

250-
private void filterOpenAsRichDocument(List<Integer> toShow, List<Integer> toHide, OCCapability capability) {
250+
private void filterOpenAsRichDocument(List<Integer> toShow,
251+
List<Integer> toHide,
252+
OCCapability capability,
253+
Menu menu) {
251254
String mimeType = mFiles.iterator().next().getMimeType();
255+
252256
if (isSingleFile() && android.os.Build.VERSION.SDK_INT >= RichDocumentsWebView.MINIMUM_API &&
253257
(capability.getRichDocumentsMimeTypeList().contains(mimeType) ||
254258
capability.getRichDocumentsOptionalMimeTypeList().contains(mimeType)) &&
255259
capability.getRichDocumentsDirectEditing().isTrue()) {
260+
261+
String openWith = mContext.getResources().getString(R.string.actionbar_open_as_richdocument_parameter);
262+
String productName = capability.getRichDocumentsProductName();
263+
MenuItem item = menu.findItem(R.id.action_open_file_as_richdocument);
264+
265+
if (item != null) {
266+
item.setTitle(String.format(openWith, productName));
267+
}
268+
256269
toShow.add(R.id.action_open_file_as_richdocument);
257270
} else {
258271
toHide.add(R.id.action_open_file_as_richdocument);

src/main/java/com/owncloud/android/providers/FileContentProvider.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -771,7 +771,8 @@ private void createCapabilitiesTable(SQLiteDatabase db) {
771771
+ ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_DIRECT_EDITING + INTEGER
772772
+ ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_TEMPLATES + INTEGER
773773
+ ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_OPTIONAL_MIMETYPE_LIST + TEXT
774-
+ ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_ASK_FOR_OPTIONAL_PASSWORD + " INTEGER );");
774+
+ ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_ASK_FOR_OPTIONAL_PASSWORD + INTEGER
775+
+ ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_PRODUCT_NAME + " TEXT );");
775776
}
776777

777778
private void createUploadsTable(SQLiteDatabase db) {
@@ -1966,6 +1967,24 @@ public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
19661967
if (!upgraded) {
19671968
Log_OC.i(SQL, String.format(Locale.ENGLISH, UPGRADE_VERSION_MSG, oldVersion, newVersion));
19681969
}
1970+
1971+
if (oldVersion < 48 && newVersion >= 48) {
1972+
Log_OC.i(SQL, "Entering in the #48 add product name to capabilities table");
1973+
db.beginTransaction();
1974+
try {
1975+
db.execSQL(ALTER_TABLE + ProviderTableMeta.CAPABILITIES_TABLE_NAME +
1976+
ADD_COLUMN + ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_PRODUCT_NAME + " TEXT ");
1977+
1978+
upgraded = true;
1979+
db.setTransactionSuccessful();
1980+
} finally {
1981+
db.endTransaction();
1982+
}
1983+
}
1984+
1985+
if (!upgraded) {
1986+
Log_OC.i(SQL, String.format(Locale.ENGLISH, UPGRADE_VERSION_MSG, oldVersion, newVersion));
1987+
}
19691988
}
19701989

19711990
@Override

src/main/res/menu/file_actions_menu.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@
8686

8787
<item
8888
android:id="@+id/action_open_file_as_richdocument"
89-
android:title="@string/actionbar_open_as_richdocument"
89+
android:title="@string/actionbar_open_as_richdocument_parameter"
9090
app:showAsAction="never"
9191
android:showAsAction="never"/>
9292

src/main/res/values/strings.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -794,7 +794,7 @@
794794
<string name="stream_not_possible_headline">Internal streaming not possible</string>
795795
<string name="stream_not_possible_message">Please download media instead or use external app.</string>
796796
<string name="folder_already_exists">Folder already exists</string>
797-
<string name="actionbar_open_as_richdocument">Open with Collabora</string>
797+
<string name="actionbar_open_as_richdocument_parameter">Open with %1$s</string>
798798
<string name="notification_icon">Notification icon</string>
799799
<string name="folder_confirm_create">Create</string>
800800
<string name="file_delete">Delete</string>

0 commit comments

Comments
 (0)