mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 20:33:53 +01:00
Convert BookmarksPagerAdapter to kotlin
This commit is contained in:
parent
fb4076a714
commit
8f8b122758
4 changed files with 98 additions and 94 deletions
|
|
@ -1,94 +0,0 @@
|
||||||
package fr.free.nrw.commons.bookmarks;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.widget.ListAdapter;
|
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
import androidx.fragment.app.FragmentManager;
|
|
||||||
import androidx.fragment.app.FragmentPagerAdapter;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
import fr.free.nrw.commons.R;
|
|
||||||
import fr.free.nrw.commons.bookmarks.pictures.BookmarkPicturesFragment;
|
|
||||||
|
|
||||||
public class BookmarksPagerAdapter extends FragmentPagerAdapter {
|
|
||||||
|
|
||||||
private ArrayList<BookmarkPages> pages;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Default Constructor
|
|
||||||
* @param fm
|
|
||||||
* @param context
|
|
||||||
* @param onlyPictures is true if the fragment requires only BookmarkPictureFragment
|
|
||||||
* (i.e. when no user is logged in).
|
|
||||||
*/
|
|
||||||
BookmarksPagerAdapter(FragmentManager fm, Context context,boolean onlyPictures) {
|
|
||||||
super(fm);
|
|
||||||
pages = new ArrayList<>();
|
|
||||||
Bundle picturesBundle = new Bundle();
|
|
||||||
picturesBundle.putString("categoryName", context.getString(R.string.title_page_bookmarks_pictures));
|
|
||||||
picturesBundle.putInt("order", 0);
|
|
||||||
pages.add(new BookmarkPages(
|
|
||||||
new BookmarkListRootFragment(picturesBundle, this),
|
|
||||||
context.getString(R.string.title_page_bookmarks_pictures)));
|
|
||||||
if (!onlyPictures) {
|
|
||||||
// if onlyPictures is false we also add the location fragment.
|
|
||||||
Bundle locationBundle = new Bundle();
|
|
||||||
locationBundle.putString("categoryName",
|
|
||||||
context.getString(R.string.title_page_bookmarks_locations));
|
|
||||||
locationBundle.putInt("order", 1);
|
|
||||||
pages.add(new BookmarkPages(
|
|
||||||
new BookmarkListRootFragment(locationBundle, this),
|
|
||||||
context.getString(R.string.title_page_bookmarks_locations)));
|
|
||||||
|
|
||||||
locationBundle.putInt("orderItem", 2);
|
|
||||||
pages.add(new BookmarkPages(
|
|
||||||
new BookmarkListRootFragment(locationBundle, this),
|
|
||||||
context.getString(R.string.title_page_bookmarks_items)));
|
|
||||||
}
|
|
||||||
final Bundle categoriesBundle = new Bundle();
|
|
||||||
categoriesBundle.putString("categoryName",
|
|
||||||
context.getString(R.string.title_page_bookmarks_categories));
|
|
||||||
categoriesBundle.putInt("order", 3);
|
|
||||||
pages.add(new BookmarkPages(
|
|
||||||
new BookmarkListRootFragment(categoriesBundle, this),
|
|
||||||
context.getString(R.string.title_page_bookmarks_categories)));
|
|
||||||
notifyDataSetChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Fragment getItem(int position) {
|
|
||||||
return pages.get(position).getPage();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getCount() {
|
|
||||||
return pages.size();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
@Override
|
|
||||||
public CharSequence getPageTitle(int position) {
|
|
||||||
return pages.get(position).getTitle();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return the Adapter used to display the picture gridview
|
|
||||||
* @return adapter
|
|
||||||
*/
|
|
||||||
public ListAdapter getMediaAdapter() {
|
|
||||||
BookmarkPicturesFragment fragment = (BookmarkPicturesFragment)(((BookmarkListRootFragment)pages.get(0).getPage()).listFragment);
|
|
||||||
return fragment.getAdapter();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the pictures list for the bookmark fragment
|
|
||||||
*/
|
|
||||||
public void requestPictureListUpdate() {
|
|
||||||
BookmarkPicturesFragment fragment = (BookmarkPicturesFragment)(((BookmarkListRootFragment)pages.get(0).getPage()).listFragment);
|
|
||||||
fragment.onResume();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,82 @@
|
||||||
|
package fr.free.nrw.commons.bookmarks
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import android.widget.ListAdapter
|
||||||
|
import androidx.core.os.bundleOf
|
||||||
|
import androidx.fragment.app.Fragment
|
||||||
|
import androidx.fragment.app.FragmentManager
|
||||||
|
import androidx.fragment.app.FragmentPagerAdapter
|
||||||
|
import fr.free.nrw.commons.R
|
||||||
|
import fr.free.nrw.commons.bookmarks.pictures.BookmarkPicturesFragment
|
||||||
|
|
||||||
|
class BookmarksPagerAdapter internal constructor(
|
||||||
|
fm: FragmentManager, context: Context, onlyPictures: Boolean
|
||||||
|
) : FragmentPagerAdapter(fm) {
|
||||||
|
private val pages = mutableListOf<BookmarkPages>()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default Constructor
|
||||||
|
* @param fm
|
||||||
|
* @param context
|
||||||
|
* @param onlyPictures is true if the fragment requires only BookmarkPictureFragment
|
||||||
|
* (i.e. when no user is logged in).
|
||||||
|
*/
|
||||||
|
init {
|
||||||
|
pages.add(
|
||||||
|
BookmarkPages(
|
||||||
|
BookmarkListRootFragment(
|
||||||
|
bundleOf(
|
||||||
|
"categoryName" to context.getString(R.string.title_page_bookmarks_pictures),
|
||||||
|
"order" to 0
|
||||||
|
), this
|
||||||
|
), context.getString(R.string.title_page_bookmarks_pictures)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
if (!onlyPictures) {
|
||||||
|
// if onlyPictures is false we also add the location fragment.
|
||||||
|
val locationBundle = bundleOf(
|
||||||
|
"categoryName" to context.getString(R.string.title_page_bookmarks_locations),
|
||||||
|
"order" to 1
|
||||||
|
)
|
||||||
|
|
||||||
|
pages.add(
|
||||||
|
BookmarkPages(
|
||||||
|
BookmarkListRootFragment(locationBundle, this),
|
||||||
|
context.getString(R.string.title_page_bookmarks_locations)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
locationBundle.putInt("orderItem", 2)
|
||||||
|
pages.add(
|
||||||
|
BookmarkPages(
|
||||||
|
BookmarkListRootFragment(locationBundle, this),
|
||||||
|
context.getString(R.string.title_page_bookmarks_items)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
pages.add(
|
||||||
|
BookmarkPages(
|
||||||
|
BookmarkListRootFragment(
|
||||||
|
bundleOf(
|
||||||
|
"categoryName" to context.getString(R.string.title_page_bookmarks_categories),
|
||||||
|
"order" to 3
|
||||||
|
), this),
|
||||||
|
context.getString(R.string.title_page_bookmarks_categories)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
notifyDataSetChanged()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getItem(position: Int): Fragment = pages[position].page!!
|
||||||
|
|
||||||
|
override fun getCount(): Int = pages.size
|
||||||
|
|
||||||
|
override fun getPageTitle(position: Int): CharSequence? = pages[position].title
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the Adapter used to display the picture gridview
|
||||||
|
* @return adapter
|
||||||
|
*/
|
||||||
|
val mediaAdapter: ListAdapter?
|
||||||
|
get() = (((pages[0].page as BookmarkListRootFragment).listFragment) as BookmarkPicturesFragment).getAdapter()
|
||||||
|
}
|
||||||
|
|
@ -2,12 +2,20 @@ package fr.free.nrw.commons.bookmarks
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import androidx.fragment.app.FragmentManager
|
import androidx.fragment.app.FragmentManager
|
||||||
|
import fr.free.nrw.commons.TestCommonsApplication
|
||||||
import org.junit.Assert
|
import org.junit.Assert
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
import org.junit.runner.RunWith
|
||||||
import org.mockito.Mock
|
import org.mockito.Mock
|
||||||
import org.mockito.MockitoAnnotations
|
import org.mockito.MockitoAnnotations
|
||||||
|
import org.robolectric.RobolectricTestRunner
|
||||||
|
import org.robolectric.annotation.Config
|
||||||
|
import org.robolectric.annotation.LooperMode
|
||||||
|
|
||||||
|
@RunWith(RobolectricTestRunner::class)
|
||||||
|
@Config(sdk = [21], application = TestCommonsApplication::class)
|
||||||
|
@LooperMode(LooperMode.Mode.PAUSED)
|
||||||
class BookmarksPagerAdapterTests {
|
class BookmarksPagerAdapterTests {
|
||||||
@Mock
|
@Mock
|
||||||
private lateinit var bookmarksPagerAdapter: BookmarksPagerAdapter
|
private lateinit var bookmarksPagerAdapter: BookmarksPagerAdapter
|
||||||
|
|
|
||||||
|
|
@ -2,15 +2,23 @@ package fr.free.nrw.commons.bookmarks
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import androidx.fragment.app.FragmentManager
|
import androidx.fragment.app.FragmentManager
|
||||||
|
import fr.free.nrw.commons.TestCommonsApplication
|
||||||
import org.junit.Assert
|
import org.junit.Assert
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
import org.junit.runner.RunWith
|
||||||
import org.mockito.Mock
|
import org.mockito.Mock
|
||||||
import org.mockito.MockitoAnnotations
|
import org.mockito.MockitoAnnotations
|
||||||
|
import org.robolectric.RobolectricTestRunner
|
||||||
|
import org.robolectric.annotation.Config
|
||||||
|
import org.robolectric.annotation.LooperMode
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BookmarksPagerAdapter when user is not loggedIn.
|
* BookmarksPagerAdapter when user is not loggedIn.
|
||||||
*/
|
*/
|
||||||
|
@RunWith(RobolectricTestRunner::class)
|
||||||
|
@Config(sdk = [21], application = TestCommonsApplication::class)
|
||||||
|
@LooperMode(LooperMode.Mode.PAUSED)
|
||||||
class LoggedOutBookmarksPagerAdapterTests {
|
class LoggedOutBookmarksPagerAdapterTests {
|
||||||
@Mock
|
@Mock
|
||||||
private lateinit var bookmarksPagerAdapter: BookmarksPagerAdapter
|
private lateinit var bookmarksPagerAdapter: BookmarksPagerAdapter
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue