Skip to content

Commit de5a3a1

Browse files
committed
show button to browse the repository, when cloning is complete.
1 parent d6e8bf0 commit de5a3a1

File tree

4 files changed

+57
-4
lines changed

4 files changed

+57
-4
lines changed

mobile/src/main/java/io/syslogic/github/dialog/ProgressDialogFragment.java

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package io.syslogic.github.dialog;
22

3+
import android.content.Intent;
4+
import android.net.Uri;
35
import android.os.Bundle;
46
import android.util.Log;
57
import android.view.LayoutInflater;
@@ -33,6 +35,7 @@ public class ProgressDialogFragment extends BaseDialogFragment implements Progre
3335
DialogProgressBinding mDataBinding;
3436

3537
private String repoName = null;
38+
private String localPath = null;
3639
private boolean taskCancelled = false;
3740
@SuppressWarnings("FieldCanBeLocal")
3841
private final int totalTasks = 6;
@@ -49,19 +52,31 @@ public ProgressDialogFragment() {}
4952
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
5053
this.mDataBinding = DialogProgressBinding.inflate(inflater, container, false);
5154
this.mDataBinding.repositoryName.setText(this.repoName);
55+
this.mDataBinding.buttonClose.setOnClickListener((view) -> this.dismiss());
56+
this.mDataBinding.buttonBrowse.setOnClickListener((view) -> this.browseRepo());
5257
this.mDataBinding.buttonCancel.setOnClickListener((view) -> this.taskCancelled = true);
5358
return this.mDataBinding.getRoot();
5459
}
5560

61+
private void browseRepo() {
62+
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
63+
intent.setDataAndType(Uri.parse(this.localPath), "file/*");
64+
startActivity(intent);
65+
}
66+
5667
/** Being called early on... */
57-
public void setRepositoryName(String repoName) {
68+
public void setRepositoryName(@NonNull String repoName) {
5869
this.repoName = repoName;
5970
}
6071

72+
public void setLocalPath(@NonNull String path) {
73+
this.localPath = path;
74+
}
75+
6176
/** ProgressMonitor: Advise the monitor of the total number of subtasks. */
6277
@Override
6378
public void start(int totalTasks) {
64-
// this.totalTasks = totalTasks;
79+
// it always returns 2, which appears useless.
6580
}
6681

6782
/** ProgressMonitor: Begin processing a single task. */
@@ -109,8 +124,11 @@ public void endTask() {
109124
requireActivity().runOnUiThread(() ->
110125
this.mDataBinding.progressIndicator.setProgress(0));
111126
} else {
112-
/* Dismiss dialog. */
113-
this.dismiss();
127+
/* Reset the progress indicator. */
128+
requireActivity().runOnUiThread(() -> {
129+
this.mDataBinding.buttonsWhenComplete.setVisibility(View.VISIBLE);
130+
this.mDataBinding.buttonCancel.setVisibility(View.GONE);
131+
});
114132
}
115133
}
116134

mobile/src/main/java/io/syslogic/github/fragment/RepositoryFragment.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,7 @@ private void gitClone(@NonNull File destination, @Nullable String branch) {
194194
this.currentDialog = new ProgressDialogFragment();
195195
this.currentDialog.show(getChildFragmentManager(), ProgressDialogFragment.LOG_TAG);
196196
this.currentDialog.setRepositoryName(getRepoName());
197+
this.currentDialog.setLocalPath(destination.getAbsolutePath());
197198

198199
Thread thread = new Thread(() -> {
199200
CloneCommand cmd = Git.cloneRepository()

mobile/src/main/res/layout/dialog_progress.xml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,43 @@
9292
android:layout_width="match_parent"
9393
android:layout_height="8dp"/>
9494

95+
<androidx.appcompat.widget.LinearLayoutCompat
96+
android:id="@+id/buttons_when_complete"
97+
android:layout_width="match_parent"
98+
android:layout_height="wrap_content"
99+
android:orientation="horizontal"
100+
android:gravity="center_horizontal"
101+
android:visibility="gone"
102+
tools:visibility="visible">
103+
104+
<androidx.appcompat.widget.AppCompatButton
105+
android:id="@+id/button_browse"
106+
android:layout_width="wrap_content"
107+
android:layout_height="wrap_content"
108+
android:layout_gravity="center"
109+
android:padding="8dp"
110+
android:text="@string/text_button_browse"/>
111+
112+
<Space
113+
android:layout_width="8dp"
114+
android:layout_height="match_parent"/>
115+
116+
<androidx.appcompat.widget.AppCompatButton
117+
android:id="@+id/button_close"
118+
android:layout_width="wrap_content"
119+
android:layout_height="wrap_content"
120+
android:layout_gravity="center"
121+
android:padding="8dp"
122+
android:text="@string/text_button_close"/>
123+
124+
</androidx.appcompat.widget.LinearLayoutCompat>
125+
95126
<androidx.appcompat.widget.AppCompatButton
96127
android:id="@+id/button_cancel"
97128
android:layout_width="wrap_content"
98129
android:layout_height="wrap_content"
99130
android:layout_gravity="center"
131+
android:padding="8dp"
100132
android:text="@android:string/cancel"/>
101133

102134
</androidx.appcompat.widget.LinearLayoutCompat>

mobile/src/main/res/values/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,5 +56,7 @@
5656
<string name="hint_query_string_is_raw">Raw Query</string>
5757

5858
<string name="text_cloning_repository">Cloning git repository…</string>
59+
<string name="text_button_browse">Browse</string>
60+
<string name="text_button_close">Close</string>
5961

6062
</resources>

0 commit comments

Comments
 (0)