Improve the app design

- Fix various UI glitch & bugs
 - Cleanup & Improve coding style
This commit is contained in:
Mr. Dragon
2018-05-29 13:10:42 +05:30
parent bfd8711d9d
commit c119c4059d
69 changed files with 1736 additions and 1093 deletions

View File

@@ -56,7 +56,7 @@ dependencies {
implementation 'com.squareup.picasso:picasso:2.5.2'
implementation 'com.squareup.okhttp3:okhttp:3.10.0'
implementation 'com.github.percolate:caffeine:0.4.7'
implementation 'com.github.florent37:shapeofview:1.0.6'
implementation 'com.github.florent37:shapeofview:1.1.0'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

View File

@@ -1,8 +1,14 @@
package com.dragons.aurora;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.drawable.GradientDrawable;
import android.preference.PreferenceManager;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.util.TypedValue;
import android.view.animation.AnimationUtils;
import android.view.animation.LayoutAnimationController;
import com.dragons.aurora.downloader.DownloadState;
import com.dragons.aurora.fragment.PreferenceFragment;
@@ -86,6 +92,10 @@ public class Util {
PreferenceManager.getDefaultSharedPreferences(context).edit().putString(key, TextUtils.join(DELIMITER, set)).apply();
}
static public void putBoolean(Context context, String key, boolean value) {
PreferenceManager.getDefaultSharedPreferences(context).edit().putBoolean(key, value).apply();
}
static public int parseInt(String intAsString, int defaultValue) {
try {
return Integer.parseInt(intAsString);
@@ -158,4 +168,29 @@ public class Util {
}
}
public static int getStyledAttribute(Context context, int styleID) {
TypedArray arr = context.obtainStyledAttributes(new TypedValue().data, new int[]{styleID});
int styledColor = arr.getColor(0, -1);
arr.recycle();
return styledColor;
}
public static GradientDrawable getGradient(int startColor, int endColor) {
GradientDrawable gd = new GradientDrawable();
gd.setOrientation(GradientDrawable.Orientation.TOP_BOTTOM);
gd.setColors(new int[]{startColor, endColor});
gd.setShape(GradientDrawable.RECTANGLE);
gd.setGradientType(GradientDrawable.LINEAR_GRADIENT);
gd.setDither(true);
gd.setSize(200, 200);
return gd;
}
public static void reloadRecycler(final RecyclerView recyclerView) {
final Context context = recyclerView.getContext();
final LayoutAnimationController controller = AnimationUtils.loadLayoutAnimation(context, R.anim.layout_anim);
recyclerView.setLayoutAnimation(controller);
recyclerView.getAdapter().notifyDataSetChanged();
recyclerView.scheduleLayoutAnimation();
}
}

View File

@@ -1,7 +1,6 @@
package com.dragons.aurora.activities;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;

View File

@@ -4,6 +4,7 @@ import android.Manifest;
import android.content.BroadcastReceiver;
import android.content.Intent;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v4.view.ViewPager;
@@ -35,7 +36,10 @@ public class AuroraActivity extends BaseActivity implements View.OnClickListener
protected void onCreate(Bundle savedInstanceState) {
setTheme(getThemeFromPref());
super.onCreate(savedInstanceState);
getWindow().setStatusBarColor(Color.TRANSPARENT);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
getWindow().setStatusBarColor(Color.TRANSPARENT);
else
getWindow().setStatusBarColor(getResources().getColor(R.color.semi_transparent));
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
@@ -43,7 +47,6 @@ public class AuroraActivity extends BaseActivity implements View.OnClickListener
bottm_bar.setSecondaryMenu(R.menu.nav_menu, this);
viewPager.setAdapter(new ViewPagerAdapter(this, getSupportFragmentManager()));
viewPager.setOffscreenPageLimit(3);
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
}

View File

@@ -2,7 +2,6 @@ package com.dragons.aurora.activities;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;

View File

@@ -1,20 +1,28 @@
package com.dragons.aurora.activities;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.support.v7.graphics.Palette;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ScrollView;
import android.widget.TextView;
import com.dragons.aurora.R;
import com.dragons.aurora.Util;
import com.dragons.aurora.fragment.details.DownloadOrInstall;
import com.dragons.aurora.model.App;
import com.dragons.aurora.task.playstore.PurchaseCheckTask;
import com.dragons.aurora.view.AdaptiveToolbar;
import com.squareup.picasso.Callback;
import com.squareup.picasso.Picasso;
import java.util.Timer;
import java.util.TimerTask;
@@ -27,9 +35,9 @@ public class ManualDownloadActivity extends DetailsActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
getWindow().setStatusBarColor(getResources().getColor(R.color.semi_transparent));
AdaptiveToolbar dadtb = findViewById(R.id.d_adtb);
dadtb.getAction_icon().setOnClickListener((v -> this.onBackPressed()));
}
@Override
@@ -52,17 +60,20 @@ public class ManualDownloadActivity extends DetailsActivity {
private void draw(App app) {
setTitle(app.getDisplayName());
setContentView(R.layout.manual_download_activity_layout);
drawDetails();
if (app.getOfferType() == 0) {
app.setOfferType(1);
}
((TextView) findViewById(R.id.compatibility)).setText(
app.getVersionCode() > 0
? R.string.manual_download_compatible
: R.string.manual_download_incompatible
);
((TextView) findViewById(R.id.compatibility)).setText(app.getVersionCode() > 0
? R.string.manual_download_compatible
: R.string.manual_download_incompatible);
if (app.getVersionCode() > 0) {
((EditText) findViewById(R.id.version_code)).setHint(String.valueOf(latestVersionCode));
}
DownloadOrInstall downloadOrInstallFragment = new DownloadOrInstall(this, app);
ManualDownloadTextWatcher textWatcher = new ManualDownloadTextWatcher(app,
findViewById(R.id.download),
@@ -76,6 +87,56 @@ public class ManualDownloadActivity extends DetailsActivity {
downloadOrInstallFragment.draw();
}
private void drawDetails() {
((TextView) findViewById(R.id.displayName)).setText(app.getDisplayName());
((TextView) findViewById(R.id.packageName)).setText(app.getPackageName());
((TextView) findViewById(R.id.versionString)).setText(String.valueOf(app.getVersionCode()));
ScrollView disclaimer = findViewById(R.id.disclaimer);
ImageView showLessMore = findViewById(R.id.show_LessMore);
showLessMore.setOnClickListener(v -> {
if (disclaimer.getVisibility() == View.GONE) {
disclaimer.setVisibility(View.VISIBLE);
showLessMore.animate().rotation(180).start();
} else {
disclaimer.setVisibility(View.GONE);
showLessMore.animate().rotation(0).start();
}
});
ImageView appIcon = findViewById(R.id.icon);
Picasso
.with(this)
.load(app.getIconInfo().getUrl())
.placeholder(R.color.transparent)
.into((ImageView) findViewById(R.id.icon), new Callback() {
@Override
public void onSuccess() {
Bitmap bitmap = ((BitmapDrawable) appIcon.getDrawable()).getBitmap();
if (bitmap != null)
getPalette(bitmap);
}
@Override
public void onError() {
}
});
}
private void getPalette(Bitmap bitmap) {
Palette.from(bitmap).generate(this::drawGradients);
}
private void drawGradients(Palette myPalette) {
(findViewById(R.id.diagonalView1))
.setBackground(Util.getGradient(myPalette.getLightVibrantColor(Color.LTGRAY),
myPalette.getDominantColor(Color.GRAY)));
(findViewById(R.id.diagonalView2))
.setBackground(Util.getGradient(myPalette.getLightVibrantColor(Color.GRAY),
myPalette.getVibrantColor(Color.DKGRAY)));
}
static private class ManualDownloadTextWatcher implements TextWatcher {
static private final int TIMEOUT = 1000;

View File

@@ -11,7 +11,6 @@ import android.support.design.widget.FloatingActionButton;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
@@ -53,9 +52,9 @@ public class SearchActivity extends AuroraActivity implements SingleDownloadsAda
switch (newState) {
case BottomSheetBehavior.STATE_HIDDEN:
break;
//case BottomSheetBehavior.STATE_EXPANDED:
// filter_fab.hide();
// break;
case BottomSheetBehavior.STATE_EXPANDED:
filter_fab.hide();
break;
case BottomSheetBehavior.STATE_COLLAPSED:
filter_fab.show();
break;
@@ -83,7 +82,7 @@ public class SearchActivity extends AuroraActivity implements SingleDownloadsAda
filter_apply.setOnClickListener(click -> {
toggleBottomSheet();
new Handler(Looper.getMainLooper()).postDelayed(() -> {
getCategoryApps(query,getTitleString());
getCategoryApps(query, getTitleString());
}, 500);
});
@@ -112,7 +111,7 @@ public class SearchActivity extends AuroraActivity implements SingleDownloadsAda
getCategoryApps(query, getTitleString());
}
}
@Override
public void onDownloadBadgeClickListener() {
singleDownloadAdapter.notifyDataSetChanged();
@@ -130,6 +129,7 @@ public class SearchActivity extends AuroraActivity implements SingleDownloadsAda
getResources().getStringArray(R.array.filterDownloadsLabels),
getResources().getStringArray(R.array.filterDownloadsValues));
singleDownloadAdapter.setOnDownloadBadgeClickListener(this);
filter_downloads.setItemViewCacheSize(10);
filter_downloads.setAdapter(singleDownloadAdapter);
}
@@ -139,6 +139,7 @@ public class SearchActivity extends AuroraActivity implements SingleDownloadsAda
getResources().getStringArray(R.array.filterRatingLabels),
getResources().getStringArray(R.array.filterRatingValues));
singleRatingAdapter.setOnRatingBadgeClickListener(this);
filter_ratings.setItemViewCacheSize(10);
filter_ratings.setAdapter(singleRatingAdapter);
}

View File

@@ -3,19 +3,17 @@ package com.dragons.aurora.adapters;
import android.content.Context;
import android.preference.PreferenceManager;
import android.support.annotation.NonNull;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.dragons.aurora.R;
import com.dragons.aurora.SharedPreferencesTranslator;
import com.dragons.aurora.activities.CategoryAppsActivity;
import com.github.florent37.shapeofview.shapes.CircleView;
import com.github.florent37.shapeofview.shapes.RoundRectView;
import com.percolate.caffeine.ViewUtils;
import java.util.ArrayList;
@@ -95,7 +93,7 @@ public class AllCategoriesAdapter extends RecyclerView.Adapter<AllCategoriesAdap
static class ViewHolder extends RecyclerView.ViewHolder {
TextView topLabel;
ImageView topImage;
RoundRectView topContainer;
CardView topContainer;
ViewHolder(View v) {
super(v);

View File

@@ -2,12 +2,12 @@ package com.dragons.aurora.adapters;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.PopupMenu;
import com.dragons.aurora.R;
@@ -18,13 +18,12 @@ import com.dragons.aurora.fragment.details.ButtonUninstall;
import com.dragons.aurora.fragment.details.DownloadOptions;
import com.dragons.aurora.model.App;
import com.dragons.aurora.view.InstalledAppBadge;
import com.github.florent37.shapeofview.shapes.RoundRectView;
import java.util.List;
public class InstalledAppsAdapter extends RecyclerView.Adapter<InstalledAppsAdapter.ViewHolder> {
private List<App> appsToAdd;
public List<App> appsToAdd;
private Context context;
private ViewHolder viewHolder;
@@ -110,7 +109,7 @@ public class InstalledAppsAdapter extends RecyclerView.Adapter<InstalledAppsAdap
public class ViewHolder extends RecyclerView.ViewHolder {
public View view;
public RoundRectView list_container;
public CardView list_container;
public ImageView menu_3dot;
public ViewHolder(View view) {

View File

@@ -4,6 +4,7 @@ import android.app.SearchManager;
import android.content.Context;
import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
@@ -13,7 +14,6 @@ import android.widget.TextView;
import com.dragons.aurora.R;
import com.dragons.aurora.activities.SearchActivity;
import com.github.florent37.shapeofview.shapes.RoundRectView;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@@ -99,8 +99,8 @@ public class SearchHistoryAdapter extends RecyclerView.Adapter<SearchHistoryAdap
}
public class ViewHolder extends RecyclerView.ViewHolder {
public RoundRectView viewForeground;
RelativeLayout viewBackground;
public CardView viewForeground;
RelativeLayout viewBackground;
TextView query;
TextView time;

View File

@@ -18,10 +18,7 @@ import android.widget.RelativeLayout;
import android.widget.TextView;
import com.dragons.aurora.R;
import com.github.florent37.shapeofview.shapes.CircleView;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import com.dragons.aurora.Util;
public class SingleDownloadsAdapter extends RecyclerView.Adapter<SingleDownloadsAdapter.ViewHolder> {
@@ -100,7 +97,7 @@ public class SingleDownloadsAdapter extends RecyclerView.Adapter<SingleDownloads
viewHolder.badgeText.setTextColor(Color.WHITE);
paintBadge(viewHolder);
} else {
viewHolder.badgeText.setTextColor(Color.BLACK);
viewHolder.badgeText.setTextColor(Util.getStyledAttribute(context, android.R.attr.textColorPrimary));
viewHolder.badgeContainer.setBackgroundTintList(null);
}
}
@@ -131,8 +128,7 @@ public class SingleDownloadsAdapter extends RecyclerView.Adapter<SingleDownloads
static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private RelativeLayout badgeContainer;
private CircleView badgeDot;
private CircleView badgeCancel;
private View badgeDot;
private TextView badgeText;
public ViewHolder(View view) {
@@ -140,7 +136,6 @@ public class SingleDownloadsAdapter extends RecyclerView.Adapter<SingleDownloads
badgeContainer = view.findViewById(R.id.badge_container);
badgeDot = view.findViewById(R.id.badge_dot);
badgeText = view.findViewById(R.id.badge_text);
badgeCancel = view.findViewById(R.id.badge_cancel);
itemView.setOnClickListener(this);
}

View File

@@ -18,10 +18,7 @@ import android.widget.RelativeLayout;
import android.widget.TextView;
import com.dragons.aurora.R;
import com.github.florent37.shapeofview.shapes.CircleView;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import com.dragons.aurora.Util;
public class SingleRatingsAdapter extends RecyclerView.Adapter<SingleRatingsAdapter.ViewHolder> {
@@ -100,7 +97,7 @@ public class SingleRatingsAdapter extends RecyclerView.Adapter<SingleRatingsAdap
viewHolder.badgeText.setTextColor(Color.WHITE);
paintBadge(viewHolder);
} else {
viewHolder.badgeText.setTextColor(Color.BLACK);
viewHolder.badgeText.setTextColor(Util.getStyledAttribute(context, android.R.attr.textColorPrimary));
viewHolder.badgeContainer.setBackgroundTintList(null);
}
}
@@ -131,8 +128,7 @@ public class SingleRatingsAdapter extends RecyclerView.Adapter<SingleRatingsAdap
static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private RelativeLayout badgeContainer;
private CircleView badgeDot;
private CircleView badgeCancel;
private View badgeDot;
private TextView badgeText;
public ViewHolder(View view) {
@@ -140,7 +136,6 @@ public class SingleRatingsAdapter extends RecyclerView.Adapter<SingleRatingsAdap
badgeContainer = view.findViewById(R.id.badge_container);
badgeDot = view.findViewById(R.id.badge_dot);
badgeText = view.findViewById(R.id.badge_text);
badgeCancel = view.findViewById(R.id.badge_cancel);
itemView.setOnClickListener(this);
}

View File

@@ -2,22 +2,21 @@ package com.dragons.aurora.adapters;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import com.dragons.aurora.R;
import com.dragons.aurora.model.App;
import com.dragons.aurora.view.UpdatableAppBadge;
import com.github.florent37.shapeofview.shapes.RoundRectView;
import java.util.List;
public class UpdatableAppsAdapter extends RecyclerView.Adapter<UpdatableAppsAdapter.ViewHolder> {
private List<App> appsToAdd;
public List<App> appsToAdd;
private Context context;
public UpdatableAppsAdapter(Context context, List<App> appsToAdd) {
@@ -58,13 +57,10 @@ public class UpdatableAppsAdapter extends RecyclerView.Adapter<UpdatableAppsAdap
public void onBindViewHolder(@NonNull UpdatableAppsAdapter.ViewHolder holder, int position) {
final App app = appsToAdd.get(position);
final UpdatableAppBadge updatableAppBadge = new UpdatableAppBadge();
holder.app = app;
updatableAppBadge.setApp(app);
updatableAppBadge.setView(holder.view);
updatableAppBadge.draw();
updatableAppBadge.drawButtons();
holder.app = app;
}
@Override
@@ -74,7 +70,7 @@ public class UpdatableAppsAdapter extends RecyclerView.Adapter<UpdatableAppsAdap
public class ViewHolder extends RecyclerView.ViewHolder {
public RoundRectView viewForeground;
public CardView viewForeground;
public App app;
private View view;

View File

@@ -17,6 +17,7 @@ import com.dragons.aurora.PlayStoreApiAuthenticator;
import com.dragons.aurora.R;
import com.dragons.aurora.activities.LoginActivity;
import com.dragons.aurora.task.UserProvidedCredentialsTask;
import com.github.florent37.shapeofview.shapes.CircleView;
import com.percolate.caffeine.ViewUtils;
import com.squareup.picasso.Picasso;
@@ -41,7 +42,6 @@ public class AccountsFragment extends UtilFragment {
}
v = inflater.inflate(R.layout.app_acc_inc, container, false);
getActivity().setTitle(R.string.action_accounts);
ImageView toolbar_back = v.findViewById(R.id.toolbar_back);
toolbar_back.setOnClickListener(click -> getActivity().onBackPressed());
@@ -118,8 +118,8 @@ public class AccountsFragment extends UtilFragment {
private void drawEmpty() {
show(v, R.id.emptyCard);
ImageButton addSecondary = v.findViewById(R.id.add_secondary);
addSecondary.setOnClickListener(v -> switchGoogle());
CircleView add_account = v.findViewById(R.id.add_account);
add_account.setOnClickListener(v -> switchGoogle());
}
private void drawDummyButtons() {

View File

@@ -71,9 +71,9 @@ public class CategoryAppsFragment extends CategoryAppsTask implements SingleDown
switch (newState) {
case BottomSheetBehavior.STATE_HIDDEN:
break;
//case BottomSheetBehavior.STATE_EXPANDED:
// filter_fab.hide();
// break;
case BottomSheetBehavior.STATE_EXPANDED:
filter_fab.hide();
break;
case BottomSheetBehavior.STATE_COLLAPSED:
filter_fab.show();
break;
@@ -135,6 +135,7 @@ public class CategoryAppsFragment extends CategoryAppsTask implements SingleDown
getResources().getStringArray(R.array.filterDownloadsLabels),
getResources().getStringArray(R.array.filterDownloadsValues));
singleDownloadAdapter.setOnDownloadBadgeClickListener(this);
filter_downloads.setItemViewCacheSize(10);
filter_downloads.setAdapter(singleDownloadAdapter);
}
@@ -144,6 +145,7 @@ public class CategoryAppsFragment extends CategoryAppsTask implements SingleDown
getResources().getStringArray(R.array.filterRatingLabels),
getResources().getStringArray(R.array.filterRatingValues));
singleRatingAdapter.setOnRatingBadgeClickListener(this);
filter_ratings.setItemViewCacheSize(10);
filter_ratings.setAdapter(singleRatingAdapter);
}

View File

@@ -1,7 +1,6 @@
package com.dragons.aurora.fragment;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.annotation.NonNull;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.LinearLayoutManager;
@@ -11,19 +10,21 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import com.dragons.aurora.PlayStoreApiAuthenticator;
import com.dragons.aurora.R;
import com.dragons.aurora.Util;
import com.dragons.aurora.adapters.InstalledAppsAdapter;
import com.dragons.aurora.model.App;
import com.dragons.aurora.task.playstore.InstalledAppsTaskHelper;
import com.percolate.caffeine.ViewUtils;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
@@ -31,11 +32,19 @@ import io.reactivex.schedulers.Schedulers;
public class InstalledAppsFragment extends InstalledAppsTaskHelper {
@BindView(R.id.swipe_refresh_layout)
SwipeRefreshLayout swipeRefreshLayout;
@BindView(R.id.installed_apps_list)
RecyclerView recyclerView;
@BindView(R.id.ohhSnap_retry)
Button retry_update;
@BindView(R.id.includeSystem)
SwitchCompat includeSystem;
private View view;
private Disposable loadApps;
private SwipeRefreshLayout swipeRefreshLayout;
private List<App> installedApps = new ArrayList<>(new HashSet<>());
private SwitchCompat includeSystem;
private InstalledAppsAdapter installedAppsAdapter;
public static InstalledAppsFragment newInstance() {
return new InstalledAppsFragment();
@@ -59,28 +68,29 @@ public class InstalledAppsFragment extends InstalledAppsTaskHelper {
}
view = inflater.inflate(R.layout.app_installed_inc, container, false);
ButterKnife.bind(this, view);
swipeRefreshLayout = ViewUtils.findViewById(view, R.id.swipe_refresh_layout);
swipeRefreshLayout.setOnRefreshListener(() -> {
if (isLoggedIn())
if (isLoggedIn() && isConnected(getContext()))
loadMarketApps();
else
swipeRefreshLayout.setRefreshing(false);
});
includeSystem = view.findViewById(R.id.includeSystem);
retry_update.setOnClickListener(click -> {
if (isLoggedIn() && isConnected(getContext())) {
hide(view, R.id.ohhSnap);
if (installedAppsAdapter == null || installedAppsAdapter.getItemCount() <= 0)
loadMarketApps();
}
});
includeSystem.setChecked(PreferenceFragment.getBoolean(getContext(), "INCLUDE_SYSTEM"));
includeSystem.setOnCheckedChangeListener((buttonView, isChecked) -> {
if (isChecked)
PreferenceManager.getDefaultSharedPreferences(getActivity())
.edit()
.putBoolean("INCLUDE_SYSTEM", true)
.apply();
Util.putBoolean(getContext(), "INCLUDE_SYSTEM", true);
else
PreferenceManager.getDefaultSharedPreferences(getActivity())
.edit()
.putBoolean("INCLUDE_SYSTEM", false)
.apply();
Util.putBoolean(getContext(), "INCLUDE_SYSTEM", false);
loadMarketApps();
});
@@ -100,12 +110,11 @@ public class InstalledAppsFragment extends InstalledAppsTaskHelper {
swipeRefreshLayout.setRefreshing(false);
}
protected void setupListView(List<App> appsToAdd) {
RecyclerView recyclerView = view.findViewById(R.id.installed_apps_list);
recyclerView.setHasFixedSize(true);
protected void setupRecycler(List<App> appsToAdd) {
installedAppsAdapter = new InstalledAppsAdapter(getActivity(), appsToAdd);
recyclerView.setLayoutManager(new LinearLayoutManager(this.getActivity()));
recyclerView.setLayoutAnimation(AnimationUtils.loadLayoutAnimation(getContext(), R.anim.layout_anim));
recyclerView.setAdapter(new InstalledAppsAdapter(getActivity(), appsToAdd));
recyclerView.setAdapter(installedAppsAdapter);
}
public void loadMarketApps() {
@@ -115,12 +124,24 @@ public class InstalledAppsFragment extends InstalledAppsTaskHelper {
.observeOn(AndroidSchedulers.mainThread())
.subscribe((appList) -> {
if (view != null) {
installedApps = new ArrayList<>(new HashSet<>(appList));
Collections.sort(installedApps);
setupListView(installedApps);
installedApps.clear();
installedApps.addAll(appList);
setupList(installedApps);
swipeRefreshLayout.setRefreshing(false);
}
}, this::processException);
}, err -> {
swipeRefreshLayout.setRefreshing(false);
processException(err);
show(view, R.id.ohhSnap);
});
}
private void setupList(List<App> installedApps) {
if (recyclerView.getAdapter() == null)
setupRecycler(installedApps);
else {
installedAppsAdapter.appsToAdd = installedApps;
Util.reloadRecycler(recyclerView);
}
}
}

View File

@@ -9,7 +9,8 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AnimationUtils;
import android.widget.ProgressBar;
import android.widget.Button;
import android.widget.RelativeLayout;
import com.dragons.aurora.AppListIterator;
import com.dragons.aurora.PlayStoreApiAuthenticator;
@@ -37,8 +38,12 @@ public class SearchAppsFragment extends SearchTask {
RecyclerView recyclerView;
@BindView(R.id.adaptive_toolbar)
AdaptiveToolbar adaptiveToolbar;
@BindView(R.id.unicorn)
RelativeLayout unicorn;
@BindView(R.id.ohhSnap)
RelativeLayout ohhSnap;
@BindView(R.id.progress)
ProgressBar progressBar;
RelativeLayout progress;
private String title;
private boolean setLooper = true;
@@ -56,6 +61,20 @@ public class SearchAppsFragment extends SearchTask {
adaptiveToolbar.getAction_icon().setOnClickListener((v -> this.getActivity().onBackPressed()));
adaptiveToolbar.getTitle0().setText(title);
adaptiveToolbar.getTitle1().setVisibility(View.GONE);
Button ohhSnap_retry = view.findViewById(R.id.ohhSnap_retry);
ohhSnap_retry.setOnClickListener(click -> {
if (isLoggedIn() && isConnected(getContext())) {
hide(view, R.id.ohhSnap);
fetchSearchAppsList(false);
}
});
Button retry_querry = view.findViewById(R.id.recheck_query);
retry_querry.setOnClickListener(click -> {
if (isLoggedIn() && isConnected(getContext())) {
hide(view, R.id.unicorn);
fetchSearchAppsList(false);
}
});
return view;
}
@@ -85,6 +104,7 @@ public class SearchAppsFragment extends SearchTask {
}
protected void setupListView(List<App> appsToAdd) {
progress.setVisibility(View.GONE);
LinearLayoutManager mLayoutManager = new LinearLayoutManager(this.getActivity());
endlessAppsAdapter = new EndlessAppsAdapter(getActivity(), appsToAdd);
recyclerView.setLayoutManager(mLayoutManager);
@@ -93,7 +113,7 @@ public class SearchAppsFragment extends SearchTask {
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
if ((visibleItems + oldItems) >= totalItems + 2)
if ((visibleItems + oldItems) >= totalItems + 2 || endlessAppsAdapter.getItemCount() > 20)
setLooper = false;
if (dy > 0) {
visibleItems = mLayoutManager.getChildCount();
@@ -124,7 +144,10 @@ public class SearchAppsFragment extends SearchTask {
} else
setupListView(appList);
}
}, this::processException);
}, err -> {
processException(err);
ohhSnap.setVisibility(View.VISIBLE);
});
}
public void addApps(List<App> appsToAdd) {
@@ -139,5 +162,7 @@ public class SearchAppsFragment extends SearchTask {
public void getLooper() {
if (iterator.hasNext() && setLooper)
fetchSearchAppsList(true);
else if (!iterator.hasNext() && endlessAppsAdapter.getItemCount() <= 0)
unicorn.setVisibility(View.VISIBLE);
}
}

View File

@@ -6,6 +6,7 @@ import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.widget.CardView;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
@@ -44,7 +45,7 @@ public class SearchFragment extends SearchHistoryTask implements HistoryItemTouc
@BindView(R.id.searchHistory)
RecyclerView recyclerView;
@BindView(R.id.search_layout)
RoundRectView search_layout;
CardView search_layout;
@BindView(R.id.emptyView)
TextView emptyView;
@BindView(R.id.clearAll)

View File

@@ -8,6 +8,8 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.RelativeLayout;
import com.dragons.aurora.AppListIterator;
import com.dragons.aurora.PlayStoreApiAuthenticator;
@@ -21,6 +23,8 @@ import com.dragons.aurora.task.playstore.CategoryAppsTask;
import java.io.IOException;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
@@ -28,12 +32,20 @@ import io.reactivex.schedulers.Schedulers;
public class TopFreeApps extends CategoryAppsTask {
@BindView(R.id.endless_apps_list)
RecyclerView recyclerView;
@BindView(R.id.unicorn)
RelativeLayout unicorn;
@BindView(R.id.ohhSnap)
RelativeLayout ohhSnap;
@BindView(R.id.progress)
RelativeLayout progress;
private boolean setLooper = true;
private boolean loading = true;
private int oldItems, visibleItems, totalItems;
private View view;
private AppListIterator iterator;
private RecyclerView recyclerView;
private EndlessAppsAdapter endlessAppsAdapter;
private Disposable disposable;
@@ -56,9 +68,24 @@ public class TopFreeApps extends CategoryAppsTask {
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.app_endless_inc, container, false);
setRecyclerView(view.findViewById(R.id.endless_apps_list));
ButterKnife.bind(this, view);
setRecyclerView(recyclerView);
setIterator(setupIterator(CategoryAppsFragment.categoryId, GooglePlayAPI.SUBCATEGORY.TOP_FREE));
fetchCategoryApps(false);
Button ohhSnap_retry = view.findViewById(R.id.ohhSnap_retry);
ohhSnap_retry.setOnClickListener(click -> {
if (isLoggedIn() && isConnected(getContext())) {
hide(view, R.id.ohhSnap);
fetchCategoryApps(false);
}
});
Button retry_querry = view.findViewById(R.id.recheck_query);
retry_querry.setOnClickListener(click -> {
if (isLoggedIn() && isConnected(getContext())) {
hide(view, R.id.unicorn);
fetchCategoryApps(false);
}
});
return view;
}
@@ -78,6 +105,7 @@ public class TopFreeApps extends CategoryAppsTask {
}
protected void setupListView(List<App> appsToAdd) {
progress.setVisibility(View.GONE);
LinearLayoutManager mLayoutManager = new LinearLayoutManager(this.getActivity());
endlessAppsAdapter = new EndlessAppsAdapter(getActivity(), appsToAdd);
recyclerView.setLayoutManager(mLayoutManager);
@@ -86,7 +114,7 @@ public class TopFreeApps extends CategoryAppsTask {
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
if ((visibleItems + oldItems) >= totalItems + 2)
if ((visibleItems + oldItems) >= totalItems + 2 || endlessAppsAdapter.getItemCount() > 20)
setLooper = false;
if (dy > 0) {
visibleItems = mLayoutManager.getChildCount();
@@ -115,7 +143,10 @@ public class TopFreeApps extends CategoryAppsTask {
addApps(appList);
} else
setupListView(appList);
}, this::processException);
}, err -> {
processException(err);
ohhSnap.setVisibility(View.VISIBLE);
});
}
public void addApps(List<App> appsToAdd) {
@@ -130,5 +161,7 @@ public class TopFreeApps extends CategoryAppsTask {
public void getLooper() {
if (iterator.hasNext() && setLooper)
fetchCategoryApps(true);
else if (!iterator.hasNext() && endlessAppsAdapter.getItemCount() <= 0)
unicorn.setVisibility(View.VISIBLE);
}
}

View File

@@ -2,21 +2,50 @@ package com.dragons.aurora.fragment;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.RelativeLayout;
import com.dragons.aurora.R;
import com.dragons.aurora.playstoreapiv2.GooglePlayAPI;
import butterknife.BindView;
import butterknife.ButterKnife;
public class TopGrossingApps extends TopFreeApps {
@BindView(R.id.endless_apps_list)
RecyclerView recyclerView;
@BindView(R.id.unicorn)
RelativeLayout unicorn;
@BindView(R.id.ohhSnap)
RelativeLayout ohhSnap;
@BindView(R.id.progress)
RelativeLayout progress;
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.app_endless_inc, container, false);
ButterKnife.bind(this, view);
setIterator(setupIterator(CategoryAppsFragment.categoryId, GooglePlayAPI.SUBCATEGORY.TOP_GROSSING));
setRecyclerView(view.findViewById(R.id.endless_apps_list));
setRecyclerView(recyclerView);
fetchCategoryApps(false);
Button ohhSnap_retry = view.findViewById(R.id.ohhSnap_retry);
ohhSnap_retry.setOnClickListener(click -> {
if (isLoggedIn() && isConnected(getContext())) {
hide(view, R.id.ohhSnap);
fetchCategoryApps(false);
}
});
Button retry_querry = view.findViewById(R.id.recheck_query);
retry_querry.setOnClickListener(click -> {
if (isLoggedIn() && isConnected(getContext())) {
hide(view, R.id.unicorn);
fetchCategoryApps(false);
}
});
return view;
}
}

View File

@@ -2,21 +2,50 @@ package com.dragons.aurora.fragment;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.RelativeLayout;
import com.dragons.aurora.R;
import com.dragons.aurora.playstoreapiv2.GooglePlayAPI;
import butterknife.BindView;
import butterknife.ButterKnife;
public class TopTrendingApps extends TopFreeApps {
@BindView(R.id.endless_apps_list)
RecyclerView recyclerView;
@BindView(R.id.unicorn)
RelativeLayout unicorn;
@BindView(R.id.ohhSnap)
RelativeLayout ohhSnap;
@BindView(R.id.progress)
RelativeLayout progress;
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.app_endless_inc, container, false);
ButterKnife.bind(this, view);
setIterator(setupIterator(CategoryAppsFragment.categoryId, GooglePlayAPI.SUBCATEGORY.MOVERS_SHAKERS));
setRecyclerView(view.findViewById(R.id.endless_apps_list));
setRecyclerView(recyclerView);
fetchCategoryApps(false);
Button ohhSnap_retry = view.findViewById(R.id.ohhSnap_retry);
ohhSnap_retry.setOnClickListener(click -> {
if (isLoggedIn() && isConnected(getContext())) {
hide(view, R.id.ohhSnap);
fetchCategoryApps(false);
}
});
Button retry_query = view.findViewById(R.id.recheck_query);
retry_query.setOnClickListener(click -> {
if (isLoggedIn() && isConnected(getContext())) {
hide(view, R.id.unicorn);
fetchCategoryApps(false);
}
});
return view;
}
}

View File

@@ -1,11 +1,11 @@
package com.dragons.aurora.fragment;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.annotation.NonNull;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.CardView;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.helper.ItemTouchHelper;
@@ -15,7 +15,6 @@ import android.view.ViewGroup;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.dragons.aurora.AuroraApplication;
@@ -25,19 +24,20 @@ import com.dragons.aurora.R;
import com.dragons.aurora.UpdatableRecyclerItemTouchHelper;
import com.dragons.aurora.UpdateAllReceiver;
import com.dragons.aurora.UpdateChecker;
import com.dragons.aurora.Util;
import com.dragons.aurora.adapters.UpdatableAppsAdapter;
import com.dragons.aurora.model.App;
import com.dragons.aurora.notification.CancelDownloadService;
import com.dragons.aurora.task.playstore.UpdatableAppsTaskHelper;
import com.github.florent37.shapeofview.shapes.RoundRectView;
import com.percolate.caffeine.ToastUtils;
import com.percolate.caffeine.ViewUtils;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
@@ -48,20 +48,35 @@ public class UpdatableAppsFragment extends UpdatableAppsTaskHelper implements Up
public static int updates = 0;
public static boolean recheck = false;
public UpdatableAppsAdapter updatableAppsAdapter;
@BindView(R.id.swipe_refresh_layout)
SwipeRefreshLayout swipeRefreshLayout;
@BindView(R.id.updatable_apps_list)
RecyclerView recyclerView;
@BindView(R.id.update_all)
Button update;
@BindView(R.id.update_cancel)
Button cancel;
@BindView(R.id.recheck_updates)
Button recheck_update;
@BindView(R.id.ohhSnap_retry)
Button retry_update;
@BindView(R.id.updates_txt)
TextView updates_txt;
@BindView(R.id.updates_setting)
TextView deltaTextView;
private List<App> updatableApps = new ArrayList<>(new HashSet<>());
private UpdateAllReceiver updateAllReceiver;
private View view;
private Disposable loadApps;
private SwipeRefreshLayout swipeRefreshLayout;
private UpdateAllReceiver updateAllReceiver;
private Button update;
private Button recheck_update;
private Button cancel;
private TextView txt;
private List<App> updatableApps = new ArrayList<>(new HashSet<>());
public static UpdatableAppsFragment newInstance() {
return new UpdatableAppsFragment();
}
public Boolean isAlreadyUpdating() {
return ((AuroraApplication) getActivity().getApplication()).isBackgroundUpdating();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -80,10 +95,10 @@ public class UpdatableAppsFragment extends UpdatableAppsTaskHelper implements Up
}
view = inflater.inflate(R.layout.app_updatable_inc, container, false);
initViews();
ButterKnife.bind(this, view);
swipeRefreshLayout.setOnRefreshListener(() -> {
if (isLoggedIn() && isConnected(getContext()))
if (isLoggedIn() && isConnected(getContext()) && !isAlreadyUpdating())
loadUpdatableApps();
else
swipeRefreshLayout.setRefreshing(false);
@@ -92,25 +107,26 @@ public class UpdatableAppsFragment extends UpdatableAppsTaskHelper implements Up
recheck_update.setOnClickListener(click -> {
if (isLoggedIn() && isConnected(getContext())) {
hide(view, R.id.unicorn);
txt.setText(R.string.list_update_chk_txt);
swipeRefreshLayout.setRefreshing(true);
updates_txt.setText(R.string.list_update_chk_txt);
loadUpdatableApps();
}
});
retry_update.setOnClickListener(click -> {
if (isLoggedIn() && isConnected(getContext())) {
hide(view, R.id.ohhSnap);
if (updatableAppsAdapter == null || updatableAppsAdapter.getItemCount() <= 0) {
updates_txt.setText(R.string.list_update_chk_txt);
loadUpdatableApps();
}
}
});
setupAutoUpdate();
setupDelta();
return view;
}
private void initViews() {
recheck_update = ViewUtils.findViewById(view, R.id.recheck_updates);
update = ViewUtils.findViewById(view, R.id.update_all);
cancel = ViewUtils.findViewById(view, R.id.update_cancel);
txt = ViewUtils.findViewById(view, R.id.updates_txt);
swipeRefreshLayout = ViewUtils.findViewById(view, R.id.swipe_refresh_layout);
}
@Override
public void onResume() {
super.onResume();
@@ -136,21 +152,6 @@ public class UpdatableAppsFragment extends UpdatableAppsTaskHelper implements Up
swipeRefreshLayout.setRefreshing(false);
}
protected void setupListView(List<App> appsToAdd) {
RecyclerView recyclerView = view.findViewById(R.id.updatable_apps_list);
recyclerView.setItemViewCacheSize(30);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this.getActivity()));
recyclerView.setLayoutAnimation(AnimationUtils.loadLayoutAnimation(getContext(), R.anim.layout_anim));
updatableAppsAdapter = new UpdatableAppsAdapter(getActivity(), appsToAdd);
recyclerView.setAdapter(updatableAppsAdapter);
new ItemTouchHelper(
new UpdatableRecyclerItemTouchHelper(0, ItemTouchHelper.LEFT, this))
.attachToRecyclerView(recyclerView);
}
public void launchUpdateAll() {
((AuroraApplication) getActivity().getApplicationContext()).setBackgroundUpdating(true);
new UpdateChecker().onReceive(UpdatableAppsFragment.this.getActivity(), getActivity().getIntent());
@@ -158,13 +159,16 @@ public class UpdatableAppsFragment extends UpdatableAppsTaskHelper implements Up
show(view, R.id.update_cancel);
}
public void setupButtons() {
public void addButtons() {
if (update.getVisibility() == View.VISIBLE)
return;
hide(view, R.id.unicorn);
update.setVisibility(View.VISIBLE);
update.setOnClickListener(v -> {
launchUpdateAll();
update.setVisibility(View.GONE);
cancel.setVisibility(View.VISIBLE);
txt.setText(R.string.list_updating);
updates_txt.setText(R.string.list_updating);
});
cancel.setOnClickListener(v -> {
@@ -172,22 +176,23 @@ public class UpdatableAppsFragment extends UpdatableAppsTaskHelper implements Up
getContext().startService(new Intent(getContext().getApplicationContext(), CancelDownloadService.class)
.putExtra(CancelDownloadService.PACKAGE_NAME, app.getPackageName()));
}
((AuroraApplication) getActivity().getApplicationContext()).setBackgroundUpdating(false);
update.setVisibility(View.VISIBLE);
cancel.setVisibility(View.GONE);
setText(view, R.id.updates_txt, R.string.list_update_all_txt, updatableApps.size());
setUpdates(updatableApps.size());
});
}
public void removeButtons() {
show(view, R.id.unicorn);
update.setVisibility(View.GONE);
cancel.setVisibility(View.GONE);
}
public void setupDelta() {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
TextView delta = ViewUtils.findViewById(view, R.id.updates_setting);
delta.setText(sharedPreferences.getBoolean("PREFERENCE_DOWNLOAD_DELTAS", true) ? R.string.delta_enabled : R.string.delta_disabled);
delta.setVisibility(View.VISIBLE);
deltaTextView.setText(PreferenceFragment.getBoolean(getContext(), "PREFERENCE_DOWNLOAD_DELTAS")
? R.string.delta_enabled
: R.string.delta_disabled);
}
public void updateInteger(int count) {
@@ -197,7 +202,7 @@ public class UpdatableAppsFragment extends UpdatableAppsTaskHelper implements Up
}
public void setupAutoUpdate() {
RoundRectView autoUpdatesCard = view.findViewById(R.id.autoUpdatesCard);
CardView autoUpdatesCard = view.findViewById(R.id.autoUpdatesCard);
ImageView autoUpdatesClose = view.findViewById(R.id.autoUpdatesClose);
Button autoUpdatesSwitch = view.findViewById(R.id.autoUpdatesSwitch);
boolean shouldAsk = PreferenceFragment.getBoolean(getContext(), "PROMPT_UPDATE_INTERVAL");
@@ -229,23 +234,48 @@ public class UpdatableAppsFragment extends UpdatableAppsTaskHelper implements Up
.observeOn(AndroidSchedulers.mainThread())
.subscribe((appList) -> {
if (view != null) {
updatableApps = new ArrayList<>(new HashSet<>(appList));
Collections.sort(updatableApps);
setupListView(updatableApps);
updateInteger(updatableApps.size());
updatableApps.clear();
updatableApps.addAll(appList);
setupList(updatableApps);
swipeRefreshLayout.setRefreshing(false);
if (success() && updatableApps.isEmpty()) {
show(view, R.id.unicorn);
setText(view, R.id.updates_txt, R.string.list_update_all_txt, updatableApps.size());
removeButtons();
} else {
hide(view, R.id.unicorn);
setText(view, R.id.updates_txt, R.string.list_update_all_txt, updatableApps.size());
setupButtons();
}
}
}, this::processException);
}, err -> {
swipeRefreshLayout.setRefreshing(false);
processException(err);
show(view, R.id.ohhSnap);
});
}
private void setupList(List<App> updatableApps) {
setUpdates(updatableApps.size());
updateInteger(updatableApps.size());
if (updatableApps.isEmpty())
removeButtons();
else
addButtons();
if (recyclerView.getAdapter() == null)
setupRecycler(updatableApps);
else {
updatableAppsAdapter.appsToAdd = updatableApps;
Util.reloadRecycler(recyclerView);
}
}
protected void setupRecycler(List<App> appsToAdd) {
updatableAppsAdapter = new UpdatableAppsAdapter(getActivity(), appsToAdd);
recyclerView.setItemViewCacheSize(20);
recyclerView.setLayoutManager(new LinearLayoutManager(this.getActivity()));
recyclerView.setLayoutAnimation(AnimationUtils.loadLayoutAnimation(getContext(), R.anim.layout_anim));
recyclerView.setAdapter(updatableAppsAdapter);
new ItemTouchHelper(
new UpdatableRecyclerItemTouchHelper(0, ItemTouchHelper.LEFT, this))
.attachToRecyclerView(recyclerView);
}
private void setUpdates(int count) {
setText(view, R.id.updates_txt, R.string.list_update_all_txt, count);
}
@Override
@@ -255,14 +285,11 @@ public class UpdatableAppsFragment extends UpdatableAppsTaskHelper implements Up
.add(((UpdatableAppsAdapter.ViewHolder) viewHolder).app.getPackageName());
updatableAppsAdapter.remove(position);
setUpdates(updatableAppsAdapter.getItemCount());
updateInteger(updatableAppsAdapter.getItemCount());
if (updatableAppsAdapter.getItemCount() == 0) {
view.findViewById(R.id.unicorn).setVisibility(View.VISIBLE);
setText(view, R.id.updates_txt, R.string.list_update_all_txt, 0);
updateInteger(0);
if (updatableAppsAdapter.getItemCount() == 0)
removeButtons();
} else
view.findViewById(R.id.unicorn).setVisibility(View.GONE);
}
}
}

View File

@@ -30,5 +30,4 @@ public abstract class UtilFragment extends AccountsHelper {
protected void setText(View v, int viewId, int stringId, Object... text) {
setText(v, viewId, v.getResources().getString(stringId, text));
}
}

View File

@@ -25,6 +25,7 @@ import com.dragons.aurora.activities.AuroraActivity;
import com.dragons.aurora.fragment.DetailsFragment;
import com.dragons.aurora.model.App;
import com.dragons.aurora.model.ImageSource;
import com.github.florent37.shapeofview.shapes.RoundRectView;
import com.squareup.picasso.Callback;
import com.squareup.picasso.Picasso;
@@ -133,12 +134,14 @@ public class GeneralDetails extends AbstractHelper {
paintButton(color, R.id.run);
paintButton(color, R.id.beta_subscribe_button);
paintButton(color, R.id.beta_submit_button);
paintTextView(color, R.id.beta_header);
paintTextView(color, R.id.permissions_header);
paintTextView(color, R.id.exodus_title);
paintTextView(color, R.id.changes_upper);
if (!Util.isDark(fragment.getContext())) {
paintTextView(color, R.id.beta_header);
paintTextView(color, R.id.permissions_header);
paintTextView(color, R.id.exodus_title);
paintTextView(color, R.id.changes_upper);
paintTextView(color, R.id.showLessMoreTxt);
}
paintLLayout(color, R.id.changes_container);
paintTextView(color, R.id.showLessMoreTxt);
paintImageView(color, R.id.privacy_ico);
paintImageViewBg(color, R.id.apps_similar);
paintImageViewBg(color, R.id.apps_recommended);
@@ -291,11 +294,11 @@ public class GeneralDetails extends AbstractHelper {
if (changelogLayout.getVisibility() == View.GONE) {
show(fragment.getView(), R.id.changelog_container);
showLessMoreTxt.setText(R.string.details_less);
showLessMore.setImageResource(R.drawable.ic_expand_less);
showLessMore.animate().rotation(180).start();
} else {
hide(fragment.getView(), R.id.changelog_container);
showLessMoreTxt.setText(R.string.details_more);
showLessMore.setImageResource(R.drawable.ic_expand_more);
showLessMore.animate().rotation(0).start();
}
});
}

View File

@@ -15,7 +15,6 @@ import android.widget.RelativeLayout;
import android.widget.TextView;
import com.dragons.aurora.Util;
import com.github.florent37.shapeofview.shapes.RoundRectView;
public abstract class ListItem {

View File

@@ -107,11 +107,11 @@ public class UpdatableAppBadge extends AppBadge {
}
} else removeChanges();
});
drawButtons();
}
public void drawButtons() {
private void drawButtons() {
init();
listContainer.setOnClickListener(click ->
context.startActivity(DetailsActivity.getDetailsIntent(context, app.getPackageName())));
@@ -174,13 +174,11 @@ public class UpdatableAppBadge extends AppBadge {
}
private void drawChanges() {
viewChanges.setImageResource(R.drawable.ic_expand_less_24);
viewChanges.animate().rotation(180).start();
if (app.getChanges().isEmpty())
changes.setText(R.string.details_changelog_empty);
else
changes.setText(Html.fromHtml(app.getChanges()).toString());
show(changesContainer);
show(singleButtons);
show(progressContainer);
@@ -190,17 +188,19 @@ public class UpdatableAppBadge extends AppBadge {
hide(changesContainer);
hide(singleButtons);
hide(progressContainer);
viewChanges.setImageResource(R.drawable.ic_expand_more_24);
viewChanges.animate().rotation(0).start();
}
private void getPalette(Bitmap bitmap) {
Palette.from(bitmap)
.generate(palette -> {
paintTextView(palette.getDarkVibrantColor(Color.DKGRAY), changes);
paintButton(palette.getDarkVibrantColor(Color.DKGRAY), update);
paintButton(palette.getDarkVibrantColor(Color.DKGRAY), install);
paintLayout(palette.getDarkVibrantColor(Color.DKGRAY), R.id.view_background);
paintLLayout(palette.getDarkVibrantColor(Color.DKGRAY), R.id.changes_container);
if (!Util.isDark(context)) {
paintTextView(palette.getDarkVibrantColor(Color.DKGRAY), changes);
paintLayout(palette.getDarkVibrantColor(Color.DKGRAY), R.id.view_background);
paintLLayout(palette.getDarkVibrantColor(Color.DKGRAY), R.id.changes_container);
}
});
}

View File

@@ -16,13 +16,14 @@ import android.widget.RelativeLayout;
import android.widget.TextView;
import com.dragons.aurora.R;
import com.dragons.aurora.Util;
import com.github.florent37.shapeofview.shapes.CircleView;
public class FilterBadge extends RelativeLayout {
private Context context;
private boolean badgeChecked;
private RelativeLayout badgeContainer;
private CircleView badgeDot;
private View badgeDot;
private CircleView badgeCancel;
private TextView badgeText;
private String title;
@@ -102,7 +103,7 @@ public class FilterBadge extends RelativeLayout {
private void setupBadge() {
if (!isBadgeChecked()) {
badgeDot.setVisibility(VISIBLE);
badgeText.setTextColor(Color.BLACK);
badgeText.setTextColor(Util.getStyledAttribute(context, android.R.attr.textColorPrimary));
badgeContainer.setBackgroundTintList(null);
badgeCancel.setVisibility(GONE);
badgeChecked = false;

View File

@@ -15,8 +15,6 @@ import com.dragons.aurora.R;
import java.util.ArrayList;
import java.util.List;
import static com.dragons.custom.CustomAppBar.MORE_ICON_TAG;
class MenuNavigationItemsAdapter extends RecyclerView.Adapter<MenuNavigationItemsAdapter.MenuNavItem> {
private Context context;
@@ -28,7 +26,6 @@ class MenuNavigationItemsAdapter extends RecyclerView.Adapter<MenuNavigationItem
this.context = context;
this.onClickListener = onClickListener;
this.navItems = new ArrayList<>();
populateNavigationItems(menuRes);
}
@@ -46,9 +43,6 @@ class MenuNavigationItemsAdapter extends RecyclerView.Adapter<MenuNavigationItem
holder.label.setText(item.getTitle());
holder.icon.setImageDrawable(item.getIcon());
holder.itemView.setTag(item.getResId());
if (item.getTitle().isEmpty()) setupMoreIcon(holder);
holder.itemView.setOnClickListener(onClickListener);
}
@@ -59,15 +53,6 @@ class MenuNavigationItemsAdapter extends RecyclerView.Adapter<MenuNavigationItem
private void populateNavigationItems(int menuRes) {
MenuParserHelper.parseMenu(context, menuRes, navItems);
//Drawable moreIcon = context.getResources().getDrawable(R.drawable.more);
//navItems.add(new MenuEntry("", moreIcon, 0));
}
private void setupMoreIcon(MenuNavItem menuNavItem) {
menuNavItem.itemView.setFocusable(false);
menuNavItem.itemView.setFocusableInTouchMode(false);
menuNavItem.itemView.setBackground(null);
menuNavItem.itemView.setTag(MORE_ICON_TAG);
}
class MenuNavItem extends RecyclerView.ViewHolder {

View File

@@ -10,7 +10,7 @@
<corners android:radius="250dp" />
<stroke
android:width="1dp"
android:color="#22545454" />
android:color="?android:attr/strokeColor" />
</shape>
</item>
</ripple>

View File

@@ -7,7 +7,8 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="?android:attr/panelBackground" />
<corners android:radius="8dp" />
<corners android:radius="250dp" />
<stroke android:width="1dp" android:color="?android:attr/strokeColor"/>
</shape>
</item>
</ripple>

View File

@@ -6,11 +6,8 @@
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="8dp" />
<corners android:radius="250dp" />
<solid android:color="#FF5252" />
<stroke
android:width="1dip"
android:color="#FF5252" />
</shape>
</item>
</ripple>

View File

@@ -6,11 +6,8 @@
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="8dp" />
<corners android:radius="250dp" />
<solid android:color="?android:attr/colorAccent" />
<stroke
android:width="1dip"
android:color="?android:attr/colorAccent" />
</shape>
</item>
</ripple>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24"
android:viewportWidth="24">
<path
android:fillColor="?android:attr/colorForeground"
android:pathData="M11,4H13V16L18.5,10.5L19.92,11.92L12,19.84L4.08,11.92L5.5,10.5L11,16V4Z" />
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0,0 0,12 22A10,10 0,0 0,22 12A10,10 0,0 0,12 2M12,20A8,8 0,0 1,4 12A8,8 0,0 1,12 4A8,8 0,0 1,20 12A8,8 0,0 1,12 20Z"/>
</vector>

View File

@@ -16,19 +16,30 @@
<com.github.florent37.shapeofview.shapes.DiagonalView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/header_grad2"
app:diagonal_angle="5"
app:diagonal_direction="left"
app:diagonal_position="right" />
app:shape_diagonal_angle="5"
app:shape_diagonal_direction="left"
app:shape_diagonal_position="right">
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/header_grad2" />
</com.github.florent37.shapeofview.shapes.DiagonalView>
<com.github.florent37.shapeofview.shapes.DiagonalView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha=".8"
android:background="@drawable/header_grad1"
app:diagonal_angle="10"
app:diagonal_direction="right"
app:diagonal_position="right" />
app:shape_diagonal_angle="10"
app:shape_diagonal_direction="right"
app:shape_diagonal_position="right">
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/header_grad1" />
</com.github.florent37.shapeofview.shapes.DiagonalView>
<RelativeLayout
android:id="@+id/topView"
@@ -75,17 +86,16 @@
android:layout_marginTop="10dp"
android:paddingBottom="10dp">
<com.github.florent37.shapeofview.shapes.RoundRectView
<android.support.v7.widget.CardView
android:id="@+id/google_card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="?android:attr/panelBackground"
android:elevation="5dp"
app:roundRect_bottomLeftRadius="10dp"
app:roundRect_bottomRightRadius="10dp"
app:roundRect_topLeftRadius="10dp"
app:roundRect_topRightRadius="10dp">
app:cardBackgroundColor="?android:attr/panelBackground"
app:cardCornerRadius="10dp"
app:cardElevation="1dp"
app:cardPreventCornerOverlap="false"
app:cardUseCompatPadding="true">
<RelativeLayout
android:layout_width="match_parent"
@@ -197,7 +207,7 @@
</RelativeLayout>
</com.github.florent37.shapeofview.shapes.RoundRectView>
</android.support.v7.widget.CardView>
<TextView
android:id="@+id/or_txt"
@@ -209,17 +219,16 @@
android:text="@string/action_or"
android:textSize="16sp" />
<com.github.florent37.shapeofview.shapes.RoundRectView
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/or_txt"
android:layout_margin="10dp"
android:background="?android:attr/panelBackground"
android:elevation="5dp"
app:roundRect_bottomLeftRadius="10dp"
app:roundRect_bottomRightRadius="10dp"
app:roundRect_topLeftRadius="10dp"
app:roundRect_topRightRadius="10dp">
app:cardBackgroundColor="?android:attr/panelBackground"
app:cardCornerRadius="10dp"
app:cardElevation="1dp"
app:cardPreventCornerOverlap="false"
app:cardUseCompatPadding="true">
<RelativeLayout
android:layout_width="match_parent"
@@ -278,7 +287,7 @@
android:textSize="12sp" />
</RelativeLayout>
</com.github.florent37.shapeofview.shapes.RoundRectView>
</android.support.v7.widget.CardView>
</RelativeLayout>
</android.support.v4.widget.NestedScrollView>

View File

@@ -4,6 +4,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?android:attr/colorBackground"
android:baselineAligned="false"
android:orientation="horizontal"
android:weightSum="2">
@@ -16,19 +17,30 @@
<com.github.florent37.shapeofview.shapes.DiagonalView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/header_grad2"
app:diagonal_angle="5"
app:diagonal_direction="left"
app:diagonal_position="right" />
app:shape_diagonal_angle="5"
app:shape_diagonal_direction="left"
app:shape_diagonal_position="right">
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/header_grad2" />
</com.github.florent37.shapeofview.shapes.DiagonalView>
<com.github.florent37.shapeofview.shapes.DiagonalView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha=".8"
android:background="@drawable/header_grad1"
app:diagonal_angle="10"
app:diagonal_direction="right"
app:diagonal_position="right" />
app:shape_diagonal_angle="10"
app:shape_diagonal_direction="right"
app:shape_diagonal_position="right">
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/header_grad1" />
</com.github.florent37.shapeofview.shapes.DiagonalView>
<RelativeLayout
android:id="@+id/topView"
@@ -74,25 +86,23 @@
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:paddingTop="28dp"
android:paddingBottom="10dp">
android:paddingBottom="10dp"
android:paddingTop="28dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<com.github.florent37.shapeofview.shapes.RoundRectView
<android.support.v7.widget.CardView
android:id="@+id/dummyCard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="?android:attr/panelBackground"
android:elevation="5dp"
app:roundRect_bottomLeftRadius="10dp"
app:roundRect_bottomRightRadius="10dp"
app:roundRect_topLeftRadius="10dp"
app:roundRect_topRightRadius="10dp">
app:cardBackgroundColor="?android:attr/panelBackground"
app:cardCornerRadius="10dp">
<RelativeLayout
android:layout_width="match_parent"
@@ -216,20 +226,17 @@
</RelativeLayout>
</com.github.florent37.shapeofview.shapes.RoundRectView>
</android.support.v7.widget.CardView>
<com.github.florent37.shapeofview.shapes.RoundRectView
<android.support.v7.widget.CardView
android:id="@+id/emptyCard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="?android:attr/panelBackground"
android:elevation="5dp"
app:cardBackgroundColor="?android:attr/panelBackground"
app:cardElevation="2dp"
android:visibility="gone"
app:roundRect_bottomLeftRadius="10dp"
app:roundRect_bottomRightRadius="10dp"
app:roundRect_topLeftRadius="10dp"
app:roundRect_topRightRadius="10dp">
app:cardCornerRadius="10dp">
<RelativeLayout
android:layout_width="match_parent"
@@ -243,8 +250,8 @@
android:layout_height="64dp"
android:layout_centerInParent="true"
android:background="?android:selectableItemBackgroundBorderless"
app:circle_borderColor="@color/colorRed"
app:circle_borderWidth="1dp">
app:shape_circle_borderColor="@color/colorRed"
app:shape_circle_borderWidth="1dp">
<ImageButton
android:id="@+id/add_secondary"
@@ -252,8 +259,8 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@android:color/transparent"
android:clickable="true"
android:focusable="true"
android:clickable="false"
android:focusable="false"
app:srcCompat="@drawable/ic_add" />
</com.github.florent37.shapeofview.shapes.CircleView>
@@ -268,21 +275,17 @@
android:textSize="16sp" />
</RelativeLayout>
</android.support.v7.widget.CardView>
</com.github.florent37.shapeofview.shapes.RoundRectView>
<com.github.florent37.shapeofview.shapes.RoundRectView
<android.support.v7.widget.CardView
android:id="@+id/googleCard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="?android:attr/panelBackground"
android:elevation="5dp"
app:cardBackgroundColor="?android:attr/panelBackground"
app:cardElevation="2dp"
android:visibility="gone"
app:roundRect_bottomLeftRadius="10dp"
app:roundRect_bottomRightRadius="10dp"
app:roundRect_topLeftRadius="10dp"
app:roundRect_topRightRadius="10dp">
app:cardCornerRadius="10dp">
<RelativeLayout
android:layout_width="match_parent"
@@ -404,8 +407,7 @@
</RelativeLayout>
</RelativeLayout>
</com.github.florent37.shapeofview.shapes.RoundRectView>
</android.support.v7.widget.CardView>
</LinearLayout>

View File

@@ -13,19 +13,31 @@
<com.github.florent37.shapeofview.shapes.DiagonalView
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="@drawable/header_grad2"
app:diagonal_angle="5"
app:diagonal_direction="left"
app:diagonal_position="bottom" />
app:shape_diagonal_angle="5"
app:shape_diagonal_direction="left"
app:shape_diagonal_position="bottom">
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/header_grad2" />
</com.github.florent37.shapeofview.shapes.DiagonalView>
<com.github.florent37.shapeofview.shapes.DiagonalView
android:layout_width="match_parent"
android:layout_height="200dp"
android:alpha=".8"
android:background="@drawable/header_grad1"
app:diagonal_angle="10"
app:diagonal_direction="right"
app:diagonal_position="bottom" />
app:shape_diagonal_angle="10"
app:shape_diagonal_direction="right"
app:shape_diagonal_position="bottom">
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/header_grad1" />
</com.github.florent37.shapeofview.shapes.DiagonalView>
<RelativeLayout
android:id="@+id/topView"
@@ -72,17 +84,16 @@
android:layout_marginTop="10dp"
android:paddingBottom="10dp">
<com.github.florent37.shapeofview.shapes.RoundRectView
<android.support.v7.widget.CardView
android:id="@+id/google_card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="?android:attr/panelBackground"
android:elevation="5dp"
app:roundRect_bottomLeftRadius="10dp"
app:roundRect_bottomRightRadius="10dp"
app:roundRect_topLeftRadius="10dp"
app:roundRect_topRightRadius="10dp">
app:cardBackgroundColor="?android:attr/panelBackground"
app:cardCornerRadius="10dp"
app:cardElevation="2dp"
app:cardPreventCornerOverlap="false"
app:cardUseCompatPadding="true">
<RelativeLayout
android:layout_width="match_parent"
@@ -194,7 +205,7 @@
</RelativeLayout>
</com.github.florent37.shapeofview.shapes.RoundRectView>
</android.support.v7.widget.CardView>
<TextView
android:id="@+id/or_txt"
@@ -206,17 +217,16 @@
android:text="@string/action_or"
android:textSize="16sp" />
<com.github.florent37.shapeofview.shapes.RoundRectView
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/or_txt"
android:layout_margin="10dp"
android:background="?android:attr/panelBackground"
android:elevation="5dp"
app:roundRect_bottomLeftRadius="10dp"
app:roundRect_bottomRightRadius="10dp"
app:roundRect_topLeftRadius="10dp"
app:roundRect_topRightRadius="10dp">
app:cardBackgroundColor="?android:attr/panelBackground"
app:cardCornerRadius="10dp"
app:cardElevation="2dp"
app:cardPreventCornerOverlap="false"
app:cardUseCompatPadding="true">
<RelativeLayout
android:layout_width="match_parent"
@@ -275,7 +285,7 @@
android:textSize="12sp" />
</RelativeLayout>
</com.github.florent37.shapeofview.shapes.RoundRectView>
</android.support.v7.widget.CardView>
</RelativeLayout>
</android.support.v4.widget.NestedScrollView>

View File

@@ -1,15 +1,16 @@
<com.github.florent37.shapeofview.shapes.RoundRectView xmlns:android="http://schemas.android.com/apk/res/android"
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/all_cat_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:background="?android:attr/panelBackground"
android:elevation="1.5dp"
app:roundRect_bottomLeftRadius="10dp"
app:roundRect_bottomRightRadius="10dp"
app:roundRect_topLeftRadius="10dp"
app:roundRect_topRightRadius="10dp">
android:layout_marginBottom="2dp"
android:layout_marginEnd="4dp"
android:layout_marginStart="4dp"
app:cardBackgroundColor="?android:attr/panelBackground"
app:cardCornerRadius="10dp"
app:cardElevation="1dp"
app:cardPreventCornerOverlap="false"
app:cardUseCompatPadding="true">
<RelativeLayout
android:layout_width="match_parent"
@@ -36,4 +37,4 @@
android:textAlignment="viewStart"
android:textSize="16sp" />
</RelativeLayout>
</com.github.florent37.shapeofview.shapes.RoundRectView>
</android.support.v7.widget.CardView>

View File

@@ -16,19 +16,30 @@
<com.github.florent37.shapeofview.shapes.DiagonalView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/header_grad2"
app:diagonal_angle="5"
app:diagonal_direction="left"
app:diagonal_position="bottom" />
app:shape_diagonal_angle="5"
app:shape_diagonal_direction="left"
app:shape_diagonal_position="bottom">
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/header_grad2" />
</com.github.florent37.shapeofview.shapes.DiagonalView>
<com.github.florent37.shapeofview.shapes.DiagonalView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha=".8"
android:background="@drawable/header_grad1"
app:diagonal_angle="10"
app:diagonal_direction="right"
app:diagonal_position="bottom" />
app:shape_diagonal_angle="10"
app:shape_diagonal_direction="right"
app:shape_diagonal_position="bottom">
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/header_grad1" />
</com.github.florent37.shapeofview.shapes.DiagonalView>
<RelativeLayout
android:id="@+id/topView"
@@ -74,25 +85,22 @@
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2"
android:paddingTop="10dp"
android:paddingBottom="10dp">
android:paddingBottom="10dp"
android:paddingTop="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<com.github.florent37.shapeofview.shapes.RoundRectView
<android.support.v7.widget.CardView
android:id="@+id/dummyCard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="?android:attr/panelBackground"
android:elevation="5dp"
app:roundRect_bottomLeftRadius="10dp"
app:roundRect_bottomRightRadius="10dp"
app:roundRect_topLeftRadius="10dp"
app:roundRect_topRightRadius="10dp">
app:cardBackgroundColor="?android:attr/panelBackground"
app:cardCornerRadius="10dp">
<RelativeLayout
android:layout_width="match_parent"
@@ -216,20 +224,17 @@
</RelativeLayout>
</com.github.florent37.shapeofview.shapes.RoundRectView>
</android.support.v7.widget.CardView>
<com.github.florent37.shapeofview.shapes.RoundRectView
<android.support.v7.widget.CardView
android:id="@+id/emptyCard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="?android:attr/panelBackground"
android:elevation="5dp"
android:visibility="gone"
app:roundRect_bottomLeftRadius="10dp"
app:roundRect_bottomRightRadius="10dp"
app:roundRect_topLeftRadius="10dp"
app:roundRect_topRightRadius="10dp">
app:cardBackgroundColor="?android:attr/panelBackground"
app:cardCornerRadius="10dp">
<RelativeLayout
android:layout_width="match_parent"
@@ -243,8 +248,8 @@
android:layout_height="64dp"
android:layout_centerInParent="true"
android:background="?android:selectableItemBackgroundBorderless"
app:circle_borderColor="@color/colorRed"
app:circle_borderWidth="1dp">
app:shape_circle_borderColor="@color/colorRed"
app:shape_circle_borderWidth="1dp">
<ImageButton
android:id="@+id/add_secondary"
@@ -252,8 +257,8 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@android:color/transparent"
android:clickable="true"
android:focusable="true"
android:clickable="false"
android:focusable="false"
app:srcCompat="@drawable/ic_add" />
</com.github.florent37.shapeofview.shapes.CircleView>
@@ -268,21 +273,17 @@
android:textSize="16sp" />
</RelativeLayout>
</android.support.v7.widget.CardView>
</com.github.florent37.shapeofview.shapes.RoundRectView>
<com.github.florent37.shapeofview.shapes.RoundRectView
<android.support.v7.widget.CardView
android:id="@+id/googleCard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="?android:attr/panelBackground"
android:elevation="5dp"
android:visibility="gone"
app:roundRect_bottomLeftRadius="10dp"
app:roundRect_bottomRightRadius="10dp"
app:roundRect_topLeftRadius="10dp"
app:roundRect_topRightRadius="10dp">
app:cardBackgroundColor="?android:attr/panelBackground"
app:cardCornerRadius="10dp">
<RelativeLayout
android:layout_width="match_parent"
@@ -404,8 +405,7 @@
</RelativeLayout>
</RelativeLayout>
</com.github.florent37.shapeofview.shapes.RoundRectView>
</android.support.v7.widget.CardView>
</LinearLayout>

View File

@@ -13,11 +13,12 @@
android:layout_width="0dp"
android:layout_height="32dp"
android:layout_weight="1"
android:fontFamily="@font/google_sans"
android:background="@drawable/button_negative"
android:padding="5dp"
android:fontFamily="@font/google_sans"
android:maxLines="1"
android:padding="5dp"
android:text="@string/details_uninstall"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="12sp"
android:visibility="gone" />
@@ -27,14 +28,15 @@
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="0dp"
android:layout_height="32dp"
android:fontFamily="@font/google_sans"
android:layout_weight="1"
android:background="@drawable/button_positive"
android:padding="5dp"
android:maxLines="1"
android:text="@string/details_playstore"
android:textColor="@color/white"
android:backgroundTint="@color/colorGreen"
android:fontFamily="@font/google_sans"
android:maxLines="1"
android:padding="5dp"
android:text="@string/details_playstore"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="12sp"
android:visibility="gone" />
@@ -43,12 +45,13 @@
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="0dp"
android:layout_height="32dp"
android:fontFamily="@font/google_sans"
android:layout_weight="1"
android:background="@drawable/button_positive"
android:padding="5dp"
android:fontFamily="@font/google_sans"
android:maxLines="1"
android:padding="5dp"
android:text="@string/details_download"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="12sp"
android:visibility="gone" />
@@ -58,12 +61,13 @@
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="0dp"
android:layout_height="32dp"
android:fontFamily="@font/google_sans"
android:layout_weight="1"
android:background="@drawable/button_negative"
android:padding="5dp"
android:fontFamily="@font/google_sans"
android:maxLines="1"
android:padding="5dp"
android:text="@string/details_cancel"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="12sp"
android:visibility="gone" />
@@ -73,11 +77,11 @@
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="0dp"
android:layout_height="32dp"
android:fontFamily="@font/google_sans"
android:layout_weight="1"
android:background="@drawable/button_positive"
android:padding="5dp"
android:fontFamily="@font/google_sans"
android:maxLines="1"
android:padding="5dp"
android:text="@string/details_install"
android:textColor="@color/white"
android:textSize="12sp"
@@ -88,12 +92,13 @@
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="0dp"
android:layout_height="32dp"
android:fontFamily="@font/google_sans"
android:layout_weight="1"
android:background="@drawable/button_positive"
android:padding="5dp"
android:fontFamily="@font/google_sans"
android:maxLines="1"
android:padding="5dp"
android:text="@string/details_run"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="12sp"
android:visibility="gone" />

View File

@@ -11,6 +11,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_marginTop="15dp"
android:layout_marginEnd="15dp"
android:fontFamily="@font/google_sans"
android:gravity="start"
android:text="@string/top_categories"
@@ -23,7 +24,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/top_cat"
android:layout_margin="10dp"
android:nestedScrollingEnabled="false"
android:orientation="horizontal"
app:layoutManager="android.support.v7.widget.LinearLayoutManager" />
@@ -35,6 +35,7 @@
android:layout_below="@id/top_cat_view"
android:layout_marginStart="15dp"
android:layout_marginTop="15dp"
android:layout_marginEnd="15dp"
android:fontFamily="@font/google_sans"
android:gravity="start"
android:text="@string/all_categories"
@@ -47,10 +48,10 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/all_cat"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:layout_marginBottom="8dp"
android:layout_marginTop="10dp">
android:layout_marginStart="6dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="6dp"
android:layout_marginBottom="8dp">
<android.support.v7.widget.RecyclerView
android:id="@+id/all_cat_view"

View File

@@ -1,100 +1,113 @@
<?xml version="1.0" encoding="utf-8"?>
<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/app_detail"
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="@drawable/outline_bg"
android:orientation="vertical"
android:padding="5dp"
android:visibility="gone"
android:scrollbars="none">
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:layout_marginTop="5dp"
app:cardBackgroundColor="?android:attr/panelBackground"
app:cardCornerRadius="10dp"
app:cardElevation="1dp"
app:cardPreventCornerOverlap="false"
app:cardUseCompatPadding="true">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="horizontal"
android:paddingEnd="10dp"
android:paddingStart="10dp">
<HorizontalScrollView
android:id="@+id/app_detail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="5dp"
android:scrollbars="none"
android:visibility="gone">
<ImageView
android:layout_width="18dp"
android:layout_height="18dp"
android:alpha="0.7"
android:src="@drawable/ic_star" />
<TextView
android:id="@+id/rating"
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:fontFamily="@font/google_sans_bold"
android:singleLine="true" />
android:layout_height="match_parent"
android:gravity="center"
android:orientation="horizontal"
android:paddingEnd="10dp"
android:paddingStart="10dp">
<View
android:layout_width="1dp"
android:layout_height="28dp"
android:layout_margin="8dp"
android:background="@color/gray" />
<ImageView
android:layout_width="18dp"
android:layout_height="18dp"
android:alpha="0.7"
android:src="@drawable/ic_star" />
<ImageView
android:layout_width="18dp"
android:layout_height="18dp"
android:alpha="0.7"
android:src="@drawable/ic_download" />
<TextView
android:id="@+id/rating"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:fontFamily="@font/google_sans_bold"
android:singleLine="true" />
<TextView
android:id="@+id/installs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:fontFamily="@font/google_sans_bold"
android:gravity="clip_horizontal"
android:singleLine="true" />
<View
android:layout_width="1dp"
android:layout_height="28dp"
android:layout_margin="8dp"
android:background="@color/gray" />
<View
android:layout_width="1dp"
android:layout_height="28dp"
android:layout_margin="8dp"
android:background="@color/gray" />
<ImageView
android:layout_width="18dp"
android:layout_height="18dp"
android:alpha="0.7"
android:src="@drawable/ic_download" />
<ImageView
android:layout_width="18dp"
android:layout_height="18dp"
android:padding="2dp"
android:alpha="0.7"
android:src="@drawable/ic_size" />
<TextView
android:id="@+id/installs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:fontFamily="@font/google_sans_bold"
android:gravity="clip_horizontal"
android:singleLine="true" />
<TextView
android:id="@+id/size"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:fontFamily="@font/google_sans_bold"
android:singleLine="true" />
<View
android:layout_width="1dp"
android:layout_height="28dp"
android:layout_margin="8dp"
android:background="@color/gray" />
<View
android:layout_width="1dp"
android:layout_height="28dp"
android:layout_margin="8dp"
android:background="@color/gray" />
<ImageView
android:layout_width="18dp"
android:layout_height="18dp"
android:alpha="0.7"
android:padding="2dp"
android:src="@drawable/ic_size" />
<ImageView
android:id="@+id/categoryImage"
android:layout_width="28dp"
android:layout_height="28dp"
android:alpha="0.7"
android:tint="?android:attr/colorForeground"
android:src="@drawable/ic_categories" />
<TextView
android:id="@+id/size"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:fontFamily="@font/google_sans_bold"
android:singleLine="true" />
<TextView
android:id="@+id/category"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:fontFamily="@font/google_sans_bold"
android:singleLine="true" />
</LinearLayout>
<View
android:layout_width="1dp"
android:layout_height="28dp"
android:layout_margin="8dp"
android:background="@color/gray" />
</HorizontalScrollView>
<ImageView
android:id="@+id/categoryImage"
android:layout_width="28dp"
android:layout_height="28dp"
android:alpha="0.7"
android:src="@drawable/ic_categories"
android:tint="?android:attr/colorForeground" />
<TextView
android:id="@+id/category"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:fontFamily="@font/google_sans_bold"
android:singleLine="true" />
</LinearLayout>
</HorizontalScrollView>
</android.support.v7.widget.CardView>

View File

@@ -4,6 +4,97 @@
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/ohhSnap"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone">
<ImageView
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_above="@+id/ohhSnap_txt"
android:layout_centerHorizontal="true"
android:alpha=".75"
android:src="@drawable/ic_err" />
<TextView
android:id="@+id/ohhSnap_txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginTop="10dp"
android:fontFamily="@font/google_sans"
android:text="@string/ohh_snap_text"
android:textSize="16sp" />
<Button
android:id="@+id/ohhSnap_retry"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="32dp"
android:layout_below="@+id/ohhSnap_txt"
android:layout_centerHorizontal="true"
android:layout_marginTop="15dp"
android:background="@drawable/button_positive"
android:fontFamily="@font/google_sans"
android:maxLines="1"
android:padding="5dp"
android:text="@string/ohh_snap_retry"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="12sp" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/unicorn"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone">
<TextView
android:id="@+id/no_app_available"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginTop="10dp"
android:fontFamily="@font/google_sans_bold"
android:text="@string/list_empty_search"
android:textSize="18sp" />
<Button
android:id="@+id/recheck_query"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="32dp"
android:layout_below="@+id/no_app_available"
android:layout_centerHorizontal="true"
android:layout_marginTop="15dp"
android:background="@drawable/button_positive"
android:fontFamily="@font/google_sans"
android:maxLines="1"
android:padding="5dp"
android:text="@string/list_update_recheck"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="12sp" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/progress"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:scaleX=".8"
android:scaleY=".8" />
</RelativeLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/endless_apps_list"
android:layout_width="match_parent"
@@ -11,9 +102,6 @@
android:clipToPadding="false"
android:nestedScrollingEnabled="false"
android:paddingBottom="76dp"
android:paddingEnd="5dp"
android:paddingStart="5dp"
android:paddingTop="5dp"
android:scrollbarStyle="outsideOverlay"
android:scrollbars="vertical" />

View File

@@ -1,78 +1,92 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/exodus_card"
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:animateLayoutChanges="true"
android:background="@drawable/outline_bg"
android:orientation="vertical"
android:visibility="gone">
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:layout_marginTop="5dp"
app:cardBackgroundColor="?android:attr/panelBackground"
app:cardCornerRadius="10dp"
app:cardElevation="1dp"
app:cardPreventCornerOverlap="false"
app:cardUseCompatPadding="true">
<RelativeLayout
<LinearLayout
android:id="@+id/exodus_card"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/privacy_ico"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_margin="10dp"
android:src="@drawable/ic_security" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_toEndOf="@id/privacy_ico"
android:orientation="vertical">
<TextView
android:id="@+id/exodus_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/google_sans_bold"
android:text="@string/exodus_title"
android:textAlignment="viewStart"
android:textSize="18sp" />
<TextView
android:id="@+id/exodus_description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="viewStart"
android:textSize="14sp" />
<TextView
android:id="@+id/exodus_status"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="viewStart"
android:textSize="12sp"
android:visibility="gone" />
<TextView
android:id="@+id/viewMore"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:clickable="true"
android:focusable="true"
android:text="@string/exodus_viewMore"
android:textAlignment="viewStart"
android:textSize="12sp" />
</LinearLayout>
</RelativeLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_margin="10dp"
android:fontFamily="@font/google_sans_bold"
android:gravity="end"
android:text="@string/exodus_powered"
android:textSize="12sp" />
</LinearLayout>
android:animateLayoutChanges="true"
android:orientation="vertical"
android:visibility="gone">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/privacy_ico"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_margin="10dp"
android:src="@drawable/ic_security" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_toEndOf="@id/privacy_ico"
android:orientation="vertical">
<TextView
android:id="@+id/exodus_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/google_sans_bold"
android:text="@string/exodus_title"
android:textAlignment="viewStart"
android:textSize="18sp" />
<TextView
android:id="@+id/exodus_description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="viewStart"
android:textSize="14sp" />
<TextView
android:id="@+id/exodus_status"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="viewStart"
android:textSize="12sp"
android:visibility="gone" />
<TextView
android:id="@+id/viewMore"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:clickable="true"
android:focusable="true"
android:text="@string/exodus_viewMore"
android:textAlignment="viewStart"
android:textSize="12sp" />
</LinearLayout>
</RelativeLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_margin="10dp"
android:fontFamily="@font/google_sans_bold"
android:gravity="end"
android:text="@string/exodus_powered"
android:textSize="12sp" />
</LinearLayout>
</android.support.v7.widget.CardView>

View File

@@ -1,107 +1,119 @@
<?xml version="1.0" encoding="utf-8"?>
<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/general_card"
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/updatable_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="@drawable/outline_bg"
android:orientation="vertical"
android:padding="5dp"
android:scrollbars="none"
android:visibility="gone">
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:layout_marginTop="5dp"
app:cardBackgroundColor="?android:attr/panelBackground"
app:cardCornerRadius="10dp"
app:cardElevation="1dp"
app:cardPreventCornerOverlap="false"
app:cardUseCompatPadding="true">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="horizontal"
android:paddingEnd="10dp"
android:paddingStart="10dp">
<HorizontalScrollView
android:id="@+id/general_card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="5dp"
android:scrollbars="none"
android:visibility="gone">
<ImageView
android:layout_width="18dp"
android:layout_height="18dp"
android:alpha="0.7"
android:src="@drawable/ic_update" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="horizontal"
android:paddingEnd="10dp"
android:paddingStart="10dp">
<TextView
android:id="@+id/updated"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:fontFamily="@font/google_sans_bold" />
<ImageView
android:layout_width="18dp"
android:layout_height="18dp"
android:alpha="0.7"
android:src="@drawable/ic_update" />
<View
android:layout_width="1dp"
android:layout_height="28dp"
android:layout_gravity="center_vertical"
android:layout_margin="8dp"
android:background="@color/gray" />
<TextView
android:id="@+id/updated"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:fontFamily="@font/google_sans_bold" />
<ImageView
android:layout_width="18dp"
android:layout_height="18dp"
android:alpha="0.7"
android:src="@drawable/ic_google_play" />
<View
android:layout_width="1dp"
android:layout_height="28dp"
android:layout_gravity="center_vertical"
android:layout_margin="8dp"
android:background="@color/gray" />
<ImageView
android:layout_width="18dp"
android:layout_height="18dp"
android:alpha="0.7"
android:src="@drawable/ic_google_play" />
<TextView
android:id="@+id/google_dependencies"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:fontFamily="@font/google_sans_bold" />
<TextView
android:id="@+id/google_dependencies"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:fontFamily="@font/google_sans_bold" />
<View
android:layout_width="1dp"
android:layout_height="28dp"
android:layout_gravity="center_vertical"
android:layout_margin="8dp"
android:background="@color/gray" />
<View
android:layout_width="1dp"
android:layout_height="28dp"
android:layout_gravity="center_vertical"
android:layout_margin="8dp"
android:background="@color/gray" />
<TextView
android:id="@+id/app_rating"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:fontFamily="@font/google_sans_bold"
android:visibility="gone" />
<TextView
android:id="@+id/app_rating"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:fontFamily="@font/google_sans_bold"
android:visibility="gone" />
<ImageView
android:layout_width="18dp"
android:layout_height="18dp"
android:alpha="0.7"
android:src="@drawable/ic_tag" />
<ImageView
android:layout_width="18dp"
android:layout_height="18dp"
android:alpha="0.7"
android:src="@drawable/ic_tag" />
<TextView
android:id="@+id/price"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:fontFamily="@font/google_sans_bold" />
<TextView
android:id="@+id/price"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:fontFamily="@font/google_sans_bold" />
<View
android:layout_width="1dp"
android:layout_height="28dp"
android:layout_gravity="center_vertical"
android:layout_margin="8dp"
android:background="@color/gray" />
<View
android:layout_width="1dp"
android:layout_height="28dp"
android:layout_gravity="center_vertical"
android:layout_margin="8dp"
android:background="@color/gray" />
<ImageView
android:layout_width="18dp"
android:layout_height="18dp"
android:alpha="0.7"
android:src="@drawable/ic_alert" />
<ImageView
android:layout_width="18dp"
android:layout_height="18dp"
android:alpha="0.7"
android:src="@drawable/ic_alert" />
<TextView
android:id="@+id/contains_ads"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:fontFamily="@font/google_sans_bold" />
<TextView
android:id="@+id/contains_ads"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:fontFamily="@font/google_sans_bold" />
</LinearLayout>
</HorizontalScrollView>
</LinearLayout>
</HorizontalScrollView>
</android.support.v7.widget.CardView>

View File

@@ -8,8 +8,8 @@
android:id="@+id/icon"
android:layout_width="@dimen/icon_size"
android:layout_height="@dimen/icon_size"
android:layout_marginEnd="6dp"
android:layout_marginStart="12dp"
android:layout_marginEnd="6dp"
android:contentDescription="@string/content_description_app_icon"
android:src="@android:color/transparent" />
@@ -35,8 +35,8 @@
android:layout_height="wrap_content"
android:fontFamily="@font/google_sans"
android:maxLines="1"
android:textColor="?android:attr/textColorSecondary"
android:textAlignment="viewStart"
android:textColor="?android:attr/textColorSecondary"
android:textSize="12sp" />
<TextView

View File

@@ -6,24 +6,23 @@
android:background="?android:attr/colorBackground"
android:orientation="vertical">
<com.github.florent37.shapeofview.shapes.RoundRectView
<android.support.v7.widget.CardView
android:id="@+id/installed_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="6dp"
android:layout_marginStart="6dp"
android:layout_marginTop="5dp"
android:background="?android:attr/panelBackground"
android:elevation="2dp"
app:roundRect_bottomLeftRadius="10dp"
app:roundRect_bottomRightRadius="10dp"
app:roundRect_topLeftRadius="10dp"
app:roundRect_topRightRadius="10dp">
app:cardBackgroundColor="?android:attr/panelBackground"
app:cardCornerRadius="10dp"
app:cardElevation="1dp"
app:cardPreventCornerOverlap="false"
app:cardUseCompatPadding="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:selectableItemBackgroundBorderless"
android:background="?android:attr/panelBackground"
android:orientation="vertical"
android:padding="5dp"
app:layout_scrollFlags="scroll|enterAlways|snap">
@@ -63,33 +62,84 @@
android:textAlignment="viewStart"
android:textColor="?android:attr/textColorSecondary" />
</LinearLayout>
</com.github.florent37.shapeofview.shapes.RoundRectView>
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swipe_refresh_layout"
</android.support.v7.widget.CardView>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/installed_header"
android:layout_marginBottom="8dp"
android:background="?android:attr/colorBackground"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
android:animateLayoutChanges="true"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/installed_apps_list"
<RelativeLayout
android:id="@+id/ohhSnap"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingEnd="6dp"
android:paddingStart="6dp"
android:paddingTop="6dp"
android:scrollbars="vertical" />
android:visibility="gone">
<TextView
android:id="@android:id/empty"
<ImageView
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_above="@+id/ohhSnap_txt"
android:layout_centerHorizontal="true"
android:alpha=".75"
android:src="@drawable/ic_err" />
<TextView
android:id="@+id/ohhSnap_txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginTop="10dp"
android:fontFamily="@font/google_sans"
android:text="@string/ohh_snap_text"
android:textSize="16sp" />
<Button
android:id="@+id/ohhSnap_retry"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="32dp"
android:layout_below="@+id/ohhSnap_txt"
android:layout_centerHorizontal="true"
android:layout_marginTop="15dp"
android:background="@drawable/button_positive"
android:fontFamily="@font/google_sans"
android:maxLines="1"
android:padding="5dp"
android:text="@string/ohh_snap_retry"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="12sp" />
</RelativeLayout>
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swipe_refresh_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
android:layout_height="match_parent"
android:layout_below="@id/ohhSnap"
android:background="?android:attr/colorBackground"
android:clipToPadding="false"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
</android.support.v4.widget.SwipeRefreshLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/installed_apps_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical" />
<TextView
android:id="@android:id/empty"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
</android.support.v4.widget.SwipeRefreshLayout>
</RelativeLayout>
</RelativeLayout>

View File

@@ -20,7 +20,7 @@
android:padding="5dp"
android:text="@string/details_permissions"
android:textAllCaps="true"
android:textColor="?android:attr/colorAccent"
android:textColor="?android:attr/textColorPrimary"
android:textSize="14sp" />
<LinearLayout

View File

@@ -207,7 +207,4 @@
</LinearLayout>
</LinearLayout>
</LinearLayout>

View File

@@ -7,20 +7,19 @@
android:background="?android:attr/colorBackground"
android:orientation="vertical">
<com.github.florent37.shapeofview.shapes.RoundRectView
<android.support.v7.widget.CardView
android:id="@+id/autoUpdatesCard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="6dp"
android:layout_marginStart="6dp"
android:layout_marginTop="5dp"
android:background="?android:attr/panelBackground"
android:elevation="2dp"
android:visibility="gone"
app:roundRect_bottomLeftRadius="10dp"
app:roundRect_bottomRightRadius="10dp"
app:roundRect_topLeftRadius="10dp"
app:roundRect_topRightRadius="10dp">
app:cardBackgroundColor="?android:attr/panelBackground"
app:cardCornerRadius="10dp"
app:cardElevation="1dp"
app:cardPreventCornerOverlap="false"
app:cardUseCompatPadding="true">
<LinearLayout
android:layout_width="match_parent"
@@ -94,65 +93,62 @@
</LinearLayout>
</LinearLayout>
</com.github.florent37.shapeofview.shapes.RoundRectView>
<com.github.florent37.shapeofview.shapes.RoundRectView
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:id="@+id/updatable_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/autoUpdatesCard"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:layout_marginTop="5dp"
android:background="?android:attr/panelBackground"
android:elevation="2dp"
app:roundRect_bottomLeftRadius="10dp"
app:roundRect_bottomRightRadius="10dp"
app:roundRect_topLeftRadius="10dp"
app:roundRect_topRightRadius="10dp">
android:layout_marginEnd="6dp"
android:layout_marginStart="6dp"
app:cardBackgroundColor="?android:attr/panelBackground"
app:cardCornerRadius="10dp"
app:cardElevation="1dp"
app:cardPreventCornerOverlap="false"
app:cardUseCompatPadding="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true"
android:baselineAligned="false"
android:orientation="vertical"
android:padding="5dp"
android:weightSum="3">
<LinearLayout
android:layout_width="0dp"
<TextView
android:id="@+id/updates_txt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="2"
android:orientation="vertical">
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:layout_marginTop="5dp"
android:ellipsize="start"
android:fontFamily="@font/google_sans_bold"
android:singleLine="true"
android:text="@string/list_update_chk_txt"
android:textColor="?android:attr/textColorPrimary"
android:textSize="18sp" />
<TextView
android:id="@+id/updates_txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:layout_marginTop="5dp"
android:fontFamily="@font/google_sans_bold"
android:text="@string/list_update_chk_txt"
android:textColor="?android:attr/textColorPrimary"
android:textSize="18sp" />
<TextView
android:id="@+id/updates_setting"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:fontFamily="@font/google_sans"
android:textSize="14sp" />
</LinearLayout>
<TextView
android:id="@+id/updates_setting"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:ellipsize="end"
android:fontFamily="@font/google_sans"
android:singleLine="true"
android:textSize="14sp" />
<LinearLayout
android:id="@+id/update_action"
android:layout_width="0dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:gravity="end">
android:gravity="end"
android:paddingBottom="2dp">
<Button
android:id="@+id/update_all"
@@ -165,6 +161,7 @@
android:paddingEnd="12dp"
android:paddingStart="12dp"
android:text="@string/list_update_all"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="12sp"
android:visibility="gone" />
@@ -180,6 +177,7 @@
android:paddingEnd="12dp"
android:paddingStart="12dp"
android:text="@string/details_cancel"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="12sp"
android:visibility="gone" />
@@ -188,7 +186,7 @@
</LinearLayout>
</com.github.florent37.shapeofview.shapes.RoundRectView>
</android.support.v7.widget.CardView>
<LinearLayout
android:layout_width="match_parent"
@@ -198,6 +196,49 @@
android:animateLayoutChanges="true"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/ohhSnap"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone">
<ImageView
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_above="@+id/ohhSnap_txt"
android:layout_centerHorizontal="true"
android:alpha=".75"
android:src="@drawable/ic_err" />
<TextView
android:id="@+id/ohhSnap_txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginTop="10dp"
android:fontFamily="@font/google_sans"
android:text="@string/ohh_snap_text"
android:textSize="16sp" />
<Button
android:id="@+id/ohhSnap_retry"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="32dp"
android:layout_below="@+id/ohhSnap_txt"
android:layout_centerHorizontal="true"
android:layout_marginTop="15dp"
android:background="@drawable/button_positive"
android:fontFamily="@font/google_sans"
android:maxLines="1"
android:padding="5dp"
android:text="@string/ohh_snap_retry"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="12sp" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/unicorn"
android:layout_width="match_parent"
@@ -222,12 +263,13 @@
android:layout_height="32dp"
android:layout_below="@+id/no_app_available"
android:layout_centerHorizontal="true"
android:layout_marginTop="25dp"
android:layout_marginTop="15dp"
android:background="@drawable/button_positive"
android:fontFamily="@font/google_sans"
android:maxLines="1"
android:padding="5dp"
android:text="@string/list_update_recheck"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="12sp" />
</RelativeLayout>
@@ -235,15 +277,13 @@
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swipe_refresh_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
android:background="?android:attr/colorBackground">
<android.support.v7.widget.RecyclerView
android:id="@+id/updatable_apps_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingEnd="6dp"
android:paddingStart="6dp"
android:paddingTop="6dp"
android:scrollbars="vertical" />
</android.support.v4.widget.SwipeRefreshLayout>

View File

@@ -17,22 +17,22 @@
android:layout_height="wrap_content"
android:layout_below="@+id/show_LessMore"
android:layout_marginTop="5dp"
android:background="?android:attr/panelBackground"
android:elevation="@dimen/appbar_bar_elevation"
app:roundRect_topLeftRadius="20dp"
app:roundRect_topRightRadius="20dp">
app:shape_roundRect_topLeftRadius="20dp"
app:shape_roundRect_topRightRadius="20dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/panelBackground"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/nav_items_recycler"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="4dp"
android:layout_marginStart="4dp"
android:layout_marginEnd="4dp"
android:gravity="fill_horizontal"
android:orientation="horizontal"
app:layoutManager="android.support.v7.widget.LinearLayoutManager" />
@@ -40,9 +40,9 @@
<View
android:layout_width="match_parent"
android:layout_height=".8dp"
android:layout_marginEnd="25dp"
android:layout_marginStart="25dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="25dp"
android:background="@drawable/list_divider" />
<android.support.v7.widget.RecyclerView
@@ -50,11 +50,11 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="10dp"
android:layout_marginTop="15dp"
android:layout_marginBottom="10dp"
android:orientation="horizontal"
android:paddingEnd="8dp"
android:paddingStart="8dp"
android:paddingEnd="8dp"
app:layoutManager="android.support.v7.widget.LinearLayoutManager" />
</LinearLayout>
</com.github.florent37.shapeofview.shapes.RoundRectView>

View File

@@ -7,43 +7,46 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="25dp">
android:padding="15dp">
<ImageView
android:id="@+id/google_logo"
android:layout_width="32dp"
android:layout_height="@dimen/icon_size_med"
android:layout_margin="5dp"
android:src="@drawable/ic_google" />
<TextView
android:id="@+id/disclaimer"
android:id="@+id/google_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/google_logo"
android:layout_alignTop="@+id/google_logo"
android:layout_marginStart="10dp"
android:layout_marginStart="5dp"
android:layout_toEndOf="@+id/google_logo"
android:fontFamily="@font/google_sans_bold"
android:gravity="center"
android:text="@string/credentials_logo_txt"
android:textAllCaps="false"
android:textColor="?android:attr/textColorPrimary"
android:textSize="24sp" />
android:textSize="18sp" />
<TextView
android:id="@+id/textview"
android:layout_width="match_parent"
<ImageView
android:id="@+id/button_exit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/google_logo"
android:layout_marginTop="25dp"
android:text="@string/credentials_message"
android:visibility="gone" />
android:layout_alignParentEnd="true"
android:scaleX=".8"
android:scaleY=".8"
android:layout_margin="-5dp"
android:src="@drawable/ic_cancel" />
<android.support.v7.widget.AppCompatAutoCompleteTextView
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="36dp"
android:layout_below="@id/textview"
android:layout_below="@id/google_title"
android:layout_marginTop="10dp"
android:autofillHints="emailAddress"
android:background="@drawable/outline_bg"
@@ -80,25 +83,16 @@
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginEnd="12dp"
android:alpha=".6"
android:src="@drawable/ic_visibility_on"
android:tint="?android:attr/textColorPrimaryInverse" />
android:tint="?android:attr/colorForeground" />
</RelativeLayout>
<LinearLayout
android:id="@+id/password_layout_ext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/password_layout"
android:layout_margin="5dp"
android:gravity="end"
android:orientation="horizontal"
android:weightSum="2" />
<LinearLayout
android:id="@+id/login_buttons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/password_layout_ext"
android:layout_below="@+id/password_layout"
android:layout_marginTop="10dp"
android:gravity="end"
android:orientation="horizontal"
@@ -106,36 +100,23 @@
<CheckBox
android:id="@+id/checkboxSave"
android:layout_width="0dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginEnd="10dp"
android:layout_weight="4"
android:layout_marginEnd="5dp"
android:button="@null"
android:checked="true"
android:textColor="?android:attr/textColorSecondary"
android:drawableEnd="?android:attr/listChoiceIndicatorMultiple"
android:text="@string/acc_save" />
<Button
android:id="@+id/button_exit"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="0dp"
android:layout_height="32dp"
android:layout_weight="2"
android:background="@drawable/button_negative"
android:text="@android:string/cancel"
android:textColor="@color/white"
android:textSize="12sp" />
android:text="@string/acc_save"
android:textColor="?android:attr/textColorSecondary" />
<Button
android:id="@+id/button_ok"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="0dp"
android:layout_width="wrap_content"
android:layout_height="32dp"
android:layout_weight="2"
android:background="@drawable/button_positive"
android:text="@android:string/ok"
android:text="@string/action_login"
android:textColor="@color/white"
android:textSize="12sp" />
</LinearLayout>

View File

@@ -43,8 +43,8 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="6dp"
android:layout_marginStart="6dp"
android:layout_marginTop="-40dp"
android:animateLayoutChanges="true"
android:orientation="vertical">
@@ -53,12 +53,16 @@
<android.support.v7.widget.CardView
android:id="@+id/mainCard"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:elevation="5dp"
android:layout_height="wrap_content"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:layout_marginTop="5dp"
android:visibility="gone"
app:cardBackgroundColor="?android:attr/colorBackground"
app:cardCornerRadius="8dp">
app:cardBackgroundColor="?android:attr/panelBackground"
app:cardCornerRadius="10dp"
app:cardElevation="1dp"
app:cardPreventCornerOverlap="false"
app:cardUseCompatPadding="true">
<LinearLayout
android:layout_width="match_parent"
@@ -241,11 +245,15 @@
android:id="@+id/app_video"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:elevation="5dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:layout_marginTop="5dp"
android:visibility="gone"
app:cardCornerRadius="8dp"
app:cardPreventCornerOverlap="false">
app:cardBackgroundColor="?android:attr/panelBackground"
app:cardCornerRadius="10dp"
app:cardElevation="1dp"
app:cardPreventCornerOverlap="false"
app:cardUseCompatPadding="true">
<ImageView
android:id="@+id/thumbnail"

View File

@@ -3,7 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="300dp"
android:layout_height="150dp"
android:elevation="2dp"
app:cardElevation="1dp"
app:cardCornerRadius="5dp"
app:cardUseCompatPadding="true">

View File

@@ -5,16 +5,24 @@
android:layout_height="38dp"
android:layout_margin="5dp"
android:background="@drawable/badge_bg"
android:clipToPadding="true"
android:elevation="1dp"
android:padding="8dp">
<com.github.florent37.shapeofview.shapes.CircleView
android:id="@+id/badge_dot"
android:id="@+id/badge_dot_c"
android:layout_width="12dp"
android:layout_height="12dp"
android:layout_centerVertical="true"
android:layout_marginStart="5dp"
android:background="@color/colorGold" />
android:layout_marginStart="5dp">
<View
android:id="@+id/badge_dot"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorGold" />
</com.github.florent37.shapeofview.shapes.CircleView>
<TextView
android:id="@+id/badge_text"
@@ -23,11 +31,11 @@
android:layout_centerVertical="true"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:layout_toEndOf="@+id/badge_dot"
android:layout_toEndOf="@+id/badge_dot_c"
android:ellipsize="end"
android:gravity="center"
android:singleLine="true"
android:textColor="?android:attr/colorForeground" />
android:textColor="?android:attr/textColorPrimary" />
<com.github.florent37.shapeofview.shapes.CircleView
android:id="@+id/badge_cancel"
@@ -36,17 +44,15 @@
android:layout_centerVertical="true"
android:layout_marginEnd="5dp"
android:layout_toEndOf="@+id/badge_text"
android:background="@color/lightGray"
android:visibility="gone">
<ImageView
android:layout_width="10dp"
android:layout_height="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:scaleX=".8"
android:scaleY=".8"
android:background="@color/lightGray"
android:src="@drawable/ic_cancel"
android:tint="?android:attr/colorForeground" />
android:tint="@color/darkGray" />
</com.github.florent37.shapeofview.shapes.CircleView>

View File

@@ -4,21 +4,21 @@
android:id="@+id/filter_sheet"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:layout_marginTop="15dp"
android:background="?android:attr/panelBackground"
android:layout_marginBottom="15dp"
android:elevation="10dp"
android:nestedScrollingEnabled="false"
android:orientation="vertical"
app:behavior_hideable="true"
app:behavior_peekHeight="0dp"
app:layout_behavior="android.support.design.widget.BottomSheetBehavior"
app:roundRect_topLeftRadius="20dp"
app:roundRect_topRightRadius="20dp">
app:shape_roundRect_topLeftRadius="20dp"
app:shape_roundRect_topRightRadius="20dp">
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/panelBackground"
android:padding="5dp">
<RelativeLayout
@@ -66,8 +66,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginBottom="5dp"
android:layout_marginStart="10dp"
android:layout_marginBottom="5dp"
android:fontFamily="@font/google_sans_bold"
android:text="@string/action_filter_misc"
android:textAllCaps="true"
@@ -117,8 +117,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginBottom="5dp"
android:layout_marginStart="10dp"
android:layout_marginBottom="5dp"
android:fontFamily="@font/google_sans_bold"
android:text="@string/action_filter_build"
android:textAllCaps="true"
@@ -149,9 +149,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/filter_cat2"
android:layout_marginBottom="5dp"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="5dp"
android:fontFamily="@font/google_sans_bold"
android:text="@string/action_filter_rating"
android:textAllCaps="true"
@@ -175,9 +175,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/filter_ratings"
android:layout_marginBottom="5dp"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="5dp"
android:fontFamily="@font/google_sans_bold"
android:text="@string/action_filter_downloads"
android:textAllCaps="true"

View File

@@ -17,49 +17,36 @@
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
<android.support.v7.widget.CardView
android:id="@+id/category_tabs_cnt"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
android:layout_marginEnd="6dp"
android:layout_marginStart="6dp"
android:layout_marginTop="2dp"
app:cardBackgroundColor="?android:attr/panelBackground"
app:cardCornerRadius="10dp"
app:cardElevation="1dp"
app:cardPreventCornerOverlap="false"
app:cardUseCompatPadding="true">
<android.support.design.widget.TabLayout
android:id="@+id/category_tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:background="@drawable/outline_bg"
app:tabIndicatorHeight="0dp"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
app:tabIndicatorHeight="4dp"
app:tabMode="scrollable"
app:tabSelectedTextColor="@color/colorAccent" />
</android.support.v7.widget.CardView>
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</LinearLayout>
<ProgressBar
android:id="@+id/progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:indeterminate="true"
android:visibility="gone" />
<TextView
android:id="@android:id/empty"
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/progress"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginTop="25dp"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
android:layout_height="match_parent"
android:layout_below="@id/category_tabs_cnt" />
</RelativeLayout>
<include layout="@layout/filter_sheet" />

View File

@@ -25,34 +25,34 @@
android:textColor="?android:attr/textColorPrimary"
android:textSize="18sp" />
<com.github.florent37.shapeofview.shapes.RoundRectView
<android.support.v7.widget.CardView
android:id="@+id/search_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="12dp"
android:background="?android:attr/panelBackground"
android:elevation="2dp"
app:roundRect_bottomLeftRadius="10dp"
app:roundRect_bottomRightRadius="10dp"
app:roundRect_topLeftRadius="10dp"
app:roundRect_topRightRadius="10dp">
android:layout_margin="8dp"
app:cardBackgroundColor="?android:attr/panelBackground"
app:cardCornerRadius="10dp"
app:cardElevation="1dp"
app:cardPreventCornerOverlap="false"
app:cardUseCompatPadding="true">
<android.support.v7.widget.SearchView
android:id="@+id/search_apps"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layoutDirection="locale"
app:closeIcon="@null"
app:queryBackground="@android:color/transparent"
app:queryHint="Search Apps"
app:queryHint="@string/action_search_title"
app:searchIcon="@drawable/ic_search" />
</com.github.florent37.shapeofview.shapes.RoundRectView>
</android.support.v7.widget.CardView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:layout_marginStart="16dp"
android:layout_marginTop="24dp"
android:layout_marginTop="18dp"
android:orientation="horizontal">
<TextView
@@ -81,42 +81,54 @@
android:textSize="14sp" />
</LinearLayout>
<RelativeLayout
android:id="@+id/searchcard"
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="2dp"
android:layout_marginStart="2dp"
android:layout_marginTop="8dp"
android:animateLayoutChanges="true"
android:padding="5dp">
android:layout_height="match_parent"
android:scrollbars="none">
<android.support.v7.widget.RecyclerView
android:id="@+id/searchHistory"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical" />
android:orientation="vertical">
<TextView
android:id="@+id/emptyView"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_gravity="center"
android:layout_margin="2dp"
android:background="@drawable/outline_bg"
android:gravity="center"
android:padding="15dp"
android:text="@string/list_empty_query"
android:textSize="16sp" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/searchcard"
android:layout_width="match_parent"
android:layout_height="248dp"
android:layout_marginEnd="2dp"
android:layout_marginStart="2dp"
android:layout_marginTop="8dp"
android:animateLayoutChanges="true"
android:padding="5dp">
<com.dragons.aurora.view.ClusterAppsCard
android:id="@+id/searchClusterApp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginEnd="4dp"
android:layout_marginStart="4dp"
android:layout_marginTop="12dp" />
<android.support.v7.widget.RecyclerView
android:id="@+id/searchHistory"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical" />
<TextView
android:id="@+id/emptyView"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_gravity="center"
android:layout_margin="2dp"
android:background="@drawable/outline_bg"
android:gravity="center"
android:padding="15dp"
android:text="@string/list_empty_query"
android:textSize="16sp" />
</RelativeLayout>
<com.dragons.aurora.view.ClusterAppsCard
android:id="@+id/searchClusterApp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginEnd="4dp"
android:layout_marginStart="4dp"
android:layout_marginTop="12dp" />
</LinearLayout>
</ScrollView>
</LinearLayout>

View File

@@ -9,47 +9,122 @@
android:layout_height="wrap_content"
app:ToolbarStyle="Details" />
<RelativeLayout
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="10dp"
android:background="?android:attr/colorBackground"
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<android.support.v7.widget.RecyclerView
android:id="@+id/search_apps_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:nestedScrollingEnabled="false"
android:paddingBottom="76dp"
android:paddingEnd="5dp"
android:paddingStart="5dp"
android:paddingTop="5dp"
android:scrollbarStyle="outsideOverlay"
android:scrollbars="vertical" />
<ProgressBar
<RelativeLayout
android:id="@+id/ohhSnap"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone">
<ImageView
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_above="@+id/ohhSnap_txt"
android:layout_centerHorizontal="true"
android:alpha=".75"
android:src="@drawable/ic_err" />
<TextView
android:id="@+id/ohhSnap_txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginTop="10dp"
android:fontFamily="@font/google_sans"
android:text="@string/ohh_snap_text"
android:textSize="16sp" />
<Button
android:id="@+id/ohhSnap_retry"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="32dp"
android:layout_below="@+id/ohhSnap_txt"
android:layout_centerHorizontal="true"
android:layout_marginTop="15dp"
android:background="@drawable/button_positive"
android:fontFamily="@font/google_sans"
android:maxLines="1"
android:padding="5dp"
android:text="@string/ohh_snap_retry"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="12sp" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/unicorn"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone">
<TextView
android:id="@+id/no_app_available"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginTop="10dp"
android:fontFamily="@font/google_sans_bold"
android:text="@string/list_empty_search"
android:textSize="18sp" />
<Button
android:id="@+id/recheck_query"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="32dp"
android:layout_below="@+id/no_app_available"
android:layout_centerHorizontal="true"
android:layout_marginTop="15dp"
android:background="@drawable/button_positive"
android:fontFamily="@font/google_sans"
android:maxLines="1"
android:padding="5dp"
android:text="@string/list_update_recheck"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="12sp" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:indeterminate="true"
android:visibility="gone" />
<TextView
android:id="@android:id/empty"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/progress"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginTop="25dp"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
android:layout_height="match_parent">
</RelativeLayout>
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:scaleX=".8"
android:scaleY=".8" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="10dp"
android:background="?android:attr/colorBackground"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/search_apps_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:nestedScrollingEnabled="false"
android:paddingStart="5dp"
android:paddingTop="5dp"
android:paddingEnd="5dp"
android:paddingBottom="76dp"
android:scrollbarStyle="outsideOverlay"
android:scrollbars="vertical" />
</RelativeLayout>
</LinearLayout>
</android.support.design.widget.CoordinatorLayout>

View File

@@ -9,7 +9,10 @@
android:id="@+id/view_background"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:layout_marginBottom="5dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="5dp"
android:background="@drawable/outline_bg"
android:backgroundTint="@color/colorRed"
android:padding="2dp">
@@ -36,17 +39,19 @@
</RelativeLayout>
<com.github.florent37.shapeofview.shapes.RoundRectView
<android.support.v7.widget.CardView
android:id="@+id/view_foreground"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:background="?android:attr/panelBackground"
android:elevation="1.5dp"
app:roundRect_bottomLeftRadius="10dp"
app:roundRect_bottomRightRadius="10dp"
app:roundRect_topLeftRadius="10dp"
app:roundRect_topRightRadius="10dp">
android:layout_marginBottom="2dp"
android:layout_marginEnd="4dp"
android:layout_marginStart="4dp"
app:cardBackgroundColor="?android:attr/panelBackground"
app:cardCornerRadius="10dp"
app:cardElevation="1dp"
app:cardPreventCornerOverlap="false"
app:cardUseCompatPadding="true">
<RelativeLayout
android:layout_width="match_parent"
@@ -90,6 +95,7 @@
android:textColor="?android:attr/textColorSecondary"
android:textSize="12sp" />
</RelativeLayout>
</com.github.florent37.shapeofview.shapes.RoundRectView>
</android.support.v7.widget.CardView>
</FrameLayout>

View File

@@ -1,15 +1,16 @@
<com.github.florent37.shapeofview.shapes.RoundRectView xmlns:android="http://schemas.android.com/apk/res/android"
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/list_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:background="?android:attr/panelBackground"
android:elevation="1.5dp"
app:roundRect_bottomLeftRadius="10dp"
app:roundRect_bottomRightRadius="10dp"
app:roundRect_topLeftRadius="10dp"
app:roundRect_topRightRadius="10dp">
android:layout_marginEnd="6dp"
android:layout_marginStart="6dp"
android:layout_marginTop="2dp"
app:cardBackgroundColor="?android:attr/panelBackground"
app:cardCornerRadius="10dp"
app:cardElevation="1dp"
app:cardPreventCornerOverlap="false"
app:cardUseCompatPadding="true">
<LinearLayout
android:layout_width="fill_parent"
@@ -121,4 +122,5 @@
android:src="@drawable/ic_3dots" />
</LinearLayout>
</com.github.florent37.shapeofview.shapes.RoundRectView>
</android.support.v7.widget.CardView>

View File

@@ -3,154 +3,231 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="24dp"
android:orientation="vertical">
<com.dragons.aurora.view.AdaptiveToolbar
android:id="@+id/d_adtb"
<FrameLayout
android:id="@+id/top_artwork"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:ToolbarStyle="Details" />
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="@drawable/outline_bg"
android:padding="5dp">
<com.github.florent37.shapeofview.shapes.DiagonalView
android:layout_width="match_parent"
android:layout_height="200dp"
android:alpha=".8"
app:shape_diagonal_angle="5"
app:shape_diagonal_direction="left"
app:shape_diagonal_position="bottom">
<View
android:id="@+id/diagonalView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray" />
</com.github.florent37.shapeofview.shapes.DiagonalView>
<com.github.florent37.shapeofview.shapes.DiagonalView
android:layout_width="match_parent"
android:layout_height="200dp"
android:alpha=".8"
app:shape_diagonal_angle="10"
app:shape_diagonal_direction="right"
app:shape_diagonal_position="bottom">
<View
android:id="@+id/diagonalView2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/darkGray" />
</com.github.florent37.shapeofview.shapes.DiagonalView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dip">
android:layout_gravity="center"
android:gravity="center"
android:orientation="horizontal">
<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/manual_download_warning" />
<TextView
android:id="@+id/compatibility"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="15dp"
android:text="@string/manual_download_incompatible" />
</LinearLayout>
</ScrollView>
<EditText
android:id="@+id/version_code"
android:layout_width="match_parent"
<TextView
android:id="@+id/aurora"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="@string/manual_download_hint_version_code"
android:inputType="number" />
android:layout_gravity="center"
android:fontFamily="@font/google_sans_bold"
android:text="@string/app_name"
android:textAlignment="center"
android:textColor="@color/white"
android:textSize="22sp" />
<LinearLayout
android:layout_width="match_parent"
<TextView
android:id="@+id/store"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="end"
android:orientation="horizontal">
<Button
android:id="@+id/download"
style="@style/Widget.AppCompat.Button.Borderless.Colored"
android:layout_width="wrap_content"
android:layout_height="32dp"
android:background="@drawable/button_positive"
android:fontFamily="@font/google_sans"
android:maxLines="1"
android:padding="5dp"
android:text="@string/details_download"
android:textColor="@color/white"
android:textSize="12sp" />
<Button
android:id="@+id/cancel"
style="@style/Widget.AppCompat.Button.Borderless.Colored"
android:layout_width="wrap_content"
android:layout_height="32dp"
android:background="@drawable/button_positive"
android:fontFamily="@font/google_sans"
android:maxLines="1"
android:padding="5dp"
android:text="@string/details_cancel"
android:textColor="@color/white"
android:textSize="12sp" />
<Button
android:id="@+id/install"
style="@style/Widget.AppCompat.Button.Borderless.Colored"
android:layout_width="wrap_content"
android:layout_height="32dp"
android:background="@drawable/button_positive"
android:fontFamily="@font/google_sans"
android:maxLines="1"
android:padding="5dp"
android:text="@string/details_install"
android:textColor="@color/white"
android:textSize="12sp" />
<Button
android:id="@+id/showInPlayStore"
style="@style/Widget.AppCompat.Button.Borderless.Colored"
android:layout_width="wrap_content"
android:layout_height="32dp"
android:background="@drawable/button_positive"
android:fontFamily="@font/google_sans"
android:maxLines="1"
android:padding="5dp"
android:text="@string/details_install"
android:textColor="@color/white"
android:visibility="gone"
android:textSize="12sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:animateLayoutChanges="true"
android:gravity="center"
android:orientation="horizontal"
android:weightSum="6">
<ProgressBar
android:id="@+id/download_progress"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="0dp"
android:layout_height="2dp"
android:layout_weight="5.3"
android:indeterminate="false"
android:progressBackgroundTint="@color/gray"
android:visibility="gone" />
<TextView
android:id="@+id/progressCents"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".7"
android:fontFamily="@font/google_sans"
android:gravity="end"
android:paddingEnd="3dp"
android:paddingStart="3dp"
android:textSize="12sp"
android:visibility="gone" />
</LinearLayout>
android:alpha=".75"
android:fontFamily="@font/google_sans"
android:text="Store"
android:textColor="@color/white"
android:textSize="22sp" />
</LinearLayout>
</RelativeLayout>
</FrameLayout>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<android.support.v7.widget.CardView
android:id="@+id/widget_card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
app:cardBackgroundColor="?android:attr/panelBackground"
app:cardCornerRadius="10dp"
app:cardElevation="1dp"
app:cardPreventCornerOverlap="false"
app:cardUseCompatPadding="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp">
<include
android:id="@+id/app_info"
layout="@layout/app_info_inc" />
<EditText
android:id="@+id/version_code"
android:layout_width="match_parent"
android:layout_height="36dp"
android:layout_below="@+id/app_info"
android:layout_marginBottom="10dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:layout_marginTop="10dp"
android:background="@drawable/outline_bg"
android:hint="@string/manual_download_hint_version_code"
android:inputType="number"
android:paddingEnd="10dp"
android:paddingStart="10dp"
android:textAlignment="viewStart" />
<include
android:id="@+id/app_action_button"
layout="@layout/app_actions_inc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/version_code" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/app_action_button"
android:layout_margin="5dp"
android:animateLayoutChanges="true"
android:gravity="center"
android:orientation="horizontal"
android:weightSum="6">
<ProgressBar
android:id="@+id/download_progress"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="0dp"
android:layout_height="2dp"
android:layout_weight="5.3"
android:indeterminate="true"
android:progressBackgroundTint="@color/gray"
android:visibility="gone" />
<TextView
android:id="@+id/progressCents"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".7"
android:fontFamily="@font/google_sans"
android:gravity="end"
android:paddingEnd="3dp"
android:paddingStart="3dp"
android:textSize="12sp"
android:visibility="gone" />
</LinearLayout>
</RelativeLayout>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:id="@+id/text_card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
app:cardBackgroundColor="?android:attr/panelBackground"
app:cardCornerRadius="10dp"
app:cardElevation="1dp"
app:cardPreventCornerOverlap="false"
app:cardUseCompatPadding="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp">
<ImageView
android:id="@+id/show_LessMore"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_margin="5dp"
app:srcCompat="@drawable/ic_expand_more_24" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="2dp"
android:ellipsize="end"
android:fontFamily="@font/google_sans_bold"
android:text="@string/manual_download_disclaimer"
android:textAlignment="viewStart"
android:textColor="?android:attr/textColorPrimary"
android:textSize="18sp" />
<ScrollView
android:id="@+id/disclaimer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/show_LessMore"
android:layout_marginTop="5dp"
android:visibility="gone">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/manual_download_warning" />
<TextView
android:id="@+id/compatibility"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="15dp"
android:text="@string/manual_download_incompatible" />
</LinearLayout>
</ScrollView>
</RelativeLayout>
</android.support.v7.widget.CardView>
</LinearLayout>
</ScrollView>
</LinearLayout>

View File

@@ -1,33 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:background="@drawable/button_bg"
android:clipToPadding="true"
android:elevation="2dp"
android:gravity="center"
android:paddingEnd="4dp"
android:paddingStart="4dp">
android:paddingEnd="10dp"
android:paddingStart="10dp">
<com.github.florent37.shapeofview.shapes.CircleView
android:id="@+id/menu_item_icon_c"
<ImageView
android:id="@+id/menu_item_icon"
android:layout_width="wrap_content"
android:layout_height="25dp"
android:layout_marginBottom="2.5dp"
android:layout_marginStart="2dp"
android:layout_marginTop="2.5dp"
android:background="#55000000">
<ImageView
android:id="@+id/menu_item_icon"
android:layout_width="wrap_content"
android:layout_height="@dimen/appbar_icon_height_secondary"
android:layout_gravity="center_horizontal|center_vertical"
android:scaleX=".6"
android:scaleY=".6"
android:tint="#FFF" />
</com.github.florent37.shapeofview.shapes.CircleView>
android:layout_height="@dimen/appbar_icon_height_secondary"
android:layout_gravity="center_horizontal|center_vertical"
android:alpha=".8"
android:scaleX=".8"
android:scaleY=".8"
android:tint="?android:attr/colorForeground"
android:src="@drawable/ic_categories" />
<TextView
android:id="@+id/menu_item_label"
@@ -35,10 +25,11 @@
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginEnd="8dp"
android:layout_marginStart="2dp"
android:layout_toEndOf="@+id/menu_item_icon_c"
android:layout_marginStart="8dp"
android:layout_toEndOf="@+id/menu_item_icon"
android:fontFamily="@font/google_sans_bold"
android:textAlignment="viewStart"
android:text="@string/action_filter_rating"
android:textColor="?android:attr/textColorPrimary"
android:textSize="@dimen/appbar_secondary_menu_text_size" />
</RelativeLayout>

View File

@@ -10,7 +10,7 @@
android:layout_height="@dimen/appbar_icon_height"
android:layout_gravity="center_horizontal"
android:alpha=".75"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:background="?android:selectableItemBackgroundBorderless"
android:cropToPadding="true"
android:padding="@dimen/appbar_icon_padding"
android:tint="?android:attr/colorForeground" />

View File

@@ -1,20 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<com.github.florent37.shapeofview.shapes.RoundRectView xmlns:android="http://schemas.android.com/apk/res/android"
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="115dp"
android:layout_height="135dp"
android:layout_margin="4dp"
android:background="?android:attr/panelBackground"
android:elevation="2dp"
app:roundRect_bottomLeftRadius="10dp"
app:roundRect_bottomRightRadius="10dp"
app:roundRect_topLeftRadius="10dp"
app:roundRect_topRightRadius="10dp">
android:layout_margin="2dp"
app:cardBackgroundColor="?android:attr/panelBackground"
app:cardCornerRadius="10dp"
app:cardElevation="1dp"
app:cardPreventCornerOverlap="false"
app:cardUseCompatPadding="true">
<RelativeLayout
android:id="@+id/app_container"
android:layout_width="115dp"
android:layout_height="135dp">
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/app_icon"
@@ -90,4 +89,4 @@
</RelativeLayout>
</com.github.florent37.shapeofview.shapes.RoundRectView>
</android.support.v7.widget.CardView>

View File

@@ -4,10 +4,10 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dp"
app:roundRect_bottomLeftRadius="8dp"
app:roundRect_bottomRightRadius="8dp"
app:roundRect_topLeftRadius="8dp"
app:roundRect_topRightRadius="8dp">
app:shape_roundRect_bottomLeftRadius="8dp"
app:shape_roundRect_bottomRightRadius="8dp"
app:shape_roundRect_topLeftRadius="8dp"
app:shape_roundRect_topRightRadius="8dp">
<ImageView
android:id="@+id/scrn_itm_s"

View File

@@ -8,7 +8,10 @@
android:id="@+id/view_background"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:layout_marginBottom="4dp"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:layout_marginTop="6dp"
android:background="@drawable/outline_bg_black"
android:padding="2dp">
@@ -36,17 +39,18 @@
</RelativeLayout>
<com.github.florent37.shapeofview.shapes.RoundRectView
<android.support.v7.widget.CardView
android:id="@+id/view_foreground"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:background="?android:attr/panelBackground"
android:elevation="1.5dp"
app:roundRect_bottomLeftRadius="10dp"
app:roundRect_bottomRightRadius="10dp"
app:roundRect_topLeftRadius="10dp"
app:roundRect_topRightRadius="10dp">
android:layout_marginEnd="6dp"
android:layout_marginStart="6dp"
android:layout_marginTop="2dp"
app:cardBackgroundColor="?android:attr/panelBackground"
app:cardCornerRadius="10dp"
app:cardElevation="1dp"
app:cardPreventCornerOverlap="false"
app:cardUseCompatPadding="true">
<LinearLayout
android:layout_width="match_parent"
@@ -309,6 +313,7 @@
</LinearLayout>
</LinearLayout>
</com.github.florent37.shapeofview.shapes.RoundRectView>
</android.support.v7.widget.CardView>
</FrameLayout>

View File

@@ -44,7 +44,7 @@
<item>4.7</item>
</string-array>
<string-array name="filterRatingLabels" translatable="false">
<item> All </item>
<item>@string/action_filter_all</item>
<item> 1 + </item>
<item> 2 + </item>
<item> 3 + </item>
@@ -65,7 +65,7 @@
<item>100000000</item>
</string-array>
<string-array name="filterDownloadsLabels" translatable="false">
<item> All </item>
<item>@string/action_filter_all</item>
<item> > 100 </item>
<item> > 1 K </item>
<item> > 10 K </item>

View File

@@ -19,6 +19,7 @@
<string name="action_acc_txt">Aurora Accounts</string>
<string name="action_categories">Categories</string>
<string name="action_filter">Filters</string>
<string name="action_filter_all">All</string>
<string name="action_filter_apps_with_ads">Apps with ads</string>
<string name="action_filter_category">Category</string>
<string name="action_filter_downloads">Downloads</string>
@@ -227,9 +228,10 @@
<string name="list_update_recheck">Recheck</string>
<string name="list_updating">Updating…</string>
<string name="manual_download_compatible">Version code field has been pre-filled with this app\'s latest compatible version code. If you want the previous version, simply input a number smaller than the current. If the developer has not deleted the apk of the previous version from Play Store, you might be able to start the download.</string>
<string name="manual_download_disclaimer">Disclaimer</string>
<string name="manual_download_hint_version_code">version code here</string>
<string name="manual_download_incompatible">Google Play Store considers this app incompatible with your device. This means version code has not been returned by the Google Play Store server.</string>
<string name="manual_download_warning">This page lets you manually choose the version of the app to download. Version code is a number identifying the version of an app. It starts from 1 and is incremented by the app developer every time there is a new version. Normally Play Store lets you download only the latest apk compatible with your device. By manually supplying this number you might be able to get other versions as well.\n\nKeep in mind that downloading arbitrary versions of apps is not supported by Google Play Store. Your success depends on a lucky guess of the version code. Even if you guess right and you get the download to start, you might get an incompatible apk. Most likely, you are wasting your time!</string>
<string name="manual_download_warning">This page lets you manually choose the version of the app to download.\n\nKeep in mind that downloading arbitrary versions of apps is not supported by Google Play Store. Your success depends on a lucky guess of the version code. Even if you guess right and you get the download to start, you might get an incompatible apk.</string>
<string name="notification_download_complete">Download complete. Touch to install.</string>
<string name="notification_download_complete_new_permissions">Download complete. New permissions requested.</string>
<string name="notification_download_complete_new_permissions_toast">"%1$s downloaded. New version of the app requests more permissions. Check the new permissions list."</string>
@@ -244,6 +246,8 @@
<string name="notification_updates_available_message">"Updates are available for %1$d of your apps."</string>
<string name="notification_updates_available_title">App updates available.</string>
<string name="no_permissions">No permissions are used.</string>
<string name="ohh_snap_text">Something went wrong</string>
<string name="ohh_snap_retry">Retry</string>
<string name="pref_app_language">Select Language</string>
<string name="pref_app_language_cat">Aurora Language</string>
<string name="pref_auto_install">Install apps immediately</string>