mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2024-12-30 12:57:12 +01:00
Add a refresh menu item in TrendingActivity.
This commit is contained in:
parent
78c8452ae4
commit
03f8741f3d
@ -6,6 +6,8 @@ import android.os.Build;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.util.DisplayMetrics;
|
import android.util.DisplayMetrics;
|
||||||
|
import android.view.Menu;
|
||||||
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.Window;
|
import android.view.Window;
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
@ -97,6 +99,7 @@ public class TrendingActivity extends BaseActivity {
|
|||||||
Executor mExecutor;
|
Executor mExecutor;
|
||||||
private String mAccessToken;
|
private String mAccessToken;
|
||||||
private String mAccountName;
|
private String mAccountName;
|
||||||
|
private boolean isRefreshing = false;
|
||||||
private ArrayList<TrendingSearch> trendingSearches;
|
private ArrayList<TrendingSearch> trendingSearches;
|
||||||
private TrendingSearchRecyclerViewAdapter adapter;
|
private TrendingSearchRecyclerViewAdapter adapter;
|
||||||
|
|
||||||
@ -170,7 +173,7 @@ public class TrendingActivity extends BaseActivity {
|
|||||||
recyclerView.setAdapter(adapter);
|
recyclerView.setAdapter(adapter);
|
||||||
|
|
||||||
swipeRefreshLayout.setEnabled(mSharedPreferences.getBoolean(SharedPreferencesUtils.PULL_TO_REFRESH, true));
|
swipeRefreshLayout.setEnabled(mSharedPreferences.getBoolean(SharedPreferencesUtils.PULL_TO_REFRESH, true));
|
||||||
swipeRefreshLayout.setOnRefreshListener(this::loadTrendingSearches);
|
swipeRefreshLayout.setOnRefreshListener(this::fetchTrendingSearches);
|
||||||
|
|
||||||
if (savedInstanceState != null) {
|
if (savedInstanceState != null) {
|
||||||
trendingSearches = savedInstanceState.getParcelableArrayList(TRENDING_SEARCHES_STATE);
|
trendingSearches = savedInstanceState.getParcelableArrayList(TRENDING_SEARCHES_STATE);
|
||||||
@ -178,11 +181,16 @@ public class TrendingActivity extends BaseActivity {
|
|||||||
if (trendingSearches != null) {
|
if (trendingSearches != null) {
|
||||||
adapter.setTrendingSearches(trendingSearches);
|
adapter.setTrendingSearches(trendingSearches);
|
||||||
} else {
|
} else {
|
||||||
loadTrendingSearches();
|
fetchTrendingSearches();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadTrendingSearches() {
|
private void fetchTrendingSearches() {
|
||||||
|
if (isRefreshing) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
isRefreshing = true;
|
||||||
|
|
||||||
errorLinearLayout.setVisibility(View.GONE);
|
errorLinearLayout.setVisibility(View.GONE);
|
||||||
Glide.with(this).clear(errorImageView);
|
Glide.with(this).clear(errorImageView);
|
||||||
swipeRefreshLayout.setRefreshing(true);
|
swipeRefreshLayout.setRefreshing(true);
|
||||||
@ -222,12 +230,14 @@ public class TrendingActivity extends BaseActivity {
|
|||||||
trendingSearches = trendingSearchList;
|
trendingSearches = trendingSearchList;
|
||||||
swipeRefreshLayout.setRefreshing(false);
|
swipeRefreshLayout.setRefreshing(false);
|
||||||
adapter.setTrendingSearches(trendingSearches);
|
adapter.setTrendingSearches(trendingSearches);
|
||||||
|
isRefreshing = false;
|
||||||
});
|
});
|
||||||
} catch (JSONException e) {
|
} catch (JSONException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
handler.post(() -> {
|
handler.post(() -> {
|
||||||
swipeRefreshLayout.setRefreshing(false);
|
swipeRefreshLayout.setRefreshing(false);
|
||||||
showErrorView(R.string.error_parse_trending_search);
|
showErrorView(R.string.error_parse_trending_search);
|
||||||
|
isRefreshing = false;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -235,6 +245,7 @@ public class TrendingActivity extends BaseActivity {
|
|||||||
handler.post(() -> {
|
handler.post(() -> {
|
||||||
swipeRefreshLayout.setRefreshing(false);
|
swipeRefreshLayout.setRefreshing(false);
|
||||||
showErrorView(R.string.error_fetch_trending_search);
|
showErrorView(R.string.error_fetch_trending_search);
|
||||||
|
isRefreshing = false;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -244,6 +255,7 @@ public class TrendingActivity extends BaseActivity {
|
|||||||
handler.post(() -> {
|
handler.post(() -> {
|
||||||
swipeRefreshLayout.setRefreshing(false);
|
swipeRefreshLayout.setRefreshing(false);
|
||||||
showErrorView(R.string.error_fetch_trending_search);
|
showErrorView(R.string.error_fetch_trending_search);
|
||||||
|
isRefreshing = false;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -255,6 +267,26 @@ public class TrendingActivity extends BaseActivity {
|
|||||||
errorTextView.setText(stringId);
|
errorTextView.setText(stringId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onCreateOptionsMenu(Menu menu) {
|
||||||
|
getMenuInflater().inflate(R.menu.trending_activity, menu);
|
||||||
|
applyMenuItemTheme(menu);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
|
||||||
|
if (item.getItemId() == android.R.id.home) {
|
||||||
|
finish();
|
||||||
|
return true;
|
||||||
|
} else if (item.getItemId() == R.id.action_refresh_trending_activity) {
|
||||||
|
fetchTrendingSearches();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onSaveInstanceState(@NonNull Bundle outState) {
|
protected void onSaveInstanceState(@NonNull Bundle outState) {
|
||||||
super.onSaveInstanceState(outState);
|
super.onSaveInstanceState(outState);
|
||||||
|
10
app/src/main/res/menu/trending_activity.xml
Normal file
10
app/src/main/res/menu/trending_activity.xml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_refresh_trending_activity"
|
||||||
|
android:orderInCategory="1"
|
||||||
|
android:title="@string/action_refresh"
|
||||||
|
android:icon="@drawable/ic_refresh_24dp"
|
||||||
|
app:showAsAction="ifRoom" />
|
||||||
|
</menu>
|
Loading…
Reference in New Issue
Block a user