From a7a2017e7b174699211003eeea2c2b17a5311684 Mon Sep 17 00:00:00 2001 From: James Fenn <18jafenn90@gmail.com> Date: Mon, 7 May 2018 12:43:59 -0400 Subject: [PATCH 1/8] fixed #18 --- .../me/jfenn/attribouter/data/info/ContributorsInfoData.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/attribouter/src/main/java/me/jfenn/attribouter/data/info/ContributorsInfoData.java b/attribouter/src/main/java/me/jfenn/attribouter/data/info/ContributorsInfoData.java index acc6ce2..c02c11b 100644 --- a/attribouter/src/main/java/me/jfenn/attribouter/data/info/ContributorsInfoData.java +++ b/attribouter/src/main/java/me/jfenn/attribouter/data/info/ContributorsInfoData.java @@ -51,6 +51,9 @@ public ContributorsInfoData(XmlResourceParser parser) throws XmlPullParserExcept if (!contributors.contains(contributor)) contributors.add(contributor); else contributors.get(contributors.indexOf(contributor)).merge(contributor); + + if (contributor.login != null && !contributor.hasEverything()) + addRequest(new UserData(contributor.login)); } } From b09c84779b75b0ecec4a01d23618758f12457062 Mon Sep 17 00:00:00 2001 From: James Fenn <18jafenn90@gmail.com> Date: Mon, 7 May 2018 13:47:16 -0400 Subject: [PATCH 2/8] fixed #21 --- .../data/info/TranslatorsInfoData.java | 51 +++++++++---------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/attribouter/src/main/java/me/jfenn/attribouter/data/info/TranslatorsInfoData.java b/attribouter/src/main/java/me/jfenn/attribouter/data/info/TranslatorsInfoData.java index 407d6ea..b7458c9 100644 --- a/attribouter/src/main/java/me/jfenn/attribouter/data/info/TranslatorsInfoData.java +++ b/attribouter/src/main/java/me/jfenn/attribouter/data/info/TranslatorsInfoData.java @@ -105,32 +105,6 @@ public ViewHolder getViewHolder(View v) { @Override public void bind(Context context, ViewHolder viewHolder) { - if (overflow == 0) { - viewHolder.titleView.setVisibility(View.GONE); - viewHolder.recycler.setVisibility(View.GONE); - viewHolder.expand.setVisibility(View.GONE); - - viewHolder.overflow.setVisibility(View.VISIBLE); - viewHolder.overflow.setText(String.format(context.getString(R.string.title_attribouter_view_overflow), translatorsTitle)); - - viewHolder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - new OverflowDialog(v.getContext(), translatorsTitle, sortedTranslators).show(); - } - }); - return; - } else { - viewHolder.titleView.setVisibility(View.VISIBLE); - viewHolder.recycler.setVisibility(View.VISIBLE); - viewHolder.expand.setVisibility(View.VISIBLE); - viewHolder.overflow.setVisibility(View.GONE); - viewHolder.itemView.setOnClickListener(null); - } - - if (translatorsTitle != null) - viewHolder.titleView.setText(ResourceUtils.getString(context, translatorsTitle)); - int remaining = overflow; List sortedList = new ArrayList<>(); sortedTranslators = new ArrayList<>(); @@ -167,6 +141,31 @@ public void onClick(View v) { } } + if (overflow == 0) { + viewHolder.titleView.setVisibility(View.GONE); + viewHolder.recycler.setVisibility(View.GONE); + viewHolder.expand.setVisibility(View.GONE); + + viewHolder.overflow.setVisibility(View.VISIBLE); + viewHolder.overflow.setText(String.format(context.getString(R.string.title_attribouter_view_overflow), ResourceUtils.getString(context, translatorsTitle))); + + viewHolder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new OverflowDialog(v.getContext(), translatorsTitle, sortedTranslators).show(); + } + }); + return; + } else { + viewHolder.titleView.setVisibility(View.VISIBLE); + viewHolder.recycler.setVisibility(View.VISIBLE); + viewHolder.expand.setVisibility(View.VISIBLE); + viewHolder.overflow.setVisibility(View.GONE); + viewHolder.itemView.setOnClickListener(null); + } + + if (translatorsTitle != null) + viewHolder.titleView.setText(ResourceUtils.getString(context, translatorsTitle)); viewHolder.recycler.setLayoutManager(new LinearLayoutManager(context)); viewHolder.recycler.setAdapter(new InfoAdapter(sortedList)); From ee4d9021d13e83f93dd82dd85e1080c3ca0542a0 Mon Sep 17 00:00:00 2001 From: James Fenn <18jafenn90@gmail.com> Date: Mon, 7 May 2018 13:56:14 -0400 Subject: [PATCH 3/8] catch json formatting errors --- .../me/jfenn/attribouter/data/github/GitHubData.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/attribouter/src/main/java/me/jfenn/attribouter/data/github/GitHubData.java b/attribouter/src/main/java/me/jfenn/attribouter/data/github/GitHubData.java index 10648a4..09c5de9 100644 --- a/attribouter/src/main/java/me/jfenn/attribouter/data/github/GitHubData.java +++ b/attribouter/src/main/java/me/jfenn/attribouter/data/github/GitHubData.java @@ -3,10 +3,12 @@ import android.content.Context; import android.os.Handler; import android.os.Looper; +import android.util.Log; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.InstanceCreator; +import com.google.gson.JsonSyntaxException; import java.io.BufferedReader; import java.io.File; @@ -63,7 +65,12 @@ private void init(String json) { * @param json the json string */ protected void initJson(Gson gson, String json) { - gson.fromJson(json, getClass()); + try { + gson.fromJson(json, getClass()); + } catch (JsonSyntaxException e) { + e.printStackTrace(); + Log.e("Attribouter", "Error parsing JSON from " + url); + } } /** From 1919a38ee8acd8f18d3bcc0734d021e9b82daf46 Mon Sep 17 00:00:00 2001 From: James Fenn <18jafenn90@gmail.com> Date: Mon, 7 May 2018 14:14:18 -0400 Subject: [PATCH 4/8] fixed #19 --- .../attribouter/data/info/AppInfoData.java | 4 ++-- .../data/info/LicenseInfoData.java | 2 +- .../data/info/link/LinkInfoData.java | 23 +++++++++++++++---- .../jfenn/attribouter/dialogs/UserDialog.java | 2 +- 4 files changed, 23 insertions(+), 8 deletions(-) diff --git a/attribouter/src/main/java/me/jfenn/attribouter/data/info/AppInfoData.java b/attribouter/src/main/java/me/jfenn/attribouter/data/info/AppInfoData.java index cacbb5d..046d8ca 100644 --- a/attribouter/src/main/java/me/jfenn/attribouter/data/info/AppInfoData.java +++ b/attribouter/src/main/java/me/jfenn/attribouter/data/info/AppInfoData.java @@ -109,7 +109,7 @@ public ViewHolder getViewHolder(View v) { } @Override - public void bind(Context context, ViewHolder viewHolder) { + public void bind(final Context context, ViewHolder viewHolder) { ApplicationInfo info = context.getApplicationInfo(); ResourceUtils.setImage(context, icon, info.icon, viewHolder.appIconView); viewHolder.nameTextView.setText(info.labelRes); @@ -127,7 +127,7 @@ public void bind(Context context, ViewHolder viewHolder) { } else viewHolder.descriptionTextView.setVisibility(View.GONE); if (links.size() > 0) { - Collections.sort(links); + Collections.sort(links, new LinkInfoData.Comparator(context)); List linksList = new ArrayList<>(); for (LinkInfoData link : links) { diff --git a/attribouter/src/main/java/me/jfenn/attribouter/data/info/LicenseInfoData.java b/attribouter/src/main/java/me/jfenn/attribouter/data/info/LicenseInfoData.java index 864b0d1..fb5de52 100644 --- a/attribouter/src/main/java/me/jfenn/attribouter/data/info/LicenseInfoData.java +++ b/attribouter/src/main/java/me/jfenn/attribouter/data/info/LicenseInfoData.java @@ -254,7 +254,7 @@ public void bind(Context context, ViewHolder viewHolder) { } else viewHolder.licenseView.setVisibility(View.GONE); if (links.size() > 0) { - Collections.sort(links); + Collections.sort(links, new LinkInfoData.Comparator(context)); List linksList = new ArrayList<>(); for (LinkInfoData link : links) { diff --git a/attribouter/src/main/java/me/jfenn/attribouter/data/info/link/LinkInfoData.java b/attribouter/src/main/java/me/jfenn/attribouter/data/info/link/LinkInfoData.java index 59c0b6b..a3ab0f1 100644 --- a/attribouter/src/main/java/me/jfenn/attribouter/data/info/link/LinkInfoData.java +++ b/attribouter/src/main/java/me/jfenn/attribouter/data/info/link/LinkInfoData.java @@ -13,7 +13,7 @@ import me.jfenn.attribouter.utils.ResourceUtils; import me.jfenn.attribouter.utils.UrlClickListener; -public class LinkInfoData extends InfoData implements Comparable { +public class LinkInfoData extends InfoData { @Nullable private String id; @@ -131,9 +131,10 @@ public void bind(Context context, ViewHolder viewHolder) { viewHolder.itemView.setOnClickListener(getListener(context)); } - @Override - public int compareTo(@NonNull LinkInfoData o) { - int comparison = name != null && o.name != null ? name.compareTo(o.name) : 0; + public int compareTo(Context context, @NonNull LinkInfoData o) { + String name = ResourceUtils.getString(context, this.name); + String oname = ResourceUtils.getString(context, o.name); + int comparison = name != null && oname != null ? name.compareTo(oname) : 0; return ((o.priority - priority) * 2) + (comparison / Math.abs(comparison)); } @@ -149,4 +150,18 @@ public static class ViewHolder extends InfoData.ViewHolder { } } + public static class Comparator implements java.util.Comparator { + + private Context context; + + public Comparator(Context context) { + this.context = context; + } + + @Override + public int compare(LinkInfoData o1, LinkInfoData o2) { + return o1.compareTo(context, o2); + } + } + } diff --git a/attribouter/src/main/java/me/jfenn/attribouter/dialogs/UserDialog.java b/attribouter/src/main/java/me/jfenn/attribouter/dialogs/UserDialog.java index 7495a5b..99ef066 100644 --- a/attribouter/src/main/java/me/jfenn/attribouter/dialogs/UserDialog.java +++ b/attribouter/src/main/java/me/jfenn/attribouter/dialogs/UserDialog.java @@ -53,7 +53,7 @@ protected void onCreate(Bundle savedInstanceState) { bioView.setText(ResourceUtils.getString(getContext(), contributor.bio)); if (contributor.links.size() > 0) { - Collections.sort(contributor.links); + Collections.sort(contributor.links, new LinkInfoData.Comparator(getContext())); List linksList = new ArrayList<>(); for (LinkInfoData link : contributor.links) { From 8b0eb7c1cf9c7fad0d877196861c74d718f63860 Mon Sep 17 00:00:00 2001 From: James Fenn <18jafenn90@gmail.com> Date: Mon, 7 May 2018 17:40:29 -0400 Subject: [PATCH 5/8] update classpath, replace 'compile' with 'implementation' for some unknown reason --- app/build.gradle | 2 +- build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 3f67bf4..a7a1b13 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -30,5 +30,5 @@ dependencies { androidTestImplementation 'com.android.support.test:runner:1.0.1' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' - compile project(':attribouter') + implementation project(':attribouter') } diff --git a/build.gradle b/build.gradle index b126a7e..8b2e81b 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.1.0-rc01' + classpath 'com.android.tools.build:gradle:3.1.2' // NOTE: Do not place your application dependencies here; they belong From 4501d357618f8fdf4db90230c48fa38183ffe769 Mon Sep 17 00:00:00 2001 From: James Fenn <18jafenn90@gmail.com> Date: Mon, 7 May 2018 17:56:18 -0400 Subject: [PATCH 6/8] fixed #20 --- .../java/me/jfenn/attribouter/data/info/LicenseInfoData.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/attribouter/src/main/java/me/jfenn/attribouter/data/info/LicenseInfoData.java b/attribouter/src/main/java/me/jfenn/attribouter/data/info/LicenseInfoData.java index fb5de52..5c443a1 100644 --- a/attribouter/src/main/java/me/jfenn/attribouter/data/info/LicenseInfoData.java +++ b/attribouter/src/main/java/me/jfenn/attribouter/data/info/LicenseInfoData.java @@ -107,7 +107,7 @@ public LicenseInfoData(@Nullable String repo, @Nullable String title, @Nullable else token = title; links = new ArrayList<>(); - if (websiteUrl != null) + if (websiteUrl != null && !websiteUrl.isEmpty()) links.add(new WebsiteLinkInfoData(websiteUrl, 2)); if (repo != null) links.add(new GitHubLinkInfoData(repo, 1)); From dc8bc485185d7b47d3907a2d262dde25cd71c986 Mon Sep 17 00:00:00 2001 From: James Fenn <18jafenn90@gmail.com> Date: Mon, 7 May 2018 18:08:40 -0400 Subject: [PATCH 7/8] updated version numbers --- attribouter/build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/attribouter/build.gradle b/attribouter/build.gradle index 1450ad2..109815a 100644 --- a/attribouter/build.gradle +++ b/attribouter/build.gradle @@ -3,7 +3,7 @@ apply plugin: 'com.android.library' ext { PUBLISH_GROUP_ID = 'me.jfenn' PUBLISH_ARTIFACT_ID = 'attribouter' - PUBLISH_VERSION = '0.0.5' + PUBLISH_VERSION = '0.0.6' } android { @@ -12,8 +12,8 @@ android { defaultConfig { minSdkVersion 15 targetSdkVersion 27 - versionCode 5 - versionName "0.0.5" + versionCode 6 + versionName "0.0.6" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true From 11411b987d90108cffdc8aec6a210e0ddd163297 Mon Sep 17 00:00:00 2001 From: James Fenn <18jafenn90@gmail.com> Date: Mon, 7 May 2018 18:10:38 -0400 Subject: [PATCH 8/8] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b288c9a..2551cae 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ This is just sample data. It is not real. Though Jahir is lazy, so that part is The Gradle dependency is available through jCenter, which is used by default in Android Studio. To add the dependency to your project, copy this line into the dependencies section of your app's build.gradle file. ```gradle -compile 'me.jfenn:attribouter:0.0.5' +compile 'me.jfenn:attribouter:0.0.6' ``` #### Starting an Activity