diff --git a/app/src/main/java/org/mian/gitnex/activities/SponsorsActivity.java b/app/src/main/java/org/mian/gitnex/activities/SponsorsActivity.java index 8db47f6c..4acf0279 100644 --- a/app/src/main/java/org/mian/gitnex/activities/SponsorsActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/SponsorsActivity.java @@ -1,12 +1,18 @@ package org.mian.gitnex.activities; import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import android.content.res.Resources; import android.os.Bundle; -import android.text.method.LinkMovementMethod; import android.view.View; import android.widget.ImageView; -import android.widget.TextView; import org.mian.gitnex.R; +import org.mian.gitnex.adapters.SponsorsAdapter; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * Author M M Arif @@ -22,12 +28,27 @@ public class SponsorsActivity extends AppCompatActivity { setContentView(R.layout.activity_sponsors); ImageView closeActivity = findViewById(R.id.close); - TextView liberaPaySponsorsThomas = findViewById(R.id.liberaPaySponsorsThomas); - - liberaPaySponsorsThomas.setMovementMethod(LinkMovementMethod.getInstance()); initCloseListener(); closeActivity.setOnClickListener(onClickListener); + + Resources res = getResources(); + CharSequence[] sponsorsInfo = res.getTextArray(R.array.sponsorsInfo); + + List sponsorsList = new ArrayList<>(Arrays.asList(sponsorsInfo)); + + RecyclerView mRecyclerView = findViewById(R.id.recyclerView); + + mRecyclerView.setHasFixedSize(true); + mRecyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext())); + + DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(mRecyclerView.getContext(), + DividerItemDecoration.VERTICAL); + mRecyclerView.addItemDecoration(dividerItemDecoration); + + SponsorsAdapter adapter = new SponsorsAdapter(sponsorsList); + mRecyclerView.setAdapter(adapter); + } private void initCloseListener() { diff --git a/app/src/main/java/org/mian/gitnex/adapters/SponsorsAdapter.java b/app/src/main/java/org/mian/gitnex/adapters/SponsorsAdapter.java new file mode 100644 index 00000000..fb24b5e0 --- /dev/null +++ b/app/src/main/java/org/mian/gitnex/adapters/SponsorsAdapter.java @@ -0,0 +1,59 @@ +package org.mian.gitnex.adapters; + +import android.text.SpannableStringBuilder; +import android.text.method.LinkMovementMethod; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; +import org.mian.gitnex.R; +import java.util.List; + +/** + * Author M M Arif + */ + +public class SponsorsAdapter extends RecyclerView.Adapter { + + private List sponsorsList; + + static class SponsorsViewHolder extends RecyclerView.ViewHolder { + + private TextView sponsorText; + + private SponsorsViewHolder(View itemView) { + super(itemView); + + sponsorText = itemView.findViewById(R.id.sponsorText); + + } + } + + public SponsorsAdapter(List myListMain) { + this.sponsorsList = myListMain; + } + + @NonNull + @Override + public SponsorsAdapter.SponsorsViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.sponsors, parent, false); + return new SponsorsAdapter.SponsorsViewHolder(v); + } + + @Override + public void onBindViewHolder(@NonNull SponsorsAdapter.SponsorsViewHolder holder, int position) { + + SpannableStringBuilder strBuilder = new SpannableStringBuilder(sponsorsList.get(position)); + holder.sponsorText.setText((strBuilder)); + holder.sponsorText.setMovementMethod(LinkMovementMethod.getInstance()); + + } + + @Override + public int getItemCount() { + return sponsorsList.size(); + } + +} diff --git a/app/src/main/res/layout/activity_sponsors.xml b/app/src/main/res/layout/activity_sponsors.xml index 3673b1ab..52d2b949 100644 --- a/app/src/main/res/layout/activity_sponsors.xml +++ b/app/src/main/res/layout/activity_sponsors.xml @@ -1,4 +1,6 @@ - + - - + + + android:layout_height="match_parent" + android:background="@color/colorPrimary" + android:padding="4dp" + android:scrollbars="vertical" /> - - - - - - - - - - - + \ No newline at end of file diff --git a/app/src/main/res/layout/sponsors.xml b/app/src/main/res/layout/sponsors.xml new file mode 100644 index 00000000..7820d034 --- /dev/null +++ b/app/src/main/res/layout/sponsors.xml @@ -0,0 +1,21 @@ + + + + + + diff --git a/app/src/main/res/values/credits_sponsors.xml b/app/src/main/res/values/credits_sponsors.xml new file mode 100644 index 00000000..3588fce1 --- /dev/null +++ b/app/src/main/res/values/credits_sponsors.xml @@ -0,0 +1,15 @@ + + + + + Logo by Kasun @Mastodon + Credit 2 + + + + Fabian Stamm + Thomas Schneider @Fedilab + Ljoonal @ljoonal + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d7b393b9..c16fbc05 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -408,12 +408,6 @@ User already exists - - Liberapay - Fabian Stamm - Thomas Schneider @Fedilab - - Edit Issue #%1$s Issue updated.