diff --git a/app/src/main/java/app/fedilab/android/activities/MastodonRegisterActivity.java b/app/src/main/java/app/fedilab/android/activities/MastodonRegisterActivity.java index 35f7a667c..28a71ede3 100644 --- a/app/src/main/java/app/fedilab/android/activities/MastodonRegisterActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/MastodonRegisterActivity.java @@ -53,23 +53,6 @@ public class MastodonRegisterActivity extends BaseActivity implements OnRetrieve - private Map categories; - - private void createMap() { - categories = new HashMap<>(); - categories.put("general", getString(R.string.category_general)); - categories.put("regional", getString(R.string.category_regional)); - categories.put("art", getString(R.string.category_art)); - categories.put("journalism", getString(R.string.category_journalism)); - categories.put("activism", getString(R.string.category_activism)); - categories.put("lgbt", "LGBTQ+"); - categories.put("games", getString(R.string.category_games)); - categories.put("tech", getString(R.string.category_tech)); - categories.put("adult", getString(R.string.category_adult)); - categories.put("furry", getString(R.string.category_furry)); - categories.put("food", getString(R.string.category_food)); - } - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -90,7 +73,7 @@ public class MastodonRegisterActivity extends BaseActivity implements OnRetrieve default: setTheme(R.style.AppThemeDark); } - createMap(); + setContentView(R.layout.activity_register); ActionBar actionBar = getSupportActionBar(); if( actionBar != null ) { @@ -116,27 +99,44 @@ public class MastodonRegisterActivity extends BaseActivity implements OnRetrieve MaterialSpinner reg_category = findViewById(R.id.reg_category); Helper.changeMaterialSpinnerColor(MastodonRegisterActivity.this, reg_category); + String[] categoriesA = { + getString(R.string.category_general), + getString(R.string.category_regional), + getString(R.string.category_art), + getString(R.string.category_journalism), + getString(R.string.category_activism), + "LGBTQ+", + getString(R.string.category_games), + getString(R.string.category_tech), + getString(R.string.category_adult), + getString(R.string.category_furry), + getString(R.string.category_food) - String[] categoriesA = new String[categories.size()]; - String[] itemA = new String[categories.size()]; - Iterator it = categories.entrySet().iterator(); - int i = 0; - while (it.hasNext()) { - Map.Entry pair = (Map.Entry)it.next(); - itemA[i] = (String)pair.getKey(); - categoriesA[i] = (String)pair.getValue(); - i++; - it.remove(); - } + }; + String[] itemA = { + "general", + "regional", + "art", + "journalism", + "activism", + "lgbt", + "games", + "tech", + "adult", + "furry", + "food", + }; ArrayAdapter adcategories = new ArrayAdapter<>(MastodonRegisterActivity.this, android.R.layout.simple_spinner_dropdown_item, categoriesA); reg_category.setAdapter(adcategories); + reg_category.setSelectedIndex(0); //Manage privacies reg_category.setOnItemSelectedListener(new MaterialSpinner.OnItemSelectedListener() { @Override public void onItemSelected(MaterialSpinner view, int position, long id, String item) { + new RetrieveInstanceRegAsyncTask(MastodonRegisterActivity.this, itemA[position], MastodonRegisterActivity.this).executeOnExecutor(THREAD_POOL_EXECUTOR); } }); diff --git a/app/src/main/java/app/fedilab/android/client/API.java b/app/src/main/java/app/fedilab/android/client/API.java index 7fc2f6407..65ec5474e 100644 --- a/app/src/main/java/app/fedilab/android/client/API.java +++ b/app/src/main/java/app/fedilab/android/client/API.java @@ -352,6 +352,7 @@ public class API { * @return APIResponse */ public APIResponse getInstanceReg(String category) { + apiResponse = new APIResponse(); try { String response = new HttpsConnection(context, null).get(String.format("https://api.joinmastodon.org/servers?category=%s", category)); List instanceRegs = parseInstanceReg(new JSONArray(response)); diff --git a/app/src/main/java/app/fedilab/android/client/Entities/InstanceReg.java b/app/src/main/java/app/fedilab/android/client/Entities/InstanceReg.java index 0c4531d3a..36c1f05fc 100644 --- a/app/src/main/java/app/fedilab/android/client/Entities/InstanceReg.java +++ b/app/src/main/java/app/fedilab/android/client/Entities/InstanceReg.java @@ -24,6 +24,7 @@ public class InstanceReg { private String proxied_thumbnail; private int total_users; private int last_week_users; + private boolean selected = false; public String getDomain() { return domain; @@ -88,4 +89,12 @@ public class InstanceReg { public void setLast_week_users(int last_week_users) { this.last_week_users = last_week_users; } + + public boolean isSelected() { + return selected; + } + + public void setSelected(boolean selected) { + this.selected = selected; + } } diff --git a/app/src/main/java/app/fedilab/android/drawers/InstanceRegAdapter.java b/app/src/main/java/app/fedilab/android/drawers/InstanceRegAdapter.java index e07c0b3ea..22202f8f6 100644 --- a/app/src/main/java/app/fedilab/android/drawers/InstanceRegAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/InstanceRegAdapter.java @@ -15,15 +15,27 @@ package app.fedilab.android.drawers; * see . */ import android.content.Context; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.Button; +import android.widget.ImageButton; import android.widget.ImageView; +import android.widget.TextView; + import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.resource.bitmap.FitCenter; +import com.bumptech.glide.load.resource.bitmap.RoundedCorners; +import com.bumptech.glide.request.RequestOptions; + import java.util.List; import app.fedilab.android.R; import app.fedilab.android.client.Entities.InstanceReg; +import app.fedilab.android.helper.Helper; /** @@ -62,6 +74,19 @@ public class InstanceRegAdapter extends RecyclerView.Adapter { final InstanceRegAdapter.ViewHolder holder = (InstanceRegAdapter.ViewHolder) viewHolder; + holder.instance_choose.setOnClickListener(v -> { + + }); + + holder.instance_count_user.setText(context.getString(R.string.users,Helper.withSuffix(instanceReg.getTotal_users()))); + holder.instance_description.setText(instanceReg.getDescription()); + holder.instance_host.setText(instanceReg.getDomain()); + holder.instance_version.setText(String.format("%s - %s", instanceReg.getCategory(),instanceReg.getVersion())); + Log.v(Helper.TAG,"p: " + instanceReg.getProxied_thumbnail()); + Glide.with(context) + .load(instanceReg.getProxied_thumbnail()) + .apply(new RequestOptions().transforms(new FitCenter(), new RoundedCorners(10))) + .into(holder.instance_pp); } public long getItemId(int position) { @@ -75,11 +100,18 @@ public class InstanceRegAdapter extends RecyclerView.Adapter { class ViewHolder extends RecyclerView.ViewHolder{ - ImageView imageView; + ImageView instance_pp; + TextView instance_host, instance_version, instance_description, instance_count_user; + ImageButton instance_choose; public ViewHolder(View itemView) { super(itemView); - imageView = itemView.findViewById(R.id.media); + instance_pp = itemView.findViewById(R.id.instance_pp); + instance_host = itemView.findViewById(R.id.instance_host); + instance_version = itemView.findViewById(R.id.instance_version); + instance_description = itemView.findViewById(R.id.instance_description); + instance_count_user = itemView.findViewById(R.id.instance_count_user); + instance_choose = itemView.findViewById(R.id.instance_choose); } } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_register.xml b/app/src/main/res/layout/activity_register.xml index a2740c41d..836aa2138 100644 --- a/app/src/main/res/layout/activity_register.xml +++ b/app/src/main/res/layout/activity_register.xml @@ -18,8 +18,8 @@ - + android:layout_margin="@dimen/fab_margin" + > + android:text="@string/pickup_instance_category"/> + android:layout_height="300dp"/> \ No newline at end of file diff --git a/app/src/main/res/layout/drawer_instance_reg.xml b/app/src/main/res/layout/drawer_instance_reg.xml index 375251849..1b44495ef 100644 --- a/app/src/main/res/layout/drawer_instance_reg.xml +++ b/app/src/main/res/layout/drawer_instance_reg.xml @@ -19,12 +19,15 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/main_container" - android:divider="?android:dividerHorizontal" android:orientation="horizontal" + android:background="@drawable/border_bottom" + android:divider="@null" + android:layout_margin="10dp" + android:paddingBottom="10dp" android:baselineAligned="false"> -