From abe029523cce6bbb85f23fbf4d9c3eb30bf3fa20 Mon Sep 17 00:00:00 2001 From: "Mr. Dragon" Date: Mon, 5 Mar 2018 22:11:53 +0530 Subject: [PATCH] Improve Details Activity --- app/build.gradle | 1 + .../in/dragons/galaxy/DetailsActivity.java | 58 ++--- .../galaxy/fragment/details/AppLists.java | 23 +- .../fragment/details/GeneralDetails.java | 22 +- .../fragment/details/GoogleDependency.java | 13 +- app/src/main/res/drawable/app_category.xml | 13 +- app/src/main/res/drawable/app_dev.xml | 13 +- app/src/main/res/drawable/app_downloads.xml | 13 +- app/src/main/res/drawable/app_playstore.xml | 13 +- app/src/main/res/drawable/app_price.xml | 13 +- app/src/main/res/drawable/app_ratings.xml | 13 +- app/src/main/res/drawable/app_settings.xml | 13 +- app/src/main/res/drawable/app_share.xml | 13 +- app/src/main/res/drawable/app_size.xml | 13 +- app/src/main/res/layout/app_actions_inc.xml | 54 ++++ app/src/main/res/layout/app_beta_inc.xml | 40 +-- .../res/layout/app_bottom_actions_inc.xml | 83 ++++++ app/src/main/res/layout/app_changelog_inc.xml | 55 ++-- app/src/main/res/layout/app_details_inc.xml | 101 ++++--- app/src/main/res/layout/app_gen_inc.xml | 63 ++--- app/src/main/res/layout/app_info_inc.xml | 41 +++ app/src/main/res/layout/app_more_inc.xml | 37 +-- app/src/main/res/layout/app_perm_inc.xml | 18 +- app/src/main/res/layout/app_reviews_inc.xml | 27 +- .../res/layout/details_activity_layout.xml | 246 +++--------------- 25 files changed, 514 insertions(+), 485 deletions(-) create mode 100644 app/src/main/res/layout/app_actions_inc.xml create mode 100644 app/src/main/res/layout/app_bottom_actions_inc.xml create mode 100644 app/src/main/res/layout/app_info_inc.xml diff --git a/app/build.gradle b/app/build.gradle index d33c5f5bd..bf59db580 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -43,4 +43,5 @@ dependencies { implementation 'com.github.percolate:caffeine:0.4.7' implementation 'com.afollestad:aesthetic:0.4.6' implementation 'com.afollestad.material-dialogs:commons:0.9.6.0' + implementation 'com.github.florent37:shapeofview:1.0.6' } \ No newline at end of file diff --git a/app/src/main/java/in/dragons/galaxy/DetailsActivity.java b/app/src/main/java/in/dragons/galaxy/DetailsActivity.java index 937624f92..bb713b2c6 100644 --- a/app/src/main/java/in/dragons/galaxy/DetailsActivity.java +++ b/app/src/main/java/in/dragons/galaxy/DetailsActivity.java @@ -42,6 +42,28 @@ public class DetailsActivity extends GalaxyActivity { return intent; } + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + FrameLayout contentFrameLayout = (FrameLayout) findViewById(R.id.content_frame); + getLayoutInflater().inflate(R.layout.details_activity_layout, contentFrameLayout); + onNewIntent(getIntent()); + } + + @Override + protected void onPause() { + if (null != downloadOrInstallFragment) { + downloadOrInstallFragment.unregisterReceivers(); + } + super.onPause(); + } + + @Override + protected void onResume() { + redrawButtons(); + super.onResume(); + } + @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); @@ -64,20 +86,6 @@ public class DetailsActivity extends GalaxyActivity { task.execute(); } - @Override - protected void onPause() { - if (null != downloadOrInstallFragment) { - downloadOrInstallFragment.unregisterReceivers(); - } - super.onPause(); - } - - @Override - protected void onResume() { - redrawButtons(); - super.onResume(); - } - private void redrawButtons() { if (null != downloadOrInstallFragment) { downloadOrInstallFragment.unregisterReceivers(); @@ -86,28 +94,6 @@ public class DetailsActivity extends GalaxyActivity { } } - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - FrameLayout contentFrameLayout = (FrameLayout) findViewById(R.id.content_frame); - getLayoutInflater().inflate(R.layout.details_activity_layout, contentFrameLayout); - onNewIntent(getIntent()); - } - - @Override - public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { - if (GalaxyPermissionManager.isGranted(requestCode, permissions, grantResults)) { - Log.i(getClass().getSimpleName(), "User granted the write permission"); - if (null == downloadOrInstallFragment && null != app) { - downloadOrInstallFragment = new DownloadOrInstall(this, app); - redrawButtons(); - } - if (null != downloadOrInstallFragment) { - downloadOrInstallFragment.download(); - } - } - } - @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); diff --git a/app/src/main/java/in/dragons/galaxy/fragment/details/AppLists.java b/app/src/main/java/in/dragons/galaxy/fragment/details/AppLists.java index 553f04f91..0780f571f 100644 --- a/app/src/main/java/in/dragons/galaxy/fragment/details/AppLists.java +++ b/app/src/main/java/in/dragons/galaxy/fragment/details/AppLists.java @@ -45,28 +45,19 @@ public class AppLists extends Abstract { linkView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20); linkView.setPadding(0, 6, 0, 0); linkView.setGravity(Gravity.CENTER_VERTICAL); - linkView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - ClusterActivity.start(activity, url, label); - } - }); + linkView.setOnClickListener(v -> ClusterActivity.start(activity, url, label)); return linkView; } private void addAppsByThisDeveloper() { ImageView imageView = (ImageView) activity.findViewById(R.id.apps_by_same_developer); - //textView.setText(activity.getString(R.string.apps_by, app.getDeveloperName())); imageView.setVisibility(View.VISIBLE); - imageView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(activity, SearchActivity.class); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - intent.setAction(Intent.ACTION_SEARCH); - intent.putExtra(SearchManager.QUERY, SearchActivity.PUB_PREFIX + app.getDeveloperName()); - activity.startActivity(intent); - } + imageView.setOnClickListener(v -> { + Intent intent = new Intent(activity, SearchActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.setAction(Intent.ACTION_SEARCH); + intent.putExtra(SearchManager.QUERY, SearchActivity.PUB_PREFIX + app.getDeveloperName()); + activity.startActivity(intent); }); } } diff --git a/app/src/main/java/in/dragons/galaxy/fragment/details/GeneralDetails.java b/app/src/main/java/in/dragons/galaxy/fragment/details/GeneralDetails.java index cd2a181bb..c8eec4c14 100644 --- a/app/src/main/java/in/dragons/galaxy/fragment/details/GeneralDetails.java +++ b/app/src/main/java/in/dragons/galaxy/fragment/details/GeneralDetails.java @@ -1,9 +1,7 @@ package in.dragons.galaxy.fragment.details; -import android.content.SharedPreferences; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; -import android.preference.PreferenceManager; import android.text.Html; import android.text.TextUtils; import android.text.format.Formatter; @@ -39,7 +37,6 @@ public class GeneralDetails extends Abstract { if (app.isInPlayStore()) { drawGeneralDetails(app); drawDescription(app); - new GoogleDependency((DetailsActivity) activity, app).draw(); } } @@ -62,25 +59,25 @@ public class GeneralDetails extends Abstract { } private void drawGeneralDetails(App app) { - activity.findViewById(R.id.general_card).setVisibility(View.VISIBLE); - activity.findViewById(R.id.general_details).setVisibility(View.VISIBLE); activity.findViewById(R.id.app_detail).setVisibility(View.VISIBLE); - activity.findViewById(R.id.divider_top).setVisibility(View.VISIBLE); - activity.findViewById(R.id.divider_bottom).setVisibility(View.VISIBLE); + setText(R.id.installs, R.string.details_installs, Util.addSiPrefix(app.getInstalls())); if (app.isEarlyAccess()) { setText(R.id.rating, R.string.early_access); } else { setText(R.id.rating, R.string.details_rating, app.getRating().getAverage()); } + setText(R.id.updated, R.string.details_updated, app.getUpdated()); setText(R.id.size, R.string.details_size, Formatter.formatShortFileSize(activity, app.getSize())); setText(R.id.category, R.string.details_category, new CategoryManager(activity).getCategoryName(app.getCategoryId())); setText(R.id.developer, R.string.details_developer, app.getDeveloperName()); setText(R.id.price, app.getPrice()); setText(R.id.contains_ads, app.containsAds() ? R.string.details_contains_ads : R.string.details_no_ads); + drawOfferDetails(app); drawChanges(app); + if (app.getVersionCode() == 0) { activity.findViewById(R.id.updated).setVisibility(View.GONE); activity.findViewById(R.id.size).setVisibility(View.GONE); @@ -90,22 +87,15 @@ public class GeneralDetails extends Abstract { private void drawChanges(App app) { String changes = app.getChanges(); if (TextUtils.isEmpty(changes)) { - activity.findViewById(R.id.changes).setVisibility(View.GONE); - activity.findViewById(R.id.changes_title).setVisibility(View.GONE); - activity.findViewById(R.id.changes_header).setVisibility(View.GONE); + activity.findViewById(R.id.more_changes_container).setVisibility(View.GONE); activity.findViewById(R.id.changes_container).setVisibility(View.GONE); - activity.findViewById(R.id.changes_upper).setVisibility(View.GONE); return; } if (app.getInstalledVersionCode() == 0) { setText(R.id.changes, Html.fromHtml(changes).toString()); - activity.findViewById(R.id.changes).setVisibility(View.VISIBLE); - activity.findViewById(R.id.changes_title).setVisibility(View.VISIBLE); + activity.findViewById(R.id.more_changes_container).setVisibility(View.VISIBLE); } else { - SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(activity); - activity.findViewById(R.id.changes_upper).setVisibility(View.VISIBLE); setText(R.id.changes_upper, Html.fromHtml(changes).toString()); - activity.findViewById(R.id.changes_header).setVisibility(View.VISIBLE); activity.findViewById(R.id.changes_container).setVisibility(View.VISIBLE); } } diff --git a/app/src/main/java/in/dragons/galaxy/fragment/details/GoogleDependency.java b/app/src/main/java/in/dragons/galaxy/fragment/details/GoogleDependency.java index 0a9d87bf9..9ecb14826 100644 --- a/app/src/main/java/in/dragons/galaxy/fragment/details/GoogleDependency.java +++ b/app/src/main/java/in/dragons/galaxy/fragment/details/GoogleDependency.java @@ -1,15 +1,12 @@ package in.dragons.galaxy.fragment.details; import android.preference.PreferenceManager; -import android.text.TextUtils; -import android.widget.TextView; import java.util.HashSet; import java.util.List; import java.util.Set; import in.dragons.galaxy.DetailsActivity; -import in.dragons.galaxy.R; import in.dragons.galaxy.SharedPreferencesTranslator; import in.dragons.galaxy.model.App; import in.dragons.galaxy.task.playstore.DependencyTranslationTask; @@ -32,19 +29,12 @@ public class GoogleDependency extends Abstract { untranslated.add(dependency); } } - drawDeps(translated); + if (untranslated.size() > 0) { getTranslations(untranslated); } } - private void drawDeps(Set dependencies) { - String depsList = app.getDependencies().isEmpty() - ? activity.getString(R.string.details_no_dependencies) - : TextUtils.join(", ", dependencies); - ((TextView) activity.findViewById(R.id.google_dependencies)).setText(activity.getString(R.string.details_depends_on, depsList)); - } - private Set getTranslatedDeps(App app) { Set translated = new HashSet<>(); for (String dependency : app.getDependencies()) { @@ -65,7 +55,6 @@ public class GoogleDependency extends Abstract { for (String packageName : translated.keySet()) { translator.putString(packageName, translated.get(packageName)); } - drawDeps(getTranslatedDeps(app)); } }; task.setContext(activity); diff --git a/app/src/main/res/drawable/app_category.xml b/app/src/main/res/drawable/app_category.xml index f52831523..aa43985ec 100644 --- a/app/src/main/res/drawable/app_category.xml +++ b/app/src/main/res/drawable/app_category.xml @@ -1,5 +1,10 @@ - - + + diff --git a/app/src/main/res/drawable/app_dev.xml b/app/src/main/res/drawable/app_dev.xml index 1ff5bd665..ef7f6bdbf 100644 --- a/app/src/main/res/drawable/app_dev.xml +++ b/app/src/main/res/drawable/app_dev.xml @@ -1,5 +1,10 @@ - - + + diff --git a/app/src/main/res/drawable/app_downloads.xml b/app/src/main/res/drawable/app_downloads.xml index aa57fe371..0cf352433 100644 --- a/app/src/main/res/drawable/app_downloads.xml +++ b/app/src/main/res/drawable/app_downloads.xml @@ -1,5 +1,10 @@ - - + + diff --git a/app/src/main/res/drawable/app_playstore.xml b/app/src/main/res/drawable/app_playstore.xml index 1850972ce..d79403451 100644 --- a/app/src/main/res/drawable/app_playstore.xml +++ b/app/src/main/res/drawable/app_playstore.xml @@ -1,5 +1,10 @@ - - + + diff --git a/app/src/main/res/drawable/app_price.xml b/app/src/main/res/drawable/app_price.xml index 91d071810..4d7abd311 100644 --- a/app/src/main/res/drawable/app_price.xml +++ b/app/src/main/res/drawable/app_price.xml @@ -1,5 +1,10 @@ - - + + diff --git a/app/src/main/res/drawable/app_ratings.xml b/app/src/main/res/drawable/app_ratings.xml index 23d75f702..0397d8810 100644 --- a/app/src/main/res/drawable/app_ratings.xml +++ b/app/src/main/res/drawable/app_ratings.xml @@ -1,5 +1,10 @@ - - + + diff --git a/app/src/main/res/drawable/app_settings.xml b/app/src/main/res/drawable/app_settings.xml index d8506a6e0..442eb7945 100644 --- a/app/src/main/res/drawable/app_settings.xml +++ b/app/src/main/res/drawable/app_settings.xml @@ -1,5 +1,10 @@ - - + + diff --git a/app/src/main/res/drawable/app_share.xml b/app/src/main/res/drawable/app_share.xml index dbf8b2ebb..ed1415c83 100644 --- a/app/src/main/res/drawable/app_share.xml +++ b/app/src/main/res/drawable/app_share.xml @@ -1,5 +1,10 @@ - - + + diff --git a/app/src/main/res/drawable/app_size.xml b/app/src/main/res/drawable/app_size.xml index 59811a4c4..33c98fdf9 100644 --- a/app/src/main/res/drawable/app_size.xml +++ b/app/src/main/res/drawable/app_size.xml @@ -1,5 +1,10 @@ - - + + diff --git a/app/src/main/res/layout/app_actions_inc.xml b/app/src/main/res/layout/app_actions_inc.xml new file mode 100644 index 000000000..16ae40212 --- /dev/null +++ b/app/src/main/res/layout/app_actions_inc.xml @@ -0,0 +1,54 @@ + + +