Add instances picker
This commit is contained in:
parent
fe610b7ecb
commit
a9281c1585
|
@ -17,15 +17,16 @@ package app.fedilab.mobilizon;
|
||||||
|
|
||||||
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
import androidx.appcompat.widget.SearchView;
|
||||||
import androidx.lifecycle.ViewModelProvider;
|
import androidx.lifecycle.ViewModelProvider;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -47,8 +48,8 @@ public class InstancePickerActivity extends AppCompatActivity {
|
||||||
private boolean flag_loading;
|
private boolean flag_loading;
|
||||||
private String max_id;
|
private String max_id;
|
||||||
private Search search;
|
private Search search;
|
||||||
private InstanceAdapter instanceAdapter;
|
private InstanceAdapter instanceAdapter;
|
||||||
|
private SearchInstancesVM searchInstancesVM;
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
@ -66,15 +67,13 @@ public class InstancePickerActivity extends AppCompatActivity {
|
||||||
search.setSort("-createdAt");
|
search.setSort("-createdAt");
|
||||||
|
|
||||||
max_id = "0";
|
max_id = "0";
|
||||||
setContentView(R.layout.activity_instance_picker);
|
|
||||||
instances = new ArrayList<>();
|
instances = new ArrayList<>();
|
||||||
|
|
||||||
binding.loader.setVisibility(View.VISIBLE);
|
binding.loader.setVisibility(View.VISIBLE);
|
||||||
|
binding.lvInstances.setVisibility(View.GONE);
|
||||||
flag_loading = true;
|
flag_loading = true;
|
||||||
LinearLayoutManager mLayoutManager = new LinearLayoutManager(InstancePickerActivity.this);
|
LinearLayoutManager mLayoutManager = new LinearLayoutManager(InstancePickerActivity.this);
|
||||||
|
searchInstancesVM = new ViewModelProvider(InstancePickerActivity.this).get(SearchInstancesVM.class);
|
||||||
SearchInstancesVM searchInstancesVM = new ViewModelProvider(InstancePickerActivity.this).get(SearchInstancesVM.class);
|
|
||||||
|
|
||||||
instanceAdapter = new InstanceAdapter(instances);
|
instanceAdapter = new InstanceAdapter(instances);
|
||||||
binding.lvInstances.setAdapter(instanceAdapter);
|
binding.lvInstances.setAdapter(instanceAdapter);
|
||||||
binding.lvInstances.setLayoutManager(mLayoutManager);
|
binding.lvInstances.setLayoutManager(mLayoutManager);
|
||||||
|
@ -99,10 +98,45 @@ public class InstancePickerActivity extends AppCompatActivity {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
searchInstancesVM.get(search).observe(InstancePickerActivity.this, this::manageVIewInstance);
|
searchInstancesVM.get(search).observe(InstancePickerActivity.this, this::manageVIewInstance);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onCreateOptionsMenu(Menu menu) {
|
||||||
|
getMenuInflater().inflate(R.menu.menu_instance, menu);
|
||||||
|
MenuItem myActionMenuItem = menu.findItem(R.id.action_search);
|
||||||
|
SearchView searchView = (SearchView) myActionMenuItem.getActionView();
|
||||||
|
|
||||||
|
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onQueryTextSubmit(String query) {
|
||||||
|
max_id = "0";
|
||||||
|
if( query != null && query.trim().length() > 0) {
|
||||||
|
search.setSearch(query.trim());
|
||||||
|
}else{
|
||||||
|
search.setSearch(null);
|
||||||
|
}
|
||||||
|
LinearLayoutManager mLayoutManager = new LinearLayoutManager(InstancePickerActivity.this);
|
||||||
|
instanceAdapter = new InstanceAdapter(instances);
|
||||||
|
binding.lvInstances.setAdapter(instanceAdapter);
|
||||||
|
binding.lvInstances.setLayoutManager(mLayoutManager);
|
||||||
|
search.setStart(max_id);
|
||||||
|
binding.loader.setVisibility(View.VISIBLE);
|
||||||
|
binding.lvInstances.setVisibility(View.GONE);
|
||||||
|
searchInstancesVM.get(search).observe(InstancePickerActivity.this, instanceData -> manageVIewInstance(instanceData));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onQueryTextChange(String s) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
if (item.getItemId() == android.R.id.home) {
|
if (item.getItemId() == android.R.id.home) {
|
||||||
|
@ -116,7 +150,8 @@ public class InstancePickerActivity extends AppCompatActivity {
|
||||||
public void manageVIewInstance(InstanceData instanceData) {
|
public void manageVIewInstance(InstanceData instanceData) {
|
||||||
binding.loader.setVisibility(View.GONE);
|
binding.loader.setVisibility(View.GONE);
|
||||||
binding.loadingNextInstances.setVisibility(View.GONE);
|
binding.loadingNextInstances.setVisibility(View.GONE);
|
||||||
if (instanceData == null || instanceData.data.size() == 0) {
|
flag_loading = false;
|
||||||
|
if (instanceData == null || (instanceData.data.size() == 0 && this.instances.size() == 0)) {
|
||||||
binding.noAction.setVisibility(View.VISIBLE);
|
binding.noAction.setVisibility(View.VISIBLE);
|
||||||
binding.lvInstances.setVisibility(View.GONE);
|
binding.lvInstances.setVisibility(View.GONE);
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -162,6 +162,8 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCreateOptionsMenu(Menu menu) {
|
public boolean onCreateOptionsMenu(Menu menu) {
|
||||||
// Inflate the menu; this adds items to the action bar if it is present.
|
// Inflate the menu; this adds items to the action bar if it is present.
|
||||||
|
@ -376,9 +378,19 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
|
||||||
this.mFilePathCallback = mFilePathCallback;
|
this.mFilePathCallback = mFilePathCallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("ApplySharedPref")
|
||||||
@Override
|
@Override
|
||||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
if (requestCode != INPUT_FILE_REQUEST_CODE || mFilePathCallback == null) {
|
if (requestCode != INPUT_FILE_REQUEST_CODE || mFilePathCallback == null) {
|
||||||
|
if (requestCode == PICK_INSTANCE && resultCode == Activity.RESULT_OK) {
|
||||||
|
if (data != null && data.getData() != null) {
|
||||||
|
final SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||||
|
editor.putString(Helper.PREF_INSTANCE, String.valueOf(data.getData()));
|
||||||
|
editor.commit();
|
||||||
|
recreate();
|
||||||
|
}
|
||||||
|
}
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,7 +29,7 @@ public class RetrofitInstancesAPI {
|
||||||
|
|
||||||
private InstancesService init() {
|
private InstancesService init() {
|
||||||
Retrofit retrofit = new Retrofit.Builder()
|
Retrofit retrofit = new Retrofit.Builder()
|
||||||
.baseUrl("https://instances.joinmobilizon.org/api/v1")
|
.baseUrl("https://instances.joinmobilizon.org/api/v1/")
|
||||||
.addConverterFactory(GsonConverterFactory.create())
|
.addConverterFactory(GsonConverterFactory.create())
|
||||||
.build();
|
.build();
|
||||||
return retrofit.create(InstancesService.class);
|
return retrofit.create(InstancesService.class);
|
||||||
|
|
|
@ -73,7 +73,7 @@ public class InstanceAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
|
||||||
holder.host.setText(instance.getHost());
|
holder.host.setText(instance.getHost());
|
||||||
|
|
||||||
|
|
||||||
holder.version.setText(instance.getVersion());
|
|
||||||
|
|
||||||
StringBuilder languages = new StringBuilder();
|
StringBuilder languages = new StringBuilder();
|
||||||
if (instance.getLanguages() != null && instance.getLanguages().size() > 0) {
|
if (instance.getLanguages() != null && instance.getLanguages().size() > 0) {
|
||||||
|
@ -88,6 +88,9 @@ public class InstanceAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
|
||||||
holder.languages.setVisibility(View.VISIBLE);
|
holder.languages.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
holder.version.setText(context.getString(R.string.version, String.valueOf(instance.getVersion())));
|
||||||
|
holder.users.setText(context.getString(R.string.users, String.valueOf(instance.getTotalUsers())));
|
||||||
|
holder.groups.setText(context.getString(R.string.groups, String.valueOf(instance.getTotalLocalGroups())));
|
||||||
holder.local_events.setText(context.getString(R.string.local_events, String.valueOf(instance.getTotalLocalEvents())));
|
holder.local_events.setText(context.getString(R.string.local_events, String.valueOf(instance.getTotalLocalEvents())));
|
||||||
|
|
||||||
holder.pickup.setOnClickListener(v -> {
|
holder.pickup.setOnClickListener(v -> {
|
||||||
|
@ -114,7 +117,7 @@ public class InstanceAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
|
||||||
|
|
||||||
Button pickup;
|
Button pickup;
|
||||||
TextView name, host, description;
|
TextView name, host, description;
|
||||||
TextView version, local_events, languages;
|
TextView version, local_events, languages, groups, users;
|
||||||
|
|
||||||
public ViewHolder(@NonNull View itemView) {
|
public ViewHolder(@NonNull View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
|
@ -125,6 +128,8 @@ public class InstanceAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
|
||||||
local_events = itemView.findViewById(R.id.local_events);
|
local_events = itemView.findViewById(R.id.local_events);
|
||||||
version = itemView.findViewById(R.id.version);
|
version = itemView.findViewById(R.id.version);
|
||||||
languages = itemView.findViewById(R.id.languages);
|
languages = itemView.findViewById(R.id.languages);
|
||||||
|
groups = itemView.findViewById(R.id.groups);
|
||||||
|
users = itemView.findViewById(R.id.users);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -29,7 +29,6 @@ import java.io.InputStream;
|
||||||
* see <http://www.gnu.org/licenses>. */
|
* see <http://www.gnu.org/licenses>. */
|
||||||
public class Helper {
|
public class Helper {
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
public static final String TAG = "mobilizon_app";
|
public static final String TAG = "mobilizon_app";
|
||||||
public static final String APP_PREFS = "app_prefs";
|
public static final String APP_PREFS = "app_prefs";
|
||||||
public static final String PREF_INSTANCE = "instance";
|
public static final String PREF_INSTANCE = "instance";
|
||||||
|
@ -42,7 +41,7 @@ public class Helper {
|
||||||
*/
|
*/
|
||||||
public static String getLiveInstance(Context context) {
|
public static String getLiveInstance(Context context) {
|
||||||
final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
return sharedpreferences.getString(Helper.PREF_INSTANCE, "test.mobilizon.org");
|
return sharedpreferences.getString(Helper.PREF_INSTANCE, "mobilizon.fr");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -82,7 +81,7 @@ public class Helper {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@SuppressWarnings({"ResultOfMethodCallIgnored", "unused"})
|
@SuppressWarnings({"ResultOfMethodCallIgnored"})
|
||||||
public static void injectCSS(Activity activity, WebView view, String cssFile) {
|
public static void injectCSS(Activity activity, WebView view, String cssFile) {
|
||||||
try {
|
try {
|
||||||
InputStream inputStream = activity.getAssets().open(cssFile);
|
InputStream inputStream = activity.getAssets().open(cssFile);
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
<vector android:autoMirrored="true" android:height="24dp"
|
||||||
|
android:tint="?attr/colorControlNormal" android:viewportHeight="24"
|
||||||
|
android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M20,3h-1L19,1h-2v2L7,3L7,1L5,1v2L4,3c-1.1,0 -2,0.9 -2,2v16c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,5c0,-1.1 -0.9,-2 -2,-2zM20,21L4,21L4,8h16v13z"/>
|
||||||
|
</vector>
|
|
@ -1,10 +1,5 @@
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector android:autoMirrored="true" android:height="24dp"
|
||||||
android:width="24dp"
|
android:tint="?attr/colorControlNormal" android:viewportHeight="24"
|
||||||
android:height="24dp"
|
android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
android:viewportWidth="24"
|
<path android:fillColor="@android:color/white" android:pathData="M16,11c1.66,0 2.99,-1.34 2.99,-3S17.66,5 16,5c-1.66,0 -3,1.34 -3,3s1.34,3 3,3zM8,11c1.66,0 2.99,-1.34 2.99,-3S9.66,5 8,5C6.34,5 5,6.34 5,8s1.34,3 3,3zM8,13c-2.33,0 -7,1.17 -7,3.5L1,19h14v-2.5c0,-2.33 -4.67,-3.5 -7,-3.5zM16,13c-0.29,0 -0.62,0.02 -0.97,0.05 1.16,0.84 1.97,1.97 1.97,3.45L17,19h6v-2.5c0,-2.33 -4.67,-3.5 -7,-3.5z"/>
|
||||||
android:viewportHeight="24"
|
|
||||||
android:tint="?attr/colorControlNormal">
|
|
||||||
<path
|
|
||||||
android:fillColor="@android:color/white"
|
|
||||||
android:pathData="M16,11c1.66,0 2.99,-1.34 2.99,-3S17.66,5 16,5c-1.66,0 -3,1.34 -3,3s1.34,3 3,3zM8,11c1.66,0 2.99,-1.34 2.99,-3S9.66,5 8,5C6.34,5 5,6.34 5,8s1.34,3 3,3zM8,13c-2.33,0 -7,1.17 -7,3.5L1,19h14v-2.5c0,-2.33 -4.67,-3.5 -7,-3.5zM16,13c-0.29,0 -0.62,0.02 -0.97,0.05 1.16,0.84 1.97,1.97 1.97,3.45L17,19h6v-2.5c0,-2.33 -4.67,-3.5 -7,-3.5z"/>
|
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -1,10 +1,5 @@
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector android:autoMirrored="true" android:height="24dp"
|
||||||
android:width="24dp"
|
android:tint="?attr/colorControlNormal" android:viewportHeight="24"
|
||||||
android:height="24dp"
|
android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
android:viewportWidth="24"
|
<path android:fillColor="@android:color/white" android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,17h-2v-6h2v6zM13,9h-2L11,7h2v2z"/>
|
||||||
android:viewportHeight="24"
|
|
||||||
android:tint="?attr/colorControlNormal">
|
|
||||||
<path
|
|
||||||
android:fillColor="@android:color/white"
|
|
||||||
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,17h-2v-6h2v6zM13,9h-2L11,7h2v2z"/>
|
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
<vector android:autoMirrored="true" android:height="24dp"
|
||||||
|
android:tint="?attr/colorControlNormal" android:viewportHeight="24"
|
||||||
|
android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M16,11c1.66,0 2.99,-1.34 2.99,-3S17.66,5 16,5c-1.66,0 -3,1.34 -3,3s1.34,3 3,3zM8,11c1.66,0 2.99,-1.34 2.99,-3S9.66,5 8,5C6.34,5 5,6.34 5,8s1.34,3 3,3zM8,13c-2.33,0 -7,1.17 -7,3.5L1,19h14v-2.5c0,-2.33 -4.67,-3.5 -7,-3.5zM16,13c-0.29,0 -0.62,0.02 -0.97,0.05 1.16,0.84 1.97,1.97 1.97,3.45L17,19h6v-2.5c0,-2.33 -4.67,-3.5 -7,-3.5z"/>
|
||||||
|
</vector>
|
|
@ -15,7 +15,8 @@
|
||||||
You should have received a copy of the GNU General Public License along with Mobilizon app; if not,
|
You should have received a copy of the GNU General Public License along with Mobilizon app; if not,
|
||||||
see <http://www.gnu.org/licenses>.
|
see <http://www.gnu.org/licenses>.
|
||||||
-->
|
-->
|
||||||
<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<androidx.drawerlayout.widget.DrawerLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
@ -29,26 +30,23 @@
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent">
|
||||||
android:padding="@dimen/fab_margin">
|
|
||||||
|
|
||||||
<androidx.cardview.widget.CardView
|
|
||||||
android:id="@+id/filters_container"
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/lv_instances"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="0dp"
|
||||||
|
android:layout_marginStart="@dimen/fab_margin"
|
||||||
|
android:layout_marginEnd="@dimen/fab_margin"
|
||||||
|
app:layout_constraintBottom_toTopOf="@+id/loading_next_instances"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent">
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
android:layout_marginTop="10dp"
|
||||||
|
android:scrollbars="none" />
|
||||||
|
|
||||||
<androidx.appcompat.widget.SearchView
|
|
||||||
app:queryHint="@string/search_instance_hint"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
android:animateLayoutChanges="false"
|
|
||||||
android:id="@+id/searchBar" />
|
|
||||||
</androidx.cardview.widget.CardView>
|
|
||||||
<!-- Main Loader -->
|
<!-- Main Loader -->
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
android:id="@+id/loader"
|
android:id="@+id/loader"
|
||||||
|
@ -60,8 +58,7 @@
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/filters_container">
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
<com.github.ybq.android.spinkit.SpinKitView
|
<com.github.ybq.android.spinkit.SpinKitView
|
||||||
style="@style/progress"
|
style="@style/progress"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
|
@ -70,38 +67,27 @@
|
||||||
app:SpinKit_Color="?colorAccent" />
|
app:SpinKit_Color="?colorAccent" />
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:id="@+id/no_action"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="0dp"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="10dp"
|
|
||||||
android:orientation="vertical"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/filters_container">
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
android:layout_marginTop="10dp"
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
android:visibility="gone">
|
||||||
android:id="@+id/lv_instances"
|
<TextView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="match_parent"
|
||||||
android:scrollbars="none" />
|
android:layout_gravity="center"
|
||||||
<RelativeLayout
|
android:gravity="center"
|
||||||
android:id="@+id/no_action"
|
android:padding="10dp"
|
||||||
android:layout_width="match_parent"
|
android:text="@string/no_results"
|
||||||
android:layout_height="wrap_content"
|
android:textSize="25sp" />
|
||||||
android:visibility="gone">
|
</RelativeLayout>
|
||||||
|
<!-- Loader for next instances -->
|
||||||
<TextView
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:layout_gravity="center"
|
|
||||||
android:gravity="center"
|
|
||||||
android:padding="10dp"
|
|
||||||
android:text="@string/no_results"
|
|
||||||
android:textSize="25sp" />
|
|
||||||
</RelativeLayout>
|
|
||||||
</LinearLayout>
|
|
||||||
<!-- Loader for next videos -->
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
android:id="@+id/loading_next_instances"
|
android:id="@+id/loading_next_instances"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
@ -113,6 +99,7 @@
|
||||||
>
|
>
|
||||||
<com.github.ybq.android.spinkit.SpinKitView
|
<com.github.ybq.android.spinkit.SpinKitView
|
||||||
style="@style/progressBottom"
|
style="@style/progressBottom"
|
||||||
|
android:layout_centerInParent="true"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
|
|
|
@ -60,6 +60,8 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="5dp"
|
android:layout_marginTop="5dp"
|
||||||
|
android:drawablePadding="10dp"
|
||||||
|
app:drawableStartCompat="@drawable/ic_baseline_info_24"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/description" />
|
app:layout_constraintTop_toBottomOf="@+id/description" />
|
||||||
|
|
||||||
|
@ -69,10 +71,32 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="5dp"
|
android:layout_marginTop="5dp"
|
||||||
android:drawablePadding="10dp"
|
android:drawablePadding="10dp"
|
||||||
app:drawableStartCompat="@drawable/ic_baseline_group_24"
|
app:drawableStartCompat="@drawable/ic_baseline_calendar_today_24"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/version" />
|
app:layout_constraintTop_toBottomOf="@+id/version" />
|
||||||
|
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/groups"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="5dp"
|
||||||
|
android:drawablePadding="10dp"
|
||||||
|
app:drawableStartCompat="@drawable/ic_baseline_group_24"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/local_events" />
|
||||||
|
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/users"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="5dp"
|
||||||
|
android:drawablePadding="10dp"
|
||||||
|
app:drawableStartCompat="@drawable/ic_baseline_people_24"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/groups" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/languages"
|
android:id="@+id/languages"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
@ -81,7 +105,7 @@
|
||||||
android:drawablePadding="10dp"
|
android:drawablePadding="10dp"
|
||||||
app:drawableStartCompat="@drawable/ic_baseline_forum_24"
|
app:drawableStartCompat="@drawable/ic_baseline_forum_24"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/local_events" />
|
app:layout_constraintTop_toBottomOf="@+id/users" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
<menu 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"
|
||||||
|
tools:context="app.fedilab.mobilizon.MainActivity">
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_search"
|
||||||
|
android:icon="@android:drawable/ic_menu_search"
|
||||||
|
android:title="@string/search"
|
||||||
|
app:actionViewClass="androidx.appcompat.widget.SearchView"
|
||||||
|
app:showAsAction="always|collapseActionView" />
|
||||||
|
</menu>
|
|
@ -44,4 +44,7 @@
|
||||||
<string name="instances_picker">Instances picker</string>
|
<string name="instances_picker">Instances picker</string>
|
||||||
<string name="pickup_instance">Pick this instance</string>
|
<string name="pickup_instance">Pick this instance</string>
|
||||||
<string name="local_events">Local events: %1$s</string>
|
<string name="local_events">Local events: %1$s</string>
|
||||||
|
<string name="version">Version: %1$s</string>
|
||||||
|
<string name="groups">Groups: %1$s</string>
|
||||||
|
<string name="users">Users: %1$s</string>
|
||||||
</resources>
|
</resources>
|
Loading…
Reference in New Issue