Move some files and add donate section
This commit is contained in:
parent
d3247b9cfd
commit
d90cb040b1
@ -79,7 +79,7 @@ public class AppDetails2 extends AppCompatActivity {
|
|||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_app_details2);
|
setContentView(R.layout.app_details2);
|
||||||
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||||
toolbar.setTitle(""); // Nice and clean toolbar
|
toolbar.setTitle(""); // Nice and clean toolbar
|
||||||
setSupportActionBar(toolbar);
|
setSupportActionBar(toolbar);
|
||||||
@ -127,9 +127,10 @@ public class AppDetails2 extends AppCompatActivity {
|
|||||||
private final int VIEWTYPE_HEADER = 0;
|
private final int VIEWTYPE_HEADER = 0;
|
||||||
private final int VIEWTYPE_SCREENSHOTS = 1;
|
private final int VIEWTYPE_SCREENSHOTS = 1;
|
||||||
private final int VIEWTYPE_WHATS_NEW = 2;
|
private final int VIEWTYPE_WHATS_NEW = 2;
|
||||||
private final int VIEWTYPE_LINKS = 3;
|
private final int VIEWTYPE_DONATE = 3;
|
||||||
private final int VIEWTYPE_PERMISSIONS = 4;
|
private final int VIEWTYPE_LINKS = 4;
|
||||||
private final int VIEWTYPE_VERSIONS = 5;
|
private final int VIEWTYPE_PERMISSIONS = 5;
|
||||||
|
private final int VIEWTYPE_VERSIONS = 6;
|
||||||
|
|
||||||
private final Context mContext;
|
private final Context mContext;
|
||||||
private ArrayList<Integer> mItems;
|
private ArrayList<Integer> mItems;
|
||||||
@ -146,13 +147,26 @@ public class AppDetails2 extends AppCompatActivity {
|
|||||||
mItems = new ArrayList<>();
|
mItems = new ArrayList<>();
|
||||||
else
|
else
|
||||||
mItems.clear();
|
mItems.clear();
|
||||||
mItems.add(VIEWTYPE_HEADER);
|
addItem(VIEWTYPE_HEADER);
|
||||||
mItems.add(VIEWTYPE_SCREENSHOTS);
|
addItem(VIEWTYPE_SCREENSHOTS);
|
||||||
mItems.add(VIEWTYPE_WHATS_NEW);
|
addItem(VIEWTYPE_WHATS_NEW);
|
||||||
mItems.add(VIEWTYPE_LINKS);
|
addItem(VIEWTYPE_DONATE);
|
||||||
if (shouldShowPermissions())
|
addItem(VIEWTYPE_LINKS);
|
||||||
mItems.add(VIEWTYPE_PERMISSIONS);
|
addItem(VIEWTYPE_PERMISSIONS);
|
||||||
mItems.add(VIEWTYPE_VERSIONS);
|
addItem(VIEWTYPE_VERSIONS);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addItem(int item) {
|
||||||
|
// Gives us a chance to hide sections that are not used, e.g. the donate section when
|
||||||
|
// we have no donation links.
|
||||||
|
if (item == VIEWTYPE_DONATE) {
|
||||||
|
if (!shouldShowDonate())
|
||||||
|
return;
|
||||||
|
} else if (item == VIEWTYPE_PERMISSIONS) {
|
||||||
|
if (!shouldShowPermissions())
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
mItems.add(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean shouldShowPermissions() {
|
private boolean shouldShowPermissions() {
|
||||||
@ -172,6 +186,13 @@ public class AppDetails2 extends AppCompatActivity {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean shouldShowDonate() {
|
||||||
|
return uriIsSetAndCanBeOpened(mApp.donateURL) ||
|
||||||
|
uriIsSetAndCanBeOpened(mApp.bitcoinAddr) ||
|
||||||
|
uriIsSetAndCanBeOpened(mApp.litecoinAddr) ||
|
||||||
|
uriIsSetAndCanBeOpened(mApp.flattrID);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||||
if (viewType == VIEWTYPE_HEADER) {
|
if (viewType == VIEWTYPE_HEADER) {
|
||||||
@ -186,6 +207,10 @@ public class AppDetails2 extends AppCompatActivity {
|
|||||||
View view = LayoutInflater.from(parent.getContext())
|
View view = LayoutInflater.from(parent.getContext())
|
||||||
.inflate(R.layout.app_details2_whatsnew, parent, false);
|
.inflate(R.layout.app_details2_whatsnew, parent, false);
|
||||||
return new WhatsNewViewHolder(view);
|
return new WhatsNewViewHolder(view);
|
||||||
|
} else if (viewType == VIEWTYPE_DONATE) {
|
||||||
|
View view = LayoutInflater.from(parent.getContext())
|
||||||
|
.inflate(R.layout.app_details2_donate, parent, false);
|
||||||
|
return new DonateViewHolder(view);
|
||||||
} else if (viewType == VIEWTYPE_LINKS) {
|
} else if (viewType == VIEWTYPE_LINKS) {
|
||||||
View view = LayoutInflater.from(parent.getContext())
|
View view = LayoutInflater.from(parent.getContext())
|
||||||
.inflate(R.layout.app_details2_links, parent, false);
|
.inflate(R.layout.app_details2_links, parent, false);
|
||||||
@ -307,6 +332,28 @@ public class AppDetails2 extends AppCompatActivity {
|
|||||||
} else if (viewType == VIEWTYPE_WHATS_NEW) {
|
} else if (viewType == VIEWTYPE_WHATS_NEW) {
|
||||||
WhatsNewViewHolder vh = (WhatsNewViewHolder) holder;
|
WhatsNewViewHolder vh = (WhatsNewViewHolder) holder;
|
||||||
vh.textView.setText("WHATS NEW GOES HERE");
|
vh.textView.setText("WHATS NEW GOES HERE");
|
||||||
|
} else if (viewType == VIEWTYPE_DONATE) {
|
||||||
|
DonateViewHolder vh = (DonateViewHolder) holder;
|
||||||
|
|
||||||
|
// Donate button
|
||||||
|
if (uriIsSetAndCanBeOpened(mApp.donateURL)) {
|
||||||
|
addLinkItemView(vh.contentView, R.string.menu_donate, R.drawable.ic_donate, mApp.donateURL);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bitcoin
|
||||||
|
if (uriIsSetAndCanBeOpened(mApp.bitcoinAddr)) {
|
||||||
|
addLinkItemView(vh.contentView, R.string.menu_bitcoin, R.drawable.ic_bitcoin, "bitcoin:" + mApp.bitcoinAddr);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Litecoin
|
||||||
|
if (uriIsSetAndCanBeOpened(mApp.litecoinAddr)) {
|
||||||
|
addLinkItemView(vh.contentView, R.string.menu_litecoin, R.drawable.ic_litecoin, "litecoin:" + mApp.litecoinAddr);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Flattr
|
||||||
|
if (uriIsSetAndCanBeOpened(mApp.flattrID)) {
|
||||||
|
addLinkItemView(vh.contentView, R.string.menu_flattr, R.drawable.ic_flattr, "https://flattr.com/thing/" + mApp.flattrID);
|
||||||
|
}
|
||||||
} else if (viewType == VIEWTYPE_LINKS) {
|
} else if (viewType == VIEWTYPE_LINKS) {
|
||||||
final ExpandableLinearLayoutViewHolder vh = (ExpandableLinearLayoutViewHolder) holder;
|
final ExpandableLinearLayoutViewHolder vh = (ExpandableLinearLayoutViewHolder) holder;
|
||||||
vh.itemView.setOnClickListener(new View.OnClickListener() {
|
vh.itemView.setOnClickListener(new View.OnClickListener() {
|
||||||
@ -322,51 +369,31 @@ public class AppDetails2 extends AppCompatActivity {
|
|||||||
vh.contentView.removeAllViews();
|
vh.contentView.removeAllViews();
|
||||||
|
|
||||||
// Source button
|
// Source button
|
||||||
if (!TextUtils.isEmpty(mApp.sourceURL)) {
|
if (uriIsSetAndCanBeOpened(mApp.sourceURL)) {
|
||||||
addLinkItemView(vh.contentView, R.string.menu_source, R.drawable.ic_source_code, mApp.sourceURL);
|
addLinkItemView(vh.contentView, R.string.menu_source, R.drawable.ic_source_code, mApp.sourceURL);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Issues button
|
// Issues button
|
||||||
if (!TextUtils.isEmpty(mApp.trackerURL)) {
|
if (uriIsSetAndCanBeOpened(mApp.trackerURL)) {
|
||||||
addLinkItemView(vh.contentView, R.string.menu_issues, R.drawable.ic_issues, mApp.trackerURL);
|
addLinkItemView(vh.contentView, R.string.menu_issues, R.drawable.ic_issues, mApp.trackerURL);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Changelog button
|
// Changelog button
|
||||||
if (!TextUtils.isEmpty(mApp.changelogURL)) {
|
if (uriIsSetAndCanBeOpened(mApp.changelogURL)) {
|
||||||
addLinkItemView(vh.contentView, R.string.menu_changelog, R.drawable.ic_changelog, mApp.changelogURL);
|
addLinkItemView(vh.contentView, R.string.menu_changelog, R.drawable.ic_changelog, mApp.changelogURL);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Website button
|
// Website button
|
||||||
if (!TextUtils.isEmpty(mApp.webURL)) {
|
if (uriIsSetAndCanBeOpened(mApp.webURL)) {
|
||||||
addLinkItemView(vh.contentView, R.string.menu_website, R.drawable.ic_website, mApp.webURL);
|
addLinkItemView(vh.contentView, R.string.menu_website, R.drawable.ic_website, mApp.webURL);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Email button
|
// Email button
|
||||||
if (!TextUtils.isEmpty(mApp.email)) {
|
if (uriIsSetAndCanBeOpened(mApp.email)) {
|
||||||
final String subject = Uri.encode(getString(R.string.app_details_subject, mApp.name));
|
final String subject = Uri.encode(getString(R.string.app_details_subject, mApp.name));
|
||||||
String url = "mailto:" + mApp.email + "?subject=" + subject;
|
String url = "mailto:" + mApp.email + "?subject=" + subject;
|
||||||
addLinkItemView(vh.contentView, R.string.menu_email, R.drawable.ic_email, url);
|
addLinkItemView(vh.contentView, R.string.menu_email, R.drawable.ic_email, url);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Donate button
|
|
||||||
if (!TextUtils.isEmpty(mApp.donateURL)) {
|
|
||||||
addLinkItemView(vh.contentView, R.string.menu_donate, R.drawable.ic_donate, mApp.donateURL);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Bitcoin
|
|
||||||
if (!TextUtils.isEmpty(mApp.bitcoinAddr)) {
|
|
||||||
addLinkItemView(vh.contentView, R.string.menu_bitcoin, R.drawable.ic_bitcoin, "bitcoin:" + mApp.bitcoinAddr);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Litecoin
|
|
||||||
if (!TextUtils.isEmpty(mApp.litecoinAddr)) {
|
|
||||||
addLinkItemView(vh.contentView, R.string.menu_litecoin, R.drawable.ic_litecoin, "litecoin:" + mApp.litecoinAddr);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Flattr
|
|
||||||
if (!TextUtils.isEmpty(mApp.flattrID)) {
|
|
||||||
addLinkItemView(vh.contentView, R.string.menu_flattr, R.drawable.ic_flattr, "https://flattr.com/thing/" + mApp.flattrID);
|
|
||||||
}
|
|
||||||
} else if (viewType == VIEWTYPE_PERMISSIONS) {
|
} else if (viewType == VIEWTYPE_PERMISSIONS) {
|
||||||
final ExpandableLinearLayoutViewHolder vh = (ExpandableLinearLayoutViewHolder) holder;
|
final ExpandableLinearLayoutViewHolder vh = (ExpandableLinearLayoutViewHolder) holder;
|
||||||
vh.itemView.setOnClickListener(new View.OnClickListener() {
|
vh.itemView.setOnClickListener(new View.OnClickListener() {
|
||||||
@ -491,6 +518,17 @@ public class AppDetails2 extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class DonateViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
final TextView textView;
|
||||||
|
final LinearLayout contentView;
|
||||||
|
|
||||||
|
DonateViewHolder(View view) {
|
||||||
|
super(view);
|
||||||
|
textView = (TextView) view.findViewById(R.id.text);
|
||||||
|
contentView = (LinearLayout) view.findViewById(R.id.ll_information);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ExpandableLinearLayoutViewHolder extends RecyclerView.ViewHolder {
|
public class ExpandableLinearLayoutViewHolder extends RecyclerView.ViewHolder {
|
||||||
final TextView headerView;
|
final TextView headerView;
|
||||||
final LinearLayout contentView;
|
final LinearLayout contentView;
|
||||||
@ -527,6 +565,8 @@ public class AppDetails2 extends AppCompatActivity {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void onLinkClicked(String url) {
|
private void onLinkClicked(String url) {
|
||||||
if (!TextUtils.isEmpty(url)) {
|
if (!TextUtils.isEmpty(url)) {
|
||||||
tryOpenUri(url);
|
tryOpenUri(url);
|
||||||
@ -569,6 +609,13 @@ public class AppDetails2 extends AppCompatActivity {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean uriIsSetAndCanBeOpened(String s) {
|
||||||
|
if (TextUtils.isEmpty(s))
|
||||||
|
return false;
|
||||||
|
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(s));
|
||||||
|
return (intent.resolveActivity(getPackageManager()) != null);
|
||||||
|
}
|
||||||
|
|
||||||
private void tryOpenUri(String s) {
|
private void tryOpenUri(String s) {
|
||||||
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(s));
|
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(s));
|
||||||
if (intent.resolveActivity(getPackageManager()) == null) {
|
if (intent.resolveActivity(getPackageManager()) == null) {
|
||||||
|
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shape="rectangle">
|
||||||
|
<corners android:radius="3dp" />
|
||||||
|
<solid android:color="@color/details_panel_light" />
|
||||||
|
</shape>
|
@ -6,7 +6,7 @@
|
|||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:fitsSystemWindows="true"
|
android:fitsSystemWindows="true"
|
||||||
tools:context="org.fdroid.fdroid.AppDetails2"
|
tools:context="org.fdroid.fdroid.AppDetails2"
|
||||||
android:background="#efefef"
|
android:background="#fcfcfc"
|
||||||
>
|
>
|
||||||
|
|
||||||
<android.support.design.widget.AppBarLayout
|
<android.support.design.widget.AppBarLayout
|
||||||
@ -43,6 +43,19 @@
|
|||||||
</android.support.design.widget.CollapsingToolbarLayout>
|
</android.support.design.widget.CollapsingToolbarLayout>
|
||||||
</android.support.design.widget.AppBarLayout>
|
</android.support.design.widget.AppBarLayout>
|
||||||
|
|
||||||
<include layout="@layout/content_app_details2" />
|
<android.support.v7.widget.RecyclerView
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/rvDetails"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
app:layout_behavior="@string/appbar_scrolling_view_behavior"
|
||||||
|
app:behavior_overlapTop="40dp"
|
||||||
|
app:layoutManager="LinearLayoutManager"
|
||||||
|
tools:context="org.fdroid.fdroid.AppDetails2"
|
||||||
|
tools:showIn="@layout/app_details2"
|
||||||
|
>
|
||||||
|
</android.support.v7.widget.RecyclerView>
|
||||||
|
|
||||||
</android.support.design.widget.CoordinatorLayout>
|
</android.support.design.widget.CoordinatorLayout>
|
19
app/src/main/res/layout/app_details2_donate.xml
Normal file
19
app/src/main/res/layout/app_details2_donate.xml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/ll_information"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="@dimen/details_activity_padding"
|
||||||
|
android:clickable="true"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:background="@drawable/details_panel_light_background"
|
||||||
|
android:padding="@dimen/details_activity_padding"
|
||||||
|
tools:ignore="UnusedAttribute">
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/information"
|
||||||
|
style="@style/AppDetailsSubheaderText"
|
||||||
|
android:text="@string/menu_donate"
|
||||||
|
/>
|
||||||
|
</LinearLayout>
|
@ -1,15 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<android.support.v7.widget.RecyclerView
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
|
||||||
android:id="@+id/rvDetails"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
app:layout_behavior="@string/appbar_scrolling_view_behavior"
|
|
||||||
app:behavior_overlapTop="40dp"
|
|
||||||
app:layoutManager="LinearLayoutManager"
|
|
||||||
tools:context="org.fdroid.fdroid.AppDetails2"
|
|
||||||
tools:showIn="@layout/activity_app_details2"
|
|
||||||
>
|
|
||||||
</android.support.v7.widget.RecyclerView>
|
|
@ -24,5 +24,5 @@
|
|||||||
<color name="shadow">#cc222222</color>
|
<color name="shadow">#cc222222</color>
|
||||||
|
|
||||||
<color name="perms_costs_money">#fff4511e</color>
|
<color name="perms_costs_money">#fff4511e</color>
|
||||||
|
<color name="details_panel_light">#eff4f9</color>
|
||||||
</resources>
|
</resources>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user