From 55e7a72d7579e867e0ef5aa716abce99097d16e5 Mon Sep 17 00:00:00 2001 From: Mohamed ELIDRISSI Date: Sun, 2 Jun 2019 17:41:14 +0000 Subject: [PATCH 1/7] Fix: Failed to resolve Toasty --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index e0a0ab77..06d43775 100644 --- a/gradle.properties +++ b/gradle.properties @@ -44,7 +44,7 @@ FASTJSON_VERSION=1.1.46.android GLIDE_VERSION=4.0.0 ROUNDED_IMAGEVIEW_VERSION=2.3.0 CIRCLE_IMAGEVIEW_VERSION=2.1.0 -TOASTY_VERSION = 1.2.5 +TOASTY_VERSION = 1.4.2 MATERIAL_ABOUT_VERSION = 2.2.1 SUBMIT_BUTTON_VERSION = 1.1.2 MATERIAL_DIALOG_VERSION = 0.9.4.5 From 271bca3ad5990011a314db72f4a825854cf9b20a Mon Sep 17 00:00:00 2001 From: Mohamed ELIDRISSI Date: Sun, 2 Jun 2019 17:49:25 +0000 Subject: [PATCH 2/7] Upgrade support libraries to v28 --- app/build.gradle | 2 +- gradle.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 6243f744..e0fe571c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -105,7 +105,7 @@ dependencies { // compile "com.android.support:support-annotations:${ANDROID_SUPPORT_VERSION}" implementation "com.android.support:support-v4:${ANDROID_SUPPORT_VERSION}" -// compile "com.android.support:support-v13:${ANDROID_SUPPORT_VERSION}" + implementation "com.android.support:support-v13:${ANDROID_SUPPORT_VERSION}" implementation "com.android.support:appcompat-v7:${ANDROID_SUPPORT_VERSION}" implementation "com.android.support:recyclerview-v7:${ANDROID_SUPPORT_VERSION}" implementation "com.android.support:design:${ANDROID_SUPPORT_VERSION}" diff --git a/gradle.properties b/gradle.properties index 06d43775..172f9dbd 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,7 +26,7 @@ VERSION_CODE = 30 VERSION_NAME = 3.0.0 #library -ANDROID_SUPPORT_VERSION = 25.4.0 +ANDROID_SUPPORT_VERSION = 28.0.0 CONSTRAINT_VERSION = 1.0.2 MULTIDEX_VERSION = 1.0.2 DATAAUTOACCESS_VERSION = 1.2.8 From 9c14bb8f1da8c015a9838082534a2ab279a1897e Mon Sep 17 00:00:00 2001 From: Mohamed ELIDRISSI Date: Sun, 2 Jun 2019 22:56:32 +0000 Subject: [PATCH 3/7] Long press a search history record to delete it --- .../openhub/mvp/contract/ISearchContract.java | 1 + .../mvp/presenter/SearchPresenter.java | 27 ++++++++++---- .../openhub/ui/activity/SearchActivity.java | 27 ++++++++++++-- .../ui/adapter/SearchAutoCompleteAdapter.java | 36 +++++++++++++++++++ 4 files changed, 82 insertions(+), 9 deletions(-) create mode 100644 app/src/main/java/com/thirtydegreesray/openhub/ui/adapter/SearchAutoCompleteAdapter.java diff --git a/app/src/main/java/com/thirtydegreesray/openhub/mvp/contract/ISearchContract.java b/app/src/main/java/com/thirtydegreesray/openhub/mvp/contract/ISearchContract.java index f3bab93a..f27333b9 100644 --- a/app/src/main/java/com/thirtydegreesray/openhub/mvp/contract/ISearchContract.java +++ b/app/src/main/java/com/thirtydegreesray/openhub/mvp/contract/ISearchContract.java @@ -24,6 +24,7 @@ interface Presenter extends IBaseContract.Presenter{ SearchModel getSortModel(int page, int sortId); @NonNull ArrayList getSearchRecordList(); void addSearchRecord(@NonNull String record); + void removeSearchRecord(@NonNull String record); } } diff --git a/app/src/main/java/com/thirtydegreesray/openhub/mvp/presenter/SearchPresenter.java b/app/src/main/java/com/thirtydegreesray/openhub/mvp/presenter/SearchPresenter.java index c9776416..6775a533 100644 --- a/app/src/main/java/com/thirtydegreesray/openhub/mvp/presenter/SearchPresenter.java +++ b/app/src/main/java/com/thirtydegreesray/openhub/mvp/presenter/SearchPresenter.java @@ -14,6 +14,7 @@ import java.util.ArrayList; import java.util.Collections; +import java.util.List; import javax.inject.Inject; @@ -24,7 +25,8 @@ public class SearchPresenter extends BasePresenter implements ISearchContract.Presenter { - @AutoAccess ArrayList searchModels; + @AutoAccess + ArrayList searchModels; @Inject public SearchPresenter(DaoSession daoSession) { @@ -78,27 +80,40 @@ public ArrayList getSearchRecordList() { @Override public void addSearchRecord(@NonNull String record) { - if(record.contains("$")){ + if (record.contains("$")) { return; } int MAX_SEARCH_RECORD_SIZE = 30; ArrayList recordList = getSearchRecordList(); - if(recordList.contains(record)){ + if (recordList.contains(record)) { recordList.remove(record); } - if(recordList.size() >= MAX_SEARCH_RECORD_SIZE){ + if (recordList.size() >= MAX_SEARCH_RECORD_SIZE) { recordList.remove(recordList.size() - 1); } recordList.add(0, record); StringBuilder recordStr = new StringBuilder(""); String lastRecord = recordList.get(recordList.size() - 1); - for(String str : recordList){ + for (String str : recordList) { recordStr.append(str); - if(!str.equals(lastRecord)){ + if (!str.equals(lastRecord)) { recordStr.append("$$"); } } PrefUtils.set(PrefUtils.SEARCH_RECORDS, recordStr.toString()); } + @Override + public void removeSearchRecord(@NonNull String record) { + List recordsList = getSearchRecordList(); + recordsList.remove(record); + StringBuilder builder = new StringBuilder(); + for (String str : recordsList) { + builder.append(str); + if (!str.equals(recordsList.get(recordsList.size() > 0 ? recordsList.size() - 1 : 0))) { + builder.append("$$"); + } + } + PrefUtils.set(PrefUtils.SEARCH_RECORDS, builder.toString()); + } } diff --git a/app/src/main/java/com/thirtydegreesray/openhub/ui/activity/SearchActivity.java b/app/src/main/java/com/thirtydegreesray/openhub/ui/activity/SearchActivity.java index 73ccfa20..24fc0b01 100644 --- a/app/src/main/java/com/thirtydegreesray/openhub/ui/activity/SearchActivity.java +++ b/app/src/main/java/com/thirtydegreesray/openhub/ui/activity/SearchActivity.java @@ -10,12 +10,12 @@ import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v4.view.MenuItemCompat; +import android.support.v7.app.AlertDialog; import android.support.v7.widget.SearchView; import android.text.InputType; import android.view.Menu; import android.view.MenuItem; import android.view.View; -import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; import com.thirtydegreesray.dataautoaccess.annotation.AutoAccess; @@ -29,6 +29,7 @@ import com.thirtydegreesray.openhub.mvp.model.SearchModel; import com.thirtydegreesray.openhub.mvp.presenter.SearchPresenter; import com.thirtydegreesray.openhub.ui.activity.base.PagerActivity; +import com.thirtydegreesray.openhub.ui.adapter.SearchAutoCompleteAdapter; import com.thirtydegreesray.openhub.ui.adapter.base.FragmentPagerModel; import com.thirtydegreesray.openhub.ui.fragment.RepositoriesFragment; import com.thirtydegreesray.openhub.ui.fragment.UserListFragment; @@ -109,11 +110,31 @@ public boolean onCreateOptionsMenu(Menu menu) { } MenuItemCompat.setOnActionExpandListener(searchItem, this); + SearchAutoCompleteAdapter.OnSearchItemLongClick searchItemLongClickListener = (adapter, item) -> { + if (item != null) { + new AlertDialog.Builder(this) + .setCancelable(false) + .setMessage(String.format("Remove %s?", item)) + .setPositiveButton(android.R.string.yes, (dialog, which) -> { + mPresenter.removeSearchRecord(item); + adapter.clear(); + adapter.addAll(mPresenter.getSearchRecordList()); + }) + .setNegativeButton(android.R.string.cancel, (dialog, which) -> dialog.dismiss()) + .create() + .show(); + } + }; + AutoCompleteTextView autoCompleteTextView = searchView .findViewById(android.support.v7.appcompat.R.id.search_src_text); autoCompleteTextView.setThreshold(0); - autoCompleteTextView.setAdapter(new ArrayAdapter<>(this, - R.layout.layout_item_simple_list, mPresenter.getSearchRecordList())); + autoCompleteTextView.setAdapter(new SearchAutoCompleteAdapter( + this, + R.layout.layout_item_simple_list, + mPresenter.getSearchRecordList(), + searchItemLongClickListener) + ); autoCompleteTextView.setDropDownBackgroundDrawable(new ColorDrawable(ViewUtils.getWindowBackground(getActivity()))); autoCompleteTextView.setOnItemClickListener((parent, view, position, id) -> { onQueryTextSubmit(parent.getAdapter().getItem(position).toString()); diff --git a/app/src/main/java/com/thirtydegreesray/openhub/ui/adapter/SearchAutoCompleteAdapter.java b/app/src/main/java/com/thirtydegreesray/openhub/ui/adapter/SearchAutoCompleteAdapter.java new file mode 100644 index 00000000..5416d683 --- /dev/null +++ b/app/src/main/java/com/thirtydegreesray/openhub/ui/adapter/SearchAutoCompleteAdapter.java @@ -0,0 +1,36 @@ +package com.thirtydegreesray.openhub.ui.adapter; + +import android.content.Context; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; + +import java.util.List; + +public class SearchAutoCompleteAdapter extends ArrayAdapter { + + private OnSearchItemLongClick mLongClickListener; + + public SearchAutoCompleteAdapter(@NonNull Context context, int resource, + @NonNull List objects, OnSearchItemLongClick listener) { + super(context, resource, objects); + this.mLongClickListener = listener; + } + + @NonNull + @Override + public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { + View view = super.getView(position, convertView, parent); + view.setOnLongClickListener((v) -> { + mLongClickListener.onLongClick(this, getItem(position)); + return true; + }); + return view; + } + + public interface OnSearchItemLongClick { + void onLongClick(SearchAutoCompleteAdapter adapter, @Nullable String item); + } +} From aef4dc24d0635b5945df7aae437c7b1e7e8b7d32 Mon Sep 17 00:00:00 2001 From: Mohamed ELIDRISSI Date: Mon, 3 Jun 2019 13:22:34 +0000 Subject: [PATCH 4/7] Opening https://github.com/ via browser now opens Splash screen instead of Profile --- .../java/com/thirtydegreesray/openhub/util/AppOpener.java | 5 ++++- .../java/com/thirtydegreesray/openhub/util/GitHubHelper.java | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/thirtydegreesray/openhub/util/AppOpener.java b/app/src/main/java/com/thirtydegreesray/openhub/util/AppOpener.java index c7d2d5f9..965fbb13 100644 --- a/app/src/main/java/com/thirtydegreesray/openhub/util/AppOpener.java +++ b/app/src/main/java/com/thirtydegreesray/openhub/util/AppOpener.java @@ -26,6 +26,7 @@ import com.thirtydegreesray.openhub.ui.activity.ReleaseInfoActivity; import com.thirtydegreesray.openhub.ui.activity.ReleasesActivity; import com.thirtydegreesray.openhub.ui.activity.RepositoryActivity; +import com.thirtydegreesray.openhub.ui.activity.SplashActivity; import com.thirtydegreesray.openhub.ui.activity.ViewerActivity; import java.util.ArrayList; @@ -180,7 +181,9 @@ public static void launchUrl(@NonNull Context context, @NonNull Uri uri){ repoName = gitHubName.getRepoName(); } - if(GitHubHelper.isUserUrl(url)){ + if (GitHubHelper.isHomeUrl(url)) { + context.startActivity(new Intent(context, SplashActivity.class)); + } else if(GitHubHelper.isUserUrl(url)){ ProfileActivity.show((Activity) context, userName); } else if(GitHubHelper.isRepoUrl(url)){ RepositoryActivity.show(context, userName, repoName); diff --git a/app/src/main/java/com/thirtydegreesray/openhub/util/GitHubHelper.java b/app/src/main/java/com/thirtydegreesray/openhub/util/GitHubHelper.java index 1a72164f..c9865274 100644 --- a/app/src/main/java/com/thirtydegreesray/openhub/util/GitHubHelper.java +++ b/app/src/main/java/com/thirtydegreesray/openhub/util/GitHubHelper.java @@ -31,6 +31,7 @@ public class GitHubHelper { public static final Pattern REPO_FULL_NAME_PATTERN = Pattern.compile("([a-z]|[A-Z]|\\d|-)*/([a-z]|[A-Z]|\\d|-|\\.|_)*"); + private static final Pattern HOME_PATTERN = Pattern.compile(GITHUB_BASE_URL_PATTERN_STR + "/"); private static final Pattern USER_PATTERN = Pattern.compile(GITHUB_BASE_URL_PATTERN_STR + "/([a-z]|[A-Z]|\\d|-)*(/)?"); private static final Pattern REPO_PATTERN = Pattern.compile(GITHUB_BASE_URL_PATTERN_STR @@ -89,6 +90,10 @@ public static String getExtension(@Nullable String name) { return MimeTypeMap.getFileExtensionFromUrl(name); } + public static boolean isHomeUrl(@NonNull String url) { + return HOME_PATTERN.matcher(url).matches(); + } + public static boolean isUserUrl(@NonNull String url){ return USER_PATTERN.matcher(url).matches(); } From e63ae56abbcf31278fbf373d44f15f879cf6c2d3 Mon Sep 17 00:00:00 2001 From: Mohamed ELIDRISSI Date: Mon, 3 Jun 2019 16:26:27 +0000 Subject: [PATCH 5/7] Fix UI issues throughout the app with devices with notch or display cutout --- .../openhub/ui/activity/MainActivity.java | 16 ++++++++++++---- .../openhub/ui/activity/ProfileActivity.java | 11 +++++++++++ .../main/res/layout/activity_issue_detail.xml | 4 ++-- app/src/main/res/layout/activity_profile.xml | 6 +++--- app/src/main/res/layout/activity_repository.xml | 7 ++++--- app/src/main/res/layout/nav_header_main.xml | 2 +- 6 files changed, 33 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/thirtydegreesray/openhub/ui/activity/MainActivity.java b/app/src/main/java/com/thirtydegreesray/openhub/ui/activity/MainActivity.java index 582cf75d..bc11e6dd 100644 --- a/app/src/main/java/com/thirtydegreesray/openhub/ui/activity/MainActivity.java +++ b/app/src/main/java/com/thirtydegreesray/openhub/ui/activity/MainActivity.java @@ -9,6 +9,7 @@ import android.support.annotation.Nullable; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; +import android.support.v4.view.ViewCompat; import android.support.v7.app.AlertDialog; import android.support.v7.widget.AppCompatImageView; import android.support.v7.widget.Toolbar; @@ -168,11 +169,18 @@ protected void initView(Bundle savedInstanceState) { } navViewStart.setCheckedItem(selectedPage); - ImageView avatar = navViewStart.getHeaderView(0).findViewById(R.id.avatar); - TextView name = navViewStart.getHeaderView(0).findViewById(R.id.name); - TextView mail = navViewStart.getHeaderView(0).findViewById(R.id.mail); + final View navHeader = navViewStart.getHeaderView(0); + ViewCompat.setOnApplyWindowInsetsListener(navHeader, (v, insets) -> { + navHeader.setPadding(navHeader.getPaddingLeft(), insets.getSystemWindowInsetTop(), + navHeader.getPaddingRight(), navHeader.getPaddingBottom()); + return insets; + }); + + ImageView avatar = navHeader.findViewById(R.id.avatar); + TextView name = navHeader.findViewById(R.id.name); + TextView mail = navHeader.findViewById(R.id.mail); - toggleAccountBn = navViewStart.getHeaderView(0).findViewById(R.id.toggle_account_bn); + toggleAccountBn = navHeader.findViewById(R.id.toggle_account_bn); toggleAccountBn.setOnClickListener(v -> { toggleAccountLay(); }); diff --git a/app/src/main/java/com/thirtydegreesray/openhub/ui/activity/ProfileActivity.java b/app/src/main/java/com/thirtydegreesray/openhub/ui/activity/ProfileActivity.java index 05035bf0..4cf5d24b 100644 --- a/app/src/main/java/com/thirtydegreesray/openhub/ui/activity/ProfileActivity.java +++ b/app/src/main/java/com/thirtydegreesray/openhub/ui/activity/ProfileActivity.java @@ -9,9 +9,11 @@ import android.support.annotation.Nullable; import android.support.v4.app.ActivityOptionsCompat; import android.support.v4.app.Fragment; +import android.support.v4.view.ViewCompat; import android.view.Menu; import android.view.MenuItem; import android.view.View; +import android.view.ViewGroup; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; @@ -129,6 +131,15 @@ protected void initView(Bundle savedInstanceState) { setToolbarBackEnable(); setToolbarTitle(mPresenter.getLoginId()); setUserAvatar(); + if (toolbar != null) { + ViewCompat.setOnApplyWindowInsetsListener(toolbar, (v, insets) -> { + ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) + toolbar.getLayoutParams(); + params.topMargin = insets.getSystemWindowInsetTop(); + toolbar.setLayoutParams(params); + return insets; + }); + } } @Override diff --git a/app/src/main/res/layout/activity_issue_detail.xml b/app/src/main/res/layout/activity_issue_detail.xml index 7a0c621d..9d0bc0d8 100644 --- a/app/src/main/res/layout/activity_issue_detail.xml +++ b/app/src/main/res/layout/activity_issue_detail.xml @@ -26,7 +26,7 @@ app:collapsedTitleGravity="start" app:expandedTitleGravity="top" app:expandedTitleMarginStart="96dp" - app:expandedTitleMarginTop="60dp" + app:expandedTitleMarginTop="56dp" app:expandedTitleTextAppearance="@style/Toolbar.Expand.TitleText" android:paddingTop="0dp" android:paddingBottom="@dimen/spacing_normal"> @@ -37,7 +37,7 @@ android:layout_gravity="start|top" android:paddingStart="@dimen/spacing_normal" android:paddingEnd="@dimen/spacing_normal" - android:layout_marginTop="86dp"> + android:paddingTop="?attr/actionBarSize"> @@ -51,11 +51,11 @@ + android:paddingTop="?attr/actionBarSize"> @@ -49,13 +49,14 @@ android:fitsSystemWindows="true"/> + android:paddingTop="?attr/actionBarSize"> Date: Mon, 3 Jun 2019 16:42:37 +0000 Subject: [PATCH 6/7] Fix clicking on a search history record does not search for it --- .../openhub/ui/activity/SearchActivity.java | 6 ++---- .../ui/adapter/SearchAutoCompleteAdapter.java | 12 ++++++++++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/thirtydegreesray/openhub/ui/activity/SearchActivity.java b/app/src/main/java/com/thirtydegreesray/openhub/ui/activity/SearchActivity.java index 24fc0b01..54144190 100644 --- a/app/src/main/java/com/thirtydegreesray/openhub/ui/activity/SearchActivity.java +++ b/app/src/main/java/com/thirtydegreesray/openhub/ui/activity/SearchActivity.java @@ -133,12 +133,10 @@ public boolean onCreateOptionsMenu(Menu menu) { this, R.layout.layout_item_simple_list, mPresenter.getSearchRecordList(), - searchItemLongClickListener) + searchItemLongClickListener, + this::onQueryTextSubmit) ); autoCompleteTextView.setDropDownBackgroundDrawable(new ColorDrawable(ViewUtils.getWindowBackground(getActivity()))); - autoCompleteTextView.setOnItemClickListener((parent, view, position, id) -> { - onQueryTextSubmit(parent.getAdapter().getItem(position).toString()); - }); return super.onCreateOptionsMenu(menu); } diff --git a/app/src/main/java/com/thirtydegreesray/openhub/ui/adapter/SearchAutoCompleteAdapter.java b/app/src/main/java/com/thirtydegreesray/openhub/ui/adapter/SearchAutoCompleteAdapter.java index 5416d683..352a17a7 100644 --- a/app/src/main/java/com/thirtydegreesray/openhub/ui/adapter/SearchAutoCompleteAdapter.java +++ b/app/src/main/java/com/thirtydegreesray/openhub/ui/adapter/SearchAutoCompleteAdapter.java @@ -11,18 +11,22 @@ public class SearchAutoCompleteAdapter extends ArrayAdapter { + private OnSearchItemClick mClickListener; private OnSearchItemLongClick mLongClickListener; public SearchAutoCompleteAdapter(@NonNull Context context, int resource, - @NonNull List objects, OnSearchItemLongClick listener) { + @NonNull List objects, OnSearchItemLongClick longClickListener, + OnSearchItemClick clickListener) { super(context, resource, objects); - this.mLongClickListener = listener; + this.mClickListener = clickListener; + this.mLongClickListener = longClickListener; } @NonNull @Override public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { View view = super.getView(position, convertView, parent); + view.setOnClickListener((v) -> mClickListener.onClick(getItem(position))); view.setOnLongClickListener((v) -> { mLongClickListener.onLongClick(this, getItem(position)); return true; @@ -30,6 +34,10 @@ public View getView(int position, @Nullable View convertView, @NonNull ViewGroup return view; } + public interface OnSearchItemClick { + void onClick(@Nullable String item); + } + public interface OnSearchItemLongClick { void onLongClick(SearchAutoCompleteAdapter adapter, @Nullable String item); } From 6ec023a8eecbf0158dbe4ffbd05ae6dd51d8c47d Mon Sep 17 00:00:00 2001 From: JoanVC100 Date: Tue, 25 Jun 2019 02:13:08 +0200 Subject: [PATCH 7/7] Updating Gradle to 5.4.1, updating most of the dependencies to the last version available and adding Catalan language --- app/build.gradle | 6 +- app/src/main/res/values-ca/strings.xml | 432 +++++++++++++++++++++++ app/src/main/res/values/arrays.xml | 4 +- gradle.properties | 20 +- gradle/wrapper/gradle-wrapper.properties | 4 +- 5 files changed, 450 insertions(+), 16 deletions(-) create mode 100644 app/src/main/res/values-ca/strings.xml diff --git a/app/build.gradle b/app/build.gradle index 6243f744..f6933f9d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -97,7 +97,7 @@ repositories { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) - androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', { + androidTestImplementation('com.android.support.test.espresso:espresso-core:3.0.2', { exclude group: 'com.android.support', module: 'support-annotations' }) testImplementation 'junit:junit:4.12' @@ -105,7 +105,7 @@ dependencies { // compile "com.android.support:support-annotations:${ANDROID_SUPPORT_VERSION}" implementation "com.android.support:support-v4:${ANDROID_SUPPORT_VERSION}" -// compile "com.android.support:support-v13:${ANDROID_SUPPORT_VERSION}" + implementation "com.android.support:support-v13:${ANDROID_SUPPORT_VERSION}" implementation "com.android.support:appcompat-v7:${ANDROID_SUPPORT_VERSION}" implementation "com.android.support:recyclerview-v7:${ANDROID_SUPPORT_VERSION}" implementation "com.android.support:design:${ANDROID_SUPPORT_VERSION}" @@ -172,4 +172,4 @@ dependencies { implementation "com.timehop.stickyheadersrecyclerview:library:${STICKY_HEAD_VERSION}" implementation "org.jsoup:jsoup:${JSOUP_VERSION}" -} +} \ No newline at end of file diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml new file mode 100644 index 00000000..f6bbb350 --- /dev/null +++ b/app/src/main/res/values-ca/strings.xml @@ -0,0 +1,432 @@ + + + Usuari + Contrasenya + Iniciar sessió + INICI DE SESSIÓ AL NAVEGADOR + INICIÏ SESSIÓ amb el seu navegador per defecte(OAuth) + Usuari incorrecte! + Contrasenya incorrecta! + + + Perfil + Notificacions + Notícies + Issues + + Repositoris + En propietat + Destacats + En tendència + Explorar + + Informació & Preferències + Preferències + Sobre + + Repositoris públics + Repositoris en tendència + + La caché i la xarxa no estàn disponibles. + Page not found. + Unauthorized. + Loading data from GitHub failed. Please check your network connection and retry. + Loading data from GitHub timed out. Please check your network connection and retry. + Tap to retry + No data + + OpenHub + Settings + + + + + Choose Theme + Theme Accent Color + Start Page + Cache Controller + Load cache first if cache available, then load from network + Use System Downloader + Use Custom Tabs + Open in custom tabs instead of outer browser(support chrome, firefox…) + If you want to open in outer browser directly, you could change in settings. + Language + Logout + + + Repository + Info + Files + Commits + Commit + + Star + Unstar + Unstarred + Branches or tags + Share + Open in browser + Copy URL + Copy clone URL + Watch + Watched + Unwatch + Unwatched + Fork + Fork + Forked + Forked from + Wrap lines + Refresh + + Copied + + Stargazers + Forks + Watchers + README + NO README + Warning + Cancel + Close + OK + OK + Select branch or tag + Share to + There are no share clients installed. + There are no browser clients installed. + There are no download clients installed. + Send email + Open in market + There are no email clients installed. + There are no market clients installed. + Url is invalid + Archive file is not supported, please download the file to view its content. + Fork this repository? + Invalid repository url! + Invalid url! + + + Follow + Followed + Unfollow + Unfollowed + Members + View + Followers + Following + Repos + Stars + Gists + Joined at + Users + Activity + + just now + seconds ago + minutes ago + hours ago + days ago + + Search + Sort + Sort order + + Best match + Most stars + Fewest stars + Most forks + Fewest forks + Recently updated + Least recently updated + + Most followers + Fewest followers + Most recently joined + Least recently joined + Most repositories + Fewest repositories + + Invalid query text! + + Daily + Weekly + Monthly + + Confirm to logout? + Unknown + Organizations + No users + No activities + No repositories + No files + Developing + Version + Source code + Star to support me + Rate or comment in market + Author + Follow on GitHub + Email + loading + + Upgrade + Install + Next time + Version: + Apk size: + Publish time: + Upgrade info: + You have installed the latest version. + Fork failed + + Filter + + Releases + No releases + Source code (zip) + Source code (tar.gz) + Download source (zip) + Download source (tar.gz) + released this + on + Download + Download complete + Download failed + Downloading + Url or file name is empty! + Download start + Download cancel + Permission denied, please allow storage permission. + Please enable download service first! + + Open + Closed + No issues + Issue + + Type + All + Created + Assigned + Mentioned + Participant + + Recently created + Previously created + Most comments + Fewest comments + + Comments + Comment + No description provided. + No comments. + + Write + Preview + + Edit + Delete + Comment is null! + Comment success + Confirm to delete comment? + Reopen + Reopen success + Close success + + Add large header + Add medium header + Add small header + Add bold text + Add italic text + Add a link + Insert code + Insert a quote + Add a bulleted list + Directly mention a user or team + Nothing to preview + + Title + Leave a comment + Use markdown editor + + Created at + Forked at + Latest update + Latest commit + Issue title can not be null. + Edit issue + Create issue + Edit issue success + Create issue success + + No commits + Committed + View file + Failed to recognize the GitHub URL, please open in browser after long press copied. + Failed to open the URL, please open in browser after long press copied. + Compare view + + Unread + No new notifications. + Share & Feedback + Share to your friends + Feedback + + Wishes From OpenHub + Hi %s, today is your %dth day at OpenHub, thanks for your using, I will strive to become a more convenient GitHub app for you. \n\nIf you can star to support me, it would be awesome! + Thank you for your support! + Star me + Keep moving + + Owner + Public + Private + Member + Most pushed + Fewest pushed + Full name asc + Full name desc + Recently starred + Previously starred + + Trace + My repos + Starred repos + Trending repos + + Bookmarks + Bookmark + Remove bookmark + Bookmark saved + Bookmark removed + + User + Repo + Issues list + Commits list + Releases list + Release + Go to + + Tips + You can single click item to view default page, or long click item to view available pages. + + You can double click title to back top in list page. + You can long click item to view available downloads. + + Created comment on commit in %s + Created comment on issue %d in %s + Created repository %s + Forked %s to %s + Starred %s + Push to %s at %s + Created tag %s at %s + Created branch %s at %s + Delete tag %s at %s + Delete branch %s at %s + Published release %s at %s + Opened issue %d in %s + Closed issue %d in %s + Reopened issue %d in %s + Edited issue %d in %s + Assigned issue %d in %s + Unassigned issue %d in %s + Labeled issue %d in %s + Unlabeled issue %d in %s + Milestoned issue %d in %s + Demilestoned issue %d in %s + Added member %s to %s + Deleted member %s at %s + Edited member %s at %s + Made %s public + Org %s blocked user %s + Org %s unblocked user %s + Created pull request review comment at %s + Deleted pull request review comment at %s + Edited pull request review comment at %s + Submitted pull request review at %s + Edited pull request review at %s + Dismissed pull request review at %s + + Undo + No bookmarks + No trace + Trace deleted + Today + Yesterday + + My languages + Choose languages + Language %s removed + Choose at least one language! + You can swipe left or right to remove items, long click items to drag the sort. + Fullscreen + + Global news + Wiki + Recent Wiki Updates + No recent Wiki Updates + + Repo collections + No repo collections + Curated lists and insight into burgeoning industries, topics, and communities. + %s page parse error, this page may be changed by github, please update your application to latest version, if error continue, please concat me to solve the problem! + + + You can swipe left or right to remove bookmark. + Mark all as read + Mark as read + + Topic + Featured topics + Browse the top used topics on GitHub. + No topics + + %s star today + %s star this week + %s star this month + It looks like we don’t have any trending repositories for %s. + + All languages + Unknown languages + + Labels + Label + Edit label + Create label + Save + Name + Color + More + Custom + Done + Presets + Choose color + Invalid color + Invalid name + Choose labels + Manage labels + + add the label %s + remove the label %s + close this + reopened this + modified this issue + added this to the %s milestone + removed this from the %s milestone + locked and limited conversation to collaborators + unlocked this conversation + delete a comment + referenced this issue in %s + assigned this to %s + removed their assignment + + Disable loading network image + Disable loading network image while mobile network + + Confirm to %s this issue? + + Add account + Confirm to delete this label? + diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index bc4b2f27..e0a911a9 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -9,16 +9,18 @@ Português 한국어 Español + Català en zh-rCN iw de + es hi pt-rPT ko - es + ca diff --git a/gradle.properties b/gradle.properties index e0a0ab77..19251a2d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,30 +26,30 @@ VERSION_CODE = 30 VERSION_NAME = 3.0.0 #library -ANDROID_SUPPORT_VERSION = 25.4.0 -CONSTRAINT_VERSION = 1.0.2 +ANDROID_SUPPORT_VERSION = 28.0.0 +CONSTRAINT_VERSION = 1.1.3 MULTIDEX_VERSION = 1.0.2 DATAAUTOACCESS_VERSION = 1.2.8 -BUTTERKNIFE_VERSION = 8.7.0 +BUTTERKNIFE_VERSION = 9.0.0 GREEN_DAO_VERSION=3.2.2 EVENT_BUS_VERSION=3.0.0 FILE_DOWNLOADER_VERSION=0.3.1 RXJAVA_VERSION=1.1.0 -RETROFIT_VERSION=2.1.0 -DAGGER_VERSION=2.11 -RX_PERMISSION_VERSION=0.9.4@aar +RETROFIT_VERSION=2.6.0 +DAGGER_VERSION=2.23.2 +RX_PERMISSION_VERSION=0.9.4 RETROLAMBDA_VERSION=2.3.0 OKHTTP_VERSION=3.6.0 FASTJSON_VERSION=1.1.46.android GLIDE_VERSION=4.0.0 ROUNDED_IMAGEVIEW_VERSION=2.3.0 -CIRCLE_IMAGEVIEW_VERSION=2.1.0 -TOASTY_VERSION = 1.2.5 +CIRCLE_IMAGEVIEW_VERSION=3.0.0 +TOASTY_VERSION = 1.4.2 MATERIAL_ABOUT_VERSION = 2.2.1 SUBMIT_BUTTON_VERSION = 1.1.2 MATERIAL_DIALOG_VERSION = 0.9.4.5 BUGGLY_NATIVE_VERSION = 3.3.1 RICKTEXT_VERSION = 2.5.4 -LOGGER_VERSION = 2.1.1 +LOGGER_VERSION = 2.2.0 STICKY_HEAD_VERSION = 0.4.3 -JSOUP_VERSION = 1.11.2 \ No newline at end of file +JSOUP_VERSION = 1.12.1 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index b577e43b..5ffb377d 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Mon Nov 05 11:42:12 CST 2018 +#Mon Jun 24 22:19:45 CEST 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip