Deduplicate isGridLayout calls
This commit is contained in:
parent
83d16dc656
commit
ea875c59af
|
@ -5,7 +5,6 @@ import static org.schabi.newpipe.ktx.ViewUtils.animateHideRecyclerViewAllowingSc
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.content.res.Configuration;
|
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
@ -31,6 +30,7 @@ import org.schabi.newpipe.info_list.dialog.InfoItemDialog;
|
||||||
import org.schabi.newpipe.util.NavigationHelper;
|
import org.schabi.newpipe.util.NavigationHelper;
|
||||||
import org.schabi.newpipe.util.OnClickGesture;
|
import org.schabi.newpipe.util.OnClickGesture;
|
||||||
import org.schabi.newpipe.util.StateSaver;
|
import org.schabi.newpipe.util.StateSaver;
|
||||||
|
import org.schabi.newpipe.util.ThemeHelper;
|
||||||
import org.schabi.newpipe.views.SuperScrollLayoutManager;
|
import org.schabi.newpipe.views.SuperScrollLayoutManager;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -476,15 +476,6 @@ public abstract class BaseListFragment<I, N> extends BaseStateFragment<I>
|
||||||
}
|
}
|
||||||
|
|
||||||
protected boolean isGridLayout() {
|
protected boolean isGridLayout() {
|
||||||
final String listMode = PreferenceManager.getDefaultSharedPreferences(activity)
|
return ThemeHelper.shouldUseGridLayout(activity);
|
||||||
.getString(getString(R.string.list_view_mode_key),
|
|
||||||
getString(R.string.list_view_mode_value));
|
|
||||||
if ("auto".equals(listMode)) {
|
|
||||||
final Configuration configuration = getResources().getConfiguration();
|
|
||||||
return configuration.orientation == Configuration.ORIENTATION_LANDSCAPE
|
|
||||||
&& configuration.isLayoutSizeAtLeast(Configuration.SCREENLAYOUT_SIZE_LARGE);
|
|
||||||
} else {
|
|
||||||
return "grid".equals(listMode);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,21 +1,19 @@
|
||||||
package org.schabi.newpipe.local.subscription
|
package org.schabi.newpipe.local.subscription
|
||||||
|
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
import android.content.res.Configuration
|
|
||||||
import androidx.lifecycle.AndroidViewModel
|
import androidx.lifecycle.AndroidViewModel
|
||||||
import androidx.lifecycle.LiveData
|
import androidx.lifecycle.LiveData
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.preference.PreferenceManager
|
|
||||||
import com.xwray.groupie.Group
|
import com.xwray.groupie.Group
|
||||||
import io.reactivex.rxjava3.core.Flowable
|
import io.reactivex.rxjava3.core.Flowable
|
||||||
import io.reactivex.rxjava3.processors.BehaviorProcessor
|
import io.reactivex.rxjava3.processors.BehaviorProcessor
|
||||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||||
import org.schabi.newpipe.R
|
|
||||||
import org.schabi.newpipe.local.feed.FeedDatabaseManager
|
import org.schabi.newpipe.local.feed.FeedDatabaseManager
|
||||||
import org.schabi.newpipe.local.subscription.item.ChannelItem
|
import org.schabi.newpipe.local.subscription.item.ChannelItem
|
||||||
import org.schabi.newpipe.local.subscription.item.FeedGroupCardGridItem
|
import org.schabi.newpipe.local.subscription.item.FeedGroupCardGridItem
|
||||||
import org.schabi.newpipe.local.subscription.item.FeedGroupCardItem
|
import org.schabi.newpipe.local.subscription.item.FeedGroupCardItem
|
||||||
import org.schabi.newpipe.util.DEFAULT_THROTTLE_TIMEOUT
|
import org.schabi.newpipe.util.DEFAULT_THROTTLE_TIMEOUT
|
||||||
|
import org.schabi.newpipe.util.ThemeHelper
|
||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
|
|
||||||
class SubscriptionViewModel(application: Application) : AndroidViewModel(application) {
|
class SubscriptionViewModel(application: Application) : AndroidViewModel(application) {
|
||||||
|
@ -23,7 +21,9 @@ class SubscriptionViewModel(application: Application) : AndroidViewModel(applica
|
||||||
private var subscriptionManager = SubscriptionManager(application)
|
private var subscriptionManager = SubscriptionManager(application)
|
||||||
|
|
||||||
// true -> list view, false -> grid view
|
// true -> list view, false -> grid view
|
||||||
private val listViewMode = BehaviorProcessor.createDefault(!isGridLayout(application))
|
private val listViewMode = BehaviorProcessor.createDefault(
|
||||||
|
!ThemeHelper.shouldUseGridLayout(application)
|
||||||
|
)
|
||||||
private val listViewModeFlowable = listViewMode.distinctUntilChanged()
|
private val listViewModeFlowable = listViewMode.distinctUntilChanged()
|
||||||
|
|
||||||
private val mutableStateLiveData = MutableLiveData<SubscriptionState>()
|
private val mutableStateLiveData = MutableLiveData<SubscriptionState>()
|
||||||
|
@ -74,24 +74,4 @@ class SubscriptionViewModel(application: Application) : AndroidViewModel(applica
|
||||||
data class LoadedState(val subscriptions: List<Group>) : SubscriptionState()
|
data class LoadedState(val subscriptions: List<Group>) : SubscriptionState()
|
||||||
data class ErrorState(val error: Throwable? = null) : SubscriptionState()
|
data class ErrorState(val error: Throwable? = null) : SubscriptionState()
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
|
||||||
private fun isGridLayout(application: Application): Boolean {
|
|
||||||
val listMode = PreferenceManager.getDefaultSharedPreferences(application)
|
|
||||||
.getString(
|
|
||||||
application.getString(R.string.list_view_mode_key),
|
|
||||||
application.getString(R.string.list_view_mode_value)
|
|
||||||
)
|
|
||||||
|
|
||||||
return if ("auto" == listMode) {
|
|
||||||
val configuration: Configuration = application.resources.configuration
|
|
||||||
(
|
|
||||||
configuration.orientation == Configuration.ORIENTATION_LANDSCAPE &&
|
|
||||||
configuration.isLayoutSizeAtLeast(Configuration.SCREENLAYOUT_SIZE_LARGE)
|
|
||||||
)
|
|
||||||
} else {
|
|
||||||
"grid" == listMode
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -349,7 +349,7 @@ public final class ThemeHelper {
|
||||||
return false;
|
return false;
|
||||||
} else if (listMode.equals(context.getString(R.string.list_view_mode_grid_key))) {
|
} else if (listMode.equals(context.getString(R.string.list_view_mode_grid_key))) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else /* listMode.equals("auto") */ {
|
||||||
final Configuration configuration = context.getResources().getConfiguration();
|
final Configuration configuration = context.getResources().getConfiguration();
|
||||||
return configuration.orientation == Configuration.ORIENTATION_LANDSCAPE
|
return configuration.orientation == Configuration.ORIENTATION_LANDSCAPE
|
||||||
&& configuration.isLayoutSizeAtLeast(Configuration.SCREENLAYOUT_SIZE_LARGE);
|
&& configuration.isLayoutSizeAtLeast(Configuration.SCREENLAYOUT_SIZE_LARGE);
|
||||||
|
|
Loading…
Reference in New Issue