From e40eb5e6a140e938358192f9bd1c7fb81f87c168 Mon Sep 17 00:00:00 2001 From: M M Arif Date: Tue, 17 Mar 2020 20:56:37 +0500 Subject: [PATCH 1/7] changelog popup initial working draft --- .../mian/gitnex/activities/MainActivity.java | 5 + .../org/mian/gitnex/helpers/ChangeLog.java | 102 ++++++++++++++++++ app/src/main/res/values/strings.xml | 3 + app/src/main/res/xml/changelog.xml | 26 +++++ 4 files changed, 136 insertions(+) create mode 100644 app/src/main/java/org/mian/gitnex/helpers/ChangeLog.java create mode 100644 app/src/main/res/xml/changelog.xml diff --git a/app/src/main/java/org/mian/gitnex/activities/MainActivity.java b/app/src/main/java/org/mian/gitnex/activities/MainActivity.java index cc32f911..f866625f 100644 --- a/app/src/main/java/org/mian/gitnex/activities/MainActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/MainActivity.java @@ -32,6 +32,7 @@ import org.mian.gitnex.fragments.SettingsFragment; import org.mian.gitnex.fragments.StarredRepositoriesFragment; import org.mian.gitnex.helpers.AlertDialogs; import org.mian.gitnex.helpers.Authorization; +import org.mian.gitnex.helpers.ChangeLog; import org.mian.gitnex.helpers.Toasty; import org.mian.gitnex.models.GiteaVersion; import org.mian.gitnex.models.UserInfo; @@ -285,6 +286,10 @@ public class MainActivity extends BaseActivity implements NavigationView.OnNavig } + // Changelog popup + ChangeLog changelogDialog = new ChangeLog(this); + changelogDialog.showDialog(); + } public void setActionBarTitle (@NonNull String title) { diff --git a/app/src/main/java/org/mian/gitnex/helpers/ChangeLog.java b/app/src/main/java/org/mian/gitnex/helpers/ChangeLog.java new file mode 100644 index 00000000..613638fe --- /dev/null +++ b/app/src/main/java/org/mian/gitnex/helpers/ChangeLog.java @@ -0,0 +1,102 @@ +package org.mian.gitnex.helpers; + +import java.io.IOException; +import java.util.Objects; +import org.mian.gitnex.R; +import org.xmlpull.v1.XmlPullParser; +import org.xmlpull.v1.XmlPullParserException; +import android.app.Activity; +import android.content.pm.PackageManager; +import android.content.res.Resources; +import android.content.res.XmlResourceParser; +import android.text.Html; +import android.util.Log; +import androidx.appcompat.app.AlertDialog; + +/** + * Author M M Arif + */ + +public class ChangeLog { + + static final private String TAG = "ChangeLog"; + static final private String CHANGELOG_XML_NODE = "changelog"; + + private Activity changelogActivity; + + public ChangeLog(Activity context) { + changelogActivity = context; + } + + private String ParseReleaseTag(XmlResourceParser aXml) throws XmlPullParserException, IOException { + + StringBuilder strBuilder = new StringBuilder(aXml.getAttributeValue(null, "version") + "
"); + int eventType = aXml.getEventType(); + + while ((eventType != XmlPullParser.END_TAG) || (aXml.getName().equals("change"))) { + + if ((eventType == XmlPullParser.START_TAG) &&(aXml.getName().equals("change"))) { + eventType = aXml.next(); + strBuilder.append(aXml.getText()).append("
"); + } + eventType = aXml.next(); + + } + strBuilder.append("
"); + + return strBuilder.toString(); + + } + + private String getChangelog(int resId, Resources res) { + + StringBuilder strBuilder = new StringBuilder(); + try (XmlResourceParser xml = res.getXml(resId)) { + + int eventType = xml.getEventType(); + while (eventType != XmlPullParser.END_DOCUMENT) { + + if ((eventType == XmlPullParser.START_TAG) && (xml.getName().equals("release"))) { + strBuilder.append(ParseReleaseTag(xml)); + + } + eventType = xml.next(); + + } + + } + catch (XmlPullParserException | IOException e) { + Log.e(TAG, Objects.requireNonNull(e.getMessage())); + } + + return strBuilder.toString(); + + } + + public void showDialog() { + + String packageName = changelogActivity.getPackageName(); + Resources res = null; + + try { + res = changelogActivity.getPackageManager().getResourcesForApplication(packageName); + } + catch (PackageManager.NameNotFoundException e) { + Log.e(TAG, Objects.requireNonNull(e.getMessage())); + } + + assert res != null; + int resId = res.getIdentifier(CHANGELOG_XML_NODE, "xml", packageName); + + String changelogMessage = getChangelog(resId, res); + + androidx.appcompat.app.AlertDialog.Builder builder = new AlertDialog.Builder(changelogActivity); + builder.setTitle(R.string.changelogTitle); + builder.setMessage(Html.fromHtml("" + changelogMessage + "")); + builder.setNegativeButton(R.string.okButton, (dialog, which) -> dialog.cancel()); + builder.create(); + builder.show(); + + } + +} diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index bba9dfb9..b90740a8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -560,4 +560,7 @@ Share Issue Share Repository Create Repository + + Changelog + diff --git a/app/src/main/res/xml/changelog.xml b/app/src/main/res/xml/changelog.xml new file mode 100644 index 00000000..1ec657c7 --- /dev/null +++ b/app/src/main/res/xml/changelog.xml @@ -0,0 +1,26 @@ + + + + + New: Light theme (choose from settings) + New: Icons + New: Download files in Fileviewer (needs write permission) + New: Custom fonts (choose from settings) + New: PDF support in Fileviewer + New: Night mode for PDF in Fileviewer (choose from settings) + New: Default list of repositories in Explore screen + New: Latvian language support + Improvement: Support more files in file viewer syntax highlighter + Improvement: Exclude BIN files rendering in diff viewer + Improvement: Exclude specific files in Fileviewer like doc, xls etc + Improvement: Single issue id and support copy title and description to clipboard + Improvement: Translation updates + Bugfix: Don’t refresh repositories without action + + + + Bugfix: Slashes in URL(file viewer) + Bugfix: No milestones when creating issue if user has other language selected + + + \ No newline at end of file From a9b8e158127f9f76279cb4755c4a637791f175b0 Mon Sep 17 00:00:00 2001 From: M M Arif Date: Thu, 19 Mar 2020 18:54:20 +0500 Subject: [PATCH 2/7] use StandardCharsets instead --- .../main/java/org/mian/gitnex/activities/LoginActivity.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/mian/gitnex/activities/LoginActivity.java b/app/src/main/java/org/mian/gitnex/activities/LoginActivity.java index ccea51a6..cc4d3bc1 100644 --- a/app/src/main/java/org/mian/gitnex/activities/LoginActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/LoginActivity.java @@ -32,6 +32,7 @@ import org.mian.gitnex.util.AppUtil; import org.mian.gitnex.util.TinyDB; import java.net.URI; import java.net.URISyntaxException; +import java.nio.charset.StandardCharsets; import java.util.List; import java.util.Objects; import java.util.UUID; @@ -284,7 +285,7 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener if(appUtil.checkIntegers(loginOTP_)) { - loginOTP = Integer.valueOf(loginOTP_); + loginOTP = Integer.parseInt(loginOTP_); } else { @@ -530,7 +531,7 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener private void letTheUserIn(final String instanceUrl, final String loginUid, final String loginPass, final int loginOTP) { - final String credential = Credentials.basic(loginUid, loginPass, Charset.forName("UTF-8")); + final String credential = Credentials.basic(loginUid, loginPass, StandardCharsets.UTF_8); Call> call; if(loginOTP != 0) { From c3c0749a7a192dd346cc05a2ab42a689a2b36202 Mon Sep 17 00:00:00 2001 From: M M Arif Date: Sat, 21 Mar 2020 23:52:52 +0500 Subject: [PATCH 3/7] show when update/install app --- .../mian/gitnex/activities/MainActivity.java | 33 +++++++++++++++++-- .../org/mian/gitnex/helpers/ChangeLog.java | 5 +-- app/src/main/res/xml/changelog.xml | 6 ++++ 3 files changed, 39 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/mian/gitnex/activities/MainActivity.java b/app/src/main/java/org/mian/gitnex/activities/MainActivity.java index f866625f..80dac10f 100644 --- a/app/src/main/java/org/mian/gitnex/activities/MainActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/MainActivity.java @@ -11,6 +11,8 @@ import androidx.drawerlayout.widget.DrawerLayout; import androidx.appcompat.app.ActionBarDrawerToggle; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; import android.graphics.Typeface; import android.net.Uri; import android.os.Bundle; @@ -157,7 +159,7 @@ public class MainActivity extends BaseActivity implements NavigationView.OnNavig drawer = findViewById(R.id.drawer_layout); NavigationView navigationView = findViewById(R.id.nav_view); navigationView.setNavigationItemSelectedListener(this); - final View hView = navigationView.getHeaderView(0); + final View hView = navigationView.getHeaderView(0); ImageView navSubMenu = hView.findViewById(R.id.navSubMenu); navSubMenu.setOnClickListener(new View.OnClickListener() { @@ -287,8 +289,33 @@ public class MainActivity extends BaseActivity implements NavigationView.OnNavig } // Changelog popup - ChangeLog changelogDialog = new ChangeLog(this); - changelogDialog.showDialog(); + int versionCode = 0; + try { + PackageInfo packageInfo = getApplicationContext().getPackageManager() + .getPackageInfo(getApplicationContext().getPackageName(), 0); + versionCode = packageInfo.versionCode; + } + catch (PackageManager.NameNotFoundException e) { + Log.e("changelogDialog", Objects.requireNonNull(e.getMessage())); + } + + if (!tinyDb.getBoolean("versionFlag")) { + if (versionCode > tinyDb.getInt("versionCode")) { + tinyDb.putInt("versionCode", versionCode); + tinyDb.putBoolean("versionFlag", true); + } + else { + tinyDb.putBoolean("versionFlag", false); + } + } + else { + tinyDb.putBoolean("versionFlag", false); + } + + if(tinyDb.getBoolean("versionFlag")) { + ChangeLog changelogDialog = new ChangeLog(this); + changelogDialog.showDialog(); + } } diff --git a/app/src/main/java/org/mian/gitnex/helpers/ChangeLog.java b/app/src/main/java/org/mian/gitnex/helpers/ChangeLog.java index 613638fe..c85e5a77 100644 --- a/app/src/main/java/org/mian/gitnex/helpers/ChangeLog.java +++ b/app/src/main/java/org/mian/gitnex/helpers/ChangeLog.java @@ -35,7 +35,7 @@ public class ChangeLog { while ((eventType != XmlPullParser.END_TAG) || (aXml.getName().equals("change"))) { - if ((eventType == XmlPullParser.START_TAG) &&(aXml.getName().equals("change"))) { + if ((eventType == XmlPullParser.START_TAG) && (aXml.getName().equals("change"))) { eventType = aXml.next(); strBuilder.append(aXml.getText()).append("
"); } @@ -93,7 +93,8 @@ public class ChangeLog { androidx.appcompat.app.AlertDialog.Builder builder = new AlertDialog.Builder(changelogActivity); builder.setTitle(R.string.changelogTitle); builder.setMessage(Html.fromHtml("" + changelogMessage + "")); - builder.setNegativeButton(R.string.okButton, (dialog, which) -> dialog.cancel()); + builder.setNegativeButton(R.string.close, (dialog, which) -> dialog.cancel()); + builder.setCancelable(false); builder.create(); builder.show(); diff --git a/app/src/main/res/xml/changelog.xml b/app/src/main/res/xml/changelog.xml index 1ec657c7..09181e95 100644 --- a/app/src/main/res/xml/changelog.xml +++ b/app/src/main/res/xml/changelog.xml @@ -1,6 +1,12 @@ + + Improvement: Show issues only in Issues Tabs + Bugfix: Files breadcrumb navigation links + Bugfix: Login with special characters + + New: Light theme (choose from settings) New: Icons From 2bda0dbe7e0081d21648744888cac46fa5bfcb85 Mon Sep 17 00:00:00 2001 From: M M Arif Date: Sat, 28 Mar 2020 21:08:11 +0500 Subject: [PATCH 4/7] fix http protocol for open repo url --- .../main/java/org/mian/gitnex/activities/LoginActivity.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/mian/gitnex/activities/LoginActivity.java b/app/src/main/java/org/mian/gitnex/activities/LoginActivity.java index 5136b096..0ba138ea 100644 --- a/app/src/main/java/org/mian/gitnex/activities/LoginActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/LoginActivity.java @@ -245,7 +245,7 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener } else { instanceUrl = "http://" + instanceHost + "/api/v1/"; - instanceUrlWithProtocol = "https://" + instanceHost; + instanceUrlWithProtocol = "http://" + instanceHost; } tinyDb.putString("instanceUrlRaw", instanceHost); @@ -334,7 +334,7 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener } else { instanceUrl = "http://" + instanceHost + "/api/v1/"; - instanceUrlWithProtocol = "https://" + instanceHost; + instanceUrlWithProtocol = "http://" + instanceHost; } tinyDb.putString("instanceUrlRaw", instanceHost); From 6e7e3ef690b27caff75dc8c5c13976e7904e3b6d Mon Sep 17 00:00:00 2001 From: M M Arif Date: Sun, 29 Mar 2020 11:09:51 +0500 Subject: [PATCH 5/7] Code style as whichever is availability in idea --- .gitignore | 1 + .idea/codeStyles/Project.xml | 159 +++++++++++++++++++++++++++ .idea/codeStyles/codeStyleConfig.xml | 5 + 3 files changed, 165 insertions(+) create mode 100644 .idea/codeStyles/Project.xml create mode 100644 .idea/codeStyles/codeStyleConfig.xml diff --git a/.gitignore b/.gitignore index c80a04e8..6f24d028 100644 --- a/.gitignore +++ b/.gitignore @@ -48,6 +48,7 @@ captures/ .idea/dictionaries .idea/libraries .idea/caches +!.idea/codeStyles # Keystore files # Uncomment the following lines if you do not want to check your keystore files in. diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 00000000..7aa8d991 --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,159 @@ + + + + + + + + + + + + +
+ + + + xmlns:android + + ^$ + + + +
+
+ + + + xmlns:.* + + ^$ + + + BY_NAME + +
+
+ + + + .*:id + + http://schemas.android.com/apk/res/android + + + +
+
+ + + + .*:name + + http://schemas.android.com/apk/res/android + + + +
+
+ + + + name + + ^$ + + + +
+
+ + + + style + + ^$ + + + +
+
+ + + + .* + + ^$ + + + BY_NAME + +
+
+ + + + .* + + http://schemas.android.com/apk/res/android + + + ANDROID_ATTRIBUTE_ORDER + +
+
+ + + + .* + + .* + + + BY_NAME + +
+
+
+
+
+
\ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 00000000..79ee123c --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file From 25c6a9558f277dc97a8edce1f2ee9fc1c1148f2d Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Sun, 29 Mar 2020 16:02:33 +0200 Subject: [PATCH 6/7] simplify code --- .../mian/gitnex/activities/MainActivity.java | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/org/mian/gitnex/activities/MainActivity.java b/app/src/main/java/org/mian/gitnex/activities/MainActivity.java index 80dac10f..b7ce42d5 100644 --- a/app/src/main/java/org/mian/gitnex/activities/MainActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/MainActivity.java @@ -299,24 +299,12 @@ public class MainActivity extends BaseActivity implements NavigationView.OnNavig Log.e("changelogDialog", Objects.requireNonNull(e.getMessage())); } - if (!tinyDb.getBoolean("versionFlag")) { - if (versionCode > tinyDb.getInt("versionCode")) { - tinyDb.putInt("versionCode", versionCode); - tinyDb.putBoolean("versionFlag", true); - } - else { - tinyDb.putBoolean("versionFlag", false); - } - } - else { - tinyDb.putBoolean("versionFlag", false); - } - - if(tinyDb.getBoolean("versionFlag")) { + if (versionCode > tinyDb.getInt("versionCode")) { + tinyDb.putInt("versionCode", versionCode); + tinyDb.putBoolean("versionFlag", true); ChangeLog changelogDialog = new ChangeLog(this); changelogDialog.showDialog(); } - } public void setActionBarTitle (@NonNull String title) { From 2fd291527fe7e7c41f681a199d858904e9ccf86e Mon Sep 17 00:00:00 2001 From: M M Arif Date: Sun, 29 Mar 2020 14:24:38 +0000 Subject: [PATCH 7/7] Enhance user ux to focus on input and trigger keyboard (#314) Merge branch 'master' into 305-triiger-keyboard Enhance user ux to focus on input and trigger keyboard Reviewed-on: https://gitea.com/gitnex/GitNex/pulls/314 Reviewed-by: 6543 <6543@noreply.gitea.io> --- .../activities/AddCollaboratorToRepositoryActivity.java | 7 +++++++ .../org/mian/gitnex/activities/CreateFileActivity.java | 7 +++++++ .../org/mian/gitnex/activities/CreateIssueActivity.java | 7 +++++++ .../org/mian/gitnex/activities/CreateLabelActivity.java | 9 ++++++++- .../mian/gitnex/activities/CreateMilestoneActivity.java | 7 +++++++ .../mian/gitnex/activities/CreateNewUserActivity.java | 7 +++++++ .../gitnex/activities/CreateOrganizationActivity.java | 7 +++++++ .../mian/gitnex/activities/CreateReleaseActivity.java | 7 +++++++ .../org/mian/gitnex/activities/CreateRepoActivity.java | 7 +++++++ .../mian/gitnex/activities/CreateTeamByOrgActivity.java | 7 +++++++ .../org/mian/gitnex/activities/EditIssueActivity.java | 7 +++++++ .../mian/gitnex/activities/MergePullRequestActivity.java | 7 +++++++ .../org/mian/gitnex/activities/ProfileEmailActivity.java | 7 +++++++ .../org/mian/gitnex/activities/ReplyToIssueActivity.java | 7 +++++++ .../gitnex/fragments/BottomSheetSingleIssueFragment.java | 4 +++- app/src/main/res/values/strings.xml | 1 + 16 files changed, 103 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/mian/gitnex/activities/AddCollaboratorToRepositoryActivity.java b/app/src/main/java/org/mian/gitnex/activities/AddCollaboratorToRepositoryActivity.java index 43815ae2..76fa64a3 100644 --- a/app/src/main/java/org/mian/gitnex/activities/AddCollaboratorToRepositoryActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/AddCollaboratorToRepositoryActivity.java @@ -13,6 +13,7 @@ import android.util.Log; import android.view.KeyEvent; import android.view.View; import android.view.inputmethod.EditorInfo; +import android.view.inputmethod.InputMethodManager; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; @@ -48,6 +49,8 @@ public class AddCollaboratorToRepositoryActivity extends BaseActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + TinyDB tinyDb = new TinyDB(getApplicationContext()); final String instanceUrl = tinyDb.getString("instanceUrl"); final String loginUid = tinyDb.getString("loginUid"); @@ -61,6 +64,10 @@ public class AddCollaboratorToRepositoryActivity extends BaseActivity { mProgressBar = findViewById(R.id.progress_bar); noData = findViewById(R.id.noData); + addCollaboratorSearch.requestFocus(); + assert imm != null; + imm.showSoftInput(addCollaboratorSearch, InputMethodManager.SHOW_IMPLICIT); + initCloseListener(); closeActivity.setOnClickListener(onClickListener); diff --git a/app/src/main/java/org/mian/gitnex/activities/CreateFileActivity.java b/app/src/main/java/org/mian/gitnex/activities/CreateFileActivity.java index c810500c..ce0ac546 100644 --- a/app/src/main/java/org/mian/gitnex/activities/CreateFileActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/CreateFileActivity.java @@ -6,6 +6,7 @@ import android.graphics.drawable.GradientDrawable; import android.os.Bundle; import android.util.Log; import android.view.View; +import android.view.inputmethod.InputMethodManager; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; @@ -59,6 +60,8 @@ public class CreateFileActivity extends BaseActivity { boolean connToInternet = AppUtil.haveNetworkConnection(getApplicationContext()); + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + TinyDB tinyDb = new TinyDB(getApplicationContext()); final String instanceUrl = tinyDb.getString("instanceUrl"); final String loginUid = tinyDb.getString("loginUid"); @@ -74,6 +77,10 @@ public class CreateFileActivity extends BaseActivity { newFileBranchName = findViewById(R.id.newFileBranchName); newFileCommitMessage = findViewById(R.id.newFileCommitMessage); + newFileName.requestFocus(); + assert imm != null; + imm.showSoftInput(newFileName, InputMethodManager.SHOW_IMPLICIT); + initCloseListener(); closeActivity.setOnClickListener(onClickListener); diff --git a/app/src/main/java/org/mian/gitnex/activities/CreateIssueActivity.java b/app/src/main/java/org/mian/gitnex/activities/CreateIssueActivity.java index 0d36d282..371c9a34 100644 --- a/app/src/main/java/org/mian/gitnex/activities/CreateIssueActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/CreateIssueActivity.java @@ -11,6 +11,7 @@ import android.graphics.drawable.GradientDrawable; import android.os.Bundle; import android.util.Log; import android.view.View; +import android.view.inputmethod.InputMethodManager; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.DatePicker; @@ -77,6 +78,8 @@ public class CreateIssueActivity extends BaseActivity implements View.OnClickLis boolean connToInternet = AppUtil.haveNetworkConnection(getApplicationContext()); + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + TinyDB tinyDb = new TinyDB(getApplicationContext()); final String instanceUrl = tinyDb.getString("instanceUrl"); final String loginUid = tinyDb.getString("loginUid"); @@ -96,6 +99,10 @@ public class CreateIssueActivity extends BaseActivity implements View.OnClickLis newIssueDescription = findViewById(R.id.newIssueDescription); labelsIdHolder = findViewById(R.id.labelsIdHolder); + newIssueTitle.requestFocus(); + assert imm != null; + imm.showSoftInput(newIssueTitle, InputMethodManager.SHOW_IMPLICIT); + defaultMentionAdapter = new MentionArrayAdapter<>(this); loadCollaboratorsList(); diff --git a/app/src/main/java/org/mian/gitnex/activities/CreateLabelActivity.java b/app/src/main/java/org/mian/gitnex/activities/CreateLabelActivity.java index 5380f76a..f2d8e02d 100644 --- a/app/src/main/java/org/mian/gitnex/activities/CreateLabelActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/CreateLabelActivity.java @@ -11,6 +11,7 @@ import android.graphics.drawable.GradientDrawable; import android.os.Bundle; import android.util.Log; import android.view.View; +import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; @@ -50,6 +51,8 @@ public class CreateLabelActivity extends BaseActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + final TinyDB tinyDb = new TinyDB(getApplicationContext()); String repoFullName = tinyDb.getString("repoFullName"); String[] parts = repoFullName.split("/"); @@ -61,7 +64,7 @@ public class CreateLabelActivity extends BaseActivity { if(getIntent().getStringExtra("labelAction") != null && Objects.requireNonNull(getIntent().getStringExtra("labelAction")).equals("delete")) { - deleteLabel(instanceUrl, instanceToken, repoOwner, repoName, Integer.valueOf(Objects.requireNonNull(getIntent().getStringExtra("labelId"))), loginUid); + deleteLabel(instanceUrl, instanceToken, repoOwner, repoName, Integer.parseInt(Objects.requireNonNull(getIntent().getStringExtra("labelId"))), loginUid); finish(); return; @@ -74,6 +77,10 @@ public class CreateLabelActivity extends BaseActivity { labelName = findViewById(R.id.labelName); createLabelButton = findViewById(R.id.createLabelButton); + labelName.requestFocus(); + assert imm != null; + imm.showSoftInput(labelName, InputMethodManager.SHOW_IMPLICIT); + final ColorPicker cp = new ColorPicker(CreateLabelActivity.this, 235, 113, 33); initCloseListener(); diff --git a/app/src/main/java/org/mian/gitnex/activities/CreateMilestoneActivity.java b/app/src/main/java/org/mian/gitnex/activities/CreateMilestoneActivity.java index c141668d..a60fd739 100644 --- a/app/src/main/java/org/mian/gitnex/activities/CreateMilestoneActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/CreateMilestoneActivity.java @@ -9,6 +9,7 @@ import android.graphics.drawable.GradientDrawable; import android.os.Bundle; import android.util.Log; import android.view.View; +import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.DatePicker; import android.widget.EditText; @@ -48,12 +49,18 @@ public class CreateMilestoneActivity extends BaseActivity implements View.OnClic boolean connToInternet = AppUtil.haveNetworkConnection(getApplicationContext()); + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + milestoneDueDate = findViewById(R.id.milestoneDueDate); ImageView closeActivity = findViewById(R.id.close); createNewMilestoneButton = findViewById(R.id.createNewMilestoneButton); milestoneTitle = findViewById(R.id.milestoneTitle); milestoneDescription = findViewById(R.id.milestoneDescription); + milestoneTitle.requestFocus(); + assert imm != null; + imm.showSoftInput(milestoneTitle, InputMethodManager.SHOW_IMPLICIT); + initCloseListener(); closeActivity.setOnClickListener(onClickListener); milestoneDueDate.setOnClickListener(this); diff --git a/app/src/main/java/org/mian/gitnex/activities/CreateNewUserActivity.java b/app/src/main/java/org/mian/gitnex/activities/CreateNewUserActivity.java index a1bf3ef6..987d19b1 100644 --- a/app/src/main/java/org/mian/gitnex/activities/CreateNewUserActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/CreateNewUserActivity.java @@ -9,6 +9,7 @@ import android.os.Bundle; import android.util.Log; import android.util.Patterns; import android.view.View; +import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; @@ -47,6 +48,8 @@ public class CreateNewUserActivity extends BaseActivity { boolean connToInternet = AppUtil.haveNetworkConnection(getApplicationContext()); + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + ImageView closeActivity = findViewById(R.id.close); createUserButton = findViewById(R.id.createUserButton); fullName = findViewById(R.id.fullName); @@ -54,6 +57,10 @@ public class CreateNewUserActivity extends BaseActivity { userEmail = findViewById(R.id.userEmail); userPassword = findViewById(R.id.userPassword); + fullName.requestFocus(); + assert imm != null; + imm.showSoftInput(fullName, InputMethodManager.SHOW_IMPLICIT); + initCloseListener(); closeActivity.setOnClickListener(onClickListener); diff --git a/app/src/main/java/org/mian/gitnex/activities/CreateOrganizationActivity.java b/app/src/main/java/org/mian/gitnex/activities/CreateOrganizationActivity.java index fe43585f..80fa16de 100644 --- a/app/src/main/java/org/mian/gitnex/activities/CreateOrganizationActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/CreateOrganizationActivity.java @@ -6,6 +6,7 @@ import android.os.Bundle; import androidx.annotation.NonNull; import android.util.Log; import android.view.View; +import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; @@ -45,10 +46,16 @@ public class CreateOrganizationActivity extends BaseActivity { boolean connToInternet = AppUtil.haveNetworkConnection(getApplicationContext()); + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + closeActivity = findViewById(R.id.close); orgName = findViewById(R.id.newOrganizationName); orgDesc = findViewById(R.id.newOrganizationDescription); + orgName.requestFocus(); + assert imm != null; + imm.showSoftInput(orgName, InputMethodManager.SHOW_IMPLICIT); + initCloseListener(); closeActivity.setOnClickListener(onClickListener); diff --git a/app/src/main/java/org/mian/gitnex/activities/CreateReleaseActivity.java b/app/src/main/java/org/mian/gitnex/activities/CreateReleaseActivity.java index e64b0e07..0f408bf7 100644 --- a/app/src/main/java/org/mian/gitnex/activities/CreateReleaseActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/CreateReleaseActivity.java @@ -9,6 +9,7 @@ import android.graphics.drawable.GradientDrawable; import android.os.Bundle; import android.util.Log; import android.view.View; +import android.view.inputmethod.InputMethodManager; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; @@ -59,6 +60,8 @@ public class CreateReleaseActivity extends BaseActivity { boolean connToInternet = AppUtil.haveNetworkConnection(getApplicationContext()); + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + TinyDB tinyDb = new TinyDB(getApplicationContext()); final String instanceUrl = tinyDb.getString("instanceUrl"); final String loginUid = tinyDb.getString("loginUid"); @@ -75,6 +78,10 @@ public class CreateReleaseActivity extends BaseActivity { releaseType = findViewById(R.id.releaseType); releaseDraft = findViewById(R.id.releaseDraft); + releaseTagName.requestFocus(); + assert imm != null; + imm.showSoftInput(releaseTagName, InputMethodManager.SHOW_IMPLICIT); + initCloseListener(); closeActivity.setOnClickListener(onClickListener); diff --git a/app/src/main/java/org/mian/gitnex/activities/CreateRepoActivity.java b/app/src/main/java/org/mian/gitnex/activities/CreateRepoActivity.java index a7352cf8..2170cfcd 100644 --- a/app/src/main/java/org/mian/gitnex/activities/CreateRepoActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/CreateRepoActivity.java @@ -7,6 +7,7 @@ import android.os.Bundle; import androidx.annotation.NonNull; import android.util.Log; import android.view.View; +import android.view.inputmethod.InputMethodManager; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; @@ -62,11 +63,17 @@ public class CreateRepoActivity extends BaseActivity { final String userLogin = tinyDb.getString("userLogin"); final String instanceToken = "token " + tinyDb.getString(loginUid + "-token"); + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + closeActivity = findViewById(R.id.close); repoName = findViewById(R.id.newRepoName); repoDesc = findViewById(R.id.newRepoDescription); repoAccess = findViewById(R.id.newRepoPrivate); + repoName.requestFocus(); + assert imm != null; + imm.showSoftInput(repoName, InputMethodManager.SHOW_IMPLICIT); + initCloseListener(); closeActivity.setOnClickListener(onClickListener); diff --git a/app/src/main/java/org/mian/gitnex/activities/CreateTeamByOrgActivity.java b/app/src/main/java/org/mian/gitnex/activities/CreateTeamByOrgActivity.java index 8d86e082..66862be0 100644 --- a/app/src/main/java/org/mian/gitnex/activities/CreateTeamByOrgActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/CreateTeamByOrgActivity.java @@ -9,6 +9,7 @@ import android.content.DialogInterface; import android.graphics.drawable.GradientDrawable; import android.os.Bundle; import android.view.View; +import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; @@ -76,6 +77,8 @@ public class CreateTeamByOrgActivity extends BaseActivity implements View.OnClic boolean connToInternet = AppUtil.haveNetworkConnection(getApplicationContext()); + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + ImageView closeActivity = findViewById(R.id.close); teamName = findViewById(R.id.teamName); teamDesc = findViewById(R.id.teamDesc); @@ -85,6 +88,10 @@ public class CreateTeamByOrgActivity extends BaseActivity implements View.OnClic teamAccessControlsArray = findViewById(R.id.teamAccessControlsArray); createTeamButton = findViewById(R.id.createTeamButton); + teamName.requestFocus(); + assert imm != null; + imm.showSoftInput(teamName, InputMethodManager.SHOW_IMPLICIT); + initCloseListener(); closeActivity.setOnClickListener(onClickListener); diff --git a/app/src/main/java/org/mian/gitnex/activities/EditIssueActivity.java b/app/src/main/java/org/mian/gitnex/activities/EditIssueActivity.java index ac24b781..4e413d28 100644 --- a/app/src/main/java/org/mian/gitnex/activities/EditIssueActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/EditIssueActivity.java @@ -12,6 +12,7 @@ import android.graphics.drawable.GradientDrawable; import android.os.Bundle; import android.util.Log; import android.view.View; +import android.view.inputmethod.InputMethodManager; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.DatePicker; @@ -70,6 +71,8 @@ public class EditIssueActivity extends BaseActivity implements View.OnClickListe super.onCreate(savedInstanceState); + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + final TinyDB tinyDb = new TinyDB(getApplicationContext()); final String instanceUrl = tinyDb.getString("instanceUrl"); @@ -88,6 +91,10 @@ public class EditIssueActivity extends BaseActivity implements View.OnClickListe editIssueDescription = findViewById(R.id.editIssueDescription); editIssueDueDate = findViewById(R.id.editIssueDueDate); + editIssueTitle.requestFocus(); + assert imm != null; + imm.showSoftInput(editIssueTitle, InputMethodManager.SHOW_IMPLICIT); + defaultMentionAdapter = new MentionArrayAdapter<>(this); loadCollaboratorsList(); diff --git a/app/src/main/java/org/mian/gitnex/activities/MergePullRequestActivity.java b/app/src/main/java/org/mian/gitnex/activities/MergePullRequestActivity.java index 3eacf3e5..37dbbf60 100644 --- a/app/src/main/java/org/mian/gitnex/activities/MergePullRequestActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/MergePullRequestActivity.java @@ -6,6 +6,7 @@ import android.graphics.drawable.GradientDrawable; import android.os.Bundle; import android.util.Log; import android.view.View; +import android.view.inputmethod.InputMethodManager; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ImageView; @@ -55,9 +56,15 @@ public class MergePullRequestActivity extends BaseActivity { boolean connToInternet = AppUtil.haveNetworkConnection(getApplicationContext()); TinyDB tinyDb = new TinyDB(getApplicationContext()); + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + mergePR = findViewById(R.id.mergePR); mergePR.setShowSoftInputOnFocus(true); + mergePR.requestFocus(); + assert imm != null; + imm.showSoftInput(mergePR, InputMethodManager.SHOW_IMPLICIT); + defaultMentionAdapter = new MentionArrayAdapter<>(this); loadCollaboratorsList(); diff --git a/app/src/main/java/org/mian/gitnex/activities/ProfileEmailActivity.java b/app/src/main/java/org/mian/gitnex/activities/ProfileEmailActivity.java index 6f1a0b49..9ccac63f 100644 --- a/app/src/main/java/org/mian/gitnex/activities/ProfileEmailActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/ProfileEmailActivity.java @@ -9,6 +9,7 @@ import android.os.Bundle; import android.util.Log; import android.util.Patterns; import android.view.View; +import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; @@ -47,10 +48,16 @@ public class ProfileEmailActivity extends BaseActivity { boolean connToInternet = AppUtil.haveNetworkConnection(getApplicationContext()); + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + ImageView closeActivity = findViewById(R.id.close); userEmail = findViewById(R.id.userEmail); addEmailButton = findViewById(R.id.addEmailButton); + userEmail.requestFocus(); + assert imm != null; + imm.showSoftInput(userEmail, InputMethodManager.SHOW_IMPLICIT); + initCloseListener(); closeActivity.setOnClickListener(onClickListener); diff --git a/app/src/main/java/org/mian/gitnex/activities/ReplyToIssueActivity.java b/app/src/main/java/org/mian/gitnex/activities/ReplyToIssueActivity.java index 01fa41ed..22069e3c 100644 --- a/app/src/main/java/org/mian/gitnex/activities/ReplyToIssueActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/ReplyToIssueActivity.java @@ -9,6 +9,7 @@ import android.graphics.drawable.GradientDrawable; import android.os.Bundle; import android.util.Log; import android.view.View; +import android.view.inputmethod.InputMethodManager; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ImageView; @@ -53,6 +54,8 @@ public class ReplyToIssueActivity extends BaseActivity { super.onCreate(savedInstanceState); + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + boolean connToInternet = AppUtil.haveNetworkConnection(getApplicationContext()); TinyDB tinyDb = new TinyDB(getApplicationContext()); @@ -67,6 +70,10 @@ public class ReplyToIssueActivity extends BaseActivity { closeActivity = findViewById(R.id.close); TextView toolbar_title = findViewById(R.id.toolbar_title); + addComment.requestFocus(); + assert imm != null; + imm.showSoftInput(addComment, InputMethodManager.SHOW_IMPLICIT); + if(!tinyDb.getString("issueTitle").isEmpty()) { toolbar_title.setText(tinyDb.getString("issueTitle")); } diff --git a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSingleIssueFragment.java b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSingleIssueFragment.java index eb499377..c6f22921 100644 --- a/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSingleIssueFragment.java +++ b/app/src/main/java/org/mian/gitnex/fragments/BottomSheetSingleIssueFragment.java @@ -62,6 +62,7 @@ public class BottomSheetSingleIssueFragment extends BottomSheetDialogFragment { editIssue.setText(R.string.editPrText); copyIssueUrl.setText(R.string.copyPrUrlText); + shareIssue.setText(R.string.sharePr); if(tinyDB.getBoolean("prMerged")) { mergePullRequest.setVisibility(View.GONE); @@ -200,7 +201,8 @@ public class BottomSheetSingleIssueFragment extends BottomSheetDialogFragment { } }); - } else if (tinyDB.getString("issueState").equals("closed")) { + } + else if (tinyDB.getString("issueState").equals("closed")) { closeIssue.setVisibility(View.GONE); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b90740a8..6cb0fcc6 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -558,6 +558,7 @@ Size Share Issue + Share Pull Request Share Repository Create Repository