Move GraphQLService object to GraphQLRepository constructor parameter.
This commit is contained in:
parent
69b685ae0d
commit
205e21b07c
@ -104,6 +104,7 @@ class MainActivity : BaseLanguageActivity(), FragmentManager.OnBackStackChangedL
|
||||
}
|
||||
}
|
||||
private val mediaRepository: MediaRepository by lazy { MediaRepository.getInstance() }
|
||||
private val graphQLRepository: GraphQLRepository by lazy { GraphQLRepository.getInstance() }
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
@ -638,7 +639,7 @@ class MainActivity : BaseLanguageActivity(), FragmentManager.OnBackStackChangedL
|
||||
alertDialog.show()
|
||||
lifecycleScope.launch(Dispatchers.IO) {
|
||||
try {
|
||||
val media = if (isLoggedIn) mediaRepository.fetch(shortcodeToId(shortCode)) else GraphQLRepository.fetchPost(shortCode)
|
||||
val media = if (isLoggedIn) mediaRepository.fetch(shortcodeToId(shortCode)) else graphQLRepository.fetchPost(shortCode)
|
||||
withContext(Dispatchers.Main) {
|
||||
if (media == null) {
|
||||
Toast.makeText(applicationContext, R.string.post_not_found, Toast.LENGTH_SHORT).show()
|
||||
|
@ -25,7 +25,7 @@ public class HashtagPostFetchService implements PostFetcher.PostFetchService {
|
||||
this.hashtagModel = hashtagModel;
|
||||
this.isLoggedIn = isLoggedIn;
|
||||
tagsService = isLoggedIn ? TagsService.getInstance() : null;
|
||||
graphQLRepository = isLoggedIn ? null : GraphQLRepository.INSTANCE;
|
||||
graphQLRepository = isLoggedIn ? null : GraphQLRepository.Companion.getInstance();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -25,7 +25,7 @@ public class LocationPostFetchService implements PostFetcher.PostFetchService {
|
||||
this.locationModel = locationModel;
|
||||
this.isLoggedIn = isLoggedIn;
|
||||
locationService = isLoggedIn ? LocationService.getInstance() : null;
|
||||
graphQLRepository = isLoggedIn ? null : GraphQLRepository.INSTANCE;
|
||||
graphQLRepository = isLoggedIn ? null : GraphQLRepository.Companion.getInstance();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -25,7 +25,7 @@ public class ProfilePostFetchService implements PostFetcher.PostFetchService {
|
||||
public ProfilePostFetchService(final User profileModel, final boolean isLoggedIn) {
|
||||
this.profileModel = profileModel;
|
||||
this.isLoggedIn = isLoggedIn;
|
||||
graphQLRepository = isLoggedIn ? null : GraphQLRepository.INSTANCE;
|
||||
graphQLRepository = isLoggedIn ? null : GraphQLRepository.Companion.getInstance();
|
||||
profileService = isLoggedIn ? ProfileService.getInstance() : null;
|
||||
}
|
||||
|
||||
|
@ -29,7 +29,7 @@ public class SavedPostFetchService implements PostFetcher.PostFetchService {
|
||||
this.type = type;
|
||||
this.isLoggedIn = isLoggedIn;
|
||||
this.collectionId = collectionId;
|
||||
graphQLRepository = isLoggedIn ? null : GraphQLRepository.INSTANCE;
|
||||
graphQLRepository = isLoggedIn ? null : GraphQLRepository.Companion.getInstance();
|
||||
profileService = isLoggedIn ? ProfileService.getInstance() : null;
|
||||
}
|
||||
|
||||
|
@ -299,7 +299,7 @@ public class HashTagFragment extends Fragment implements SwipeRefreshLayout.OnRe
|
||||
isLoggedIn = !TextUtils.isEmpty(cookie) && CookieUtils.getUserIdFromCookie(cookie) > 0;
|
||||
tagsService = isLoggedIn ? TagsService.getInstance() : null;
|
||||
storiesRepository = isLoggedIn ? StoriesRepository.Companion.getInstance() : null;
|
||||
graphQLRepository = isLoggedIn ? null : GraphQLRepository.INSTANCE;
|
||||
graphQLRepository = isLoggedIn ? null : GraphQLRepository.Companion.getInstance();
|
||||
setHasOptionsMenu(true);
|
||||
}
|
||||
|
||||
|
@ -113,7 +113,7 @@ public final class LikesViewerFragment extends BottomSheetDialogFragment impleme
|
||||
final String csrfToken = CookieUtils.getCsrfTokenFromCookie(cookie);
|
||||
if (csrfToken == null) return;
|
||||
mediaRepository = isLoggedIn ? MediaRepository.Companion.getInstance() : null;
|
||||
graphQLRepository = isLoggedIn ? null : GraphQLRepository.INSTANCE;
|
||||
graphQLRepository = isLoggedIn ? null : GraphQLRepository.Companion.getInstance();
|
||||
// setHasOptionsMenu(true);
|
||||
}
|
||||
|
||||
|
@ -292,7 +292,7 @@ public class LocationFragment extends Fragment implements SwipeRefreshLayout.OnR
|
||||
isLoggedIn = !TextUtils.isEmpty(cookie) && CookieUtils.getUserIdFromCookie(cookie) > 0;
|
||||
locationService = isLoggedIn ? LocationService.getInstance() : null;
|
||||
storiesRepository = StoriesRepository.Companion.getInstance();
|
||||
graphQLRepository = isLoggedIn ? null : GraphQLRepository.INSTANCE;
|
||||
graphQLRepository = isLoggedIn ? null : GraphQLRepository.Companion.getInstance();
|
||||
setHasOptionsMenu(true);
|
||||
}
|
||||
|
||||
|
@ -338,7 +338,7 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
|
||||
storiesRepository = isLoggedIn ? StoriesRepository.Companion.getInstance() : null;
|
||||
mediaRepository = isLoggedIn ? MediaRepository.Companion.getInstance() : null;
|
||||
userRepository = isLoggedIn ? UserRepository.Companion.getInstance() : null;
|
||||
graphQLRepository = isLoggedIn ? null : GraphQLRepository.INSTANCE;
|
||||
graphQLRepository = isLoggedIn ? null : GraphQLRepository.Companion.getInstance();
|
||||
final Context context = getContext();
|
||||
if (context == null) return;
|
||||
accountRepository = AccountRepository.getInstance(AccountDataSource.getInstance(context));
|
||||
|
@ -121,7 +121,7 @@ public class CommentsViewerViewModel extends ViewModel {
|
||||
};
|
||||
|
||||
public CommentsViewerViewModel() {
|
||||
graphQLRepository = GraphQLRepository.INSTANCE;
|
||||
graphQLRepository = GraphQLRepository.Companion.getInstance();
|
||||
final String cookie = settingsHelper.getString(Constants.COOKIE);
|
||||
final String deviceUuid = Utils.settingsHelper.getString(Constants.DEVICE_UUID);
|
||||
final String csrfToken = CookieUtils.getCsrfTokenFromCookie(cookie);
|
||||
|
@ -7,13 +7,11 @@ import awais.instagrabber.repositories.responses.*
|
||||
import awais.instagrabber.utils.Constants
|
||||
import awais.instagrabber.utils.ResponseBodyUtils
|
||||
import awais.instagrabber.utils.extensions.TAG
|
||||
import awais.instagrabber.webservices.RetrofitFactory.retrofitWeb
|
||||
import org.json.JSONException
|
||||
import org.json.JSONObject
|
||||
import java.util.*
|
||||
|
||||
object GraphQLRepository {
|
||||
private val service: GraphQLService = retrofitWeb.create(GraphQLService::class.java)
|
||||
class GraphQLRepository(private val service: GraphQLService) {
|
||||
|
||||
// TODO convert string response to a response class
|
||||
private suspend fun fetch(
|
||||
@ -145,14 +143,16 @@ object GraphQLRepository {
|
||||
val userModels: MutableList<User> = ArrayList()
|
||||
for (j in 0 until usersLen) {
|
||||
val userObject = users.getJSONObject(j).getJSONObject("node")
|
||||
userModels.add(User(
|
||||
userModels.add(
|
||||
User(
|
||||
userObject.getLong("id"),
|
||||
userObject.getString("username"),
|
||||
userObject.optString("full_name"),
|
||||
userObject.optBoolean("is_private"),
|
||||
userObject.getString("profile_pic_url"),
|
||||
userObject.optBoolean("is_verified")
|
||||
))
|
||||
)
|
||||
)
|
||||
}
|
||||
return GraphQLUserListFetchResponse(newEndCursor, status, userModels)
|
||||
}
|
||||
@ -240,7 +240,8 @@ object GraphQLRepository {
|
||||
body.getString("name"),
|
||||
timelineMedia.getLong("count"),
|
||||
if (body.optBoolean("is_following")) FollowingType.FOLLOWING else FollowingType.NOT_FOLLOWING,
|
||||
null)
|
||||
null
|
||||
)
|
||||
}
|
||||
|
||||
// TODO convert string response to a response class
|
||||
@ -263,4 +264,16 @@ object GraphQLRepository {
|
||||
body.optDouble("lat", 0.0)
|
||||
)
|
||||
}
|
||||
|
||||
companion object {
|
||||
@Volatile
|
||||
private var INSTANCE: GraphQLRepository? = null
|
||||
|
||||
fun getInstance(): GraphQLRepository {
|
||||
return INSTANCE ?: synchronized(this) {
|
||||
val service: GraphQLService = RetrofitFactory.retrofitWeb.create(GraphQLService::class.java)
|
||||
GraphQLRepository(service).also { INSTANCE = it }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user