Move cache in main menu
This commit is contained in:
parent
bc44528557
commit
343b654111
|
@ -356,6 +356,9 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
|
||||||
} else if (id == R.id.nav_announcements) {
|
} else if (id == R.id.nav_announcements) {
|
||||||
Intent intent = new Intent(this, AnnouncementActivity.class);
|
Intent intent = new Intent(this, AnnouncementActivity.class);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
|
} else if (id == R.id.nav_cache) {
|
||||||
|
Intent intent = new Intent(BaseMainActivity.this, CacheActivity.class);
|
||||||
|
startActivity(intent);
|
||||||
}
|
}
|
||||||
binding.drawerLayout.close();
|
binding.drawerLayout.close();
|
||||||
return false;
|
return false;
|
||||||
|
@ -521,10 +524,6 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
|
||||||
Intent intent = new Intent(BaseMainActivity.this, InstanceActivity.class);
|
Intent intent = new Intent(BaseMainActivity.this, InstanceActivity.class);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
return true;
|
return true;
|
||||||
} else if (itemId == R.id.action_cache) {
|
|
||||||
Intent intent = new Intent(BaseMainActivity.this, CacheActivity.class);
|
|
||||||
startActivity(intent);
|
|
||||||
return true;
|
|
||||||
} else if (itemId == R.id.action_proxy) {
|
} else if (itemId == R.id.action_proxy) {
|
||||||
Intent intent = new Intent(BaseMainActivity.this, ProxyActivity.class);
|
Intent intent = new Intent(BaseMainActivity.this, ProxyActivity.class);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
|
@ -749,7 +748,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
|
||||||
}
|
}
|
||||||
popup.setOnDismissListener(menu1 -> {
|
popup.setOnDismissListener(menu1 -> {
|
||||||
if (binding.viewPager.getAdapter() != null) {
|
if (binding.viewPager.getAdapter() != null) {
|
||||||
Fragment fragment = (Fragment) getSupportFragmentManager().findFragmentByTag("f" + binding.viewPager.getCurrentItem());
|
Fragment fragment = getSupportFragmentManager().findFragmentByTag("f" + binding.viewPager.getCurrentItem());
|
||||||
if (fragment instanceof FragmentMastodonTimeline && fragment.isVisible()) {
|
if (fragment instanceof FragmentMastodonTimeline && fragment.isVisible()) {
|
||||||
FragmentMastodonTimeline fragmentMastodonTimeline = ((FragmentMastodonTimeline) fragment);
|
FragmentMastodonTimeline fragmentMastodonTimeline = ((FragmentMastodonTimeline) fragment);
|
||||||
fragmentMastodonTimeline.refreshAllAdapters();
|
fragmentMastodonTimeline.refreshAllAdapters();
|
||||||
|
@ -880,7 +879,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
|
||||||
*/
|
*/
|
||||||
private void scrollToTop() {
|
private void scrollToTop() {
|
||||||
if (binding.viewPager.getAdapter() != null) {
|
if (binding.viewPager.getAdapter() != null) {
|
||||||
Fragment fragment = (Fragment) getSupportFragmentManager().findFragmentByTag("f" + binding.viewPager.getCurrentItem());
|
Fragment fragment = getSupportFragmentManager().findFragmentByTag("f" + binding.viewPager.getCurrentItem());
|
||||||
if (fragment instanceof FragmentMastodonTimeline) {
|
if (fragment instanceof FragmentMastodonTimeline) {
|
||||||
FragmentMastodonTimeline fragmentMastodonTimeline = ((FragmentMastodonTimeline) fragment);
|
FragmentMastodonTimeline fragmentMastodonTimeline = ((FragmentMastodonTimeline) fragment);
|
||||||
fragmentMastodonTimeline.scrollToTop();
|
fragmentMastodonTimeline.scrollToTop();
|
||||||
|
|
|
@ -20,15 +20,10 @@ import android.graphics.drawable.ColorDrawable;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.text.method.LinkMovementMethod;
|
import android.text.method.LinkMovementMethod;
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.widget.ImageView;
|
|
||||||
import android.widget.LinearLayout;
|
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import androidx.appcompat.app.ActionBar;
|
|
||||||
import androidx.core.app.ActivityOptionsCompat;
|
import androidx.core.app.ActivityOptionsCompat;
|
||||||
import androidx.core.content.ContextCompat;
|
import androidx.core.content.ContextCompat;
|
||||||
import androidx.lifecycle.ViewModelProvider;
|
import androidx.lifecycle.ViewModelProvider;
|
||||||
|
@ -62,21 +57,6 @@ public class PartnerShipActivity extends BaseActivity {
|
||||||
getSupportActionBar().setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary)));
|
getSupportActionBar().setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(this, R.color.cyanea_primary)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ActionBar actionBar = getSupportActionBar();
|
|
||||||
if (actionBar != null) {
|
|
||||||
LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE);
|
|
||||||
assert inflater != null;
|
|
||||||
View view = inflater.inflate(R.layout.simple_bar, new LinearLayout(PartnerShipActivity.this), false);
|
|
||||||
view.setBackground(new ColorDrawable(ContextCompat.getColor(PartnerShipActivity.this, R.color.cyanea_primary)));
|
|
||||||
actionBar.setCustomView(view, new ActionBar.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
|
|
||||||
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
|
|
||||||
ImageView toolbar_close = actionBar.getCustomView().findViewById(R.id.toolbar_close);
|
|
||||||
TextView toolbar_title = actionBar.getCustomView().findViewById(R.id.toolbar_title);
|
|
||||||
toolbar_close.setOnClickListener(v -> finish());
|
|
||||||
toolbar_title.setText(R.string.action_partnership);
|
|
||||||
}
|
|
||||||
|
|
||||||
TextView about_partnership = findViewById(R.id.about_partnership);
|
TextView about_partnership = findViewById(R.id.about_partnership);
|
||||||
about_partnership.setMovementMethod(LinkMovementMethod.getInstance());
|
about_partnership.setMovementMethod(LinkMovementMethod.getInstance());
|
||||||
|
|
||||||
|
|
|
@ -28,27 +28,19 @@ import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.graphics.drawable.ColorDrawable;
|
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.webkit.CookieManager;
|
import android.webkit.CookieManager;
|
||||||
import android.webkit.CookieSyncManager;
|
import android.webkit.CookieSyncManager;
|
||||||
import android.webkit.WebChromeClient;
|
import android.webkit.WebChromeClient;
|
||||||
import android.webkit.WebView;
|
import android.webkit.WebView;
|
||||||
import android.webkit.WebViewClient;
|
import android.webkit.WebViewClient;
|
||||||
import android.widget.ImageView;
|
|
||||||
import android.widget.LinearLayout;
|
|
||||||
import android.widget.ProgressBar;
|
import android.widget.ProgressBar;
|
||||||
import android.widget.TextView;
|
|
||||||
|
|
||||||
import androidx.appcompat.app.ActionBar;
|
|
||||||
import androidx.appcompat.app.AlertDialog;
|
import androidx.appcompat.app.AlertDialog;
|
||||||
import androidx.core.content.ContextCompat;
|
|
||||||
import androidx.lifecycle.ViewModelProvider;
|
import androidx.lifecycle.ViewModelProvider;
|
||||||
import androidx.preference.PreferenceManager;
|
import androidx.preference.PreferenceManager;
|
||||||
|
|
||||||
|
@ -134,19 +126,6 @@ public class WebviewConnectActivity extends BaseActivity {
|
||||||
}
|
}
|
||||||
if (login_url == null)
|
if (login_url == null)
|
||||||
finish();
|
finish();
|
||||||
ActionBar actionBar = getSupportActionBar();
|
|
||||||
if (actionBar != null) {
|
|
||||||
LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
|
||||||
assert inflater != null;
|
|
||||||
View view = inflater.inflate(R.layout.simple_bar, new LinearLayout(WebviewConnectActivity.this), false);
|
|
||||||
view.setBackground(new ColorDrawable(ContextCompat.getColor(WebviewConnectActivity.this, R.color.cyanea_primary)));
|
|
||||||
actionBar.setCustomView(view, new ActionBar.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
|
|
||||||
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
|
|
||||||
ImageView toolbar_close = actionBar.getCustomView().findViewById(R.id.toolbar_close);
|
|
||||||
TextView toolbar_title = actionBar.getCustomView().findViewById(R.id.toolbar_title);
|
|
||||||
toolbar_close.setOnClickListener(v -> finish());
|
|
||||||
toolbar_title.setText(R.string.add_account);
|
|
||||||
}
|
|
||||||
|
|
||||||
clearCookies(WebviewConnectActivity.this);
|
clearCookies(WebviewConnectActivity.this);
|
||||||
binding.webviewConnect.getSettings().setJavaScriptEnabled(true);
|
binding.webviewConnect.getSettings().setJavaScriptEnabled(true);
|
||||||
|
|
|
@ -249,12 +249,16 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter.
|
||||||
return binding.getRoot();
|
return binding.getRoot();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void initializeStatusesCommonView(final Statuses statuses) {
|
||||||
|
initializeStatusesCommonView(statuses, -1);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Intialize the common view for statuses on different timelines
|
* Intialize the common view for statuses on different timelines
|
||||||
*
|
*
|
||||||
* @param statuses {@link Statuses}
|
* @param statuses {@link Statuses}
|
||||||
*/
|
*/
|
||||||
private void initializeStatusesCommonView(final Statuses statuses) {
|
private void initializeStatusesCommonView(final Statuses statuses, int position) {
|
||||||
flagLoading = false;
|
flagLoading = false;
|
||||||
if (binding == null) {
|
if (binding == null) {
|
||||||
return;
|
return;
|
||||||
|
@ -327,6 +331,9 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter.
|
||||||
binding.recyclerView.setLayoutManager(mLayoutManager);
|
binding.recyclerView.setLayoutManager(mLayoutManager);
|
||||||
binding.recyclerView.setAdapter(statusAdapter);
|
binding.recyclerView.setAdapter(statusAdapter);
|
||||||
|
|
||||||
|
if (position != -1 && position < this.statuses.size()) {
|
||||||
|
binding.recyclerView.scrollToPosition(position);
|
||||||
|
}
|
||||||
|
|
||||||
if (searchCache == null) {
|
if (searchCache == null) {
|
||||||
binding.recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
binding.recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
||||||
|
@ -372,7 +379,6 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter.
|
||||||
if (binding == null) {
|
if (binding == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int currentPosition = mLayoutManager.findFirstVisibleItemPosition();
|
|
||||||
binding.swipeContainer.setRefreshing(false);
|
binding.swipeContainer.setRefreshing(false);
|
||||||
binding.loadingNextElements.setVisibility(View.GONE);
|
binding.loadingNextElements.setVisibility(View.GONE);
|
||||||
flagLoading = false;
|
flagLoading = false;
|
||||||
|
@ -394,10 +400,7 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter.
|
||||||
fetched_statuses.statuses = mediaStatuses;
|
fetched_statuses.statuses = mediaStatuses;
|
||||||
}
|
}
|
||||||
//Update the timeline with new statuses
|
//Update the timeline with new statuses
|
||||||
int inserted = updateStatusListWith(direction, fetched_statuses.statuses, fetchingMissing);
|
updateStatusListWith(direction, fetched_statuses.statuses, fetchingMissing);
|
||||||
if (fetchingMissing) {
|
|
||||||
// binding.recyclerView.scrollToPosition(currentPosition + inserted);
|
|
||||||
}
|
|
||||||
if (!fetchingMissing) {
|
if (!fetchingMissing) {
|
||||||
if (fetched_statuses.pagination.max_id == null) {
|
if (fetched_statuses.pagination.max_id == null) {
|
||||||
flagLoading = true;
|
flagLoading = true;
|
||||||
|
@ -418,9 +421,8 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter.
|
||||||
*
|
*
|
||||||
* @param statusListReceived - List<Status> Statuses received
|
* @param statusListReceived - List<Status> Statuses received
|
||||||
* @param fetchingMissing - boolean if the call concerns fetching messages (ie: refresh of from fetch more button)
|
* @param fetchingMissing - boolean if the call concerns fetching messages (ie: refresh of from fetch more button)
|
||||||
* @return int - Number of messages that have been inserted in the middle of the timeline (ie between other statuses)
|
|
||||||
*/
|
*/
|
||||||
private int updateStatusListWith(DIRECTION direction, List<Status> statusListReceived, boolean fetchingMissing) {
|
private void updateStatusListWith(DIRECTION direction, List<Status> statusListReceived, boolean fetchingMissing) {
|
||||||
int numberInserted = 0;
|
int numberInserted = 0;
|
||||||
int lastInsertedPosition = 0;
|
int lastInsertedPosition = 0;
|
||||||
int initialInsertedPosition = STATUS_PRESENT;
|
int initialInsertedPosition = STATUS_PRESENT;
|
||||||
|
@ -459,7 +461,6 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return numberInserted;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -571,14 +572,14 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter.
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
QuickLoad quickLoad = new QuickLoad(requireActivity()).getSavedValue(MainActivity.currentUserID, MainActivity.currentInstance, timelineType, ident);
|
QuickLoad quickLoad = new QuickLoad(requireActivity()).getSavedValue(MainActivity.currentUserID, MainActivity.currentInstance, timelineType, ident);
|
||||||
if (direction != DIRECTION.REFRESH && !fetchingMissing && !binding.swipeContainer.isRefreshing() && direction == null && quickLoad != null && quickLoad.statuses != null && quickLoad.statuses.size() > 0) {
|
if (!fetchingMissing && !binding.swipeContainer.isRefreshing() && direction == null && quickLoad != null && quickLoad.statuses != null && quickLoad.statuses.size() > 0) {
|
||||||
Statuses statuses = new Statuses();
|
Statuses statuses = new Statuses();
|
||||||
statuses.statuses = quickLoad.statuses;
|
statuses.statuses = quickLoad.statuses;
|
||||||
statuses.pagination = new Pagination();
|
statuses.pagination = new Pagination();
|
||||||
statuses.pagination.max_id = quickLoad.statuses.get(quickLoad.statuses.size() - 1).id;
|
statuses.pagination.max_id = quickLoad.statuses.get(quickLoad.statuses.size() - 1).id;
|
||||||
statuses.pagination.min_id = quickLoad.statuses.get(0).id;
|
statuses.pagination.min_id = quickLoad.statuses.get(0).id;
|
||||||
Handler mainHandler = new Handler(Looper.getMainLooper());
|
Handler mainHandler = new Handler(Looper.getMainLooper());
|
||||||
Runnable myRunnable = () -> initializeStatusesCommonView(statuses);
|
Runnable myRunnable = () -> initializeStatusesCommonView(statuses, quickLoad.position);
|
||||||
mainHandler.post(myRunnable);
|
mainHandler.post(myRunnable);
|
||||||
} else {
|
} else {
|
||||||
Handler mainHandler = new Handler(Looper.getMainLooper());
|
Handler mainHandler = new Handler(Looper.getMainLooper());
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:tint="#FFFFFF"
|
||||||
|
android:viewportWidth="24"
|
||||||
|
android:viewportHeight="24">
|
||||||
|
<path
|
||||||
|
android:fillColor="@android:color/white"
|
||||||
|
android:pathData="M19,8l-4,4h3c0,3.31 -2.69,6 -6,6 -1.01,0 -1.97,-0.25 -2.8,-0.7l-1.46,1.46C8.97,19.54 10.43,20 12,20c4.42,0 8,-3.58 8,-8h3l-4,-4zM6,12c0,-3.31 2.69,-6 6,-6 1.01,0 1.97,0.25 2.8,0.7l1.46,-1.46C15.03,4.46 13.57,4 12,4c-4.42,0 -8,3.58 -8,8H1l4,4 4,-4H6z" />
|
||||||
|
</vector>
|
|
@ -53,6 +53,10 @@
|
||||||
android:id="@+id/nav_settings"
|
android:id="@+id/nav_settings"
|
||||||
android:icon="@drawable/ic_baseline_settings_24"
|
android:icon="@drawable/ic_baseline_settings_24"
|
||||||
android:title="@string/settings" />
|
android:title="@string/settings" />
|
||||||
|
<item
|
||||||
|
android:id="@+id/nav_cache"
|
||||||
|
android:icon="@drawable/ic_baseline_cached_24"
|
||||||
|
android:title="@string/action_cache" />
|
||||||
<item
|
<item
|
||||||
android:id="@+id/nav_about"
|
android:id="@+id/nav_about"
|
||||||
android:icon="@drawable/ic_baseline_info_24"
|
android:icon="@drawable/ic_baseline_info_24"
|
||||||
|
|
|
@ -5,10 +5,6 @@
|
||||||
android:id="@+id/action_about_instance"
|
android:id="@+id/action_about_instance"
|
||||||
android:title="@string/action_about_instance"
|
android:title="@string/action_about_instance"
|
||||||
app:showAsAction="never" />
|
app:showAsAction="never" />
|
||||||
<item
|
|
||||||
android:id="@+id/action_cache"
|
|
||||||
android:title="@string/action_cache"
|
|
||||||
app:showAsAction="never" />
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_proxy"
|
android:id="@+id/action_proxy"
|
||||||
android:title="@string/proxy_set"
|
android:title="@string/proxy_set"
|
||||||
|
|
Loading…
Reference in New Issue