Skip to content

Commit 270297a

Browse files
committed
use dialog
Signed-off-by: alperozturk96 <alper_ozturk@proton.me>
1 parent c993245 commit 270297a

6 files changed

Lines changed: 86 additions & 83 deletions

File tree

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -635,8 +635,7 @@
635635
android:exported="false"
636636
android:label="@string/share_dialog_title"
637637
android:launchMode="singleTop"
638-
android:theme="@style/Theme.ownCloud.Toolbar"
639-
android:windowSoftInputMode="adjustResize">
638+
android:theme="@style/Theme.ownCloud.ShareDialog">
640639
<intent-filter>
641640
<action android:name="android.intent.action.SEARCH" />
642641
</intent-filter>

app/src/main/java/com/nextcloud/client/di/AppModule.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -273,11 +273,10 @@ CertificateValidator certificateValidator() {
273273
@Provides
274274
@Singleton
275275
OverlayManager overlayManager(
276-
SyncedFolderProvider syncedFolderProvider,
277276
AppPreferences appPreferences,
278277
ViewThemeUtils viewThemeUtils,
279278
Context context,
280279
UserAccountManager accountManager) {
281-
return new OverlayManager(syncedFolderProvider, appPreferences, viewThemeUtils, context, accountManager);
280+
return new OverlayManager(appPreferences, viewThemeUtils, context, accountManager);
282281
}
283282
}

app/src/main/java/com/owncloud/android/ui/activity/ShareActivity.kt

Lines changed: 14 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
*/
1414
package com.owncloud.android.ui.activity
1515

16-
import android.content.Intent
1716
import android.os.Bundle
1817
import androidx.lifecycle.lifecycleScope
1918
import com.nextcloud.android.common.ui.theme.utils.ColorRole
@@ -36,10 +35,10 @@ import com.owncloud.android.ui.fragment.FileDetailsSharingProcessFragment
3635
import com.owncloud.android.utils.DisplayUtils
3736
import com.owncloud.android.utils.MimeTypeUtil
3837
import com.owncloud.android.utils.overlay.OverlayManager
39-
import javax.inject.Inject
4038
import kotlinx.coroutines.Dispatchers
4139
import kotlinx.coroutines.launch
4240
import kotlinx.coroutines.withContext
41+
import javax.inject.Inject
4342

4443
class ShareActivity :
4544
FileActivity(),
@@ -56,6 +55,7 @@ class ShareActivity :
5655

5756
val binding = ShareActivityBinding.inflate(layoutInflater)
5857
setContentView(binding.root)
58+
configureDialogWindow()
5959

6060
val currentUser = user.orElse(null) ?: run {
6161
finish()
@@ -74,6 +74,14 @@ class ShareActivity :
7474
}
7575
}
7676

77+
private fun configureDialogWindow() {
78+
val displayMetrics = resources.displayMetrics
79+
window?.setLayout(
80+
(displayMetrics.widthPixels * DIALOG_RATIO).toInt(),
81+
(displayMetrics.heightPixels * DIALOG_RATIO).toInt()
82+
)
83+
}
84+
7785
override fun onStart() {
7886
super.onStart()
7987
Log_OC.d(TAG, "Refreshing lists on account set")
@@ -108,8 +116,8 @@ class ShareActivity :
108116
}
109117

110118
private fun setupHeader(binding: ShareActivityBinding, file: OCFile, user: User) {
111-
binding.shareBackButton.setOnClickListener { navigateToParentFolder(user) }
112-
viewThemeUtils.platform.colorImageView(binding.shareBackButton, ColorRole.ON_SURFACE)
119+
binding.shareCloseButton.setOnClickListener { finish() }
120+
viewThemeUtils.platform.colorImageView(binding.shareCloseButton, ColorRole.ON_SURFACE)
113121
setupFileIcon(binding, file, user)
114122
with(binding) {
115123
shareFileName.text = getString(R.string.share_file, file.fileName)
@@ -151,7 +159,7 @@ class ShareActivity :
151159
lifecycleScope.launch(Dispatchers.IO) {
152160
val result = ReadFileRemoteOperation(file.remotePath).execute(user, this@ShareActivity)
153161
if (result.isSuccess) {
154-
val length = (result.data.first() as RemoteFile).length
162+
val length = (result.data.first() as? RemoteFile)?.length ?: return@launch
155163
file.fileLength = length
156164
withContext(Dispatchers.Main) {
157165
binding.shareFileSize.text = DisplayUtils.bytesToHumanReadable(length)
@@ -177,34 +185,9 @@ class ShareActivity :
177185
private val shareFileFragment: FileDetailSharingFragment?
178186
get() = supportFragmentManager.findFragmentByTag(TAG_SHARE_FRAGMENT) as? FileDetailSharingFragment
179187

180-
private fun navigateToParentFolder(user: User) {
181-
val file = file ?: run {
182-
finish()
183-
return
184-
}
185-
val parentFolder = if (file.isFolder) {
186-
file
187-
} else {
188-
storageManager.getFileByDecryptedRemotePath(file.parentRemotePath)
189-
}
190-
191-
if (parentFolder == null) {
192-
finish()
193-
return
194-
}
195-
196-
Intent(this, FileDisplayActivity::class.java).apply {
197-
addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
198-
putExtra(EXTRA_FILE, parentFolder)
199-
putExtra(EXTRA_USER, user)
200-
}.also {
201-
startActivity(it)
202-
finish()
203-
}
204-
}
205-
206188
companion object {
207189
private val TAG: String = ShareActivity::class.java.simpleName
208190
const val TAG_SHARE_FRAGMENT: String = "SHARE_FRAGMENT"
191+
private const val DIALOG_RATIO = 1.0
209192
}
210193
}

app/src/main/java/com/owncloud/android/utils/overlay/OverlayManager.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import com.owncloud.android.utils.theme.ViewThemeUtils
2424
import javax.inject.Inject
2525

2626
class OverlayManager @Inject constructor(
27-
private val syncedFolderProvider: SyncedFolderProvider,
2827
private val preferences: AppPreferences,
2928
private val viewThemeUtils: ViewThemeUtils,
3029
private val context: Context,

app/src/main/res/layout/share_activity.xml

Lines changed: 63 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -7,76 +7,92 @@
77
~ SPDX-FileCopyrightText: 2015 María Asensio Valverde <masensio@solidgear.es>
88
~ SPDX-License-Identifier: GPL-2.0-only AND (AGPL-3.0-or-later OR GPL-2.0-only)
99
-->
10-
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
10+
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
11+
xmlns:app="http://schemas.android.com/apk/res-auto"
1112
xmlns:tools="http://schemas.android.com/tools"
1213
android:layout_width="match_parent"
1314
android:layout_height="match_parent"
14-
android:orientation="vertical"
15-
android:paddingBottom="@dimen/standard_padding"
15+
android:padding="@dimen/standard_padding"
1616
tools:context="com.owncloud.android.ui.activity.ShareActivity">
1717

18-
<RelativeLayout
19-
android:id="@+id/shareHeaderContainer"
18+
<LinearLayout
19+
android:id="@+id/actionbar"
2020
android:layout_width="match_parent"
2121
android:layout_height="wrap_content"
22-
android:padding="@dimen/standard_padding">
23-
24-
<ImageButton
25-
android:id="@+id/shareBackButton"
26-
android:layout_width="wrap_content"
27-
android:layout_height="wrap_content"
28-
android:layout_alignParentStart="true"
29-
android:layout_centerVertical="true"
30-
android:background="?attr/selectableItemBackgroundBorderless"
31-
android:contentDescription="@string/common_back"
32-
android:src="@drawable/ic_arrow_back" />
22+
android:orientation="horizontal"
23+
android:gravity="center_vertical"
24+
android:paddingHorizontal="@dimen/standard_padding"
25+
android:paddingVertical="@dimen/standard_half_padding"
26+
app:layout_constraintStart_toStartOf="parent"
27+
app:layout_constraintEnd_toEndOf="parent"
28+
app:layout_constraintTop_toTopOf="parent">
3329

3430
<ImageView
3531
android:id="@+id/shareFileIcon"
3632
android:layout_width="@dimen/file_icon_size"
3733
android:layout_height="@dimen/file_icon_size"
38-
android:layout_centerVertical="true"
39-
android:layout_marginStart="@dimen/standard_half_margin"
40-
android:layout_marginEnd="@dimen/standard_half_margin"
41-
android:layout_toEndOf="@+id/shareBackButton"
4234
android:contentDescription="@null"
35+
android:scaleType="centerCrop"
4336
android:src="@drawable/file" />
4437

45-
<TextView
46-
android:id="@+id/shareFileName"
47-
android:layout_width="wrap_content"
38+
<LinearLayout
39+
android:layout_width="0dp"
4840
android:layout_height="wrap_content"
49-
android:layout_marginStart="@dimen/standard_quarter_margin"
50-
android:layout_marginEnd="@dimen/standard_half_margin"
51-
android:layout_toEndOf="@+id/shareFileIcon"
52-
android:ellipsize="middle"
53-
android:singleLine="true"
54-
android:text="@string/placeholder_filename"
55-
android:textColor="@color/text_color"
56-
android:textSize="@dimen/two_line_primary_text_size" />
41+
android:layout_weight="1"
42+
android:layout_marginHorizontal="@dimen/standard_half_margin"
43+
android:orientation="vertical">
5744

58-
<TextView
59-
android:id="@+id/shareFileSize"
60-
android:layout_width="wrap_content"
61-
android:layout_height="wrap_content"
62-
android:layout_below="@+id/shareFileName"
63-
android:layout_gravity="center_vertical"
64-
android:layout_marginStart="@dimen/standard_quarter_margin"
65-
android:layout_toEndOf="@+id/shareFileIcon"
66-
android:text="@string/placeholder_fileSize"
67-
android:textSize="@dimen/share_file_layout_text_size" />
45+
<TextView
46+
android:id="@+id/shareFileName"
47+
android:layout_width="match_parent"
48+
android:layout_height="wrap_content"
49+
android:ellipsize="middle"
50+
android:singleLine="true"
51+
android:text="@string/placeholder_filename"
52+
android:textColor="@color/text_color"
53+
android:textSize="@dimen/two_line_primary_text_size" />
54+
55+
<TextView
56+
android:id="@+id/shareFileSize"
57+
android:layout_width="match_parent"
58+
android:layout_height="wrap_content"
59+
android:text="@string/placeholder_fileSize"
60+
android:textSize="@dimen/share_file_layout_text_size" />
61+
</LinearLayout>
6862

69-
</RelativeLayout>
63+
<ImageButton
64+
android:id="@+id/shareCloseButton"
65+
android:layout_width="@dimen/notification_icon_width"
66+
android:layout_height="@dimen/notification_icon_width"
67+
android:background="?attr/selectableItemBackgroundBorderless"
68+
android:contentDescription="@string/common_back"
69+
android:src="@drawable/ic_close" />
70+
</LinearLayout>
71+
72+
<androidx.constraintlayout.widget.Barrier
73+
android:id="@+id/shareHeaderBarrier"
74+
android:layout_width="wrap_content"
75+
android:layout_height="wrap_content"
76+
app:barrierDirection="bottom"
77+
app:constraint_referenced_ids="actionbar" />
7078

7179
<View
7280
android:id="@+id/share_header_divider"
73-
android:layout_width="match_parent"
81+
android:layout_width="0dp"
7482
android:layout_height="@dimen/standard_eighth_margin"
75-
android:background="@color/primary" />
83+
android:background="@color/primary"
84+
app:layout_constraintEnd_toEndOf="parent"
85+
app:layout_constraintStart_toStartOf="parent"
86+
app:layout_constraintTop_toBottomOf="@id/shareHeaderBarrier" />
7687

7788
<FrameLayout
7889
android:id="@+id/share_fragment_container"
79-
android:layout_width="match_parent"
80-
android:layout_height="match_parent" />
90+
android:layout_width="0dp"
91+
android:layout_height="0dp"
92+
tools:visibility="gone"
93+
app:layout_constraintBottom_toBottomOf="parent"
94+
app:layout_constraintEnd_toEndOf="parent"
95+
app:layout_constraintStart_toStartOf="parent"
96+
app:layout_constraintTop_toBottomOf="@id/share_header_divider" />
8197

82-
</LinearLayout>
98+
</androidx.constraintlayout.widget.ConstraintLayout>

app/src/main/res/values/styles.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,13 @@
294294
<item name="colorAccent">@color/color_accent</item>
295295
</style>
296296

297+
<style name="Theme.ownCloud.ShareDialog" parent="@style/Theme.ownCloud.Dialog.NoTitle">
298+
<item name="android:windowIsFloating">true</item>
299+
<item name="android:windowSoftInputMode">adjustResize</item>
300+
<item name="android:windowMinWidthMajor">100%</item>
301+
<item name="android:windowMinWidthMinor">100%</item>
302+
</style>
303+
297304
<style name="NavigationView_ItemTextAppearance">
298305
<item name="android:ellipsize">end</item>
299306
<item name="android:listDivider">@color/transparent</item>

0 commit comments

Comments
 (0)